Sebastian Lackner : hidclass.sys: Use MmGetSystemAddressForMdlSafe to access MDL data.

Alexandre Julliard julliard at winehq.org
Wed Oct 19 20:47:57 CDT 2016


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

Author: Sebastian Lackner <sebastian at fds-team.de>
Date:   Sun Oct 16 08:59:23 2016 +0200

hidclass.sys: Use MmGetSystemAddressForMdlSafe to access MDL data.

Signed-off-by: Sebastian Lackner <sebastian at fds-team.de>
Signed-off-by: Aric Stewart <aric at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/hidclass.sys/device.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/dlls/hidclass.sys/device.c b/dlls/hidclass.sys/device.c
index d2a4710..189cd2e 100644
--- a/dlls/hidclass.sys/device.c
+++ b/dlls/hidclass.sys/device.c
@@ -419,7 +419,7 @@ static NTSTATUS handle_minidriver_string(DEVICE_OBJECT *device, IRP *irp, SHORT
 
     if (status == STATUS_SUCCESS)
     {
-        WCHAR *out_buffer = (WCHAR*)(((BYTE*)irp->MdlAddress->StartVa) + irp->MdlAddress->ByteOffset);
+        WCHAR *out_buffer = MmGetSystemAddressForMdlSafe(irp->MdlAddress, NormalPagePriority);
         int length = irpsp->Parameters.DeviceIoControl.OutputBufferLength/sizeof(WCHAR);
         TRACE("got string %s from minidriver\n",debugstr_w(buffer));
         lstrcpynW(out_buffer, buffer, length);
@@ -440,7 +440,7 @@ static NTSTATUS HID_get_feature(DEVICE_OBJECT *device, IRP *irp)
 
     irp->IoStatus.Information = 0;
 
-    out_buffer = (((BYTE*)irp->MdlAddress->StartVa) + irp->MdlAddress->ByteOffset);
+    out_buffer = MmGetSystemAddressForMdlSafe(irp->MdlAddress, NormalPagePriority);
     TRACE_(hid_report)("Device %p Buffer length %i Buffer %p\n", device, irpsp->Parameters.DeviceIoControl.OutputBufferLength, out_buffer);
 
     len = sizeof(*packet) + irpsp->Parameters.DeviceIoControl.OutputBufferLength;
@@ -569,7 +569,7 @@ NTSTATUS WINAPI HID_Device_ioctl(DEVICE_OBJECT *device, IRP *irp)
         case IOCTL_HID_GET_INPUT_REPORT:
         {
             HID_XFER_PACKET packet;
-            BYTE* buffer = ((BYTE*)irp->MdlAddress->StartVa) + irp->MdlAddress->ByteOffset;
+            BYTE *buffer = MmGetSystemAddressForMdlSafe(irp->MdlAddress, NormalPagePriority);
 
             if (extension->preparseData->InputReports[0].reportID)
                 packet.reportId = buffer[0];




More information about the wine-cvs mailing list