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

隨筆-23  評論-73  文章-3  trackbacks-0

#include <ntifs.h>
#include <ntddscsi.h>
#include <ntdddisk.h>
#include <stdio.h>


 


void PrintIdeInfo (int drive, ULONG diskdata [256]);


char *ConvertToString (ULONG diskdata [256], int firstIndex, int lastIndex);


BOOLEAN getDiskID( PDEVICE_OBJECT DeviceObject,ULONG drive );


 


#define IDENTIFY_BUFFER_SIZE 512


#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


 


//輸出地址
char IdOutCmd [sizeof (SENDCMDOUTPARAMS) + IDENTIFY_BUFFER_SIZE - 1];


 


BOOLEAN getDiskID( PDEVICE_OBJECT DeviceObject,ULONG drive )
/*
* DeviceObject:物理PDO
* drive:磁盤設備號
*/
{
    PUCHAR buffer;
    PSRB_IO_CONTROL srbControl;
    ULONG         controlCode = 0;
    PIRP irp2;
    KEVENT event;
    IO_STATUS_BLOCK ioStatus;   
    NTSTATUS status;
    ULONG length;
 PSENDCMDINPARAMS cmdInParameters;
 
 SENDCMDINPARAMS  scip;


 memset (&scip, 0, sizeof(scip));
    memset (IdOutCmd, 0, sizeof(IdOutCmd));
 scip.cBufferSize = IDENTIFY_BUFFER_SIZE;
 scip.irDriveRegs.bFeaturesReg = 0;
 scip.irDriveRegs.bSectorCountReg = 1;
 scip.irDriveRegs.bSectorNumberReg = 1;
 scip.irDriveRegs.bCylLowReg = 0;
 scip.irDriveRegs.bCylHighReg = 0;


   // Compute the drive number.
 scip.irDriveRegs.bDriveHeadReg = 0xA0 | (((UCHAR)drive & 1) << 4);


   // The command can either be IDE identify or ATAPI identify.
 scip.irDriveRegs.bCommandReg = IDE_ATA_IDENTIFY;
 scip.bDriveNumber = (UCHAR)drive;
 scip.cBufferSize = IDENTIFY_BUFFER_SIZE;


    //
    // 發DeviceIo,IdOutCmd接收結果
    //
    irp2 = IoBuildDeviceIoControlRequest(DFP_RECEIVE_DRIVE_DATA,
                            DeviceObject,
                            &scip,
                            sizeof(SENDCMDINPARAMS) - 1,
                            IdOutCmd,
                            sizeof(SENDCMDOUTPARAMS) + IDENTIFY_BUFFER_SIZE - 1,
                            FALSE,
                            &event,
                            &ioStatus);


    if (irp2 == NULL) {
        DbgPrint("Build DeviceIoControl Error \n");
  return FALSE;
    }


    //
    // 向設備發Irp
    //


    status = IoCallDriver(DeviceObject, irp2);


    if (status == STATUS_PENDING) {
        KeWaitForSingleObject(&event, Executive, KernelMode, FALSE, NULL);
        status = ioStatus.Status;
    }


    //
    // 發送成功打印信息
    //
   
    if (NT_SUCCESS(status)) {
          ULONG diskdata [256];
          int ijk = 0;
          USHORT *pIdSector = (USHORT *)
                             ((PSENDCMDOUTPARAMS) IdOutCmd) -> bBuffer;
    DbgPrint("successs in read disk id \n");   


          for (ijk = 0; ijk < 256; ijk++)
            diskdata [ijk] = pIdSector [ijk];
       
     //打印函數
        PrintIdeInfo (drive, diskdata);
  //這要調用完成例程而不是釋放IRP,具體請看DDK文檔
  IoCompleteRequest( irp2,IO_NO_INCREMENT );
        return TRUE;    
         
    } else {
       DbgPrint("get disk id error\n");
   
    }
   
    return FALSE;
}


