I can help you by providing some important information about the "Win32_DiskDrive WMI class".
copy the following code into a C # project.
public static string HardDiskID() { ManagementClass partionsClass = new ManagementClass("Win32_DiskDrive"); ManagementObjectCollection partions = partionsClass.GetInstances(); string hdd = string.Empty; foreach (ManagementObject partion in partions) { hdd = Convert.ToString(partion["SerialNumber"]); if (hdd != string.Empty) return hdd; } return hdd; }
Note. The string labeled "SerialNumber" can be replaced with the following attributes of the hard drive.
uint16 Availability; uint32 BytesPerSector; uint16 Capabilities[]; string CapabilityDescriptions[]; string Caption; string CompressionMethod; uint32 ConfigManagerErrorCode; boolean ConfigManagerUserConfig; string CreationClassName; uint64 DefaultBlockSize; string Description; string DeviceID; boolean ErrorCleared; string ErrorDescription; string ErrorMethodology; string FirmwareRevision; uint32 Index; datetime InstallDate; string InterfaceType; uint32 LastErrorCode; string Manufacturer; uint64 MaxBlockSize; uint64 MaxMediaSize; boolean MediaLoaded; string MediaType; uint64 MinBlockSize; string Model; string Name; boolean NeedsCleaning; uint32 NumberOfMediaSupported; uint32 Partitions; string PNPDeviceID; uint16 PowerManagementCapabilities[]; boolean PowerManagementSupported; uint32 SCSIBus; uint16 SCSILogicalUnit; uint16 SCSIPort; uint16 SCSITargetId; uint32 SectorsPerTrack; string SerialNumber; uint32 Signature; uint64 Size; string Status; uint16 StatusInfo; string SystemCreationClassName; string SystemName; uint64 TotalCylinders; uint32 TotalHeads; uint64 TotalSectors; uint64 TotalTracks; uint32 TracksPerCylinder
source share