青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

飛天

快樂的生活......

 

讀取串口硬盤序列號(出廠唯一的序列號)(csdn)

#define  IDENTIFY_BUFFER_SIZE  512

#define  IDE_ATAPI_IDENTIFY  0xA0
#define  IDE_ATA_IDENTIFY    0xEC
#define  DFP_RECEIVE_DRIVE_DATA   0x0007c088

#pragma pack(1)
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;
    BYTE  bIDEStatus;
    BYTE  bReserved[
2];
    DWORD  dwReserved[
2];
} DRIVERSTATUS,
*PDRIVERSTATUS, *LPDRIVERSTATUS;

typedef
struct _SENDCMDOUTPARAMS
{
    DWORD         cBufferSize;
    DRIVERSTATUS  DriverStatus;
    BYTE          bBuffer[
1];
} SENDCMDOUTPARAMS,
*PSENDCMDOUTPARAMS, *LPSENDCMDOUTPARAMS;

typedef
struct _IDEREGS
{
    BYTE bFeaturesReg;
    BYTE bSectorCountReg;
    BYTE bSectorNumberReg;
    BYTE bCylLowReg;
    BYTE bCylHighReg;
    BYTE bDriveHeadReg;
    BYTE bCommandReg;
    BYTE bReserved;
} IDEREGS,
*PIDEREGS, *LPIDEREGS;

typedef
struct _SENDCMDINPARAMS
{
    DWORD     cBufferSize;
    IDEREGS   irDriveRegs;
    BYTE bDriveNumber;
    BYTE bReserved[
3];
    DWORD     dwReserved[
4];
    BYTE      bBuffer[
1];
} SENDCMDINPARAMS,
*PSENDCMDINPARAMS, *LPSENDCMDINPARAMS;

#pragma pack()

void ChangeByteOrder(LPSTR lpString, int nLen)
{
    USHORT i;
    CHAR c;

   
// 63 63 72 75 6E 2E 63 6F 6D
    for(int i = 0; i < nLen; i += 2)
    {
        c
= lpString[i];
        lpString[i]
= lpString[i+1];
        lpString[i
+1] = c;
    }
}

bool CrnGetHDSerialNumber(LPSTR lpBuf)
{
    strcpy(lpBuf,
"");

    HANDLE hDevice;

   
if(Win32Platform == VER_PLATFORM_WIN32_NT)
       
// 獲取第一個硬盤,如果有多個,更改PhysicalDrive?就可以了。
        hDevice = CreateFile("\\\\.\\PhysicalDrive0",
                GENERIC_READ
| GENERIC_WRITE,
                FILE_SHARE_READ
| FILE_SHARE_WRITE,
                NULL,
                OPEN_EXISTING,
               
0,
               
0);
   
else
        hDevice
= CreateFile("\\\\.\\SMARTVSD", 0, 0, NULL, CREATE_NEW, 0, 0);

   
if(hDevice == INVALID_HANDLE_VALUE) return false;

    SENDCMDINPARAMS scip
= { 0 };
   
char szBuffer[sizeof(SENDCMDOUTPARAMS) + IDENTIFY_BUFFER_SIZE] = { 0 };
    DWORD dwBytesRet
= 0;
   
bool bSuccess = false;
   
try
    {
        scip.cBufferSize
= IDENTIFY_BUFFER_SIZE;

        scip.irDriveRegs.bSectorCountReg
= 1;
        scip.irDriveRegs.bSectorNumberReg
= 1;
        scip.irDriveRegs.bDriveHeadReg
= IDE_ATAPI_IDENTIFY;
        scip.irDriveRegs.bCommandReg
= IDE_ATA_IDENTIFY;

       
if(DeviceIoControl(hDevice,
                DFP_RECEIVE_DRIVE_DATA,
               
&scip,
               
sizeof(SENDCMDINPARAMS) - 1,
                szBuffer,
               
sizeof(szBuffer),
               
&dwBytesRet,
                NULL))
        {
            PSENDCMDOUTPARAMS pOut
= (PSENDCMDOUTPARAMS)szBuffer;
            PIDSECTOR pIdSec
= (PIDSECTOR)(pOut->bBuffer);
            ChangeByteOrder(pIdSec
->sSerialNumber, sizeof(pIdSec->sSerialNumber));
            strncpy(lpBuf, pIdSec
->sSerialNumber, 20);
            bSuccess
= true;
        }
    }
    __finally
    {
        CloseHandle(hDevice);
    }

   
return bSuccess;
}
//---------------------------------------------------------------------------
// 測試一哈
void __fastcall TForm1::Button2Click(TObject *Sender)
{
   
char sz[255];
    CrnGetHDSerialNumber(sz);
    ShowMessage(String(sz).Trim());
}
http://topic.csdn.net/u/20071120/01/ace8c302-4260-4be2-99d7-faba80c68e8e.html

