Skema rangkaian driver power amplifier reviews. Jul 27, 2011 - I want to get manufacturer's harddisk serial number (note: not' volume serial. A proper/working code (in Delphi 5) will be highly appreciated. May 11, 2003 - CPUsn read functions don't provide the unique serial number of the manufacturer. But there is the code for HDD manufacturer serial number.

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. 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.

Hard

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='.

Get Hard Drive Serial Number Delphi

PhysicalDrive'; begin Result:='Error'; // return empty string on error.