[Bug 35144] New: NVIDIA CUDA Toolkit v5.5 installer fails (SetupDiGetINFClassW whitelists only 'Chicago', ignoring WINEPREFIX WinVer setting)

wine-bugs at winehq.org wine-bugs at winehq.org
Mon Dec 16 14:05:05 CST 2013


http://bugs.winehq.org/show_bug.cgi?id=35144

            Bug ID: 35144
           Summary: NVIDIA CUDA Toolkit v5.5 installer fails
                    (SetupDiGetINFClassW whitelists only 'Chicago',
                    ignoring WINEPREFIX WinVer setting)
           Product: Wine
           Version: 1.7.8
          Hardware: x86
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: setupapi
          Assignee: wine-bugs at winehq.org
          Reporter: focht at gmx.net
    Classification: Unclassified

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 at 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 at 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

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.



More information about the wine-bugs mailing list