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

飛天

快樂的生活......

 

讀取串口硬盤序列號(出廠唯一的序列號)(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>
            日韩视频免费观看高清完整版| 日韩午夜在线电影| 亚洲激情成人网| 在线观看日韩av| 亚洲国产91色在线| 亚洲肉体裸体xxxx137| 亚洲国产精品成人综合| 亚洲精品五月天| 亚洲一二区在线| 小辣椒精品导航| 久久综合激情| 亚洲日本欧美| 亚洲高清久久| 亚洲欧美国内爽妇网| 久久经典综合| 欧美日韩国产色站一区二区三区| 国产精品国产三级国产a| 国产一区二区在线观看免费播放| 亚洲精品视频在线| 欧美在线国产精品| 亚洲激情女人| 欧美一级播放| 欧美日韩亚洲一区二区| 国内精品一区二区三区| 一道本一区二区| 快射av在线播放一区| 夜夜爽夜夜爽精品视频| 久久亚洲电影| 国产日韩欧美在线| 一区二区三区国产在线| 久久先锋影音| 亚洲婷婷在线| 欧美插天视频在线播放| 国产日韩精品久久| 在线一区二区三区四区五区| 久久综合久久久久88| 这里是久久伊人| 欧美国产激情| 亚洲国产视频a| 久久午夜视频| 亚洲嫩草精品久久| 欧美日韩成人综合天天影院| 伊人婷婷久久| 久久天天躁狠狠躁夜夜爽蜜月| 正在播放日韩| 欧美日韩免费| 亚洲精品小视频| 可以免费看不卡的av网站| 亚洲欧美综合网| 国产精品香蕉在线观看| 亚洲午夜久久久久久久久电影网| 欧美激情中文字幕乱码免费| 久久久国产精品一区二区三区| 国产精品男人爽免费视频1| 一本色道88久久加勒比精品| 欧美高清视频在线观看| 久久人人爽人人爽| 樱桃成人精品视频在线播放| 久久久久久久久久久一区 | 国产亚洲午夜高清国产拍精品| 一区二区三区国产精华| 亚洲美女91| 欧美日韩综合一区| 亚洲性感美女99在线| 一本色道久久| 国产精品日产欧美久久久久| 午夜国产精品影院在线观看| 一区二区毛片| 国产日韩精品视频一区| 久久理论片午夜琪琪电影网| 久久精品99无色码中文字幕| 国产亚洲日本欧美韩国| 欧美成人a视频| 欧美激情国产高清| 亚洲一区二区视频在线| 亚洲天堂成人在线观看| 国产日韩欧美在线观看| 牛牛国产精品| 欧美喷水视频| 欧美一区二区三区免费看| 久久xxxx| 99re66热这里只有精品3直播| 日韩亚洲综合在线| 国产日韩av在线播放| 欧美激情按摩| 国产精品都在这里| 久久在线免费| 欧美日本不卡视频| 欧美在线视屏| 欧美 日韩 国产一区二区在线视频| 日韩一二三区视频| 午夜一区不卡| 亚洲国产精品久久久久秋霞蜜臀| 亚洲激情偷拍| 国产视频一区二区三区在线观看| 免费av成人在线| 欧美三级电影一区| 久久夜色精品国产亚洲aⅴ| 欧美理论片在线观看| 久久久久国产精品人| 欧美激情四色 | 亚洲一区久久久| 久久国产99| 亚洲一二三区在线观看| 欧美一区二区三区喷汁尤物| 亚洲国产一二三| 午夜精品视频| 一本色道**综合亚洲精品蜜桃冫| 久久www成人_看片免费不卡| 一区二区三区久久久| 久久伊人一区二区| 午夜精品久久久久久久男人的天堂| 久久精品二区| 欧美亚洲一区三区| 欧美视频三区在线播放| 亚洲大片av| 欧美一区网站| 亚洲欧美成人在线| 欧美激情亚洲自拍| 亚洲第一二三四五区| 国产在线拍偷自揄拍精品| 在线亚洲一区| 亚洲午夜视频在线观看| 蜜桃av一区二区三区| 久久久久久黄| 国产一区二区三区的电影| 亚洲一区在线视频| 亚洲欧美亚洲| 国产精品网站在线播放| 国产精品99久久久久久久女警| 日韩一级大片在线| 欧美理论在线| 一本色道久久综合亚洲精品小说| 亚洲美女免费视频| 欧美激情按摩| 日韩视频精品在线| 一区二区三欧美| 国产精品二区二区三区| 亚洲婷婷综合久久一本伊一区| 亚洲在线视频观看| 国产精品家庭影院| 先锋影音网一区二区| 久久久久久久久久久久久9999| 国产精品美女一区二区| 亚洲免费影视| 久久精品网址| 一区二区在线观看av| 老鸭窝91久久精品色噜噜导演| 欧美成人免费在线| 99精品久久久| 国产精品一区二区在线| 欧美一区二区视频在线| 欧美1区2区3区| 亚洲毛片在线看| 欧美午夜影院| 欧美一区永久视频免费观看| 欧美v日韩v国产v| 亚洲美女免费视频| 国产精品一区二区在线观看网站 | 久久久成人网| 亚洲激情啪啪| 欧美一区亚洲二区| 一色屋精品视频免费看| 欧美另类综合| 欧美在线视屏| 亚洲激情午夜| 久久国产精品久久w女人spa| 亚洲国产精品t66y| 国产精品高潮呻吟久久av无限| 欧美一区二区在线免费播放| 亚洲成人在线视频播放| 亚洲一区二区三区激情| 国内外成人免费视频 | 极品中文字幕一区| 欧美日韩午夜| 久久综合网络一区二区| 夜夜嗨av色综合久久久综合网| 久久精品成人欧美大片古装| 亚洲精品精选| 国产在线精品成人一区二区三区 | 午夜精品在线看| 亚洲国产日韩一区二区| 国产伦精品一区| 欧美激情一区二区三区在线视频观看 | 午夜精品一区二区三区在线视| 精品电影在线观看| 国产精品多人| 欧美日韩精品免费看| 久久综合狠狠| 欧美一区三区二区在线观看| 亚洲精品字幕| 欧美国产精品| 免费看成人av| 久久精品视频在线播放| 亚洲中无吗在线| 正在播放日韩| 91久久精品日日躁夜夜躁国产| 国产自产高清不卡| 国产精品美女久久久久av超清 | 久久九九99视频|