資源簡介
C++ 獲取硬盤序列號的代碼,轉發非原創,走過路過不要錯過

代碼片段和文件信息
#include?
#include?
#include?
#define??FILE_DEVICE_SCSI??????????????0x0000001b
#define??IOCTL_SCSI_MINIPORT_IDENTIFY??(?(?FILE_DEVICE_SCSI?<16?)?+?0x0501?)
#define??IOCTL_SCSI_MINIPORT?0x0004D008??//??see?NTDDSCSI.H?for?definition
#define??IDENTIFY_BUFFER_SIZE??512
#define??SENDIDLENGTH??(?sizeof(?SENDCMDOUTPARAMS?)?+?IDENTIFY_BUFFER_SIZE?)
#define??IDE_ATAPI_IDENTIFY??0xA1??//??Returns?ID?sector?for?ATAPI.
#define??IDE_ATA_IDENTIFY????0xEC??//??Returns?ID?sector?for?ATA.
#define??DFP_RECEIVE_DRIVE_DATA???0x0007c088
typedef?struct?_IDSECTOR
{
????USHORT??wGenConfig;
????USHORT??wNumCyls;
????USHORT??wReserved;
????USHORT??wNumHeads;
????USHORT??wBytesPerTrack;
????USHORT??wBytesPerSector;
????USHORT??wSectorsPerTrack;
????USHORT??wVendorUnique[3];
????CHAR????sSerialNumber[20];
????USHORT??wBufferType;
????USHORT??wBufferSize;
????USHORT??wECCSize;
????CHAR????sFirmwareRev[8];
????CHAR????sModelNumber[40];
????USHORT??wMoreVendorUnique;
????USHORT??wDoubleWordIO;
????USHORT??wCapabilities;
????USHORT??wReserved1;
????USHORT??wPIOTiming;
????USHORT??wDMATiming;
????USHORT??wBS;
????USHORT??wNumCurrentCyls;
????USHORT??wNumCurrentHeads;
????USHORT??wNumCurrentSectorsPerTrack;
????ULONG???ulCurrentSectorCapacity;
????USHORT??wMultSectorStuff;
????ULONG???ulTotalAddressableSectors;
????USHORT??wSingleWordDMA;
????USHORT??wMultiWordDMA;
????BYTE????bReserved[128];
}?IDSECTOR?*PIDSECTOR;
typedef?struct?_DRIVERSTATUS
{
????BYTE??bDriverError;??//??Error?code?from?driver?or?0?if?no?error.
????BYTE??bIDEStatus;????//??Contents?of?IDE?Error?register.
????//??Only?valid?when?bDriverError?is?SMART_IDE_ERROR.
????BYTE??bReserved[2];??//??Reserved?for?future?expansion.
????DWORD??dwReserved[2];??//??Reserved?for?future?expansion.
}?DRIVERSTATUS?*PDRIVERSTATUS?*LPDRIVERSTATUS;
typedef?struct?_SENDCMDOUTPARAMS
{
????DWORD?????????cBufferSize;???//??Size?of?bBuffer?in?bytes
????DRIVERSTATUS??DriverStatus;??//??Driver?status?structure.
????BYTE??????????bBuffer[1];????//??Buffer?of?arbitrary?length?in?which?to?store?the?data?read?from?the???????????????????????????????????????????????????????//?drive.
}?SENDCMDOUTPARAMS?*PSENDCMDOUTPARAMS?*LPSENDCMDOUTPARAMS;
typedef?struct?_SRB_IO_CONTROL
{
????ULONG?HeaderLength;
????UCHAR?Signature[8];
????ULONG?Timeout;
????ULONG?ControlCode;
????ULONG?ReturnCode;
????ULONG?Length;
}?SRB_IO_CONTROL?*PSRB_IO_CONTROL;
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
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????21871??2008-01-03?14:40??GetHwId.cpp
?????文件???????3413??2008-01-03?09:48??GetHwId.dsp
?????文件????????539??2008-01-03?09:48??GetHwId.dsw
?????文件????????903??2008-01-03?10:10??GetHwId.sln
????..A..H.??????8192??2008-01-03?14:41??GetHwId.suo
?????文件???????4021??2008-01-03?11:39??GetHwId.vcproj
-----------?---------??----------?-----??----
????????????????39157????????????????????7
評論
共有 條評論