mirror of
https://github.com/reactos/reactos.git
synced 2024-12-28 18:15:11 +00:00
[HIDCLASS]
- Implement IRP_MN_REMOVE_DEVICE for FDOs and PDOs - USB mice will now work after being disconnected then reconnected svn path=/branches/usb-bringup-trunk/; revision=55194
This commit is contained in:
parent
f7c472bda7
commit
e33d8f1ee5
2 changed files with 23 additions and 10 deletions
|
@ -384,9 +384,18 @@ HidClassFDO_RemoveDevice(
|
|||
IN PDEVICE_OBJECT DeviceObject,
|
||||
IN PIRP Irp)
|
||||
{
|
||||
UNIMPLEMENTED
|
||||
ASSERT(FALSE);
|
||||
return STATUS_NOT_IMPLEMENTED;
|
||||
PHIDCLASS_FDO_EXTENSION FDODeviceExtension = DeviceObject->DeviceExtension;
|
||||
NTSTATUS Status;
|
||||
|
||||
/* Pass the IRP down */
|
||||
IoSkipCurrentIrpStackLocation(Irp);
|
||||
Status = IoCallDriver(FDODeviceExtension->Common.HidDeviceExtension.NextDeviceObject, Irp);
|
||||
|
||||
/* Now teardown our portion of the device stack */
|
||||
IoDetachDevice(FDODeviceExtension->Common.HidDeviceExtension.NextDeviceObject);
|
||||
IoDeleteDevice(DeviceObject);
|
||||
|
||||
return Status;
|
||||
}
|
||||
|
||||
NTSTATUS
|
||||
|
|
|
@ -514,14 +514,18 @@ HidClassPDO_PnP(
|
|||
}
|
||||
case IRP_MN_REMOVE_DEVICE:
|
||||
{
|
||||
DPRINT1("[HIDCLASS] PDO IRP_MN_REMOVE_DEVICE not implemented\n");
|
||||
ASSERT(FALSE);
|
||||
/* Disable the device interface */
|
||||
if (PDODeviceExtension->DeviceInterface.Length != 0)
|
||||
IoSetDeviceInterfaceState(&PDODeviceExtension->DeviceInterface, FALSE);
|
||||
|
||||
//
|
||||
// do nothing
|
||||
//
|
||||
Status = STATUS_SUCCESS; //Irp->IoStatus.Status;
|
||||
break;
|
||||
/* Complete the IRP */
|
||||
Irp->IoStatus.Status = STATUS_SUCCESS;
|
||||
IoCompleteRequest(Irp, IO_NO_INCREMENT);
|
||||
|
||||
/* Delete our device object*/
|
||||
IoDeleteDevice(DeviceObject);
|
||||
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
case IRP_MN_QUERY_INTERFACE:
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue