Author: hpoussin
Date: Wed Jun 21 13:00:17 2006
New Revision: 22449
URL:
http://svn.reactos.ru/svn/reactos?rev=22449&view=rev
Log:
Handle MachineName parameter in SetupDiCreateDeviceInfoListExW
Eric, can you take care of the change in CM_Connect_MachineW?
Modified:
trunk/reactos/dll/win32/setupapi/cfgmgr.c
trunk/reactos/dll/win32/setupapi/devclass.c
trunk/reactos/dll/win32/setupapi/devinst.c
Modified: trunk/reactos/dll/win32/setupapi/cfgmgr.c
URL:
http://svn.reactos.ru/svn/reactos/trunk/reactos/dll/win32/setupapi/cfgmgr.c…
==============================================================================
--- trunk/reactos/dll/win32/setupapi/cfgmgr.c (original)
+++ trunk/reactos/dll/win32/setupapi/cfgmgr.c Wed Jun 21 13:00:17 2006
@@ -251,7 +251,14 @@
TRACE("%s %p\n", debugstr_w(UNCServerName), phMachine);
- pMachine = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(MACHINE_INFO));
+ if (!UNCServerName)
+ {
+ FIXME("Connection to local machine not implemented\n");
+ *phMachine = NULL;
+ return CR_SUCCESS;
+ }
+
+ pMachine = HeapAlloc(GetProcessHeap(), 0, sizeof(MACHINE_INFO));
if (pMachine == NULL)
return CR_OUT_OF_MEMORY;
Modified: trunk/reactos/dll/win32/setupapi/devclass.c
URL:
http://svn.reactos.ru/svn/reactos/trunk/reactos/dll/win32/setupapi/devclass…
==============================================================================
--- trunk/reactos/dll/win32/setupapi/devclass.c (original)
+++ trunk/reactos/dll/win32/setupapi/devclass.c Wed Jun 21 13:00:17 2006
@@ -1701,6 +1701,8 @@
PVOID callback_context = NULL;
hDeviceInfo = SetupDiCreateDeviceInfoList(NULL, NULL);
+ if (hDeviceInfo == INVALID_HANDLE_VALUE)
+ goto cleanup;
InstallParams.cbSize = sizeof(SP_DEVINSTALL_PARAMS);
if (!SetupDiGetDeviceInstallParamsW(hDeviceInfo, NULL, &InstallParams))
Modified: trunk/reactos/dll/win32/setupapi/devinst.c
URL:
http://svn.reactos.ru/svn/reactos/trunk/reactos/dll/win32/setupapi/devinst.…
==============================================================================
--- trunk/reactos/dll/win32/setupapi/devinst.c (original)
+++ trunk/reactos/dll/win32/setupapi/devinst.c Wed Jun 21 13:00:17 2006
@@ -160,7 +160,7 @@
LPWSTR UNCServerName = NULL;
DWORD size;
DWORD rc;
- //CONFIGRET cr;
+ CONFIGRET cr;
HDEVINFO ret = (HDEVINFO)INVALID_HANDLE_VALUE;;
TRACE("%s %p %s %p\n", debugstr_guid(ClassGuid), hwndParent,
@@ -169,7 +169,7 @@
size = FIELD_OFFSET(struct DeviceInfoSet, szData);
if (MachineName)
size += (strlenW(MachineName) + 3) * sizeof(WCHAR);
- list = HeapAlloc(GetProcessHeap(), 0, size);
+ list = MyMalloc(size);
if (!list)
{
SetLastError(ERROR_NOT_ENOUGH_MEMORY);
@@ -193,13 +193,14 @@
SetLastError(rc);
goto cleanup;
}
- UNCServerName = HeapAlloc(GetProcessHeap(), 0, (strlenW(MachineName) + 3) *
sizeof(WCHAR));
+ UNCServerName = MyMalloc((strlenW(MachineName) + 3) * sizeof(WCHAR));
if (!UNCServerName)
{
SetLastError(ERROR_NOT_ENOUGH_MEMORY);
goto cleanup;
}
+ UNCServerName[0] = UNCServerName[1] = '\\';
strcpyW(UNCServerName + 2, MachineName);
list->szData[0] = list->szData[1] = '\\';
strcpyW(list->szData + 2, MachineName);
@@ -207,27 +208,15 @@
}
else
{
- DWORD Size = MAX_PATH;
list->HKLM = HKEY_LOCAL_MACHINE;
- UNCServerName = HeapAlloc(GetProcessHeap(), 0, (MAX_PATH + 2) * sizeof(WCHAR));
- if (!UNCServerName)
- {
- SetLastError(ERROR_NOT_ENOUGH_MEMORY);
- goto cleanup;
- }
- if (!GetComputerNameW(UNCServerName + 2, &Size))
- goto cleanup;
list->MachineName = NULL;
- }
-#if 0
- UNCServerName[0] = UNCServerName[1] = '\\';
+ }
cr = CM_Connect_MachineW(UNCServerName, &list->hMachine);
if (cr != CR_SUCCESS)
{
SetLastError(GetErrorCodeFromCrCode(cr));
goto cleanup;
}
-#endif
InitializeListHead(&list->DriverListHead);
InitializeListHead(&list->ListHead);
@@ -240,10 +229,10 @@
{
if (list->HKLM != NULL && list->HKLM != HKEY_LOCAL_MACHINE)
RegCloseKey(list->HKLM);
- HeapFree(GetProcessHeap(), 0, list);
- }
- }
- HeapFree(GetProcessHeap(), 0, UNCServerName);
+ MyFree(list);
+ }
+ }
+ MyFree(UNCServerName);
return ret;
}