Delphi-Quellcode:
type
SRB_ExecSCSICmd = packed record
SRB_Cmd: BYTE; // ASPI command code= 2 =SC_EXEC_SCSI_CMD
SRB_Status: BYTE; // ASPI command status byte
SRB_HaId: BYTE; // ASPI host adapter number
SRB_Flags: BYTE; // ASPI request flags
SRB_Hdr_Rsvd: DWORD; // Reserved
SRB_Target: BYTE; // Target's SCSI ID
SRB_Lun: BYTE; // Target's LUN number
SRB_Rsvd1: WORD; // Reserved for Alignment
SRB_BufLen: DWORD; // Data Allocation Length
SRB_BufPtr: POINTER; // Data Buffer Pointer
SRB_SenseLen: BYTE; // Sense Allocation Length
SRB_CDBLen: BYTE; // CDB Length
SRB_HaStat: BYTE; // Host Adapter Status
SRB_TargStat: BYTE; // Target Status
SRB_PostProc: THandle; // Post routine
SRB_Rsvd2: POINTER; // Reserved
SRB_Rsvd3: array[0..15] of BYTE; // Reserved for alignment
SRB_CDBByte: array[0..15] of BYTE; // SCSI CDB
SRB_Sense: TscsiSenseInfo; // Request Sense buf
end;
Fällt dir an dieser Struktur was auf? Genau:
SRB_CDBByte: array[0..15] of BYTE; // SCSI CDB
Da ist der CDB. HAID, TARGET und LUN beschreiben das Laufwerk, dass angesprochen wird. Diese Struktur *müsste* eigentlich an die ASPI
DLL übergeben werden. Evtl. einfach mal den Source der Freeburnerkomponente studieren.
@Garfield: Hm, Linux hilft aber nur bedingt.