so, ich hab zwar heut früh mal angefangen die Grundlagen zu legen/zusammenzustellen, aber dennoch fehlen mir einfach die Befehle.
'ne Liste, wie du schon sagtest, wäre da wirklich hilfreich.
Der Grundaufbau ist ja schon fast klar, aber welche Werte für welche Funktion gesetzt werden müssen ...
Delphi-Quellcode:
SPTDWB.Length := SizeOf(SCSI_PASS_THROUGH);
SPTDWB.CdbLength := 10;
SPTDWB.SenseInfoLength := SizeOf(SPTDWB.SenseBuf);
SPTDWB.DataIn := SCSI_IOCTL_DATA_IN;
SPTDWB.DataTransferLength := SizeOf(TDeviceConfigHeader);
SPTDWB.TimeOutValue := 120;
SPTDWB.DataBuffer := @DCH;
SPTDWB.SenseInfoOffset := SizeOf(SCSI_PASS_THROUGH) + SizeOf(SPTDWB._fill);
SPTDWB.Cdb[0] := $46;
SPTDWB.Cdb[1] := $02;
SPTDWB.Cdb[3] := $00;
SPTDWB.Cdb[7] := HiByte(SizeOf(TDeviceConfigHeader));
SPTDWB.Cdb[8] := LoByte(SizeOf(TDeviceConfigHeader));
If DeviceIoControl(
Handle, IOCTL_SCSI_PASS_THROUGH_DIRECT, @SPTDWB, SizeOf(SCSI_PASS_THROUGH),
@SPTDWB, SizeOf(SCSI_PASS_THROUGH_DIRECT_WITH_BUFFER), W,
nil)
Then