Aric Stewart : hidclass.sys: Stub to handle IRP_MJ_WRITE on HID devices.

Alexandre Julliard julliard at wine.codeweavers.com
Wed Oct 14 11:12:51 CDT 2015


Module: wine
Branch: master
Commit: a89aa77653dbc0b680029fca51fc120c90f291d7
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=a89aa77653dbc0b680029fca51fc120c90f291d7

Author: Aric Stewart <aric at codeweavers.com>
Date:   Thu Oct  8 14:34:49 2015 -0500

hidclass.sys: Stub to handle IRP_MJ_WRITE on HID devices.

Signed-off-by: Aric Stewart <aric at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/hidclass.sys/device.c | 15 +++++++++++++++
 dlls/hidclass.sys/hid.h    |  1 +
 dlls/hidclass.sys/main.c   |  1 +
 3 files changed, 17 insertions(+)

diff --git a/dlls/hidclass.sys/device.c b/dlls/hidclass.sys/device.c
index 358e950..f2f5f06 100644
--- a/dlls/hidclass.sys/device.c
+++ b/dlls/hidclass.sys/device.c
@@ -571,6 +571,21 @@ NTSTATUS WINAPI HID_Device_read(DEVICE_OBJECT *device, IRP *irp)
     return rc;
 }
 
+NTSTATUS WINAPI HID_Device_write(DEVICE_OBJECT *device, IRP *irp)
+{
+    IO_STACK_LOCATION *irpsp = IoGetCurrentIrpStackLocation( irp );
+
+    irp->IoStatus.Information = 0;
+
+    TRACE("Buffer length %i\n", irpsp->Parameters.Write.Length);
+
+    FIXME("device %p\n", device);
+
+    irp->IoStatus.u.Status = STATUS_SUCCESS;
+    IoCompleteRequest( irp, IO_NO_INCREMENT );
+    return STATUS_SUCCESS;
+}
+
 NTSTATUS WINAPI HID_Device_create(DEVICE_OBJECT *device, IRP *irp)
 {
     BASE_DEVICE_EXTENSION *ext = device->DeviceExtension;
diff --git a/dlls/hidclass.sys/hid.h b/dlls/hidclass.sys/hid.h
index 1c1eaf3..1fccc5b 100644
--- a/dlls/hidclass.sys/hid.h
+++ b/dlls/hidclass.sys/hid.h
@@ -86,6 +86,7 @@ void HID_StartDeviceThread(DEVICE_OBJECT *device) DECLSPEC_HIDDEN;
 
 NTSTATUS WINAPI HID_Device_ioctl(DEVICE_OBJECT *device, IRP *irp) DECLSPEC_HIDDEN;
 NTSTATUS WINAPI HID_Device_read(DEVICE_OBJECT *device, IRP *irp) DECLSPEC_HIDDEN;
+NTSTATUS WINAPI HID_Device_write(DEVICE_OBJECT *device, IRP *irp) DECLSPEC_HIDDEN;
 NTSTATUS WINAPI HID_Device_create(DEVICE_OBJECT *device, IRP *irp) DECLSPEC_HIDDEN;
 NTSTATUS WINAPI HID_Device_close(DEVICE_OBJECT *device, IRP *irp) DECLSPEC_HIDDEN;
 
diff --git a/dlls/hidclass.sys/main.c b/dlls/hidclass.sys/main.c
index 4be4409..b124218 100644
--- a/dlls/hidclass.sys/main.c
+++ b/dlls/hidclass.sys/main.c
@@ -70,6 +70,7 @@ NTSTATUS WINAPI HidRegisterMinidriver(HID_MINIDRIVER_REGISTRATION *registration)
 
     registration->DriverObject->MajorFunction[IRP_MJ_DEVICE_CONTROL] = HID_Device_ioctl;
     registration->DriverObject->MajorFunction[IRP_MJ_READ] = HID_Device_read;
+    registration->DriverObject->MajorFunction[IRP_MJ_WRITE] = HID_Device_write;
     registration->DriverObject->MajorFunction[IRP_MJ_CREATE] = HID_Device_create;
     registration->DriverObject->MajorFunction[IRP_MJ_CLOSE] = HID_Device_close;
 




More information about the wine-cvs mailing list