Control->Signature = CBW_SIGNATURE;
Control->Tag = Tag;
Control->DataTransferLength = DataTransferLength;
- Control->Flags = 0x80;
+ Control->Flags = (CommandBlock[0] != SCSIOP_WRITE) ? 0x80 : 0x00;
Control->LUN = (LUN & MAX_LUN);
Control->CommandBlockLength = CommandBlockLength;
NULL,
Context->TransferBufferMDL,
Context->TransferDataLength,
- USBD_TRANSFER_DIRECTION_IN | USBD_SHORT_TRANSFER_OK,
+ ((Code == SCSIOP_WRITE) ? USBD_TRANSFER_DIRECTION_OUT : (USBD_TRANSFER_DIRECTION_IN | USBD_SHORT_TRANSFER_OK)),
NULL);
//
Context->cbw,
NULL,
sizeof(CBW),
- USBD_TRANSFER_DIRECTION_OUT | USBD_SHORT_TRANSFER_OK,
+ USBD_TRANSFER_DIRECTION_OUT,
NULL);
//
}
else
{
- UNIMPLEMENTED;
+ DPRINT1("UNIMPLEMENTED Operation Code %x\n", pCDB->AsByte[0]);
Request->SrbStatus = SRB_STATUS_ERROR;
Status = STATUS_NOT_SUPPORTED;
DbgBreakPoint();