Index: drivers/usb/usbport/urb.c =================================================================== --- drivers/usb/usbport/urb.c (revision 75341) +++ drivers/usb/usbport/urb.c (working copy) @@ -385,13 +385,13 @@ 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: sdk/include/reactos/drivers/usbport/usbmport.h =================================================================== --- sdk/include/reactos/drivers/usbport/usbmport.h (revision 75341) +++ sdk/include/reactos/drivers/usbport/usbmport.h (working copy) @@ -580,6 +580,7 @@ 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;