zoukankan      html  css  js  c++  java
  • MFC获取电脑硬盘序列号(附源代码)

    在新建的project里面加入一个类 
    即:下面一个类 
    GetHDSerial.cpp

    <code class="hljs cs has-numbering" style="font-family: 'Source Code Pro', monospace; display: block; padding: 0px; color: inherit; box-sizing: border-box;font-size:undefined; white-space: pre; border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; word-wrap: normal; background: transparent;"><span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">// GetHDSerial.cpp: implementation of the CGetHDSerial class.</span>
    <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">// Download by http://www.newxing.com/</span>
    <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;"><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span>/</span>
    <span class="hljs-preprocessor" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(68, 68, 68); box-sizing: border-box;">#include "stdafx.h"</span>
    <span class="hljs-preprocessor" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(68, 68, 68); box-sizing: border-box;">#include "GetHDSerial.h"</span>
    
    
    <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">char</span>  m_buffer[<span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">256</span>];
    WORD  m_serial[<span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">256</span>];
    DWORD m_OldInterruptAddress;
    DWORDLONG m_IDTR;
    
    <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">// 等待硬盘空暇</span>
    <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">static</span> unsigned <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">int</span> WaitHardDiskIdle() 
    { 
        BYTE byTemp;
    
    Waiting:
        _asm
        {
            mov dx, <span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">0x1f7</span>
            <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">in</span> al, dx
            cmp al, <span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">0x80</span>
            jb Endwaiting
            jmp Waiting
        }
    Endwaiting:
        _asm
        {
            mov byTemp, al
        }
        <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">return</span> byTemp; 
    } 
    
    <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">//中断服务程序</span>
    <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">void</span>  _declspec( naked )InterruptProcess(<span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">void</span>)
    {
         <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">int</span>   byTemp;
         <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">int</span>   i;
         WORD temp;
         <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">//保存寄存器值</span>
         _asm
         {
             push eax
             push ebx
             push ecx
             push edx
             push esi
         }
    
         WaitHardDiskIdle();<span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">//等待硬盘空暇状态</span>
         _asm
         {
             mov dx, <span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">0x1f6</span>
             mov al, <span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">0xa0</span>
             <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">out</span> dx, al
         }
         byTemp = WaitHardDiskIdle(); <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">//若直接在Ring3级运行等待命令,会进入死循环</span>
         <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">if</span> ((byTemp&<span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">0x50</span>)!=<span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">0x50</span>) 
         {
            _asm  <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">// 恢复中断现场并退出中断服务程序</span>
            {
                pop esi
                pop edx
                pop ecx
                pop ebx
                pop eax
                iretd
            }
         }
    
         _asm
         {
             mov dx, <span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">0x1f6</span> <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">//命令端口1f6,选择驱动器0</span>
             mov al, <span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">0xa0</span>
             <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">out</span> dx, al
             inc dx
             mov al, <span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">0xec</span>
             <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">out</span> dx, al <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">//发送读驱动器參数命令</span>
         }  
         byTemp = WaitHardDiskIdle(); 
         <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">if</span> ((byTemp&<span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">0x58</span>)!=<span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">0x58</span>) 
         {
            _asm  <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">// 恢复中断现场并退出中断服务程序</span>
            {
                 pop esi
                 pop edx
                 pop ecx
                 pop ebx
                 pop eax
                 iretd
            }
         }
         <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">//读取硬盘控制器的所有信息</span>
         <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">for</span> (i=<span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">0</span>;i<<span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">256</span>;i++) 
         {
             _asm
             {
                 mov dx, <span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">0x1f0</span>
                 <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">in</span> ax, dx
                 mov temp, ax
             }
             m_serial[i] = temp; 
         }                                
         _asm
         {
             pop esi
             pop edx
             pop ecx
             pop ebx
             pop eax
             iretd
         }  
    }
    <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;"><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span>/</span>
    <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">// Construction/Destruction</span>
    <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;"><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span>/</span>
    
    CGetHDSerial::CGetHDSerial()
    {
    
    }
    
    CGetHDSerial::~CGetHDSerial()
    {
    
    }
    <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">// 读取硬盘序列号函数</span>
    <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">char</span>* CGetHDSerial::GetHDSerial()
    {   
      m_buffer[<span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">0</span>]=<span class="hljs-string" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 136, 0); box-sizing: border-box;">'
    '</span>;
      <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">// 得到当前操作系统版本号</span>
      OSVERSIONINFO OSVersionInfo;
      OSVersionInfo.dwOSVersionInfoSize = <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">sizeof</span>(OSVERSIONINFO);
      GetVersionEx( &OSVersionInfo);
      <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">if</span> (OSVersionInfo.dwPlatformId != VER_PLATFORM_WIN32_NT)
      {   
          <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">// Windows 9x/ME下读取硬盘序列号</span>
          WORD m_wWin9xHDSerial[<span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">256</span>];
          Win9xReadHDSerial(m_wWin9xHDSerial);  
          strcpy (m_buffer, WORDToChar (m_wWin9xHDSerial, <span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">10</span>, <span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">19</span>));
      }
      <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">else</span>
      {
          <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">// Windows NT/2000/XP下读取硬盘序列号</span>
          DWORD m_wWinNTHDSerial[<span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">256</span>];  
          <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">// 推断是否有SCSI硬盘</span>
          <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">if</span> ( ! WinNTReadIDEHDSerial(m_wWinNTHDSerial)) 
               WinNTReadSCSIHDSerial(m_wWinNTHDSerial);  
          strcpy (m_buffer, DWORDToChar (m_wWinNTHDSerial, <span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">10</span>, <span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">19</span>));
      } 
      <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">return</span> m_buffer;
    }
    
    <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">// Windows9X/ME系统下读取硬盘序列号</span>
    <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">void</span> _stdcall CGetHDSerial::Win9xReadHDSerial(WORD * buffer)
    {   
        <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">int</span> i;      
        <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">for</span>(i=<span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">0</span>;i<<span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">256</span>;i++) 
            buffer[i]=<span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">0</span>;
        _asm
        {
            push eax        
            <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">//获取改动的中断的中断描写叙述符(中断门)地址</span>
            sidt m_IDTR 
            mov eax,dword ptr [m_IDTR+<span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">02</span>h]        
            add eax,<span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">3</span>*<span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">08</span>h+<span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">04</span>h
            cli
            <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">//保存原先的中断入口地址</span>
            push ecx
            mov ecx,dword ptr [eax]
            mov cx,word ptr [eax-<span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">04</span>h]
            mov dword ptr m_OldInterruptAddress,ecx
            pop ecx
            <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">//设置改动的中断入口地址为新的中断处理程序入口地址</span>
            push ebx
            lea ebx,InterruptProcess    
            mov word ptr [eax-<span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">04</span>h],bx
            shr ebx,<span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">10</span>h
            mov word ptr [eax+<span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">02</span>h],bx
            pop ebx
            <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">//运行中断,转到Ring 0(相似CIH病毒原理)</span>
            <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">int</span> <span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">3</span>h
            <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">//恢复原先的中断入口地址</span>
            push ecx
            mov ecx,dword ptr m_OldInterruptAddress
            mov word ptr [eax-<span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">04</span>h],cx
            shr ecx,<span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">10</span>h
            mov word ptr [eax+<span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">02</span>h],cx
            pop ecx
            sti
            pop eax
        } 
        <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">for</span>(i=<span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">0</span>;i<<span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">256</span>;i++)      
            buffer[i]=m_serial[i];
    }
    
    <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">// Windows 9x/ME系统下,将字类型(WORD)的硬盘信息转换为字符类型(char)</span>
    <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">char</span> * CGetHDSerial::WORDToChar (WORD diskdata [<span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">256</span>], <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">int</span> firstIndex, <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">int</span> lastIndex)
    {
       <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">static</span> <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">char</span> <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">string</span> [<span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">1024</span>];
       <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">int</span> index = <span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">0</span>;
       <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">int</span> position = <span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">0</span>;
    
       <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">// 依照高字节在前。低字节在后的顺序将字数组diskdata 中内容存入到字符串string中 </span>
       <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">for</span> (index = firstIndex; index <= lastIndex; index++)
       {
          <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">// 存入字中的高字节</span>
          <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">string</span> [position] = (<span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">char</span>) (diskdata [index] / <span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">256</span>);
          position++;
          <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">// 存入字中的低字节</span>
          <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">string</span> [position] = (<span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">char</span>) (diskdata [index] % <span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">256</span>);
          position++;
       }
       <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">//  加入字符串结束标志</span>
       <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">string</span> [position] = <span class="hljs-string" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 136, 0); box-sizing: border-box;">''</span>;
    
       <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">//  删除字符串中空格</span>
       <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">for</span> (index = position - <span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">1</span>; index > <span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">0</span> && <span class="hljs-string" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 136, 0); box-sizing: border-box;">' '</span> == <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">string</span> [index]; index--)
          <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">string</span> [index] = <span class="hljs-string" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 136, 0); box-sizing: border-box;">''</span>;
    
       <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">return</span> <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">string</span>;
    }
    
    <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">// Windows NT/2000/XP系统下,将双字类型(DWORD)的硬盘信息转换为字符类型(char)</span>
    <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">char</span>* CGetHDSerial::DWORDToChar (DWORD diskdata [<span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">256</span>], <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">int</span> firstIndex, <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">int</span> lastIndex)
    {
       <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">static</span> <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">char</span> <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">string</span> [<span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">1024</span>];
       <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">int</span> index = <span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">0</span>;
       <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">int</span> position = <span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">0</span>;
    
       <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">// 依照高字节在前。低字节在后的顺序将双字中的低字存入到字符串string中 </span>
       <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">for</span> (index = firstIndex; index <= lastIndex; index++)
       {
          <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">// 存入低字中的高字节</span>
          <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">string</span> [position] = (<span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">char</span>) (diskdata [index] / <span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">256</span>);
          position++;
          <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">// 存入低字中的低字节</span>
          <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">string</span> [position] = (<span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">char</span>) (diskdata [index] % <span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">256</span>);
          position++;
       }
       <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">//  加入字符串结束标志</span>
       <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">string</span> [position] = <span class="hljs-string" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 136, 0); box-sizing: border-box;">''</span>;
    
       <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">//  删除字符串中空格</span>
       <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">for</span> (index = position - <span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">1</span>; index > <span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">0</span> && <span class="hljs-string" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 136, 0); box-sizing: border-box;">' '</span> == <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">string</span> [index]; index--)
          <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">string</span> [index] = <span class="hljs-string" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 136, 0); box-sizing: border-box;">''</span>;
    
       <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">return</span> <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">string</span>;
    }
    
    <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">// Windows NT/2000/XP下读取IDE硬盘序列号</span>
    BOOL CGetHDSerial::WinNTReadIDEHDSerial(DWORD * buffer)
    {
       BYTE IdOutCmd [<span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">sizeof</span> (SENDCMDOUTPARAMS) + IDENTIFY_BUFFER_SIZE - <span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">1</span>];
       BOOL bFlag = FALSE;
       <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">int</span>  drive = <span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">0</span>;
       <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">char</span> driveName [<span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">256</span>];
       HANDLE hPhysicalDriveIOCTL = <span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">0</span>;    
    
       sprintf (driveName, <span class="hljs-string" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 136, 0); box-sizing: border-box;">"\\.\PhysicalDrive%d"</span>, drive);
       <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">//  Windows NT/2000/XP下创建文件须要管理员权限</span>
       hPhysicalDriveIOCTL = CreateFileA (driveName,
                                GENERIC_READ | GENERIC_WRITE, 
                                FILE_SHARE_READ | FILE_SHARE_WRITE, NULL,
                                OPEN_EXISTING, <span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">0</span>, NULL);
    
       <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">if</span> (hPhysicalDriveIOCTL != INVALID_HANDLE_VALUE)
       {
           GETVERSIONOUTPARAMS VersionParams;
           DWORD               cbBytesReturned = <span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">0</span>;
    
           <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">// 得到驱动器的IO控制器版本号</span>
           memset ((<span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">void</span>*) &VersionParams, <span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">0</span>, <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">sizeof</span>(VersionParams));
           <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">if</span>(DeviceIoControl (hPhysicalDriveIOCTL, IOCTL_GET_VERSION,
                                   NULL, <span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">0</span>, &VersionParams,
                                   <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">sizeof</span>(VersionParams),
                                   &cbBytesReturned, NULL) )
           {        
              <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">if</span> (VersionParams.bIDEDeviceMap > <span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">0</span>)
              {
                  BYTE             bIDCmd = <span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">0</span>;   <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">// IDE或者ATAPI识别命令</span>
                  SENDCMDINPARAMS  scip;
    
                  <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">// 假设驱动器是光驱,採用命令IDE_ATAPI_IDENTIFY。 command,</span>
                  <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">// 否则採用命令IDE_ATA_IDENTIFY读取驱动器信息</span>
                  bIDCmd = (VersionParams.bIDEDeviceMap >> drive & <span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">0x10</span>)?
                          IDE_ATAPI_IDENTIFY : IDE_ATA_IDENTIFY;
    
                  memset (&scip, <span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">0</span>, <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">sizeof</span>(scip));
                  memset (IdOutCmd, <span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">0</span>, <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">sizeof</span>(IdOutCmd));
                  <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">// 获取驱动器信息</span>
                  <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">if</span> (WinNTGetIDEHDInfo (hPhysicalDriveIOCTL, 
                                          &scip, 
                                          (PSENDCMDOUTPARAMS)&IdOutCmd, 
                                          (BYTE) bIDCmd,
                                          (BYTE) drive,
                                          &cbBytesReturned))
                  {
                      <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">int</span> m = <span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">0</span>;
                      USHORT *pIdSector = (USHORT *)
                                 ((PSENDCMDOUTPARAMS) IdOutCmd) -> bBuffer;
    
                      <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">for</span> (m = <span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">0</span>; m < <span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">256</span>; m++)
                           buffer[m] = pIdSector [m];
                      bFlag = TRUE;  <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">// 读取硬盘信息成功</span>
                  }
              }
           }
           CloseHandle (hPhysicalDriveIOCTL);  <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">// 关闭句柄</span>
       }
       <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">return</span> bFlag;
    }
    
    <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">// WindowsNT/2000/XP系统下读取SCSI硬盘序列号</span>
    BOOL CGetHDSerial::WinNTReadSCSIHDSerial (DWORD * buffer)
    {   
          buffer[<span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">0</span>]=<span class="hljs-string" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 136, 0); box-sizing: border-box;">'
    '</span>;
          <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">int</span> controller = <span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">0</span>;
          HANDLE hScsiDriveIOCTL = <span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">0</span>;
          <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">char</span>   driveName [<span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">256</span>];
          sprintf (driveName, <span class="hljs-string" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 136, 0); box-sizing: border-box;">"\\.\Scsi%d:"</span>, controller);
         <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">//  Windows NT/2000/XP下不论什么权限都能够进行</span>
          hScsiDriveIOCTL = CreateFileA (driveName,
                                   GENERIC_READ | GENERIC_WRITE, 
                                   FILE_SHARE_READ | FILE_SHARE_WRITE, NULL,
                                   OPEN_EXISTING, <span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">0</span>, NULL);
    
          <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">if</span> (hScsiDriveIOCTL != INVALID_HANDLE_VALUE)
          {
             <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">int</span> drive = <span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">0</span>;
             DWORD dummy;
             <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">for</span> (drive = <span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">0</span>; drive < <span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">2</span>; drive++)
             {
                <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">char</span> buffer [<span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">sizeof</span> (SRB_IO_CONTROL) + SENDIDLENGTH];
                SRB_IO_CONTROL *p = (SRB_IO_CONTROL *) buffer;
                SENDCMDINPARAMS *pin =
                       (SENDCMDINPARAMS *) (buffer + <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">sizeof</span> (SRB_IO_CONTROL));           
                <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">// 准备參数</span>
                memset (buffer, <span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">0</span>, <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">sizeof</span> (buffer));
                p -> HeaderLength = <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">sizeof</span> (SRB_IO_CONTROL);
                p -> Timeout = <span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">10000</span>;
                p -> Length = SENDIDLENGTH;
                p -> ControlCode = IOCTL_SCSI_MINIPORT_IDENTIFY;
                strncpy ((<span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">char</span> *) p -> Signature, <span class="hljs-string" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 136, 0); box-sizing: border-box;">"SCSIDISK"</span>, <span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">8</span>);  
                pin -> irDriveRegs.bCommandReg = IDE_ATA_IDENTIFY;
                pin -> bDriveNumber = drive;
                <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">// 得到SCSI硬盘信息</span>
                <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">if</span> (DeviceIoControl (hScsiDriveIOCTL, IOCTL_SCSI_MINIPORT, 
                                     buffer,
                                     <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">sizeof</span> (SRB_IO_CONTROL) +
                                             <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">sizeof</span> (SENDCMDINPARAMS) - <span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">1</span>,
                                     buffer,
                                     <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">sizeof</span> (SRB_IO_CONTROL) + SENDIDLENGTH,
                                     &dummy, NULL))
                {
                   SENDCMDOUTPARAMS *pOut =
                        (SENDCMDOUTPARAMS *) (buffer + <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">sizeof</span> (SRB_IO_CONTROL));
                   IDSECTOR *pId = (IDSECTOR *) (pOut -> bBuffer);
                   <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">if</span> (pId -> sModelNumber [<span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">0</span>])
                   {
                      <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">int</span> n = <span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">0</span>;
                      USHORT *pIdSector = (USHORT *) pId;
    
                      <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">for</span> (n = <span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">0</span>; n < <span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">256</span>; n++)
                          buffer[n] =pIdSector [n];
                      <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">return</span> TRUE;  <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">// 读取成功                               </span>
                   }
                }
             }
             CloseHandle (hScsiDriveIOCTL);  <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">// 关闭句柄</span>
          }
       <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">return</span> FALSE;   <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">// 读取失败</span>
    }
    
    <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">// Windows NT/2000/XP下读取IDE设备信息</span>
    BOOL CGetHDSerial::WinNTGetIDEHDInfo (HANDLE hPhysicalDriveIOCTL, PSENDCMDINPARAMS pSCIP,
                     PSENDCMDOUTPARAMS pSCOP, BYTE bIDCmd, BYTE bDriveNum,
                     PDWORD lpcbBytesReturned)
    {
       <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">// 为读取设备信息准备參数</span>
       pSCIP -> cBufferSize = IDENTIFY_BUFFER_SIZE;
       pSCIP -> irDriveRegs.bFeaturesReg = <span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">0</span>;
       pSCIP -> irDriveRegs.bSectorCountReg = <span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">1</span>;
       pSCIP -> irDriveRegs.bSectorNumberReg = <span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">1</span>;
       pSCIP -> irDriveRegs.bCylLowReg = <span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">0</span>;
       pSCIP -> irDriveRegs.bCylHighReg = <span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">0</span>;
    
       <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">// 计算驱动器位置</span>
       pSCIP -> irDriveRegs.bDriveHeadReg = <span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">0xA0</span> | ((bDriveNum & <span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">1</span>) << <span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">4</span>);
    
       <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">// 设置读取命令</span>
       pSCIP -> irDriveRegs.bCommandReg = bIDCmd;
       pSCIP -> bDriveNumber = bDriveNum;
       pSCIP -> cBufferSize = IDENTIFY_BUFFER_SIZE;
    
       <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">// 读取驱动器信息</span>
       <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">return</span> ( DeviceIoControl (hPhysicalDriveIOCTL, IOCTL_GET_DRIVE_INFO,
                   (LPVOID) pSCIP,
                   <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">sizeof</span>(SENDCMDINPARAMS) - <span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">1</span>,
                   (LPVOID) pSCOP,
                   <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">sizeof</span>(SENDCMDOUTPARAMS) + IDENTIFY_BUFFER_SIZE - <span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">1</span>,
                   lpcbBytesReturned, NULL) );
    }</code><ul class="pre-numbering" style="font-family: 宋体 !important; margin: 0px; padding: 6px 0px 40px; box-sizing: border-box; position: absolute;  50px; top: 0px; left: 0px; border-right- 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">1</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">2</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">3</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">4</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">5</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">6</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">7</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">8</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">9</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">10</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">11</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">12</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">13</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">14</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">15</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">16</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">17</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">18</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">19</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">20</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">21</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">22</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">23</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">24</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">25</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">26</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">27</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">28</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">29</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">30</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">31</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">32</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">33</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">34</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">35</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">36</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">37</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">38</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">39</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">40</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">41</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">42</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">43</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">44</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">45</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">46</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">47</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">48</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">49</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">50</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">51</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">52</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">53</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">54</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">55</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">56</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">57</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">58</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">59</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">60</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">61</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">62</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">63</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">64</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">65</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">66</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">67</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">68</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">69</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">70</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">71</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">72</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">73</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">74</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">75</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">76</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">77</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">78</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">79</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">80</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">81</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">82</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">83</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">84</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">85</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">86</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">87</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">88</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">89</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">90</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">91</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">92</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">93</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">94</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">95</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">96</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">97</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">98</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">99</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">100</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">101</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">102</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">103</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">104</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">105</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">106</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">107</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">108</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">109</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">110</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">111</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">112</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">113</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">114</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">115</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">116</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">117</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">118</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">119</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">120</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">121</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">122</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">123</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">124</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">125</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">126</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">127</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">128</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">129</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">130</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">131</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">132</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">133</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">134</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">135</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">136</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">137</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">138</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">139</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">140</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">141</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">142</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">143</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">144</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">145</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">146</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">147</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">148</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">149</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">150</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">151</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">152</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">153</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">154</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">155</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">156</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">157</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">158</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">159</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">160</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">161</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">162</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">163</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">164</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">165</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">166</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">167</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">168</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">169</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">170</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">171</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">172</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">173</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">174</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">175</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">176</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">177</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">178</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">179</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">180</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">181</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">182</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">183</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">184</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">185</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">186</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">187</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">188</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">189</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">190</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">191</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">192</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">193</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">194</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">195</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">196</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">197</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">198</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">199</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">200</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">201</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">202</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">203</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">204</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">205</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">206</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">207</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">208</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">209</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">210</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">211</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">212</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">213</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">214</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">215</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">216</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">217</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">218</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">219</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">220</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">221</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">222</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">223</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">224</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">225</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">226</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">227</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">228</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">229</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">230</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">231</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">232</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">233</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">234</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">235</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">236</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">237</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">238</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">239</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">240</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">241</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">242</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">243</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">244</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">245</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">246</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">247</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">248</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">249</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">250</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">251</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">252</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">253</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">254</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">255</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">256</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">257</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">258</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">259</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">260</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">261</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">262</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">263</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">264</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">265</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">266</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">267</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">268</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">269</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">270</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">271</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">272</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">273</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">274</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">275</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">276</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">277</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">278</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">279</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">280</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">281</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">282</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">283</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">284</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">285</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">286</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">287</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">288</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">289</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">290</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">291</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">292</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">293</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">294</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">295</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">296</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">297</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">298</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">299</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">300</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">301</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">302</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">303</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">304</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">305</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">306</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">307</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">308</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">309</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">310</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">311</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">312</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">313</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">314</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">315</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">316</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">317</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">318</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">319</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">320</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">321</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">322</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">323</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">324</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">325</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">326</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">327</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">328</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">329</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">330</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">331</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">332</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">333</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">334</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">335</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">336</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">337</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">338</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">339</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">340</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">341</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">342</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">343</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">344</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">345</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">346</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">347</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">348</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">349</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">350</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">351</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">352</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">353</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">354</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">355</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">356</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">357</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">358</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">359</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">360</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">361</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">362</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">363</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">364</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">365</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">366</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">367</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">368</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">369</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">370</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">371</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">372</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">373</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">374</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">375</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">376</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">377</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">378</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">379</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">380</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">381</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">382</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">383</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">384</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">385</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">386</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">387</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">388</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">389</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">390</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">391</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">392</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">393</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">394</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">395</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">396</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">397</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">398</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">399</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">400</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">401</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">402</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">403</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">404</li></ul>

    GetHDSerial.h

    <code class="hljs cs has-numbering" style="font-family: 'Source Code Pro', monospace; display: block; padding: 0px; color: inherit; box-sizing: border-box;font-size:undefined; white-space: pre; border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; word-wrap: normal; background: transparent;"><span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">// GetHDSerial.h: interface for the CGetHDSerial class.</span>
    <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">// Download by http://www.newxing.com/</span>
    <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;"><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span><span class="hljs-xmlDocTag" style="margin: 0px; padding: 0px; box-sizing: border-box;">///</span>/</span>
    <span class="hljs-preprocessor" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(68, 68, 68); box-sizing: border-box;">#include <windows.h></span>
    <span class="hljs-preprocessor" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(68, 68, 68); box-sizing: border-box;">#include <stdio.h></span>
    
    <span class="hljs-preprocessor" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(68, 68, 68); box-sizing: border-box;">#<span class="hljs-keyword" style="margin: 0px; padding: 0px; box-sizing: border-box;">define</span>  SENDIDLENGTH  sizeof (SENDCMDOUTPARAMS) + IDENTIFY_BUFFER_SIZE</span>
    <span class="hljs-preprocessor" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(68, 68, 68); box-sizing: border-box;">#<span class="hljs-keyword" style="margin: 0px; padding: 0px; box-sizing: border-box;">define</span>  IDENTIFY_BUFFER_SIZE  512</span>
    <span class="hljs-preprocessor" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(68, 68, 68); box-sizing: border-box;">#<span class="hljs-keyword" style="margin: 0px; padding: 0px; box-sizing: border-box;">define</span>  FILE_DEVICE_SCSI              0x0000001b</span>
    <span class="hljs-preprocessor" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(68, 68, 68); box-sizing: border-box;">#<span class="hljs-keyword" style="margin: 0px; padding: 0px; box-sizing: border-box;">define</span>  IOCTL_SCSI_MINIPORT_IDENTIFY  ((FILE_DEVICE_SCSI << 16) + 0x0501)</span>
    <span class="hljs-preprocessor" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(68, 68, 68); box-sizing: border-box;">#<span class="hljs-keyword" style="margin: 0px; padding: 0px; box-sizing: border-box;">define</span>  IOCTL_SCSI_MINIPORT 0x0004D008  //  see NTDDSCSI.H for definition</span>
    <span class="hljs-preprocessor" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(68, 68, 68); box-sizing: border-box;">#<span class="hljs-keyword" style="margin: 0px; padding: 0px; box-sizing: border-box;">define</span>  IDE_ATAPI_IDENTIFY  0xA1  //  Returns ID sector for ATAPI.</span>
    <span class="hljs-preprocessor" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(68, 68, 68); box-sizing: border-box;">#<span class="hljs-keyword" style="margin: 0px; padding: 0px; box-sizing: border-box;">define</span>  IDE_ATA_IDENTIFY    0xEC  //  Returns ID sector for ATA.</span>
    <span class="hljs-preprocessor" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(68, 68, 68); box-sizing: border-box;">#<span class="hljs-keyword" style="margin: 0px; padding: 0px; box-sizing: border-box;">define</span>  IOCTL_GET_DRIVE_INFO   0x0007c088</span>
    <span class="hljs-preprocessor" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(68, 68, 68); box-sizing: border-box;">#<span class="hljs-keyword" style="margin: 0px; padding: 0px; box-sizing: border-box;">define</span>  IOCTL_GET_VERSION          0x00074080</span>
    typedef <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">struct</span> _IDSECTOR
    {
       USHORT  wGenConfig;
       USHORT  wNumCyls;
       USHORT  wReserved;
       USHORT  wNumHeads;
       USHORT  wBytesPerTrack;
       USHORT  wBytesPerSector;
       USHORT  wSectorsPerTrack;
       USHORT  wVendorUnique[<span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">3</span>];
       CHAR    sSerialNumber[<span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">20</span>];
       USHORT  wBufferType;
       USHORT  wBufferSize;
       USHORT  wECCSize;
       CHAR    sFirmwareRev[<span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">8</span>];
       CHAR    sModelNumber[<span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">40</span>];
       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[<span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">128</span>];
    } IDSECTOR, *PIDSECTOR;
    
    typedef <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">struct</span> _DRIVERSTATUS
    {
       BYTE  bDriverError;  <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">//  Error code from driver, or 0 if no error.</span>
       BYTE  bIDEStatus;    <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">//  Contents of IDE Error register.</span>
                            <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">//  Only valid when bDriverError is SMART_IDE_ERROR.</span>
       BYTE  bReserved[<span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">2</span>];  <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">//  Reserved for future expansion.</span>
       DWORD  dwReserved[<span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">2</span>];  <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">//  Reserved for future expansion.</span>
    } DRIVERSTATUS, *PDRIVERSTATUS, *LPDRIVERSTATUS;
    
    typedef <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">struct</span> _SENDCMDOUTPARAMS
    {
       DWORD         cBufferSize;   <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">//  Size of bBuffer in bytes</span>
       DRIVERSTATUS  DriverStatus;  <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">//  Driver status structure.</span>
       BYTE          bBuffer[<span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">1</span>];    <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">//  Buffer of arbitrary length in which to store the data read from the                                                       // drive.</span>
    } SENDCMDOUTPARAMS, *PSENDCMDOUTPARAMS, *LPSENDCMDOUTPARAMS;
    typedef <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">struct</span> _SRB_IO_CONTROL
    {
       ULONG HeaderLength;
       UCHAR Signature[<span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">8</span>];
       ULONG Timeout;
       ULONG ControlCode;
       ULONG ReturnCode;
       ULONG Length;
    } SRB_IO_CONTROL, *PSRB_IO_CONTROL;
    
    typedef <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">struct</span> _IDEREGS
    {
       BYTE bFeaturesReg;       <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">// Used for specifying SMART "commands".</span>
       BYTE bSectorCountReg;    <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">// IDE sector count register</span>
       BYTE bSectorNumberReg;   <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">// IDE sector number register</span>
       BYTE bCylLowReg;         <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">// IDE low order cylinder value</span>
       BYTE bCylHighReg;        <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">// IDE high order cylinder value</span>
       BYTE bDriveHeadReg;      <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">// IDE drive/head register</span>
       BYTE bCommandReg;        <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">// Actual IDE command.</span>
       BYTE bReserved;          <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">// reserved for future use.  Must be zero.</span>
    } IDEREGS, *PIDEREGS, *LPIDEREGS;
    
    typedef <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">struct</span> _SENDCMDINPARAMS
    {
       DWORD     cBufferSize;   <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">//  Buffer size in bytes</span>
       IDEREGS   irDriveRegs;   <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">//  Structure with drive register values.</span>
       BYTE bDriveNumber;       <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">//  Physical drive number to send </span>
                                <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">//  command to (0,1,2,3).</span>
       BYTE bReserved[<span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">3</span>];       <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">//  Reserved for future expansion.</span>
       DWORD     dwReserved[<span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">4</span>]; <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">//  For future use.</span>
       BYTE      bBuffer[<span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">1</span>];    <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">//  Input buffer.</span>
    } SENDCMDINPARAMS, *PSENDCMDINPARAMS, *LPSENDCMDINPARAMS;
    typedef <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">struct</span> _GETVERSIONOUTPARAMS
    {
       BYTE bVersion;      <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">// Binary driver version.</span>
       BYTE bRevision;     <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">// Binary driver revision.</span>
       BYTE bReserved;     <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">// Not used.</span>
       BYTE bIDEDeviceMap; <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">// Bit map of IDE devices.</span>
       DWORD fCapabilities; <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">// Bit mask of driver capabilities.</span>
       DWORD dwReserved[<span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">4</span>]; <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">// For future use.</span>
    } GETVERSIONOUTPARAMS, *PGETVERSIONOUTPARAMS, *LPGETVERSIONOUTPARAMS;
    
    <span class="hljs-comment" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(136, 0, 0); box-sizing: border-box;">// 获取硬盘序列号的类</span>
    class CGetHDSerial  
    {
    <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">public</span>:
        <span class="hljs-title" style="font-family: 宋体 !important; margin: 0px; padding: 0px; box-sizing: border-box;">CGetHDSerial</span>();
        <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">virtual</span> ~CGetHDSerial();
        <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">void</span>  _stdcall Win9xReadHDSerial(WORD * buffer);
        <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">char</span>* GetHDSerial();
        <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">char</span>* WORDToChar (WORD diskdata [<span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">256</span>], <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">int</span> firstIndex, <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">int</span> lastIndex);
        <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">char</span>* DWORDToChar (DWORD diskdata [<span class="hljs-number" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 102, 102); box-sizing: border-box;">256</span>], <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">int</span> firstIndex, <span class="hljs-keyword" style="font-family: 宋体 !important; margin: 0px; padding: 0px; color: rgb(0, 0, 136); box-sizing: border-box;">int</span> lastIndex);
        BOOL  WinNTReadSCSIHDSerial(DWORD * buffer);
        BOOL  WinNTReadIDEHDSerial (DWORD * buffer);
        BOOL  WinNTGetIDEHDInfo (HANDLE hPhysicalDriveIOCTL, PSENDCMDINPARAMS pSCIP,
                          PSENDCMDOUTPARAMS pSCOP, BYTE bIDCmd, BYTE bDriveNum,
                          PDWORD lpcbBytesReturned);
    };</code><ul class="pre-numbering" style="font-family: 宋体 !important; margin: 0px; padding: 6px 0px 40px; box-sizing: border-box; position: absolute;  50px; top: 0px; left: 0px; border-right- 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">1</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">2</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">3</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">4</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">5</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">6</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">7</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">8</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">9</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">10</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">11</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">12</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">13</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">14</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">15</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">16</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">17</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">18</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">19</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">20</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">21</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">22</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">23</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">24</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">25</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">26</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">27</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">28</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">29</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">30</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">31</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">32</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">33</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">34</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">35</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">36</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">37</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">38</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">39</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">40</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">41</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">42</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">43</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">44</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">45</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">46</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">47</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">48</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">49</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">50</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">51</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">52</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">53</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">54</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">55</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">56</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">57</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">58</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">59</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">60</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">61</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">62</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">63</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">64</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">65</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">66</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">67</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">68</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">69</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">70</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">71</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">72</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">73</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">74</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">75</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">76</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">77</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">78</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">79</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">80</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">81</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">82</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">83</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">84</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">85</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">86</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">87</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">88</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">89</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">90</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">91</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">92</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">93</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">94</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">95</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">96</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">97</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">98</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">99</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">100</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">101</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">102</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">103</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">104</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">105</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">106</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">107</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">108</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">109</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">110</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">111</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">112</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">113</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">114</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">115</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">116</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">117</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">118</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">119</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">120</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">121</li><li style="margin: 0px; padding: 0px 5px; box-sizing: border-box;">122</li></ul>

    源代码下载

  • 相关阅读:
    git 好文引流
    无法访问Swagger 或 druid面板无法访问 #报异常
    MachineLearning入门-7(数据理解)
    MachineLearning入门-6(数据导入)
    MachineLearning入门-5(Python和Scipy简介)
    百度PaddlePaddle入门-10(数据处理)
    百度PaddlePaddle入门-9(建模)
    百度PaddlePaddle入门-8(模型探讨)
    MachineLearning入门-4(理解数据集)
    百度PaddlePaddle入门-7 (Numpy的应用)
  • 原文地址:https://www.cnblogs.com/jzssuanfa/p/7256299.html
Copyright © 2011-2022 走看看