如何得到硬盘序列号C#Word下载.docx
- 文档编号:17455296
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:15
- 大小:219.39KB
如何得到硬盘序列号C#Word下载.docx
《如何得到硬盘序列号C#Word下载.docx》由会员分享,可在线阅读,更多相关《如何得到硬盘序列号C#Word下载.docx(15页珍藏版)》请在冰豆网上搜索。
,hdd.SerialNumber>
RTCrpUDGiT
Firmware:
hdd.Firmware>
Capacity:
{0}M"
hdd.Capacity>
5PCzVD7HxA
下面是全部代码:
usingSystem。
usingSystem.Runtime.InteropServices。
usingSystem.Text。
namespaceSunmast.Hardware
{
[Serializable]
publicstructHardDiskInfo
///<
summary>
///型号
/summary>
publicstringModuleNumber。
///固件版本
publicstringFirmware。
///序列号
publicstringSerialNumber。
///容量,以M为单位
publicuintCapacity。
}
#regionInternalStructs
[StructLayout(LayoutKind.Sequential,Pack=1>
]
internalstructGetVersionOutParams
publicbytebVersion。
publicbytebRevision。
publicbytebReserved。
publicbytebIDEDeviceMap。
publicuintfCapabilities。
[MarshalAs(UnmanagedType.ByValArray,SizeConst=4>
publicuint[]dwReserved。
//Forfutureuse.
internalstructIdeRegs
publicbytebFeaturesReg。
publicbytebSectorCountReg。
publicbytebSectorNumberReg。
publicbytebCylLowReg。
publicbytebCylHighReg。
publicbytebDriveHeadReg。
publicbytebCommandReg。
internalstructSendCmdInParams
publicuintcBufferSize。
publicIdeRegsirDriveRegs。
publicbytebDriveNumber。
[MarshalAs(UnmanagedType.ByValArray,SizeConst=3>
publicbyte[]bReserved。
publicbytebBuffer。
internalstructDriverStatus
publicbytebDriverError。
publicbytebIDEStatus。
[MarshalAs(UnmanagedType.ByValArray,SizeConst=2>
internalstructSendCmdOutParams
publicDriverStatusDriverStatus。
publicIdSectorbBuffer。
[StructLayout(LayoutKind.Sequential,Pack=1,Size=512>
]jLBHrnAILg
internalstructIdSector
publicushortwGenConfig。
publicushortwNumCyls。
publicushortwReserved。
publicushortwNumHeads。
publicushortwBytesPerTrack。
publicushortwBytesPerSector。
publicushortwSectorsPerTrack。
publicushort[]wVendorUnique。
[MarshalAs(UnmanagedType.ByValArray,SizeConst=20>
]xHAQX74J0X
publicbyte[]sSerialNumber。
publicushortwBufferType。
publicushortwBufferSize。
publicushortwECCSize。
[MarshalAs(UnmanagedType.ByValArray,SizeConst=8>
publicbyte[]sFirmwareRev。
[MarshalAs(UnmanagedType.ByValArray,SizeConst=40>
]LDAYtRyKfE
publicbyte[]sModelNumber。
publicushortwMoreVendorUnique。
publicushortwDoubleWordIO。
publicushortwCapabilities。
publicushortwReserved1。
publicushortwPIOTiming。
publicushortwDMATiming。
publicushortwBS。
publicushortwNumCurrentCyls。
publicushortwNumCurrentHeads。
publicushortwNumCurrentSectorsPerTrack。
publicuintulCurrentSectorCapacity。
publicushortwMultSectorStuff。
publicuintulTotalAddressableSectors。
publicushortwSingleWordDMA。
publicushortwMultiWordDMA。
[MarshalAs(UnmanagedType.ByValArray,SizeConst=128>
]Zzz6ZB2Ltk
#endregion
///ATAPI驱动器相关
publicclassAtapiDevice
#regionDllImport
[DllImport("
kernel32.dll"
SetLastError=true>
staticexternintCloseHandle(IntPtrhObject>
staticexternIntPtrCreateFile(
stringlpFileName,
uintdwDesiredAccess,
uintdwShareMode,
IntPtrlpSecurityAttributes,
uintdwCreationDisposition,
uintdwFlagsAndAttributes,
IntPtrhTemplateFile>
>
staticexternintDeviceIoControl(
IntPtrhDevice,
uintdwIoControlCode,
IntPtrlpInBuffer,
uintnInBufferSize,
refGetVersionOutParamslpOutBuffer,
uintnOutBufferSize,
refuintlpBytesReturned,
[Out]IntPtrlpOverlapped>
refSendCmdInParamslpInBuffer,
refSendCmdOutParamslpOutBuffer,
constuintDFP_GET_VERSION=0x00074080。
constuintDFP_SEND_DRIVE_COMMAND=0x0007c084。
constuintDFP_RECEIVE_DRIVE_DATA=0x0007c088。
constuintGENERIC_READ=0x80000000。
constuintGENERIC_WRITE=0x40000000。
constuintFILE_SHARE_READ=0x00000001。
constuintFILE_SHARE_WRITE=0x00000002。
constuintCREATE_NEW=1。
constuintOPEN_EXISTING=3。
#regionGetHddInfo
///获得硬盘信息
paramname="
driveIndex"
硬盘序号<
/param>
returns>
硬盘信息<
/returns>
remarks>
///参考lu0的文章:
http:
//lu0s1.3322.org/App/2k1103.html
///bysunmastforeveryone
///thankslu0forhisgreatworks
///在Windows98/ME中,S.M.A.R.T并不缺省安装,请将SMARTVSD.VXD拷贝到%SYSTEM%\IOSUBSYS目录下。
dvzfvkwMI1
///在Windows2000/2003下,需要Administrators组的权限。
/remarks>
example>
///AtapiDevice.GetHddInfo(>
/example>
publicstaticHardDiskInfoGetHddInfo(bytedriveIndex>
rqyn14ZNXI
switch(Environment.OSVersion.Platform>
casePlatformID.Win32Windows:
returnGetHddInfo9x(driveIndex>
casePlatformID.Win32NT:
returnGetHddInfoNT(driveIndex>
casePlatformID.Win32S:
thrownewNotSupportedException("
Win32sisnotsupported."
EmxvxOtOco
casePlatformID.WinCE:
WinCEisnotsupported."
SixE2yXPq5
default:
UnknownPlatform."
6ewMyirQFL
#regionGetHddInfo9x
privatestaticHardDiskInfoGetHddInfo9x(bytedriveIndex>
kavU42VRUs
GetVersionOutParamsvers=newGetVersionOutParams(>
y6v3ALoS89
SendCmdInParamsinParam=newSendCmdInParams(>
SendCmdOutParamsoutParam=newSendCmdOutParams(>
M2ub6vSTnP
uintbytesReturned=0。
IntPtrhDevice=CreateFile(
@"
\\.\Smartvsd"
0,
IntPtr.Zero,
CREATE_NEW,
IntPtr.Zero>
if(hDevice==IntPtr.Zero>
thrownewException("
Opensmartvsd.vxdfailed."
if(0==DeviceIoControl(
hDevice,
DFP_GET_VERSION,
refvers,
(uint>
Marshal.SizeOf(vers>
refbytesReturned,
CloseHandle(hDevice>
DeviceIoControlfailed:
DFP_GET_VERSION"
0YujCfmUCw
//IfIDEidentifycommandnotsupported,fails
if(0==(vers.fCapabilities&
1>
Error:
IDEidentifycommandnotsupported."
eUts8ZQVRd
if(0!
=(driveIndex&
inParam.irDriveRegs.bDriveHeadReg=0xb0。
else
inParam.irDriveRegs.bDriveHeadReg=0xa0。
=(vers.fCapabilities&
(16>
driveIndex>
sQsAEJkW5T
//Wedon'
'
tdetectaATAPIdevice.
thrownewException(string.Format("
Drive{0}isaATAPIdevice,wedon'
tdetectit"
driveIndex+1>
GMsIasNXkA
inParam.irDriveRegs.bCommandReg=0xec。
inParam.bDriveNumber=driveIndex。
inParam.irDriveRegs.bSectorCountReg=1。
inParam.irDriveRegs.bSectorNumberReg=1。
inParam.cBufferSize=512。
DFP_RECEIVE_DRIVE_DATA,
refinParam,
Marshal.SizeOf(inParam>
refoutParam,
Marshal.SizeOf(outParam>
DFP_RECEIVE_DRIVE_DATA"
TIrRGchYzg
returnGetHardDiskInfo(outParam.bBuffer>
#regionGetHddInfoNT
privatestaticHardDiskInfoGetHddInfoNT(bytedriveIndex>
7EqZcWLZNX
lzq7IGf02E
zvpgeqJ1hk
//WestartinNT/Win2000
string.Format(@"
\\.\PhysicalDrive{0}"
driveIndex>
GENERIC_READ|GENERIC_WRITE,
FILE_SHARE_READ|FILE_SHARE_WRITE,
OPEN_EXISTING,
CreateFilefaild."
Drive{0}maynotexists."
NrpoJac3v1
1nowfTG4KI
//IdentifytheIDEdrives
inParam.irDriveRegs.bDriveHeadReg=0xa0。
fjnFLDa5Zo
tdetectit."
tfnNhnE6e5
refbytesR
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 如何 得到 硬盘 序列号 C#