Module: wine Branch: master Commit: 72298934933d222d08b50abe2046c61266b433f2 URL: https://source.winehq.org/git/wine.git/?a=commit;h=72298934933d222d08b50abe2...
Author: Aric Stewart aric@codeweavers.com Date: Tue Nov 13 20:48:18 2018 -0600
hidclass.sys: Move IoSetDeviceInterfaceState to PNP_RemoveDevice.
Signed-off-by: Aric Stewart aric@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/hidclass.sys/device.c | 11 ----------- dlls/hidclass.sys/pnp.c | 8 ++++++++ 2 files changed, 8 insertions(+), 11 deletions(-)
diff --git a/dlls/hidclass.sys/device.c b/dlls/hidclass.sys/device.c index a841575..547c355 100644 --- a/dlls/hidclass.sys/device.c +++ b/dlls/hidclass.sys/device.c @@ -130,23 +130,12 @@ error:
void HID_DeleteDevice(HID_MINIDRIVER_REGISTRATION *driver, DEVICE_OBJECT *device) { - NTSTATUS status; BASE_DEVICE_EXTENSION *ext; LIST_ENTRY *entry; IRP *irp;
ext = device->DeviceExtension;
- if (ext->link_name.Buffer) - { - TRACE("Delete link %s\n", debugstr_w(ext->link_name.Buffer)); - - IoSetDeviceInterfaceState(&ext->link_name, FALSE); - status = IoDeleteSymbolicLink(&ext->link_name); - if (status != STATUS_SUCCESS) - ERR("Delete Symbolic Link failed (%x)\n",status); - } - if (ext->thread) { SetEvent(ext->halt_event); diff --git a/dlls/hidclass.sys/pnp.c b/dlls/hidclass.sys/pnp.c index 47bd443..08aae15 100644 --- a/dlls/hidclass.sys/pnp.c +++ b/dlls/hidclass.sys/pnp.c @@ -212,9 +212,17 @@ NTSTATUS WINAPI PNP_AddDevice(DRIVER_OBJECT *driver, DEVICE_OBJECT *PDO)
NTSTATUS PNP_RemoveDevice(minidriver *minidriver, DEVICE_OBJECT *device, IRP *irp) { + BASE_DEVICE_EXTENSION *ext = device->DeviceExtension; hid_device *hiddev; NTSTATUS rc = STATUS_NOT_SUPPORTED;
+ rc = IoSetDeviceInterfaceState(&ext->link_name, FALSE); + if (rc) + { + FIXME("failed to disable interface %x\n", rc); + return rc; + } + if (irp) rc = minidriver->PNPDispatch(device, irp); HID_DeleteDevice(&minidriver->minidriver, device);