posted on 2007-12-03 21:29 飛天 閱讀(1678) 評論(0)  編輯 收藏 引用 所屬分類: C++Builder

導航

統計

常用鏈接

留言簿(2)

隨筆分類

隨筆檔案

文章分類

文章檔案

Blogs

搜索

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲人成免费| 性欧美暴力猛交另类hd| 一区二区三区国产盗摄| 在线播放国产一区中文字幕剧情欧美 | 久久精品一区| 久久精品免费| 免费观看30秒视频久久| 六月天综合网| 欧美新色视频| 国产一区二区三区直播精品电影| 伊人久久大香线蕉综合热线 | 一本色道久久| 亚洲午夜一区二区三区| 欧美中文在线观看国产| 欧美电影电视剧在线观看| 亚洲国产精品一区制服丝袜| 亚洲人成亚洲人成在线观看图片| 亚洲五月六月| 久久综合色天天久久综合图片| 欧美极品在线播放| 国产精品视频网| 好看的亚洲午夜视频在线| 亚洲人成网在线播放| 亚洲永久在线| 欧美黄色影院| 欧美一区二区播放| 欧美精品一区二区三区在线播放 | 国产精品久久久久秋霞鲁丝| 国产九色精品成人porny| 亚洲电影毛片| 亚欧成人在线| 国产一区二区高清| 亚洲激情校园春色| 午夜影视日本亚洲欧洲精品| 免费欧美日韩| 亚洲免费婷婷| 欧美日韩一区成人| 91久久午夜| 欧美国产精品一区| 亚洲日韩欧美一区二区在线| 亚洲午夜精品视频| 亚洲欧美国产精品专区久久| 蜜桃av一区二区| 国产精品久久久久91| 亚洲国产高清在线| 欧美成人高清视频| 亚洲一区免费视频| 久久精品一二三区| 国产精品v欧美精品v日本精品动漫| 国产在线视频不卡二| 亚洲欧美视频一区二区三区| 欧美激情欧美激情在线五月| 久久精品国产成人| 国产欧美日本在线| 午夜一区二区三视频在线观看| 99精品国产99久久久久久福利| 欧美风情在线观看| 亚洲激情一区| 亚洲国产成人av在线| 蜜桃视频一区| 亚洲茄子视频| 亚洲第一级黄色片| 美女任你摸久久| 亚洲高清精品中出| 欧美激情一区二区三区在线| 免费观看日韩| 亚洲欧美精品伊人久久| 欧美日韩中文在线| 在线亚洲电影| 日韩一级欧洲| 国产精品成人一区二区三区吃奶| 一区二区三区日韩在线观看 | 国内精品国产成人| 久久欧美肥婆一二区| 久久激情中文| 在线免费一区三区| 亚洲国产日韩欧美在线99| 免费在线视频一区| 中文欧美日韩| 亚洲欧美日韩中文在线制服| 国产综合自拍| 亚洲高清自拍| 欧美日韩一区二区三区视频| 欧美中文字幕在线| 久久久亚洲欧洲日产国码αv | aaa亚洲精品一二三区| 在线亚洲欧美| 黑人一区二区三区四区五区| 加勒比av一区二区| 午夜精品久久久久久99热软件| 国产精品视频久久| 久久久夜夜夜| 老司机亚洲精品| 亚洲精品国产品国语在线app| 亚洲欧洲综合| 国产日韩精品一区二区三区| 欧美成年人视频网站欧美| 欧美精品久久久久久久免费观看| 亚洲自拍电影| 久久午夜激情| 欧美一区二区性| 欧美jizzhd精品欧美喷水| 亚洲欧美日韩一区二区在线| 久久青草久久| 午夜精品国产更新| 老司机久久99久久精品播放免费| 午夜久久一区| 欧美精品久久久久久久久老牛影院 | 国产精品中文字幕在线观看| 亚洲电影在线免费观看| 国产啪精品视频| 亚洲毛片一区二区| 亚洲成色最大综合在线| 亚洲香蕉在线观看| 亚洲免费激情| 鲁大师成人一区二区三区| 亚洲综合电影| 欧美日韩视频在线| 欧美不卡在线视频| 国产日韩欧美亚洲一区| 一区二区三区视频在线观看| 最新中文字幕一区二区三区| 久久久国产精品一区| 先锋影音久久久| 欧美日韩免费看| 亚洲韩国精品一区| 亚洲电影专区| 欧美一区二区日韩一区二区| 亚洲欧美日韩一区在线观看| 欧美视频一区二区三区…| 亚洲人体大胆视频| 91久久国产精品91久久性色| 久久蜜桃香蕉精品一区二区三区| 欧美在线视屏| 国产亚洲欧美另类一区二区三区| 亚洲承认在线| 欧美一区二区三区四区在线| 久久9热精品视频| 国产日韩欧美日韩| 午夜精品短视频| 久久爱www| 国产精品主播| 亚洲女同精品视频| 午夜精品视频在线观看| 国产精品久久久久久久久搜平片 | 欧美日韩在线免费观看| 毛片av中文字幕一区二区| 欧美日韩中文在线观看| 午夜视频一区二区| 欧美一级播放| 亚洲深夜福利网站| 一区二区三区欧美成人| 亚洲一区二区三区影院| 亚洲欧美成人一区二区在线电影 | 欧美福利在线观看| 欧美电影免费观看高清完整版| 国产自产女人91一区在线观看| 亚洲欧美综合v| 亚洲一区二区视频| 欧美成人综合一区| 国产一区二区三区精品欧美日韩一区二区三区 | 91久久国产综合久久| 在线日韩精品视频| 亚洲图片你懂的| 午夜在线精品偷拍| 日韩午夜电影在线观看| 欧美va亚洲va香蕉在线| 亚洲国产一区二区视频| 亚洲麻豆国产自偷在线| 一区二区三区在线免费观看| 亚洲人成在线观看| 亚洲欧洲日韩综合二区| 亚洲综合成人在线| 国产精品久久久久一区二区三区 | 欧美日韩国产精品一区| 国产精品久久久久aaaa| 亚洲电影免费观看高清完整版| 在线亚洲自拍| 亚洲精品一区二区三区福利| 欧美日韩蜜桃| 亚洲国产毛片完整版 | 久久久久网址| 免费亚洲一区二区| 午夜在线视频观看日韩17c| 欧美高清视频一区二区三区在线观看| 欧美日韩精品在线播放| 日韩视频三区| 99精品久久久| 国产区二精品视| 欧美一区二区视频97| 亚洲一区二区高清| 一二三区精品福利视频| 日韩视频免费观看高清在线视频| 亚洲一级电影| 日韩亚洲欧美一区二区三区| 亚洲一区亚洲| 亚洲主播在线观看| 国产一区在线观看视频| 欧美伊人久久| 麻豆av一区二区三区久久|