Hallo,
so mache ich das nun seit langer Zeit auch.
Allerdings reichen bei mir 255 Worte.
Delphi-Quellcode:
// ATA_PASS_THROUGH_EX
_ATA_PASS_THROUGH_EX = packed record
Length: Word;
AtaFlags: Word;
PathId: UChar;
TargetId: UCHAR;
Lun: UCHAR;
ReservedAsUchar: UCHAR;
DataTransferLength: ULONG;
TimeOutValue: ULONG;
ReservedAsUlong: ULONG;
DataBufferOffset: ULONG_PTR;
PreviousTaskFile: array [0..7] of UCHAR;
CurrentTaskFile: array [0..7] of UCHAR;
end;
{$EXTERNALSYM _ATA_PASS_THROUGH_EX}
ATA_PASS_THROUGH_EX = _ATA_PASS_THROUGH_EX;
{$EXTERNALSYM ATA_PASS_THROUGH_EX}
TAtaPassThroughEx = _ATA_PASS_THROUGH_EX;
PAtaPassThroughEx = ^TAtaPassThroughEx;
// ATAIdentifyDeviceQuery
TATAIdentifyDeviceQuery = packed record
header: ATA_PASS_THROUGH_EX;
data: array [0..255] of Word;
end;
Bisher hatte ich damit keine Probleme (Win 7, 8, 8.1, 10. Alles pro und 64Bit. Übersetzt mit Delphi 7 pro, also 32 Bit)
Gruß
Mattze