Get Hard Drive Serial Number Delphi
Function GetHDDSerialNumber(NomDriv e:byte): String; const IDENTIFY_BUFFER_SIZE = 512; type TIDERegs = packed record bFeaturesReg: BYTE; // Used for specifying SMART 'commands'. BSectorCountReg: BYTE; // IDE sector count register bSectorNumberReg: BYTE; // IDE sector number register bCylLowReg: BYTE; // IDE low order cylinder value bCylHighReg: BYTE; // IDE high order cylinder value bDriveHeadReg: BYTE; // IDE drive/head register bCommandReg: BYTE; // Actual IDE command. BReserved: BYTE; // reserved for future use. Din 6930 m pdf. Must be zero. End; TSendCmdInParams = packed record // Buffer size in bytes cBufferSize: DWORD; // Structure with drive register values. IrDriveRegs: TIDERegs; // Physical drive number to send command to (0,1,2,3).
BDriveNumber: BYTE; bReserved: Array[0.2] of Byte; dwReserved: Array[0.3] of DWORD; bBuffer: Array[0.0] of Byte; // Input buffer. UlTotalAddressableSectors: DWORD; wSingleWordDMA: Word; wMultiWordDMA: Word; bReserved: Array[0.127] of BYTE; end; PIdSector = ^TIdSector; TDriverStatus = packed record // Error code from driver, or 0 if no error. BDriverError: Byte; // Contents of IDE Error register.
Only valid when bDriverError is SMART_IDE_ERROR. BIDEStatus: Byte; bReserved: Array[0.1] of Byte; dwReserved: Array[0.1] of DWORD; end; TSendCmdOutParams = packed record // Size of bBuffer in bytes cBufferSize: DWORD; // Driver status structure. DriverStatus: TDriverStatus; // Buffer of arbitrary length in which to store the data read from the drive. BBuffer: Array[0.0] of BYTE; end; var hDevice: THandle; cbBytesReturned: DWORD; // ptr: PChar; SCIP: TSendCmdInParams; aIdOutCmd: Array [0.(SizeOf(TSendCmdOutParams)+IDENTIFY_BUFFER_SIZE-1)-1] of Byte; IdOutCmd: TSendCmdOutParams absolute aIdOutCmd; procedure ChangeByteOrder( var Data; Size: Integer ); var ptr: PChar; i: Integer; c: Char; begin ptr:= @Data; for i:= 0 to (Size shr 1)-1 do begin c:= ptr^; ptr^:= (ptr+1)^; (ptr+1)^:= c; Inc(ptr,2); end; end; const IdeDriveNom='.
Jun 06, 2017 The hard drive serial number or the SSD serial number is different from the volume serial number. To find the hard drive serial number or the solid state drive serial number, enter the following command in the Command Prompt. Wmic diskdrive get serialnumber. This is the serial number you can give you device’s manufacturer if you’re looking. I'm trying to read serial no of the hard disk as a unique id of the machine. IrDriveRegs: TIDERegs; // Physical drive number to send command to (0,1,2,3). I built the code segment by using Delphi XE 7 and tested it on my Lenovo. But if you prefer you can take a look on the source code and get all the.
PhysicalDrive'; begin Result:='Error'; // return empty string on error.