janderwald(a)svn.reactos.org a écrit :
Author: janderwald
Date: Fri Dec 18 05:37:15 2009
New Revision: 44644
URL:
http://svn.reactos.org/svn/reactos?rev=44644&view=rev
Log:
[SETUPAPI]
- Implement SetupDiInstallDeviceInterfaces, SetupDiCreateDeviceInterfaceRegKeyW which are
required to store device specific information
Modified:
trunk/reactos/dll/win32/setupapi/devinst.c
trunk/reactos/dll/win32/setupapi/interface.c
trunk/reactos/dll/win32/setupapi/setupapi_private.h
[...]
+
+ InsertTailList(&devInfo->InterfaceListHead, &DevItf->ListEntry);
+
+ memcpy(&DeviceInterfaceData.InterfaceClassGuid,
&DevItf->InterfaceClassGuid, sizeof(GUID));
+ DeviceInterfaceData.cbSize = sizeof(SP_DEVICE_INTERFACE_DATA);
+ DeviceInterfaceData.Flags = DevItf->Flags;
+ DeviceInterfaceData.Reserved = (ULONG_PTR)DevItf;
+
+ hKey = SetupDiCreateDeviceInterfaceRegKeyW(DeviceInfoSet, &DeviceInterfaceData,
0, KEY_ALL_ACCESS, NULL, 0);
+ HeapFree(GetProcessHeap(), 0, DevItf);
+ if (hKey == INVALID_HANDLE_VALUE)
+ {
+ return FALSE;
+ }
+
Seems like you're keeping in DeviceInterfaceData.Reserved a pointer to a
deleted structure... Is it intentional?