2024年4月11日发(作者:)

C++获取硬盘序列号

#include

#include

#include

#pragma argsused

#define DFP_GET_VERSION 0x00074080

#define DFP_SEND_DRIVE_COMMAND 0x0007c084

#define DFP_RECEIVE_DRIVE_DATA 0x0007c088

//#pragma pack(1)

typedef struct _GETVERSIONOUTPARAMS {

BYTE bVersion; //Binary driver version.

BYTE bRevision; //Binary driver revision.

BYTE bReserved; //Not used.

BYTE bIDEDeviceMap; //Bit map of IDE devices.

DWORD fCapabilities; //Bit mask of driver capabilities.

DWORD dwReserved[4]; //For future use.

} GETVERSIONOUTPARAMS, *PGETVERSIONOUTPARAMS, *LPGETVERSI

ONOUTPARAMS;

typedef struct _IDEREGS {

BYTE bFeaturesReg; //Used for specifying SMART "commands".

BYTE bSectorCountReg; //IDE sector count register

BYTE bSectorNumberReg; //IDE sector number register

BYTE bCylLowReg; // IDE low order cylinder value

BYTE bCylHighReg; // IDE high order cylinder value

BYTE bDriveHeadReg; // IDE drive/head register

BYTE bCommandReg; // Actual IDE command.

BYTE bReserved; // reserved for future use. Must be zero.