void PrintIdeInfo (int drive, ULONG diskdata [256])
{
 char string1 [1024];


 strcpy (string1, ConvertToString (diskdata, 10, 19));


 DbgPrint("Disk NO. %d DiskID %s \n",drive,ConvertToString (diskdata, 10, 19));
}


char *ConvertToString (ULONG diskdata [256], int firstIndex, int lastIndex)
{
/*
* 功能如下:高低字節對調,結尾補'\0'
* string[10-19]遇空結尾
*/
   static char string [1024];
   int index = 0;
   int position = 0;


      //  each integer has two characters stored in it backwards
   for (index = firstIndex; index <= lastIndex; index++)
   {
         //  高字節
      string [position] = (char) (diskdata [index] / 256);
      position++;


         //  低字節
      string [position] = (char) (diskdata [index] % 256);
      position++;
   }


      //  結尾
   string [position] = '\0';
     
   for (index = position - 1; index > 0 && ' ' == string [index]; index--)
      string [index] = '\0';


   return string;
}

posted on 2008-04-19 13:05 ViskerWong 閱讀(1416) 評論(2)  編輯 收藏 引用

評論:
# re: 得到物理磁盤序列號 2008-04-19 16:57 | Lenuns
驅動的代碼,ms不完整啊  回復  更多評論
  
# re: 得到物理磁盤序列號 2008-04-21 14:59 | ViskerWong
想看完整的代碼可以找Diskid32的源代碼
這只是一個庫  回復  更多評論
  

