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

隨筆-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 閱讀(1412) 評論(2)  編輯 收藏 引用

評論:
# re: 得到物理磁盤序列號 2008-04-19 16:57 | Lenuns
驅動的代碼,ms不完整啊  回復  更多評論
  
# re: 得到物理磁盤序列號 2008-04-21 14:59 | ViskerWong
想看完整的代碼可以找Diskid32的源代碼
這只是一個庫  回復  更多評論
  
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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黄| 99精品视频免费全部在线| 亚洲国产精品视频一区| 久久国内精品视频| 久久久青草青青国产亚洲免观| 亚洲欧美影院| 你懂的视频一区二区| 欧美国产日韩一区二区三区| 欧美成人激情视频| 亚洲黄色在线| 一区二区三区www| 欧美一级夜夜爽| 久久综合综合久久综合| 欧美区二区三区| 国产性猛交xxxx免费看久久| 亚洲国产精品成人综合色在线婷婷 | 国产欧美日韩综合一区在线播放| 国产色产综合色产在线视频| 在线日韩中文| 亚洲一区二区三区激情| 久久在线免费观看视频| 老司机一区二区| 久久精品伊人| 欧美www视频| 国产精品久久久久久久久| 国产一区二区久久久| 亚洲精品日韩久久| 久久精品91| 日韩亚洲视频在线| 久久天堂成人| 国产精品日韩高清| 日韩视频精品| 久色成人在线| 午夜视频一区| 欧美日韩成人在线| 在线观看91精品国产麻豆| 亚洲一区二区av电影| 欧美大胆人体视频| 午夜在线观看免费一区| 欧美视频一区二| 亚洲精品免费电影| 男女激情视频一区| 欧美一区二视频| 国产精品久久激情| 一级成人国产| 亚洲国产精品电影在线观看| 久久人人97超碰人人澡爱香蕉| 国产精品中文字幕在线观看| 亚洲一二三四久久| 亚洲精品在线观| 欧美成人一区二区在线 | 欧美日韩国产一区| 亚洲日本中文字幕区| 可以看av的网站久久看| 欧美一区二区三区视频| 国产精品揄拍500视频| 亚洲一区亚洲| 一区二区日韩精品| 欧美小视频在线| 亚洲综合成人在线| 一区二区欧美日韩视频| 欧美亚州韩日在线看免费版国语版| 日韩手机在线导航| 亚洲每日更新| 国产精品二区二区三区| 亚洲欧美国产77777| 亚洲视频综合在线| 国产久一道中文一区| 久久成人免费日本黄色| 欧美一区午夜精品| 一区二区三区在线视频播放| 猛男gaygay欧美视频| 你懂的成人av| 一区二区三区欧美日韩| 亚洲视频免费在线观看| 国产日韩欧美电影在线观看| 久久久久国产精品一区| 久久人人精品| 一区二区三区精密机械公司| 欧美不卡激情三级在线观看| 亚洲精品一区中文| 日韩亚洲视频| 国产精品视频成人| 久久亚洲精品视频| 欧美成人一区在线| 午夜精品999| 久久一区二区视频| 亚洲视频综合| 久久精品日韩一区二区三区| 91久久精品日日躁夜夜躁欧美| 亚洲精品视频一区| 国产一区二区在线免费观看| 欧美黑人多人双交| 国产精品国产三级国产a| 午夜精品美女自拍福到在线 | 国产精品video| 久久九九99视频| 欧美激情视频在线播放| 久久国产精品网站| 欧美精品v国产精品v日韩精品| 香港久久久电影| 免费观看久久久4p| 久久精品日产第一区二区| 欧美精品一区二区视频| 久久亚洲欧洲| 国产伦精品一区二区三区视频孕妇| 欧美国产免费| 国产欧美日韩综合一区在线观看 | 久久青草久久| 国产精品久久久久久久午夜片| 欧美成人午夜免费视在线看片| 国产精品日韩欧美一区二区三区 | 久久久亚洲国产美女国产盗摄| 亚洲性夜色噜噜噜7777| 欧美.www| 欧美高清在线观看| 国产一区二区三区在线观看精品| 一区二区三区不卡视频在线观看 | 国产精品亚洲а∨天堂免在线| 亚洲第一级黄色片| 1024精品一区二区三区| 欧美一区成人| 香蕉亚洲视频| 国产精品久久久久av| 亚洲三级免费| 亚洲每日更新| 欧美精品videossex性护士| 欧美国产精品人人做人人爱| 在线 亚洲欧美在线综合一区| 欧美在线视频一区| 久久久久久久综合色一本| 国产日韩成人精品| 午夜精品婷婷| 久久精品视频在线| 国产日韩欧美二区| 久久国产88| 亚洲免费在线视频一区 二区| 国产精品美女久久久久av超清| 日韩一级免费观看| 亚洲一区二区毛片| 国产精品麻豆欧美日韩ww| 亚洲一区二区四区| 性伦欧美刺激片在线观看| 国产精品免费在线| 亚洲欧美综合| 快射av在线播放一区| 伊人成综合网伊人222| 久久久精品久久久久| 欧美国产日韩一二三区| 日韩视频免费| 欧美三区在线| 午夜精品久久久久久久99水蜜桃 | 欧美激情中文字幕乱码免费| 免费欧美网站| 99精品免费| 国产精品视频yy9299一区| 久久都是精品| 亚洲欧洲精品一区二区精品久久久| 中文av一区二区| 国产欧美日韩免费| 久久在线观看视频| 亚洲精品国产精品乱码不99按摩 | 亚洲成人在线网站| 亚洲一区二区在线播放| 国产亚洲欧美一级| 欧美成人69| 亚洲综合精品一区二区| 欧美www视频| 亚洲一区国产一区| 一区二区三区在线免费视频| 欧美精品色综合| 亚洲欧美日韩精品久久| 嫩草影视亚洲| 欧美在线观看日本一区| 91久久精品国产| 国产精品免费福利| 欧美承认网站| 久久国产精品久久久久久久久久 | 老牛嫩草一区二区三区日本| 一区二区冒白浆视频| 国产亚洲人成网站在线观看| 欧美黑人多人双交| 欧美一区深夜视频| 在线视频你懂得一区| 欧美aa在线视频| 欧美在线视频播放| aa日韩免费精品视频一| 激情91久久| 国产精品视频网址| 欧美日韩精品一区二区三区| 久久久午夜精品| 校园春色国产精品| 亚洲视频久久| 99精品欧美一区二区三区| 欧美激情精品久久久| 久久综合九色欧美综合狠狠| 午夜国产欧美理论在线播放|