Реферат: Как сделать чтобы запущеный 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