如何得到硬盘序列号[c#]

如何得到硬盘序列号[c#]

ID:13182517

大小:67.00 KB

页数:12页

时间:2018-07-21

如何得到硬盘序列号[c#]_第1页
如何得到硬盘序列号[c#]_第2页
如何得到硬盘序列号[c#]_第3页
如何得到硬盘序列号[c#]_第4页
如何得到硬盘序列号[c#]_第5页
资源描述:

《如何得到硬盘序列号[c#]》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、本文章转载www.68598.com发布,转载请保留版权硬盘序列号(SerialNumber)不等于卷标号(VolumeName),后者虽然很容易得到,但是格式化分区后就会重写,不可靠。遗憾的是很多朋友往往分不清这一点。要得到硬盘的物理序列号,可以通过WMI,也就是Win32_PhysicalMedia.SerialNumber。可惜的是Windows98/ME的WMI并不支持这个类,访问时会出现异常。受陆麟的例子的启发,我们还可以通过S.M.A.R.T.接口,直接从RING3调用APIDeviceIoControl()来获取硬盘信息,而不需要写VXD或者DRIVER。这

2、样这个问题就解决了,我对它进行了封装,大量使用了P/Invoke技术,一个完整的Library。支持Windows98-2003。使用上很简单:HardDiskInfohdd=AtapiDevice.GetHddInfo(0);//第一个硬盘Console.WriteLine("ModuleNumber:{0}",hdd.ModuleNumber);Console.WriteLine("SerialNumber:{0}",hdd.SerialNumber);Console.WriteLine("Firmware:{0}",hdd.Firmware);Console.Wri

3、teLine("Capacity:{0}M",hdd.Capacity);下面是全部代码:usingSystem;usingSystem.Runtime.InteropServices;usingSystem.Text;namespaceSunmast.Hardware{[Serializable]publicstructHardDiskInfo{///

///型号///publicstringModuleNumber;//////固件版本///本文章转载www.tz65.com发布,转载请保留版权

4、本文章转载www.68598.com发布,转载请保留版权publicstringFirmware;///

///序列号///publicstringSerialNumber;//////容量,以M为单位///publicuintCapacity;}#regionInternalStructs[StructLayout(LayoutKind.Sequential,Pack=1)]internalstructGetVersionOutParams{publicbytebVersion;publicbyt

5、ebRevision;publicbytebReserved;publicbytebIDEDeviceMap;publicuintfCapabilities;[MarshalAs(UnmanagedType.ByValArray,SizeConst=4)]publicuint[]dwReserved;//Forfutureuse.}[StructLayout(LayoutKind.Sequential,Pack=1)]internalstructIdeRegs{publicbytebFeaturesReg;publicbytebSectorCountReg;publicb

6、ytebSectorNumberReg;publicbytebCylLowReg;publicbytebCylHighReg;publicbytebDriveHeadReg;publicbytebCommandReg;publicbytebReserved;}[StructLayout(LayoutKind.Sequential,Pack=1)]internalstructSendCmdInParams本文章转载www.tz65.com发布,转载请保留版权本文章转载www.68598.com发布,转载请保留版权{publicuintcBufferSize;publicId

7、eRegsirDriveRegs;publicbytebDriveNumber;[MarshalAs(UnmanagedType.ByValArray,SizeConst=3)]publicbyte[]bReserved;[MarshalAs(UnmanagedType.ByValArray,SizeConst=4)]publicuint[]dwReserved;publicbytebBuffer;}[StructLayout(LayoutKind.Sequential,Pack=1)]internalstructDriver

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。