hidclass.sys: Move IoSetDeviceInterfaceState to PNP_RemoveDevice.

Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Aric Stewart 2018-11-13 20:48:18 -06:00 committed by Alexandre Julliard
parent 5b31b764c0
commit 7229893493
2 changed files with 8 additions and 11 deletions

View File

@ -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);

View File

@ -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);