Zebediah Figura : hidclass.sys: No longer track devices in a list.
Alexandre Julliard
julliard at winehq.org
Fri Feb 12 14:37:37 CST 2021
Module: wine
Branch: master
Commit: 5294ebc9a0f17efc5eba1ed5981275a500e01190
URL: https://source.winehq.org/git/wine.git/?a=commit;h=5294ebc9a0f17efc5eba1ed5981275a500e01190
Author: Zebediah Figura <z.figura12 at gmail.com>
Date: Thu Feb 11 18:56:48 2021 -0600
hidclass.sys: No longer track devices in a list.
Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/hidclass.sys/hid.h | 7 -------
dlls/hidclass.sys/main.c | 2 --
dlls/hidclass.sys/pnp.c | 27 +--------------------------
3 files changed, 1 insertion(+), 35 deletions(-)
diff --git a/dlls/hidclass.sys/hid.h b/dlls/hidclass.sys/hid.h
index 8ffd489a0ee..889b8c625c0 100644
--- a/dlls/hidclass.sys/hid.h
+++ b/dlls/hidclass.sys/hid.h
@@ -72,12 +72,6 @@ void RingBuffer_Destroy(struct ReportRingBuffer *buffer) DECLSPEC_HIDDEN;
struct ReportRingBuffer* RingBuffer_Create(UINT buffer_size) DECLSPEC_HIDDEN;
NTSTATUS RingBuffer_SetSize(struct ReportRingBuffer *buffer, UINT size) DECLSPEC_HIDDEN;
-typedef struct _hiddevice
-{
- struct list entry;
- DEVICE_OBJECT *device;
-} hid_device;
-
typedef struct _minidriver
{
struct list entry;
@@ -88,7 +82,6 @@ typedef struct _minidriver
PDRIVER_ADD_DEVICE AddDevice;
PDRIVER_DISPATCH PNPDispatch;
- struct list device_list;
} minidriver;
NTSTATUS call_minidriver(ULONG code, DEVICE_OBJECT *device, void *in_buff, ULONG in_size, void *out_buff, ULONG out_size) DECLSPEC_HIDDEN;
diff --git a/dlls/hidclass.sys/main.c b/dlls/hidclass.sys/main.c
index cef58217f5e..50657b80f5e 100644
--- a/dlls/hidclass.sys/main.c
+++ b/dlls/hidclass.sys/main.c
@@ -81,8 +81,6 @@ NTSTATUS WINAPI HidRegisterMinidriver(HID_MINIDRIVER_REGISTRATION *registration)
driver->minidriver = *registration;
list_add_tail(&minidriver_list, &driver->entry);
- list_init(&driver->device_list);
-
return STATUS_SUCCESS;
}
diff --git a/dlls/hidclass.sys/pnp.c b/dlls/hidclass.sys/pnp.c
index 13b07e4e379..a50e7382466 100644
--- a/dlls/hidclass.sys/pnp.c
+++ b/dlls/hidclass.sys/pnp.c
@@ -72,7 +72,6 @@ static NTSTATUS get_device_id(DEVICE_OBJECT *device, BUS_QUERY_ID_TYPE type, WCH
NTSTATUS WINAPI PNP_AddDevice(DRIVER_OBJECT *driver, DEVICE_OBJECT *PDO)
{
WCHAR device_id[MAX_DEVICE_ID_LEN], instance_id[MAX_DEVICE_ID_LEN];
- hid_device *hiddev;
DEVICE_OBJECT *device = NULL;
NTSTATUS status;
minidriver *minidriver;
@@ -97,18 +96,12 @@ NTSTATUS WINAPI PNP_AddDevice(DRIVER_OBJECT *driver, DEVICE_OBJECT *PDO)
TRACE("Adding device to PDO %p, id %s\\%s.\n", PDO, debugstr_w(device_id), debugstr_w(instance_id));
minidriver = find_minidriver(driver);
- hiddev = HeapAlloc(GetProcessHeap(), 0, sizeof(*hiddev));
- if (!hiddev)
- return STATUS_NO_MEMORY;
-
- status = HID_CreateDevice(PDO, &minidriver->minidriver, &hiddev->device);
+ status = HID_CreateDevice(PDO, &minidriver->minidriver, &device);
if (status != STATUS_SUCCESS)
{
ERR("Failed to create HID object (%x)\n",status);
- HeapFree(GetProcessHeap(), 0, hiddev);
return status;
}
- device = hiddev->device;
ext = device->DeviceExtension;
InitializeListHead(&ext->irp_queue);
@@ -120,7 +113,6 @@ NTSTATUS WINAPI PNP_AddDevice(DRIVER_OBJECT *driver, DEVICE_OBJECT *PDO)
{
ERR("Minidriver AddDevice failed (%x)\n",status);
HID_DeleteDevice(device);
- HeapFree(GetProcessHeap(), 0, hiddev);
return status;
}
@@ -131,7 +123,6 @@ NTSTATUS WINAPI PNP_AddDevice(DRIVER_OBJECT *driver, DEVICE_OBJECT *PDO)
{
ERR("Minidriver failed to get Attributes(%x)\n",status);
HID_DeleteDevice(device);
- HeapFree(GetProcessHeap(), 0, hiddev);
return status;
}
@@ -146,7 +137,6 @@ NTSTATUS WINAPI PNP_AddDevice(DRIVER_OBJECT *driver, DEVICE_OBJECT *PDO)
{
ERR("Cannot get Device Descriptor(%x)\n",status);
HID_DeleteDevice(device);
- HeapFree(GetProcessHeap(), 0, hiddev);
return status;
}
for (i = 0; i < descriptor.bNumDescriptors; i++)
@@ -157,7 +147,6 @@ NTSTATUS WINAPI PNP_AddDevice(DRIVER_OBJECT *driver, DEVICE_OBJECT *PDO)
{
ERR("No Report Descriptor found in reply\n");
HID_DeleteDevice(device);
- HeapFree(GetProcessHeap(), 0, hiddev);
return status;
}
@@ -169,7 +158,6 @@ NTSTATUS WINAPI PNP_AddDevice(DRIVER_OBJECT *driver, DEVICE_OBJECT *PDO)
ERR("Cannot get Report Descriptor(%x)\n",status);
HID_DeleteDevice(device);
HeapFree(GetProcessHeap(), 0, reportDescriptor);
- HeapFree(GetProcessHeap(), 0, hiddev);
return status;
}
@@ -180,12 +168,9 @@ NTSTATUS WINAPI PNP_AddDevice(DRIVER_OBJECT *driver, DEVICE_OBJECT *PDO)
{
ERR("Cannot parse Report Descriptor\n");
HID_DeleteDevice(device);
- HeapFree(GetProcessHeap(), 0, hiddev);
return STATUS_NOT_SUPPORTED;
}
- list_add_tail(&(minidriver->device_list), &hiddev->entry);
-
ext->information.DescriptorSize = ext->preparseData->dwSize;
lstrcpyW(ext->instance_id, instance_id);
@@ -208,7 +193,6 @@ NTSTATUS WINAPI PNP_AddDevice(DRIVER_OBJECT *driver, DEVICE_OBJECT *PDO)
static NTSTATUS remove_device(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);
@@ -224,15 +208,6 @@ static NTSTATUS remove_device(minidriver *minidriver, DEVICE_OBJECT *device, IRP
if (irp)
rc = minidriver->PNPDispatch(device, irp);
HID_DeleteDevice(device);
- LIST_FOR_EACH_ENTRY(hiddev, &minidriver->device_list, hid_device, entry)
- {
- if (hiddev->device == device)
- {
- list_remove(&hiddev->entry);
- HeapFree(GetProcessHeap(), 0, hiddev);
- break;
- }
- }
return rc;
}
More information about the wine-cvs
mailing list