[PATCH v2 2/5] hidclass.sys: Do not manually clean up devices on unload.

Zebediah Figura z.figura12 at gmail.com
Thu Feb 11 18:56:47 CST 2021


We can rely on ntoskrnl to do this for us.

Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
---
 dlls/hidclass.sys/hid.h  | 1 -
 dlls/hidclass.sys/main.c | 6 ------
 dlls/hidclass.sys/pnp.c  | 4 ++--
 3 files changed, 2 insertions(+), 9 deletions(-)

diff --git a/dlls/hidclass.sys/hid.h b/dlls/hidclass.sys/hid.h
index 36d13c009d7..8ffd489a0ee 100644
--- a/dlls/hidclass.sys/hid.h
+++ b/dlls/hidclass.sys/hid.h
@@ -109,7 +109,6 @@ NTSTATUS WINAPI HID_PNP_Dispatch(DEVICE_OBJECT *device, IRP *irp) DECLSPEC_HIDDE
 
 /* Pseudo-Plug and Play support*/
 NTSTATUS WINAPI PNP_AddDevice(DRIVER_OBJECT *driver, DEVICE_OBJECT* PDO) DECLSPEC_HIDDEN;
-NTSTATUS PNP_RemoveDevice(minidriver *minidriver, DEVICE_OBJECT* device, IRP* irp) DECLSPEC_HIDDEN;
 
 /* Parsing HID Report Descriptors into preparsed data */
 WINE_HIDP_PREPARSED_DATA* ParseDescriptor(BYTE *descriptor, unsigned int length) DECLSPEC_HIDDEN;
diff --git a/dlls/hidclass.sys/main.c b/dlls/hidclass.sys/main.c
index e169c429efb..cef58217f5e 100644
--- a/dlls/hidclass.sys/main.c
+++ b/dlls/hidclass.sys/main.c
@@ -48,12 +48,6 @@ static VOID WINAPI UnloadDriver(DRIVER_OBJECT *driver)
     md = find_minidriver(driver);
     if (md)
     {
-        hid_device *device, *next;
-        TRACE("%i devices to unload\n", list_count(&md->device_list));
-        LIST_FOR_EACH_ENTRY_SAFE(device, next, &md->device_list, hid_device, entry)
-        {
-            PNP_RemoveDevice(md, device->device, NULL);
-        }
         if (md->DriverUnload)
             md->DriverUnload(md->minidriver.DriverObject);
         list_remove(&md->entry);
diff --git a/dlls/hidclass.sys/pnp.c b/dlls/hidclass.sys/pnp.c
index 27de1e1b04b..13b07e4e379 100644
--- a/dlls/hidclass.sys/pnp.c
+++ b/dlls/hidclass.sys/pnp.c
@@ -205,7 +205,7 @@ NTSTATUS WINAPI PNP_AddDevice(DRIVER_OBJECT *driver, DEVICE_OBJECT *PDO)
     return STATUS_SUCCESS;
 }
 
-NTSTATUS PNP_RemoveDevice(minidriver *minidriver, DEVICE_OBJECT *device, IRP *irp)
+static NTSTATUS remove_device(minidriver *minidriver, DEVICE_OBJECT *device, IRP *irp)
 {
     BASE_DEVICE_EXTENSION *ext = device->DeviceExtension;
     hid_device *hiddev;
@@ -306,7 +306,7 @@ NTSTATUS WINAPI HID_PNP_Dispatch(DEVICE_OBJECT *device, IRP *irp)
         }
         case IRP_MN_REMOVE_DEVICE:
         {
-            return PNP_RemoveDevice(minidriver, device, irp);
+            return remove_device(minidriver, device, irp);
         }
         default:
         {
-- 
2.20.1




More information about the wine-devel mailing list