欢迎来到天天文库
浏览记录
ID:13182517
大小:67.00 KB
页数:12页
时间:2018-07-21
《如何得到硬盘序列号[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
此文档下载收益归作者所有