Summary: | При инициализации окружения не записывается odbc32.dll | ||
---|---|---|---|
Product: | WINE@Etersoft | Reporter: | Александр Морозов <amorozov> |
Component: | Общее | Assignee: | Anton Rudnev <mibori> |
Status: | CLOSED FIXED | QA Contact: | |
Severity: | critical | ||
Priority: | P2 | CC: | kondratyuk, lav |
Version: | unspecified | ||
Target Milestone: | --- | ||
Hardware: | PC | ||
OS: | Linux | ||
Whiteboard: | |||
Заявки RT: | Связано с: | ||
Дата напоминания: | |||
Bug Depends on: | |||
Bug Blocks: | 2710 |
Description
Александр Морозов
2008-10-27 13:26:59 MSK
При установке MDAC_TYP.EXE в трейсе по file множество строк типа: warn:file:CreateFileW Unable to create file L"C:\\windows\\temp\\IXP000.TMP\\oledb32a.dll" (status c0000043) непосредственно перед завершением установки с ошибкой. Что менялось: поставляемый MSJet. Устанавливаем мы его до MDAC'а. MSJet не играет роли, тем более, что ставится он позже. Вполне возможно, что это следствия той же поломки: Initialize registry and environments... + /usr/bin/wine-glibc wineboot.exe --init + /usr/bin/wine-glibc wineboot.exe --update err:mshtml:check_version Could not open VERSION file Could not load Mozilla. HTML rendering will be disabled. Если закомментировать if (!check_sharing( fd, access, sharing )) { release_object( fd ); set_error( STATUS_SHARING_VIOLATION ); return NULL; } в open_fd (server/fd.c), то установка MDAC_TYP.EXE завершается успешно. Проблема в glibc сизифа, вне вайна? Нужно обязательно разобраться, в чём дело с новым glibc Вот одно (самое первое) обращение к файлу на целларе: call NtCreateFile: handle=0 access=c0000000 name=L"\\??\\C:\\Program Files\\Common Files\\System\\OLE DB\\oledb32a.dll" objattr=00000040 root=(nil) sec=(nil) io=0x7e256620 alloc_size=(nil)attr=00000000 sharing=00000000 disp=1 options=00000050 ea=(nil).0x00000000 ret NtCreateFile(*handle = 0 ...) -> c0000034 (ending) далее закрытия файла не происходит (поскольку ошибка) то же самое обращение на атланте: call NtCreateFile: handle=0 access=c0000000 name=L"\\??\\C:\\Program Files\\Common Files\\System\\OLE DB\\oledb32a.dll" objattr=00000040 root=(nil) sec=(nil) io=0x7e0e0620 alloc_size=(nil)attr=00000000 sharing=00000000 disp=1 options=00000050 ea=(nil).0x00000000 call open_fd(/home/mibori/.wine/dosdevices/c:/Program Files/Common Files/System/OLE DB/oledb32a.dll, flags=8800, *mode=666, access=12019f, sharing=0, options=50) ret open_fd(/home/mibori/.wine/dosdevices/c:/Program Files/Common Files/System/OLE DB/oledb32a.dll, *mode=100664) -> 8301158 (non error) ret NtCreateFile(*handle = bc ...) -> 0 (ending) а затем закрытие mib call NtClose(bc) call fd_destroy(8301158) ret fd_destroy(8301158) mib ret NtClose(bc) -> 0 то, что за период установки это первое обращение к файлу C:\\Program Files\\Common Files\\System\\OLE DB\\oledb32a.dll различно для двух машин, является основанием для написания теста. Судя по аргументам NtCreateFile это один и тот же вызов. похоже я немного ошибся. вот cellar: call NtCreateFile: *handle = 7e25a630 access = c0000000 *attr={Length=18, RootDirectory=0, ObjectName={Length=78, MaximumLength=80, Buffer=L"\\??\\C:\\Program Files\\Common Files\\System\\OLE DB\\oledb32a.dll"}, Attributes=40, SecurityDescriptor=0, SecurityQualityOfService=0} *io = 7e25a650 alloc_size = 0 attributes=0 sharing=0 disposition=1 options=50 ea_buffer=0 ea_length=0 ret NtCreateFile(*handle = 0 ...) -> c0000034 (ending) вот atlant: call NtCreateFile: *handle = 7e0d1630 access = c0000000 *attr={Length=18, RootDirectory=0, ObjectName={Length=78, MaximumLength=80, Buffer=L"\\??\\C:\\Program Files\\Common Files\\System\\OLE DB\\oledb32a.dll"}, Attributes=40, SecurityDescriptor=0, SecurityQualityOfService=0} *io = 7e0d1650 alloc_size = 0 attributes=0 sharing=0 disposition=1 options=50 ea_buffer=0 ea_length=0 ret NtCreateFile(*handle = ffffffff ...) -> c000003a (ending) и тот и другой завершается ошибкой. но с разными кодами завершения NTSTATUS (In reply to comment #7) > > и тот и другой завершается ошибкой. > но с разными кодами завершения NTSTATUS > #define STATUS_OBJECT_NAME_NOT_FOUND ((NTSTATUS) 0xC0000034) #define STATUS_OBJECT_PATH_NOT_FOUND ((NTSTATUS) 0xC000003A) что означает, что тест я проводил в неравных условиях. разницу поведения достаточно точно видно при обращении к файлу C:\\windows\\temp\\IXP000.TMP\\oledb32a.dll на atlant файл открывается, и тут же закрывается. а на cellar закрытия файла не происходит лог на atlant call NtCreateFile: *handle = 7dbaf7a8 access = c0000000 *attr={Length=18, RootDirectory=0, ObjectName={Length=56, MaximumLength=5e, Buffer=L"\\??\\C:\\windows\\temp\\IXP000.TMP\\oledb32a.dll"}, Attributes=40, SecurityDescriptor=0, SecurityQualityOfService=0} *io = 7dbaf7c8 alloc_size = 0 attributes=80 sharing=0 disposition=2 options=50 ea_buffer=0 ea_length=0 call open_fd(/home/mibori/.wine/dosdevices/c:/windows/temp/IXP000.TMP/oledb32a.dll, flags=88c0, *mode=666, access=12019f, sharing=0, options=50) ret open_fd(/home/mibori/.wine/dosdevices/c:/windows/temp/IXP000.TMP/oledb32a.dll, *mode=100644) -> 81e7080 (non error) ret NtCreateFile(...) -> io->u.Status=0, io->Information=2 (ending), *handle = 17c mib call NtClose(17c) call fd_destroy(81e7080) ret fd_destroy(81e7080) mib ret NtClose(17c) -> 0 call NtCreateFile: *handle = 7dbaf7a8 access = c0000000 *attr={Length=18, RootDirectory=0, ObjectName={Length=56, MaximumLength=5e, Buffer=L"\\??\\C:\\windows\\temp\\IXP000.TMP\\msorc32r.dll"}, Attributes=40, SecurityDescriptor=0, SecurityQualityOfService=0} *io = 7dbaf7c8 alloc_size = 0 attributes=80 sharing=0 disposition=2 options=50 ea_buffer=0 ea_length=0 call open_fd(/home/mibori/.wine/dosdevices/c:/windows/temp/IXP000.TMP/msorc32r.dll, flags=88c0, *mode=666, access=12019f, sharing=0, options=50) ret open_fd(/home/mibori/.wine/dosdevices/c:/windows/temp/IXP000.TMP/msorc32r.dll, *mode=100644) -> 81e7080 (non error) ret NtCreateFile(...) -> io->u.Status=0, io->Information=2 (ending), *handle = 17c -------------------- лог на cellar call NtCreateFile: *handle = 7dd597b0 access = c0000000 *attr={Length=18, RootDirectory=0, ObjectName={Length=56, MaximumLength=5e, Buffer=L"\\??\\C:\\windows\\temp\\IXP000.TMP\\oledb32a.dll"}, Attributes=40, SecurityDescriptor=0, SecurityQualityOfService=0} *io = 7dd597d0 alloc_size = 0 attributes=80 sharing=0 disposition=2 options=50 ea_buffer=0 ea_length=0 call open_fd(/net/wine/.wine-eterbug-2740/dosdevices/c:/windows/temp/IXP000.TMP/oledb32a.dll, flags=88c0, *mode=666, access=12019f, sharing=0, options=50) ret open_fd(/net/wine/.wine-eterbug-2740/dosdevices/c:/windows/temp/IXP000.TMP/oledb32a.dll, *mode=100644) -> 87b2b10 (non error) ret NtCreateFile(...) -> io->u.Status=0, io->Information=2 (ending), *handle = 25c call NtCreateFile: *handle = 7dd597b0 access = c0000000 *attr={Length=18, RootDirectory=0, ObjectName={Length=56, MaximumLength=5e, Buffer=L"\\??\\C:\\windows\\temp\\IXP000.TMP\\msorc32r.dll"}, Attributes=40, SecurityDescriptor=0, SecurityQualityOfService=0} *io = 7dd597d0 alloc_size = 0 attributes=80 sharing=0 disposition=2 options=50 ea_buffer=0 ea_length=0 call open_fd(/net/wine/.wine-eterbug-2740/dosdevices/c:/windows/temp/IXP000.TMP/msorc32r.dll, flags=88c0, *mode=666, access=12019f, sharing=0, options=50) ret open_fd(/net/wine/.wine-eterbug-2740/dosdevices/c:/windows/temp/IXP000.TMP/msorc32r.dll, *mode=100644) -> 87b2c28 (non error) ret NtCreateFile(...) -> io->u.Status=0, io->Information=2 (ending), *handle = 260 --------------- нужно разобраться, что происходит между этого файла и следующего. и почему не происходит закрытие первого > нужно разобраться, что происходит между
> этого файла и следующего.
> и почему не происходит закрытие первого
вход и выход функций NtCreateFile и open_fd идентичен на двух машинах (при отладке нужно сократить вывод информации об аргументах NtCreateFile)
Нужно проверить вызывается ли CloseHandle на cellar
> Нужно проверить вызывается ли CloseHandle на cellar
не вызывается
----------------------------------
на cellar
call NtCreateFile(L"\\??\\C:\\windows\\temp\\IXP000.TMP\\oledb32a.dll")
call open_fd(/net/wine/.wine-eterbug-2740/dosdevices/c:/windows/temp/IXP000.TMP/oledb32a.dll, flags=88c0, *mode=666, access=12019f, sharing=0, options=50)
ret open_fd(/net/wine/.wine-eterbug-2740/dosdevices/c:/windows/temp/IXP000.TMP/oledb32a.dll, *mode=100644) -> 8b2c508 (non error)
ret NtCreateFile(...) -> io->u.Status=0, io->Information=2 (ending), *handle = 25c
call NtCreateFile(L"\\??\\C:\\windows\\temp\\IXP000.TMP\\msorc32r.dll")
call open_fd(/net/wine/.wine-eterbug-2740/dosdevices/c:/windows/temp/IXP000.TMP/msorc32r.dll, flags=88c0, *mode=666, access=12019f, sharing=0, options=50)
ret open_fd(/net/wine/.wine-eterbug-2740/dosdevices/c:/windows/temp/IXP000.TMP/msorc32r.dll, *mode=100644) -> 8b2c620 (non error)
ret NtCreateFile(...) -> io->u.Status=0, io->Information=2 (ending), *handle = 260
-----------------------------------
на atlant
call NtCreateFile(L"\\??\\C:\\windows\\temp\\IXP000.TMP\\oledb32a.dll")
call open_fd(/home/mibori/.wine/dosdevices/c:/windows/temp/IXP000.TMP/oledb32a.dll, flags=88c0, *mode=666, access=12019f, sharing=0, options=50)
ret open_fd(/home/mibori/.wine/dosdevices/c:/windows/temp/IXP000.TMP/oledb32a.dll, *mode=100644) -> 823dbf8 (non error)
ret NtCreateFile(...) -> io->u.Status=0, io->Information=2 (ending), *handle = 17c
call CloseHandle(17c)
mib call NtClose(17c)
call fd_destroy(823dbf8)
ret fd_destroy(823dbf8)
mib ret NtClose(17c) -> 0
ret CloseHandle(17c) -> TRUE (ending)
call NtCreateFile(L"\\??\\C:\\windows\\temp\\IXP000.TMP\\msorc32r.dll")
call open_fd(/home/mibori/.wine/dosdevices/c:/windows/temp/IXP000.TMP/msorc32r.dll, flags=88c0, *mode=666, access=12019f, sharing=0, options=50)
ret open_fd(/home/mibori/.wine/dosdevices/c:/windows/temp/IXP000.TMP/msorc32r.dll, *mode=100644) -> 823dbf8 (non error)
ret NtCreateFile(...) -> io->u.Status=0, io->Information=2 (ending), *handle = 17c
----------------------------------
поведение установщика меняется.
нужно посмотреть что даст +msi
пробую падать в NtCreateFile и NtClose на cellar и atlant для cellar NtCreate падаем так: =>1 0x7bc3bd17 NtCreateFile+0xb6(handle=0x7dd537b0, access=3221225472, attr=0x7dd5377c, io=0x7dd537a0, alloc_size=(nil), attributes=128, sharing=0, disposition=2, options=80, ea_buffer=(nil), ea_length=0) [/srv/mibori/Projects/wine/dlls/ntdll/file.c:199] in ntdll (0x7dd53714) 2 0x7b847934 CreateFileW+0x470(filename=0x7ffccc00, access=3221225472, sharing=0, sa=(nil), creation=1, attributes=128, template=(nil)) [/srv/mibori/Projects/wine/dlls/kernel32/file.c:1504] in kernel32 (0x7dd537d4) 3 0x7b847afd CreateFileA+0x52(filename="C:\windows\temp\IXP000.TMP\oledb32a.dll", access=3221225472, sharing=0, sa=(nil), creation=1, attributes=128, template=(nil)) [/srv/mibori/Projects/wine/dlls/kernel32/file.c:1566] in kernel32 (0x7dd53814) 4 0x7dc34192 fdi_notify_extract+0x295(fdint=fdintCOPY_FILE, pfdin=0x7dd538fc) [/home/mibori/Projects/wine/dlls/cabinet/cabinet_main.c:242] in cabinet (0x7dd53884) 5 0x7dc448d7 FDICopy+0xe5c(hfdi=0x175080, pszCabinet="MDACxpak.CAB", pszCabPath="C:\windows\temp\IXP000.TMP", flags=0, pfnfdin=0x7dc33efd, pfnfdid=(nil), pvUser=0x7dd6ab38) [/home/mibori/Projects/wine/dlls/cabinet/fdi.c:2734] in cabinet (0x7dd6aa74) 6 0x7dc34425 Extract+0x18b(dest=0x7dd6ab38, szCabName="C:\windows\temp\IXP000.TMP\MDACxpak.CAB") [/home/mibori/Projects/wine/dlls/cabinet/cabinet_main.c:367] in cabinet (0x7dd6aad4) 7 0x7e5a6321 ExtractFilesA+0x2a8(CabName="C:\windows\temp\IXP000.TMP\MDACxpak.CAB", ExpandDir="C:\windows\temp\IXP000.TMP", Flags=0, FileList=0x0, LReserved=(nil), Reserved=0) [/home/mibori/Projects/wine/dlls/advpack/files.c:729] in advpack (0x7dd6ae74) 8 0x7e561f5f extract_cabinet_file+0x2ee(cabinet=0x1679d0, root=0x1674c8, src=0x174dd8, dst=0x174e38) [/srv/mibori/Projects/wine/dlls/setupapi/queue.c:445] in setupapi (0x7dd6aef4) 9 0x7e563de7 SetupCommitFileQueueW+0x4c9(owner=(nil), handle=0x1664d8, handler=0x7e5a2d2c, context=0x165d70) [/srv/mibori/Projects/wine/dlls/setupapi/queue.c:1254] in setupapi (0x7dd6b174) 10 0x7e55785b SetupInstallFromInfSectionW+0xd9(owner=(nil), hinf=0x121db8, section=0x169a88, flags=16, key_root=(nil), src_root=0x167bf8, copy_flags=4, callback=0x7e5a2d2c, context=0x165d70, devinfo=(nil), devinfo_data=(nil)) [/home/mibori/Projects/wine/dlls/setupapi/install.c:943] in setupapi (0x7dd6b1c4) 11 0x7e5a7547 spapi_install+0xa5(info=0x7dd6b248) [/home/mibori/Projects/wine/dlls/advpack/install.c:323] in advpack (0x7dd6b224) 12 0x7e5a8148 ExecuteCabW+0x122(hwnd=0x20034, pCab=0x7dd6b2b8, pReserved=(nil)) [/home/mibori/Projects/wine/dlls/advpack/install.c:685] in advpack (0x7dd6b284) 13 0x7e5a875c LaunchINFSectionExW+0x237(hWnd=0x20034, hInst=0x1000000, cmdline=0x166530, show=0) [/home/mibori/Projects/wine/dlls/advpack/install.c:883] in advpack (0x7dd6b4f4) 14 0x7e5a8503 LaunchINFSectionExA+0x9e(hWnd=0x20034, hInst=0x1000000, cmdline="C:\windows\temp\IXP000.TMP\MDACXPDL.INF,DefaultInstall,,32,N", show=0) ----------------------- на atlant в этом же месте: =>1 0x7bc3bd17 NtCreateFile+0xb6(handle=0x7dbb57a8, access=3221225472, attr=0x7dbb5774, io=0x7dbb5798, alloc_size=(nil), attributes=128, sharing=0, disposition=2, options=80, ea_buffer=(nil), ea_length=0) [/srv/mibori/Projects/wine/dlls/ntdll/file.c:199] in ntdll (0x7dbb570c) 2 0x7b847934 CreateFileW+0x470(filename=0x7ffccc00, access=3221225472, sharing=0, sa=(nil), creation=1, attributes=128, template=(nil)) [/srv/mibori/Projects/wine/dlls/kernel32/file.c:1504] in kernel32 (0x7dbb57cc) 3 0x7b847afd CreateFileA+0x52(filename="C:\windows\temp\IXP000.TMP\oledb32a.dll", access=3221225472, sharing=0, sa=(nil), creation=1, attributes=128, template=(nil)) [/srv/mibori/Projects/wine/dlls/kernel32/file.c:1566] in kernel32 (0x7dbb580c) 4 0x7da8a192 fdi_notify_extract+0x295(fdint=fdintCOPY_FILE, pfdin=0x7dbb58f4) [/home/mibori/Projects/wine/dlls/cabinet/cabinet_main.c:242] in cabinet (0x7dbb587c) 5 0x7da9a8d7 FDICopy+0xe5c(hfdi=0x17b348, pszCabinet="MDACxpak.CAB", pszCabPath="C:\windows\temp\IXP000.TMP", flags=0, pfnfdin=0x7da89efd, pfnfdid=(nil), pvUser=0x7dbccb30) [/home/mibori/Projects/wine/dlls/cabinet/fdi.c:2734] in cabinet (0x7dbcca6c) 6 0x7da8a425 Extract+0x18b(dest=0x7dbccb30, szCabName="C:\windows\temp\IXP000.TMP\MDACxpak.CAB") [/home/mibori/Projects/wine/dlls/cabinet/cabinet_main.c:367] in cabinet (0x7dbccacc) 7 0x7e3a6321 ExtractFilesA+0x2a8(CabName="C:\windows\temp\IXP000.TMP\MDACxpak.CAB", ExpandDir="C:\windows\temp\IXP000.TMP", Flags=0, FileList=0x0, LReserved=(nil), Reserved=0) [/home/mibori/Projects/wine/dlls/advpack/files.c:729] in advpack (0x7dbcce6c) 8 0x7e361f5f extract_cabinet_file+0x2ee(cabinet=0x16d190, root=0x16ce68, src=0x17b0a0, dst=0x17b100) [/srv/mibori/Projects/wine/dlls/setupapi/queue.c:445] in setupapi (0x7dbcceec) 9 0x7e363de7 SetupCommitFileQueueW+0x4c9(owner=(nil), handle=0x16de88, handler=0x7e3a2d2c, context=0x1298b0) [/srv/mibori/Projects/wine/dlls/setupapi/queue.c:1254] in setupapi (0x7dbcd16c) 10 0x7e35785b SetupInstallFromInfSectionW+0xd9(owner=(nil), hinf=0x165b48, section=0x16c348, flags=16, key_root=(nil), src_root=0x16c5c0, copy_flags=4, callback=0x7e3a2d2c, context=0x1298b0, devinfo=(nil), devinfo_data=(nil)) [/home/mibori/Projects/wine/dlls/setupapi/install.c:943] in setupapi (0x7dbcd1bc) 11 0x7e3a7547 spapi_install+0xa5(info=0x7dbcd240) [/home/mibori/Projects/wine/dlls/advpack/install.c:323] in advpack (0x7dbcd21c) 12 0x7e3a8148 ExecuteCabW+0x122(hwnd=0x20034, pCab=0x7dbcd2b0, pReserved=(nil)) [/home/mibori/Projects/wine/dlls/advpack/install.c:685] in advpack (0x7dbcd27c) 13 0x7e3a875c LaunchINFSectionExW+0x237(hWnd=0x20034, hInst=0x1000000, cmdline=0x16c8b8, show=0) [/home/mibori/Projects/wine/dlls/advpack/install.c:883] in advpack (0x7dbcd4ec) 14 0x7e3a8503 LaunchINFSectionExA+0x9e(hWnd=0x20034, hInst=0x1000000, cmdline="C:\windows\temp\IXP000.TMP\MDACXPDL.INF,DefaultInstall,,32,N", show=0) [/home/mibori/Projects/wine/dlls/advpack/install.c:806] in advpack (0x7dbcd52c) (In reply to comment #12) > пробую падать в NtCreateFile и NtClose на cellar и atlant > на NtClose надо падать только от значения счётчика. передать как-либо значение открытого дескриптора внутрь NtClose не получается (NtClose и NtCreateFile находятся в разных модулях). > (In reply to comment #12)
> передать как-либо значение открытого
> дескриптора внутрь NtClose не получается
получается
для NtClose на atlant =>1 0x7bc51c67 NtClose+0x79(Handle=0x17c) [/srv/mibori/Projects/wine/dlls/ntdll/om.c:318] in ntdll (0x7dbb67dc) 2 0x7b87fdc8 CloseHandle+0xb1(handle=0x17c) [/srv/mibori/Projects/wine/dlls/kernel32/process.c:2678] in kernel32 (0x7dbb681c) 3 0x7da8b27d fdi_notify_extract+0x380(fdint=fdintCLOSE_FILE_INFO, pfdin=0x7dbb68f4) [/srv/mibori/Projects/wine/dlls/cabinet/cabinet_main.c:272] in cabinet (0x7dbb687c) 4 0x7da9c033 FDICopy+0x15b8(hfdi=0x17b2f8, pszCabinet="MDACxpak.CAB", pszCabPath="C:\windows\temp\IXP000.TMP", flags=0, pfnfdin=0x7da8aefd, pfnfdid=(nil), pvUser=0x7dbcdb30) [/srv/mibori/Projects/wine/dlls/cabinet/fdi.c:2873] in cabinet (0x7dbcda6c) 5 0x7da8b425 Extract+0x18b(dest=0x7dbcdb30, szCabName="C:\windows\temp\IXP000.TMP\MDACxpak.CAB") [/srv/mibori/Projects/wine/dlls/cabinet/cabinet_main.c:367] in cabinet (0x7dbcdacc) 6 0x7e3a7321 ExtractFilesA+0x2a8(CabName="C:\windows\temp\IXP000.TMP\MDACxpak.CAB", ExpandDir="C:\windows\temp\IXP000.TMP", Flags=0, FileList=0x0, LReserved=(nil), Reserved=0) [/srv/mibori/Projects/wine/dlls/advpack/files.c:729] in advpack (0x7dbcde6c) call fd_destroy(8235c20) ret fd_destroy(8235c20) call fd_destroy(8236190) ret fd_destroy(8236190) call fd_destroy(8236208) ret fd_destroy(8236208) call fd_destroy(8235ec8) ret fd_destroy(8235ec8) call fd_destroy(8233a68) ret fd_destroy(8233a68) call fd_destroy(8233428) ret fd_destroy(8233428) 7 0x7e362f5f extract_cabinet_file+0x2ee(cabinet=0x16f318, root=0x16e9a8, src=0x17b050, dst=0x17b0b0) [/srv/mibori/Projects/wine/dlls/setupapi/queue.c:445] in setupapi (0x7dbcdeec) 8 0x7e364de7 SetupCommitFileQueueW+0x4c9(owner=(nil), handle=0x16d068, handler=0x7e3a3d2c, context=0x16c840) [/srv/mibori/Projects/wine/dlls/setupapi/queue.c:1254] in setupapi (0x7dbce16c) 9 0x7e35885b SetupInstallFromInfSectionW+0xd9(owner=(nil), hinf=0x16c578, section=0x16c1a8, flags=16, key_root=(nil), src_root=0x16cd08, copy_flags=4, callback=0x7e3a3d2c, context=0x16c840, devinfo=(nil), devinfo_data=(nil)) [/srv/mibori/Projects/wine/dlls/setupapi/install.c:943] in setupapi (0x7dbce1bc) 10 0x7e3a8547 spapi_install+0xa5(info=0x7dbce240) [/srv/mibori/Projects/wine/dlls/advpack/install.c:323] in advpack (0x7dbce21c) 11 0x7e3a9148 ExecuteCabW+0x122(hwnd=0x20034, pCab=0x7dbce2b0, pReserved=(nil)) [/srv/mibori/Projects/wine/dlls/advpack/install.c:685] in advpack (0x7dbce27c) 12 0x7e3a975c LaunchINFSectionExW+0x237(hWnd=0x20034, hInst=0x1000000, cmdline=0x16c8a8, show=0) [/srv/mibori/Projects/wine/dlls/advpack/install.c:883] in advpack (0x7dbce4ec) 13 0x7e3a9503 LaunchINFSectionExA+0x9e(hWnd=0x20034, hInst=0x1000000, cmdline="C:\windows\temp\IXP000.TMP\MDACXPDL.INF,DefaultInstall,,32,N", show=0) [/srv/mibori/Projects/wine/dlls/advpack/install.c:806] in advpack (0x7dbce52c) => причину несрабатывания NtClose следует искать от fdi_notify_extract в cabinet_main.c (In reply to comment #16) > => причину несрабатывания NtClose следует > искать от fdi_notify_extract в cabinet_main.c в ней на atlant после CreateFileW(...) -> handle вызов SetFileTime(handle, &ftLocal, 0, &ftLocal) отрабатывает с истиной на возврате, а на cellar ложью. для atlant: call fdi_notify_extract(fdint=fdintCOPY_FILE, pfdin=7dbb58f4) call NtCreateFile(L"\\??\\C:\\windows\\temp\\IXP000.TMP\\oledb32a.dll") call detected call open_fd(/home/mibori/.wine/dosdevices/c:/windows/temp/IXP000.TMP/oledb32a.dll, flags=88c0, *mode=666, access=12019f, sharing=0, options=50) ret open_fd(/home/mibori/.wine/dosdevices/c:/windows/temp/IXP000.TMP/oledb32a.dll, *mode=100644) -> 8252538 (non error) ret NtCreateFile(...) -> io->u.Status=0, io->Information=2 (ending), *handle = 17c ntClose init... ret fdi_notify_extract(...) -> 17c (ending) call fdi_notify_extract(fdint=fdintCLOSE_FILE_INFO, pfdin=7dbb58f4) call CloseHandle(17c) mib call NtClose(17c) nt close call detected call fd_destroy(8252538) ret fd_destroy(8252538) mib ret NtClose(17c) -> 0 ret CloseHandle(17c) -> TRUE (ending) ret fdi_notify_extract(...) -> TRUE (ending) ------------------------------- для cellar: call fdi_notify_extract(fdint=fdintCOPY_FILE, pfdin=7dd488fc) call NtCreateFile(L"\\??\\C:\\windows\\temp\\IXP000.TMP\\oledb32a.dll") call detected call open_fd(/net/wine/.wine-eterbug-2740/dosdevices/c:/windows/temp/IXP000.TMP/oledb32a.dll, flags=88c0, *mode=666, access=12019f, sharing=0, options=50) ret open_fd(/net/wine/.wine-eterbug-2740/dosdevices/c:/windows/temp/IXP000.TMP/oledb32a.dll, *mode=100644) -> 9484b50 (non error) ret NtCreateFile(...) -> io->u.Status=0, io->Information=2 (ending), *handle = 25c ntClose init... ret fdi_notify_extract(...) -> 25c (ending) call fdi_notify_extract(fdint=fdintCLOSE_FILE_INFO, pfdin=7dd488fc) ret fdi_notify_extract(...) -> FALSE (SetFileTime) см. проблему https://bugzilla.altlinux.org/show_bug.cgi?id=17806 патч http://lists.etersoft.ru/pipermail/wine-patches/2008-November/000071.html С патчем MDAC должен ставится с выводом сообщения об ошибке: err:ntdll:NtSetInformationFile futimes(...) -> -1, errno = 14 (Bad Address) |