只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            欧美成人久久| 国产亚洲一区在线播放| 欧美成人免费在线观看| 国产女主播视频一区二区| 亚洲精品一区二| 猛干欧美女孩| 久久国产精品亚洲va麻豆| 欧美日韩午夜| 亚洲伦理在线免费看| 免费欧美日韩国产三级电影| 新片速递亚洲合集欧美合集 | 尤物yw午夜国产精品视频明星| 亚洲视频一区二区免费在线观看| 亚洲国产精品激情在线观看| 亚洲一级二级| 国产欧美在线视频| 久久精品久久99精品久久| 亚洲中字在线| 国产精品福利久久久| 亚洲少妇在线| 一区二区三区四区国产| 国产精品h在线观看| 亚洲亚洲精品三区日韩精品在线视频 | 免费不卡在线观看| 蜜桃精品一区二区三区| 欧美伊人精品成人久久综合97| 国产欧美日韩精品丝袜高跟鞋| 午夜精品一区二区三区四区| 亚洲午夜三级在线| 国产精品美女在线| 久久久精品午夜少妇| 久久久激情视频| 亚洲精品免费网站| 亚洲激情在线播放| 欧美日韩在线视频一区二区| 亚洲欧美成人网| 久久激情综合网| 亚洲精品视频一区| 一本色道久久综合亚洲精品婷婷| 国产精品九九| 麻豆freexxxx性91精品| 欧美国产精品| 午夜精品区一区二区三| 亚洲综合导航| 久久国产精品99久久久久久老狼| 亚洲福利视频免费观看| 99www免费人成精品| 国产农村妇女精品| 欧美成人嫩草网站| 国产精品av一区二区| 另类激情亚洲| 欧美日韩亚洲综合在线| 久久久久久久999精品视频| 欧美风情在线| 久久精品国产99国产精品| 欧美二区在线观看| 欧美一区亚洲一区| 欧美乱大交xxxxx| 久久麻豆一区二区| 国产精品成人在线观看| 欧美激情第1页| 国产婷婷一区二区| 日韩午夜av电影| 尹人成人综合网| 亚洲字幕在线观看| 一本色道久久88亚洲综合88| 久久丁香综合五月国产三级网站| 亚洲午夜女主播在线直播| 久久久综合免费视频| 欧美一区亚洲一区| 国产精品久久久久99| 欧美激情影音先锋| 狠狠色狠狠色综合日日91app| 一本色道久久加勒比88综合| 亚洲丰满少妇videoshd| 久久精品道一区二区三区| 亚洲欧美一区在线| 欧美日韩国产精品专区| 欧美国产精品劲爆| 激情综合视频| 午夜亚洲福利在线老司机| 亚洲一区尤物| 欧美色另类天堂2015| 亚洲国产综合视频在线观看 | 久久国产乱子精品免费女| 国产精品国产一区二区| 亚洲一区二区在线| 欧美aⅴ99久久黑人专区| 国产精品视频男人的天堂| 日韩午夜激情电影| 亚洲乱码国产乱码精品精 | 亚洲欧洲另类国产综合| 久久精品中文字幕一区| 国产精品美女久久久久久免费 | 久久综合影音| 狂野欧美激情性xxxx| 国产原创一区二区| 欧美一级在线亚洲天堂| 久久夜色撩人精品| 一区二区三区自拍| 久久综合狠狠综合久久激情| 农村妇女精品| 亚洲黄色在线| 欧美成人一区二区三区片免费| 欧美va天堂va视频va在线| 在线免费观看日本欧美| 老司机免费视频一区二区三区| 女人色偷偷aa久久天堂| 亚洲精品久久7777| 欧美日韩视频一区二区| 亚洲亚洲精品在线观看| 久久精品女人| 亚洲国产一区二区精品专区| 欧美日韩成人综合| 亚洲一区二区在线播放| 久久久一二三| 亚洲精品乱码久久久久久| 欧美日韩亚洲一区二区三区| 亚洲欧美精品在线| 欧美大片免费观看在线观看网站推荐| 亚洲人在线视频| 国产精品久久久一区二区| 午夜精品短视频| 欧美激情a∨在线视频播放| 亚洲午夜精品| 在线精品视频一区二区三四| 欧美日韩国产综合视频在线观看| 亚洲女同同性videoxma| 免费在线亚洲| 亚洲欧美日韩在线高清直播| 狠狠狠色丁香婷婷综合激情| 欧美黄色网络| 久久成人免费电影| 日韩午夜一区| 免费在线观看日韩欧美| 亚洲在线成人| 亚洲欧洲日本专区| 国产亚洲精品一区二555| 欧美激情第8页| 欧美一区激情| 一本色道久久综合狠狠躁篇的优点| 另类专区欧美制服同性| 亚洲视频在线观看三级| 在线观看一区视频| 国产精品亚洲欧美| 欧美国产综合视频| 久久青青草综合| 亚洲视频碰碰| 一区二区三区在线免费播放| 欧美视频福利| 蜜臀va亚洲va欧美va天堂| 一本色道久久综合亚洲精品不卡 | 国产亚洲精品bv在线观看| 免费成人高清| 午夜一区二区三区在线观看| aa亚洲婷婷| 亚洲国产精品免费| 蜜臀a∨国产成人精品| 欧美一二三视频| 亚洲天堂视频在线观看| 亚洲激情网站| 在线观看中文字幕亚洲| 国内精品国产成人| 国产精品久久999| 欧美精品福利| 欧美韩日一区二区三区| 蘑菇福利视频一区播放| 午夜精品久久久久久久| 日韩一级片网址| 亚洲精品在线观看免费| 欧美黄色一级视频| 欧美成人精品福利| 免费不卡在线视频| 老牛影视一区二区三区| 欧美在线观看天堂一区二区三区| 亚洲在线观看视频| 亚洲亚洲精品三区日韩精品在线视频| 亚洲日韩欧美视频一区| 影音先锋中文字幕一区| 国产一区二区三区免费观看| 国产精品永久免费视频| 国产啪精品视频| 国产一区二区黄| 国内视频精品| 黄页网站一区| 亚洲高清不卡| 日韩视频一区二区在线观看 | 亚洲视频 欧洲视频| 亚洲图片在线观看| 亚洲——在线| 欧美中文在线字幕| 久久精品30| 噜噜噜噜噜久久久久久91| 猛干欧美女孩| 欧美日本高清一区| 国产精品扒开腿做爽爽爽视频| 99成人在线| 欧美一区免费| 欧美国产日韩精品免费观看| 欧美日韩另类综合|