[USBPORT] Fix incorrect transfer direction for URBs. Patch by Vadim Galyant. CORE...
authorMark Jansen <mark.jansen@reactos.org>
Sat, 15 Jul 2017 09:24:30 +0000 (09:24 +0000)
committerMark Jansen <mark.jansen@reactos.org>
Sat, 15 Jul 2017 09:24:30 +0000 (09:24 +0000)
svn path=/trunk/; revision=75351

reactos/drivers/usb/usbport/urb.c
reactos/sdk/include/reactos/drivers/usbport/usbmport.h

index 5067f96..d518180 100644 (file)
@@ -385,13 +385,13 @@ USBPORT_HandleDataTransfers(IN PURB Urb)
 
     if (Endpoint->EndpointProperties.TransferType != USBPORT_TRANSFER_TYPE_CONTROL)
     {
-        if (Endpoint->EndpointProperties.Direction)
+        if (Endpoint->EndpointProperties.Direction == USBPORT_TRANSFER_DIRECTION_OUT)
         {
-            Urb->UrbBulkOrInterruptTransfer.TransferFlags |= USBD_TRANSFER_DIRECTION_IN;
+            Urb->UrbBulkOrInterruptTransfer.TransferFlags &= ~USBD_TRANSFER_DIRECTION_IN;
         }
         else
         {
-            Urb->UrbBulkOrInterruptTransfer.TransferFlags &= ~USBD_TRANSFER_DIRECTION_IN;
+            Urb->UrbBulkOrInterruptTransfer.TransferFlags |= USBD_TRANSFER_DIRECTION_IN;
         }
     }
 
index 9ab71b3..4f26703 100644 (file)
@@ -580,6 +580,7 @@ typedef struct _USBPORT_MINIPORT_INTERFACE {
 
 C_ASSERT(sizeof(USBPORT_MINIPORT_INTERFACE) == 336);
 
+#define USBPORT_TRANSFER_DIRECTION_OUT  1 // From host to device
 typedef struct _USBPORT_ENDPOINT_PROPERTIES {
   USHORT DeviceAddress;
   USHORT EndpointAddress;