Commit 288a6625 authored by Zhiyi Zhang's avatar Zhiyi Zhang Committed by Alexandre Julliard

setupapi: Set device SPDRP_CLASS registry property in create_device().

parent 014f6153
......@@ -751,7 +751,9 @@ static struct device *create_device(struct DeviceInfoSet *set,
{
const DWORD one = 1;
struct device *device;
WCHAR guidstr[39];
WCHAR guidstr[MAX_GUID_STRING_LEN];
WCHAR class_name[MAX_CLASS_NAME_LEN];
DWORD size;
TRACE("%p, %s, %s, %d\n", set, debugstr_guid(class),
debugstr_w(instanceid), phantom);
......@@ -796,6 +798,12 @@ static struct device *create_device(struct DeviceInfoSet *set,
SETUPDI_SetDeviceRegistryPropertyW(device, SPDRP_CLASSGUID,
(const BYTE *)guidstr, sizeof(guidstr));
if (SetupDiClassNameFromGuidW(class, class_name, ARRAY_SIZE(class_name), NULL))
{
size = (lstrlenW(class_name) + 1) * sizeof(WCHAR);
SETUPDI_SetDeviceRegistryPropertyW(device, SPDRP_CLASS, (const BYTE *)class_name, size);
}
TRACE("Created new device %p.\n", device);
return device;
}
......
......@@ -1643,8 +1643,8 @@ todo_wine {
/* Have SPDRP_CLASS property */
memset(buf, 0, sizeof(buf));
ret = SetupDiGetDeviceRegistryPropertyA(set, &device, SPDRP_CLASS, NULL, (BYTE *)buf, sizeof(buf), NULL);
todo_wine ok(ret, "Failed to get property, error %#x.\n", GetLastError());
todo_wine ok(!lstrcmpA(buf, "Display"), "Got unexpected value %s.\n", buf);
ok(ret, "Failed to get property, error %#x.\n", GetLastError());
ok(!lstrcmpA(buf, "Display"), "Got unexpected value %s.\n", buf);
SetupDiDestroyDeviceInfoList(set);
}
......@@ -1803,8 +1803,8 @@ todo_wine {
/* Have SPDRP_CLASS property */
memset(buf, 0, sizeof(buf));
ret = SetupDiGetDeviceRegistryPropertyW(set, &device, SPDRP_CLASS, NULL, (BYTE *)buf, sizeof(buf), NULL);
todo_wine ok(ret, "Failed to get property, error %#x.\n", GetLastError());
todo_wine ok(!lstrcmpW(buf, L"Display"), "Got unexpected value %s.\n", wine_dbgstr_w(buf));
ok(ret, "Failed to get property, error %#x.\n", GetLastError());
ok(!lstrcmpW(buf, L"Display"), "Got unexpected value %s.\n", wine_dbgstr_w(buf));
SetupDiDestroyDeviceInfoList(set);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment