WineHQ
Bug Tracking Database – Bug 35144

 Bugzilla

 

Last modified: 2021-07-25 14:40:06 UTC  

NVIDIA CUDA Toolkit v5.5 installer fails (SetupDiGetINFClassW whitelists only 'Chicago', ignoring WINEPREFIX WinVer setting)

Bug 35144 - NVIDIA CUDA Toolkit v5.5 installer fails (SetupDiGetINFClassW whitelists only 'Chicago', ignoring WINEPREFIX WinVer setting)
NVIDIA CUDA Toolkit v5.5 installer fails (SetupDiGetINFClassW whitelists only...
Status: CLOSED FIXED
AppDB: Show Apps affected by this bug
Product: Wine
Classification: Unclassified
Component: setupapi
1.7.8
x86 Linux
: P2 normal
: ---
Assigned To: Mr. Bugs
https://web.archive.org/web/201404102...
: download, Installer
Depends on:
Blocks:
  Show dependency tree
 
Reported: 2013-12-16 14:05 UTC by Anastasius Focht
Modified: 2021-07-25 14:40 UTC (History)
0 users

See Also:
Regression SHA1:
Fixed by SHA1: 6aace3014d355d355e802299d62a34e8865951ba
Distribution: ---
Staged patchset:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Anastasius Focht 2013-12-16 14:05:05 UTC
Hello folks,

with bug 35122 fixed the installer still fails.

The installer is wrapped. Let it unpack first and then CTRL+C when the error dialog box is shown for easier reproducing.
Run the extracted main installer.

Relevant part of trace log:

--- snip ---
$ pwd
/home/focht/.wine/drive_c/NVIDIA/CUDA

$ WINEDEBUG=+tid,+seh,+relay,+setupapi wine ./setup.exe >>log2.txt 2>&1
...
0025:Call setupapi.SetupDiGetINFClassW(011bd2b8 L"C:\\NVIDIA\\CUDA\\Display.Driver\\nv4_disp.inf",01f7e27c,01f7e28c,00000020,00000000) ret=02bd7c0f
0025:Call KERNEL32.GetFileAttributesW(011bd2b8 L"C:\\NVIDIA\\CUDA\\Display.Driver\\nv4_disp.inf") ret=7e27758c
0025:Ret  KERNEL32.GetFileAttributesW() retval=00000020 ret=7e27758c
0025:Call KERNEL32.GetPrivateProfileStringW(7e29b2da L"Version",7e29b2c6 L"Signature",00000000,01f7dfa8,00000104,011bd2b8 L"C:\\NVIDIA\\CUDA\\Display.Driver\\nv4_disp.inf") ret=7e277669
0025:Ret  KERNEL32.GetPrivateProfileStringW() retval=0000000c ret=7e277669
0025:Call KERNEL32.lstrcmpiW(01f7dfa8 L"$Windows NT$",7e29b20c L"$Chicago$") ret=7e277692
0025:Ret  KERNEL32.lstrcmpiW() retval=00000001 ret=7e277692
0025:Ret  setupapi.SetupDiGetINFClassW() retval=00000000 ret=02bd7c0f
0025:Call KERNEL32.GetLastError() ret=02b91257
0025:Ret  KERNEL32.GetLastError() retval=00000000 ret=02b91257
0025:Call ntdll.RtlAllocateHeap(00110000,00000000,00000050) ret=02bfc433
0025:Ret  ntdll.RtlAllocateHeap() retval=011bf318 ret=02bfc433
0025:Call KERNEL32.RaiseException(e06d7363,00000001,00000003,01f7e22c) ret=02bff857
0025:trace:seh:raise_exception code=e06d7363 flags=1 addr=0x7b83a8ef ip=7b83a8ef tid=0025
0025:trace:seh:raise_exception  info[0]=19930520
0025:trace:seh:raise_exception  info[1]=01f7e248
0025:trace:seh:raise_exception  info[2]=02c4e85c
0025:trace:seh:raise_exception  eax=7b826921 ebx=7b8ba000 ecx=19930520 edx=01f7e174 esi=01f7e218 edi=01f7e1e0
0025:trace:seh:raise_exception  ebp=01f7e1b8 esp=01f7e154 cs=0023 ds=002b es=002b fs=0063 gs=006b flags=00000283 
...
0025:Call KERNEL32.OutputDebugStringW(024205d8 L"     46.667 |    ERROR: [NVI2.NVInstaller] 932@CNVInstaller::AddPackages : COM error: Exception {0x80004005; File: NVInstaller.cpp; Line: 1128}. \n") ret=1001aa05
0025:Ret  KERNEL32.OutputDebugStringW() retval=01f7db30 ret=1001aa05 
...
0025:Call KERNEL32.OutputDebugStringW(024219e0 L"     46.669 |    ERROR: [NVI2.InstallThread] 54@CInstallThread::ThreadProc : Install failed - Exception {0x80004005; File: InstallationStepper.cpp; Line: 1193} - going to fail state. \n") ret=1001aa05
0025:Ret  KERNEL32.OutputDebugStringW() retval=01f7de40 ret=1001aa05 
...
--- snip ---

Dump of 'C:\\NVIDIA\\CUDA\\Display.Driver\\nv4_disp.inf' file with 'Version' section:

--- snip ---
; NVIDIA Windows XP (32 bit) Display INF file
; Copyright (c) NVIDIA Corporation. All rights reserved.

[Version]
Signature   = "$Windows NT$"
Provider    = %NVIDIA%
ClassGUID   = {4D36E968-E325-11CE-BFC1-08002BE10318}
Class       = Display
DriverVer   = 06/28/2013, 6.14.13.2057
CatalogFile = nv4_disp.CAT
...
--- snip ---

Source: http://source.winehq.org/git/wine.git/blob/09524be58380b612d0a9d2ba023ac25791e3fe03:/dlls/setupapi/devinst.c#l4047

--- snip ---
4047 BOOL WINAPI SetupDiGetINFClassW(PCWSTR inf, LPGUID class_guid, PWSTR class_name,
4048                               DWORD size, PDWORD required_size)
4049 {
4050     BOOL have_guid, have_name;
4051     DWORD dret;
4052     WCHAR buffer[MAX_PATH];
4053
4054     if (!inf)
4055     {
4056         SetLastError(ERROR_INVALID_PARAMETER);
4057         return FALSE;
4058     }
4059
4060     if (INVALID_FILE_ATTRIBUTES == GetFileAttributesW(inf))
4061     {
4062         FIXME("%s not found. Searching via DevicePath not implemented\n", debugstr_w(inf));
4063         SetLastError(ERROR_FILE_NOT_FOUND);
4064         return FALSE;
4065     }
4066
4067     if (!class_guid || !class_name || !size)
4068     {
4069         SetLastError(ERROR_INVALID_PARAMETER);
4070         return FALSE;
4071     }
4072
4073     if (!GetPrivateProfileStringW(Version, Signature, NULL, buffer, MAX_PATH, inf))
4074         return FALSE;
4075
4076     if (lstrcmpiW(buffer, Chicago))
4077         return FALSE;
4078 
...
--- snip ---

The 'Chicago' filter (codename for 'Windows NT 4.0') prevents further processing.

Wine prefixes have WinVer = 'Windows XP' setting by default so it seems somehow not logical to bail out here.

$ sha1sum cuda_5.5.20_winxp_general_32.exe 
19003fc955795e1a0d01d3e72b2df91c109d1e43  cuda_5.5.20_winxp_general_32.exe

$ du -sh cuda_5.5.20_winxp_general_32.exe
460M	cuda_5.5.20_winxp_general_32.exe

$ wine --version
wine-1.7.8-232-g3bad812

Regards
Comment 2 Anastasius Focht 2013-12-18 15:32:45 UTC
Hello folks,

this is fixed by commit http://source.winehq.org/git/wine.git/commitdiff/6aace3014d355d355e802299d62a34e8865951ba

Thanks Stefan

--- snip ---
...
0025:Call setupapi.SetupDiGetINFClassW(011bd0e8 L"C:\\NVIDIA\\CUDA\\Display.Driver\\nv4_disp.inf",01f7e27c,01f7e28c,00000020,00000000) ret=02bd7c0f
0025:Call KERNEL32.GetFileAttributesW(011bd0e8 L"C:\\NVIDIA\\CUDA\\Display.Driver\\nv4_disp.inf") ret=7e2fb58c
0025:Ret  KERNEL32.GetFileAttributesW() retval=00000020 ret=7e2fb58c
0025:Call KERNEL32.GetPrivateProfileStringW(7e31f2fa L"Version",7e31f2e6 L"Signature",00000000,01f7dfa8,00000104,011bd0e8 L"C:\\NVIDIA\\CUDA\\Display.Driver\\nv4_disp.inf") ret=7e2fb669
0025:Ret  KERNEL32.GetPrivateProfileStringW() retval=0000000c ret=7e2fb669
0025:Call KERNEL32.lstrcmpiW(01f7dfa8 L"$Windows NT$",7e31f22c L"$Chicago$") ret=7e2fb692
0025:Ret  KERNEL32.lstrcmpiW() retval=00000001 ret=7e2fb692
0025:Call KERNEL32.lstrcmpiW(01f7dfa8 L"$Windows NT$",7e31f314 L"$Windows NT$") ret=7e2fb6b1
0025:Ret  KERNEL32.lstrcmpiW() retval=00000000 ret=7e2fb6b1
0025:Call KERNEL32.GetPrivateProfileStringW(7e31f2fa L"Version",7e31f240 L"ClassGUID",00000000,01f7dfa8,00000104,011bd0e8 L"C:\\NVIDIA\\CUDA\\Display.Driver\\nv4_disp.inf") ret=7e2fb703
0025:Ret  KERNEL32.GetPrivateProfileStringW() retval=00000026 ret=7e2fb703
0025:Call rpcrt4.UuidFromStringW(01f7dfaa L"4D36E968-E325-11CE-BFC1-08002BE10318",01f7e27c) ret=7e2fb751
0025:Ret  rpcrt4.UuidFromStringW() retval=00000000 ret=7e2fb751
0025:Call KERNEL32.GetPrivateProfileStringW(7e31f2fa L"Version",7e31f254 L"Class",00000000,01f7dfa8,00000104,011bd0e8 L"C:\\NVIDIA\\CUDA\\Display.Driver\\nv4_disp.inf") ret=7e2fb80e
0025:Ret  KERNEL32.GetPrivateProfileStringW() retval=00000007 ret=7e2fb80e
0025:Ret  setupapi.SetupDiGetINFClassW() retval=00000001 ret=02bd7c0f 
...
--- snip ---

The installer still fails but that's another bug ;-)

Regards
Comment 3 Alexandre Julliard 2013-12-20 12:42:41 UTC
Closing bugs fixed in 1.7.9.
Comment 4 Alexandre Julliard 2014-01-10 14:46:13 UTC
Removing 1.6.x milestone from bugs included in 1.6.2.


Privacy Policy
If you have a privacy inquiry regarding this site, please write to [email protected]

Hosted By CodeWeavers