WMI actually takes a significant portion of its data from the registry. The system stores a lot of information about the system there and, obviously, reacts very quickly.
If you want to lock the motherboard, processor, and / or hard drive for licensing reasons, check the following values:
HKLM \ HARDWARE \ DESCRIPTION \ System \ BIOS \ BaseBoardManufacturer
HKLM \ HARDWARE \ DESCRIPTION \ System \ BIOS \ BaseBoardProduct
HKLM \ HARDWARE \ DESCRIPTION \ System \ CentralProcessor \ 0 \ Identifier
HKLM \ HARDWARE \ DESCRIPTION \ System \ CentralProcessor \ 0 \ ProcessorNameString
HKLM \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ DigitalProductId
HKLM \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ ProductId
HKLM \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ BuildLabEx
HKLM \ HARDWARE \ DESCRIPTION \ System \ MultifunctionAdapter \ 0 \ DiskController \ 0 \ DiskPeripheral \ 0
(may be typical for boards using RAID)
If you want to get a serial drive without WMI, call the DeviceIoControl call on the physical device. Sample code in VB.NET: http://www.dreamincode.net/code/snippet429.htm
source share