A bug was able to reappear when I uninstalled SPTD.(http://www.duplexsecure.com/en/downloads)
CacheExplorer 0.8 - spath@cdfreaks.com
Drive on H is PLEXTOR CD-R PX-W5224A 1.04
[+] Buffer size: 2048 kB, read cache is enabled
[+] Supported read commands: BEh A8h(FUA) 28h(FUA) D4h(FUA) D5h(FUA) D8h(FUA)
CacheExplorer 0.8 - spath@cdfreaks.com
Drive on M is PLEXTOR DVDR PX-755A 1.08
[+] Buffer size: 2048 kB, read cache is enabled
[+] Supported read commands: BEh A8h(FUA) 28h(FUA) D4h(FUA) D5h(FUA) D8h(FUA)
And I uploaded exe to test.
http://www.mediafire.com/download/dqzkl … stD8FUA.7z
To test, I changed below.
(SCSIOP_PLEX_READ_CD is 0xd8, CDB_FORCE_MEDIA_ACCESS is 0x08)
BOOL ReadCDForFlushingDriveCache(
PDEVICE pDevice,
INT nLBA
)
{
#if 0
CDB::_READ12 cdb = { 0 };
cdb.OperationCode = SCSIOP_READ12;
cdb.ForceUnitAccess = CDB_FORCE_MEDIA_ACCESS;
cdb.LogicalUnitNumber = pDevice->address.Lun;
cdb.LogicalBlock[0] = HIBYTE(HIWORD(nLBA + 1));
cdb.LogicalBlock[1] = LOBYTE(HIWORD(nLBA + 1));
cdb.LogicalBlock[2] = HIBYTE(LOWORD(nLBA + 1));
cdb.LogicalBlock[3] = LOBYTE(LOWORD(nLBA + 1));
#else
CDB::_PLXTR_READ_CDDA cdb = { 0 };
cdb.OperationCode = SCSIOP_PLEX_READ_CD;
cdb.Reserved0 = CDB_FORCE_MEDIA_ACCESS;
cdb.LogicalUnitNumber = pDevice->address.Lun;
cdb.LogicalBlockByte0 = HIBYTE(HIWORD(nLBA + 1));
cdb.LogicalBlockByte1 = LOBYTE(HIWORD(nLBA + 1));
cdb.LogicalBlockByte2 = HIBYTE(LOWORD(nLBA + 1));
cdb.LogicalBlockByte3 = LOBYTE(LOWORD(nLBA + 1));
cdb.TransferBlockByte3 = 1;
#endif
BYTE byScsiStatus = 0;
if (!ScsiPassThroughDirect(pDevice, &cdb, CDB12GENERIC_LENGTH, NULL,
0, &byScsiStatus, _T(__FUNCTION__), __LINE__)
|| byScsiStatus >= SCSISTAT_CHECK_CONDITION) {
return FALSE;
}
return TRUE;
}
Result:
I understood that I did not work as expected.
ScsiStatus: 02, CHECK_CONDITION
SenseData Key-Asc-Ascq: 05-24-00, ILLEGAL_REQUEST - INVALID FIELD IN CDB
Creating img(LBA) 197/222682[F:ReadCDForFlushingDriveCache][L:516] OperationC
ode: 0xd8
ScsiStatus: 02, CHECK_CONDITION
SenseData Key-Asc-Ascq: 05-24-00, ILLEGAL_REQUEST - INVALID FIELD IN CDB
Creating img(LBA) 198/222682[F:ReadCDForFlushingDriveCache][L:516] OperationC
ode: 0xd8
ScsiStatus: 02, CHECK_CONDITION
SenseData Key-Asc-Ascq: 05-24-00, ILLEGAL_REQUEST - INVALID FIELD IN CDB
Creating img(LBA) 199/222682[F:ReadCDForFlushingDriveCache][L:516] OperationC
ode: 0xd8
ScsiStatus: 02, CHECK_CONDITION
SenseData Key-Asc-Ascq: 05-24-00, ILLEGAL_REQUEST - INVALID FIELD IN CDB
Creating img(LBA) 200/222682[F:ReadCDForFlushingDriveCache][L:516] OperationC
ode: 0xd8
ScsiStatus: 02, CHECK_CONDITION
SenseData Key-Asc-Ascq: 05-24-00, ILLEGAL_REQUEST - INVALID FIELD IN CDB
Creating img(LBA) 201/222682[F:ReadCDForFlushingDriveCache][L:516] OperationC
ode: 0xd8
If you think that FUA exists in 0xd8 command, please teach me it except for CacheExplorer.