setupapi: Also remove the driver key in remove_device().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
00c8c27032
commit
7e4c1a2074
|
@ -656,6 +656,8 @@ static void remove_device(struct device *device)
|
||||||
struct device_iface *iface;
|
struct device_iface *iface;
|
||||||
HKEY enum_key;
|
HKEY enum_key;
|
||||||
|
|
||||||
|
delete_driver_key(device);
|
||||||
|
|
||||||
LIST_FOR_EACH_ENTRY(iface, &device->interfaces, struct device_iface, entry)
|
LIST_FOR_EACH_ENTRY(iface, &device->interfaces, struct device_iface, entry)
|
||||||
{
|
{
|
||||||
remove_device_iface(iface);
|
remove_device_iface(iface);
|
||||||
|
|
|
@ -828,15 +828,22 @@ todo_wine {
|
||||||
ok(key == INVALID_HANDLE_VALUE, "Expected failure.\n");
|
ok(key == INVALID_HANDLE_VALUE, "Expected failure.\n");
|
||||||
ok(GetLastError() == ERROR_KEY_DOES_NOT_EXIST, "Got unexpected error %#x.\n", GetLastError());
|
ok(GetLastError() == ERROR_KEY_DOES_NOT_EXIST, "Got unexpected error %#x.\n", GetLastError());
|
||||||
|
|
||||||
RegCloseKey(class_key);
|
key = SetupDiCreateDevRegKeyW(set, &device, DICS_FLAG_GLOBAL, 0, DIREG_DRV, NULL, NULL);
|
||||||
|
ok(key != INVALID_HANDLE_VALUE, "Failed to create device key, error %#x.\n", GetLastError());
|
||||||
|
RegCloseKey(key);
|
||||||
|
|
||||||
ret = SetupDiRemoveDevice(set, &device);
|
ret = SetupDiRemoveDevice(set, &device);
|
||||||
ok(ret, "Failed to remove device, error %#x.\n", GetLastError());
|
ok(ret, "Failed to remove device, error %#x.\n", GetLastError());
|
||||||
SetupDiDestroyDeviceInfoList(set);
|
SetupDiDestroyDeviceInfoList(set);
|
||||||
|
|
||||||
|
res = RegOpenKeyA(class_key, driver_path, &key);
|
||||||
|
ok(res == ERROR_FILE_NOT_FOUND, "Key should not exist.\n");
|
||||||
|
|
||||||
/* Vista+ deletes the key automatically. */
|
/* Vista+ deletes the key automatically. */
|
||||||
res = RegDeleteKeyA(HKEY_LOCAL_MACHINE, class_key_path);
|
res = RegDeleteKeyA(HKEY_LOCAL_MACHINE, class_key_path);
|
||||||
ok(!res || res == ERROR_FILE_NOT_FOUND, "Failed to delete class key, error %u.\n", res);
|
ok(!res || res == ERROR_FILE_NOT_FOUND, "Failed to delete class key, error %u.\n", res);
|
||||||
|
|
||||||
|
RegCloseKey(class_key);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void test_register_device_iface(void)
|
static void test_register_device_iface(void)
|
||||||
|
|
Loading…
Reference in New Issue