setupapi: Make sure machine name is non-empty before failing.
This commit is contained in:
parent
ad4c995c3f
commit
4fe8cc6164
|
@ -1163,7 +1163,7 @@ SetupDiCreateDeviceInfoListExW(const GUID *ClassGuid,
|
||||||
TRACE("%s %p %s %p\n", debugstr_guid(ClassGuid), hwndParent,
|
TRACE("%s %p %s %p\n", debugstr_guid(ClassGuid), hwndParent,
|
||||||
debugstr_w(MachineName), Reserved);
|
debugstr_w(MachineName), Reserved);
|
||||||
|
|
||||||
if (MachineName != NULL)
|
if (MachineName && *MachineName)
|
||||||
{
|
{
|
||||||
FIXME("remote support is not implemented\n");
|
FIXME("remote support is not implemented\n");
|
||||||
SetLastError(ERROR_INVALID_MACHINENAME);
|
SetLastError(ERROR_INVALID_MACHINENAME);
|
||||||
|
@ -2371,7 +2371,7 @@ HDEVINFO WINAPI SetupDiGetClassDevsExW(
|
||||||
set = SetupDiCreateDeviceInfoListExW(class, parent, machine, reserved);
|
set = SetupDiCreateDeviceInfoListExW(class, parent, machine, reserved);
|
||||||
if (set)
|
if (set)
|
||||||
{
|
{
|
||||||
if (machine)
|
if (machine && *machine)
|
||||||
FIXME("%s: unimplemented for remote machines\n",
|
FIXME("%s: unimplemented for remote machines\n",
|
||||||
debugstr_w(machine));
|
debugstr_w(machine));
|
||||||
else if (flags & DIGCF_DEVICEINTERFACE)
|
else if (flags & DIGCF_DEVICEINTERFACE)
|
||||||
|
@ -3562,7 +3562,7 @@ HKEY WINAPI SetupDiOpenClassRegKeyExW(
|
||||||
LPCWSTR lpKeyName;
|
LPCWSTR lpKeyName;
|
||||||
LONG l;
|
LONG l;
|
||||||
|
|
||||||
if (MachineName != NULL)
|
if (MachineName && *MachineName)
|
||||||
{
|
{
|
||||||
FIXME("Remote access not supported yet!\n");
|
FIXME("Remote access not supported yet!\n");
|
||||||
return INVALID_HANDLE_VALUE;
|
return INVALID_HANDLE_VALUE;
|
||||||
|
|
|
@ -261,6 +261,7 @@ static void test_SetupDiCreateDeviceInfoListEx(void)
|
||||||
DWORD error;
|
DWORD error;
|
||||||
static CHAR notnull[] = "NotNull";
|
static CHAR notnull[] = "NotNull";
|
||||||
static const WCHAR machine[] = { 'd','u','m','m','y',0 };
|
static const WCHAR machine[] = { 'd','u','m','m','y',0 };
|
||||||
|
static const WCHAR empty[] = { 0 };
|
||||||
|
|
||||||
SetLastError(0xdeadbeef);
|
SetLastError(0xdeadbeef);
|
||||||
/* create empty DeviceInfoList, but set Reserved to a value, which is not NULL */
|
/* create empty DeviceInfoList, but set Reserved to a value, which is not NULL */
|
||||||
|
@ -290,6 +291,14 @@ static void test_SetupDiCreateDeviceInfoListEx(void)
|
||||||
/* destroy DeviceInfoList */
|
/* destroy DeviceInfoList */
|
||||||
ret = pSetupDiDestroyDeviceInfoList(devlist);
|
ret = pSetupDiDestroyDeviceInfoList(devlist);
|
||||||
ok(ret, "SetupDiDestroyDeviceInfoList failed : %d\n", error);
|
ok(ret, "SetupDiDestroyDeviceInfoList failed : %d\n", error);
|
||||||
|
|
||||||
|
/* create empty DeviceInfoList with empty machine name */
|
||||||
|
devlist = pSetupDiCreateDeviceInfoListExW(NULL, NULL, empty, NULL);
|
||||||
|
ok(devlist && devlist != INVALID_HANDLE_VALUE, "SetupDiCreateDeviceInfoListExW failed : %p %d (expected != %p)\n", devlist, error, INVALID_HANDLE_VALUE);
|
||||||
|
|
||||||
|
/* destroy DeviceInfoList */
|
||||||
|
ret = pSetupDiDestroyDeviceInfoList(devlist);
|
||||||
|
ok(ret, "SetupDiDestroyDeviceInfoList failed : %d\n", error);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void test_SetupDiOpenClassRegKeyExA(void)
|
static void test_SetupDiOpenClassRegKeyExA(void)
|
||||||
|
|
Loading…
Reference in New Issue