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:
parent
5b31b764c0
commit
7229893493
|
@ -130,23 +130,12 @@ error:
|
||||||
|
|
||||||
void HID_DeleteDevice(HID_MINIDRIVER_REGISTRATION *driver, DEVICE_OBJECT *device)
|
void HID_DeleteDevice(HID_MINIDRIVER_REGISTRATION *driver, DEVICE_OBJECT *device)
|
||||||
{
|
{
|
||||||
NTSTATUS status;
|
|
||||||
BASE_DEVICE_EXTENSION *ext;
|
BASE_DEVICE_EXTENSION *ext;
|
||||||
LIST_ENTRY *entry;
|
LIST_ENTRY *entry;
|
||||||
IRP *irp;
|
IRP *irp;
|
||||||
|
|
||||||
ext = device->DeviceExtension;
|
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)
|
if (ext->thread)
|
||||||
{
|
{
|
||||||
SetEvent(ext->halt_event);
|
SetEvent(ext->halt_event);
|
||||||
|
|
|
@ -212,9 +212,17 @@ NTSTATUS WINAPI PNP_AddDevice(DRIVER_OBJECT *driver, DEVICE_OBJECT *PDO)
|
||||||
|
|
||||||
NTSTATUS PNP_RemoveDevice(minidriver *minidriver, DEVICE_OBJECT *device, IRP *irp)
|
NTSTATUS PNP_RemoveDevice(minidriver *minidriver, DEVICE_OBJECT *device, IRP *irp)
|
||||||
{
|
{
|
||||||
|
BASE_DEVICE_EXTENSION *ext = device->DeviceExtension;
|
||||||
hid_device *hiddev;
|
hid_device *hiddev;
|
||||||
NTSTATUS rc = STATUS_NOT_SUPPORTED;
|
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)
|
if (irp)
|
||||||
rc = minidriver->PNPDispatch(device, irp);
|
rc = minidriver->PNPDispatch(device, irp);
|
||||||
HID_DeleteDevice(&minidriver->minidriver, device);
|
HID_DeleteDevice(&minidriver->minidriver, device);
|
||||||
|
|
Loading…
Reference in New Issue