Added write support, next operation code 53 27.

svn path=/branches/GSoC_2016/AHCI/; revision=72002
This commit is contained in:
Aman Priyadarshi 2016-07-26 14:15:15 +00:00
parent e51f406055
commit c903cda7aa

View file

@ -849,7 +849,7 @@ AhciHwStartIo (
Srb->SrbStatus = DeviceRequestSense(AdapterExtension, Srb, cdb);
break;
case SCSIOP_READ:
//case SCSIOP_WRITE:
case SCSIOP_WRITE:
Srb->SrbStatus = DeviceRequestReadWrite(AdapterExtension, Srb, cdb);
break;
default:
@ -1726,7 +1726,7 @@ UCHAR DeviceRequestSense (
ModeHeader->ModeDataLength = sizeof(MODE_PARAMETER_HEADER);
ModeHeader->MediumType = 0;
ModeHeader->DeviceSpecificParameter = MODE_DSP_WRITE_PROTECT;
ModeHeader->DeviceSpecificParameter = 0;
ModeHeader->BlockDescriptorLength = 0;
if (Cdb->MODE_SENSE.PageCode == MODE_SENSE_CURRENT_VALUES)
@ -1776,9 +1776,12 @@ UCHAR DeviceRequestReadWrite (
NT_ASSERT(BytesPerSector > 0);
ROUND_UP(DataTransferLength, BytesPerSector);
//ROUND_UP(DataTransferLength, BytesPerSector);
SectorCount = DataTransferLength / BytesPerSector;
Srb->DataTransferLength = SectorCount * BytesPerSector;
StartOffset = AhciGetLba(Cdb, Srb->CdbLength);
IsReading = (Cdb->CDB10.OperationCode == SCSIOP_READ);
@ -1796,7 +1799,8 @@ UCHAR DeviceRequestReadWrite (
else
{
SrbExtension->Flags |= ATA_FLAGS_DATA_OUT;
NT_ASSERT(FALSE);
SrbExtension->CommandReg = IDE_COMMAND_WRITE_DMA;
//NT_ASSERT(FALSE);
}
SrbExtension->FeaturesLow = 0;