Реферат: Как сделать чтобы запущеный exe сам себя удалил 2
Length : LongInt; // Размер структуры TSCSI_ADDRESS
PortNumber : Byte; // Номер адаптера SCSI
PathId : Byte; // Идентификатор адаптера SCSI
TargetId : Byte; // Идентификатор объекта SCSI
Lun : Byte; // Логический номер устройства
end;
SCSI_ADDRESS = TSCSI_ADDRESS;
PSCSI_ADDRESS = ^TSCSI_ADDRESS;
Как вы уже успели заметить, SCSI-команды для интерфейсов ASPI и SPTI одинаковы, поэтому необходимо знать лишь сами команды и заполнять соответствующим образом CDB (Command Descriptor Block). Для наглядности приведу пример использования интерфейса SPTI для установки скорости CD-ROM. Сравните этот код с таким же, но использующим интерфейс ASPI, и вы сами увидите все отличия.
function SPTISetSpeed(ReadSpeed, WriteSpeed:integer):Boolean; var spti:TScsiPassThroughWithBuffers; const SCSI_IOCTL_DATA_OUT = 0; Rate = 176; begin spti.Spt.Length := sizeof(TSCSIPASSTHROUGH); spti.Spt.CdbLength := 10; spti.Spt.SenseInfoLength := 24; spti.Spt.DataIn := SCSI_IOCTL_DATA_OUT; spti.Spt.TimeOutValue := 10; spti.spt.DataBufferOffset := DWORD(@spti.bDataBuf)-DWORD(@spti); spti.spt.SenseInfoOffset := DWORD(@spti.bSenseBuf)-DWORD(@spti); spti.Spt.DataTransferLength := sizeof(spti.bDataBuf); spti.spt.CDB[0] := $BB; spti.spt.CDB[2] := BYTE(ReadSpeed*Rate shr 8); spti.spt.CDB[3] := BYTE(ReadSpeed*Rate); if WriteSpeed<>0 then begin К-во Просмотров: 459
Бесплатно скачать Реферат: Как сделать чтобы запущеный exe сам себя удалил 2
|