获得硬盘id号 (本文转自:http://blog.donews.com/lithe/archive/2005/09/09/546341.aspx)

论坛 期权论坛     
选择匿名的用户   2021-5-30 01:38   591   0
  
<p style="MARGIN: 5px; LINE-HEIGHT: 150%"><code><span style="COLOR: #000000"><span style="COLOR: #0000cc">#</span><span style="COLOR: #ff0000">include</span> <span style="COLOR: #0000cc">&lt;</span>windows<span style="COLOR: #0000cc">.</span>h<span style="COLOR: #0000cc">&gt;</span><br><span style="COLOR: #0000cc">#</span><span style="COLOR: #ff0000">include</span> <span style="COLOR: #0000cc">&lt;</span>stdio<span style="COLOR: #0000cc">.</span>h<span style="COLOR: #0000cc">&gt;</span><br><span style="COLOR: #0000cc">#</span><span style="COLOR: #ff0000">include</span> <span style="COLOR: #0000cc">&lt;</span><span style="COLOR: #ff0000">string</span><span style="COLOR: #0000cc">.</span>h<span style="COLOR: #0000cc">&gt;</span><br><br><span style="COLOR: #ff9900">/**************************************/</span><br><span style="COLOR: #ff9900">// web:itbaby.jss.cn<br></span><span style="COLOR: #ff9900">// 作者:javasuki(itbaby)<br></span><span style="COLOR: #ff9900">// 日期:2003/03/04<br></span><span style="COLOR: #ff9900">/**************************************/</span><br><br><span style="COLOR: #ff9900">//用于WinNT/Win2000,对Win9X无效<br></span><span style="COLOR: #ff9900">//通过MS的S.M.A.R.T.接口,直接从RING3调用<br></span><span style="COLOR: #ff9900">//API DeviceIoControl()来获取硬盘信息<br></span><br><span style="COLOR: #0000ff">typedef</span> <span style="COLOR: #0000ff">struct</span> _SRB_IO_CONTROL <span style="COLOR: #0000cc">{<!-- --></span><br>    ULONG HeaderLength<span style="COLOR: #0000cc">;</span><br>    <span style="COLOR: #0000ff">char</span> Signature<span style="COLOR: #0000cc">[</span>8<span style="COLOR: #0000cc">]</span><span style="COLOR: #0000cc">;</span> <br>    ULONG Timeout<span style="COLOR: #0000cc">;</span> <br>    ULONG ControlCode<span style="COLOR: #0000cc">;</span> <br>    ULONG ReturnCode<span style="COLOR: #0000cc">;</span><br>    ULONG Length<span style="COLOR: #0000cc">;</span> <br><span style="COLOR: #0000cc">}</span> SRB_IO_CONTROL<span style="COLOR: #0000cc">;</span><br><br><span style="COLOR: #0000ff">typedef</span> <span style="COLOR: #0000ff">struct</span> _DRIVERSTATUS <span style="COLOR: #0000cc">{<!-- --></span><br>    BYTE bDriverError<span style="COLOR: #0000cc">;</span> <span style="COLOR: #ff9900">// Error code from driver,or 0 if no error.<br></span>    BYTE bIDEStatus<span style="COLOR: #0000cc">;</span> <span style="COLOR: #ff9900">// Contents of IDE Error register.<br></span>    <span style="COLOR: #ff9900">// Only valid when bDriverError<br></span>    <span style="COLOR: #ff9900">// is SMART_IDE_ERROR.<br></span>    BYTE bReserved<span style="COLOR: #0000cc">[</span>2<span style="COLOR: #0000cc">]</span><span style="COLOR: #0000cc">;</span> <span style="COLOR: #ff9900">// Reserved for future expansion.<br></span>    DWORD dwReserved<span style="COLOR: #0000cc">[</span>2<span style="COLOR: #0000cc">]</span><span style="COLOR: #0000cc">;</span> <span style="COLOR: #ff9900">// Reserved for future expansion.<br></span><span style="COLOR: #0000cc">}</span> DRIVERSTATUS<span style="COLOR: #0000cc">,</span> <span style="COLOR: #0000cc">*</span>PDRIVERSTATUS<span style="COLOR: #0000cc">,</span> <span style="COLOR: #0000cc">*</span>LPDRIVERSTATUS<span style="COLOR: #0000cc">;</span><br><br><span style="COLOR: #0000ff">typedef</span> <span style="COLOR: #0000ff">struct</span> _IDEREGS <span style="COLOR: #0000cc">{<!-- --></span><br>    BYTE bFeaturesReg<span style="COLOR: #0000cc">;</span><br>    BYTE bSectorCountReg<span style="COLOR: #0000cc">;</span><br>    BYTE bSectorNumberReg<span style="COLOR: #0000cc">;</span><br>    BYTE bCylLowReg<span style="COLOR: #0000cc">;</span><br>    BYTE bCylHighReg<span style="COLOR: #0000cc">;</span><br>    BYTE bDriveHeadReg<span style="COLOR: #0000cc">;</span><br>    BYTE bCommandReg<span style="COLOR: #0000cc">;</span><br>    BYTE bReserved<span style="COLOR: #0000cc">;</span><br><span style="COLOR: #0000cc">}</span> IDEREGS<span style="COLOR: #0000cc">;</span><br><br><span style="COLOR: #0000ff">typedef</span> <span style="COLOR: #0000ff">struct</span> _SENDCMDINPARAMS <span style="COLOR: #0000cc">{<!-- --></span><br>    DWORD cBufferSize<span style="COLOR: #0000cc">;</span> <br>    IDEREGS irDriveRegs<span style="COLOR: #0000cc">;</span> <br>    BYTE bDriveNumber<span style="COLOR: #0000cc">;</span> <br>    BYTE bReserved<span style="COLOR: #0000cc">[</span>3<span style="COLOR: #0000cc">]</span><span style="COLOR: #0000cc">;</span><br>    DWORD dwReserved<span style="COLOR: #0000cc">[</span>4<span style="COLOR: #0000cc">]</span><span style="COLOR: #0000cc">;</span><br>    BYTE bBuffer<span style="COLOR: #0000cc">[</span>1<span style="COLOR: #0000cc">]</span><span style="COLOR: #0000cc">;</span><br><span style="COLOR: #0000cc">}</span> SENDCMDINPARAMS<span style="COLOR: #0000cc">;</span><br><br><span style="COLOR: #0000ff">typedef</span> <span style="COLOR: #0000ff">struct</span> _SENDCMDOUTPARAMS <span style="COLOR: #0000cc">{<!-- --></span><br>    DWORD cBufferSize<span style="COLOR: #0000cc">;</span><br>    DRIVERSTATUS DriverStatus<span style="COLOR: #0000cc">;</span><br>    BYTE bBuffer<span style="COLOR: #0000cc">[</span>1<span style="COLOR: #0000cc">]</span><span style="COLOR: #0000cc">;</span><br><span style="COLOR: #0000cc">}</span> SENDCMDOUTPARAMS<span style="COLOR: #0000cc">;</span><br><br><
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP