[USBPORT] Fix incorrect transfer direction for URBs. Patch by Vadim Galyant. CORE-13546

svn path=/trunk/; revision=75351
This commit is contained in:
Mark Jansen 2017-07-15 09:24:30 +00:00
parent c343d309f2
commit e12241f5a1
2 changed files with 4 additions and 3 deletions

View 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;
}
}

View 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;