Not many people know about the Windows
Management Instrumentation (WMI) but it is very useful for getting device
information.
Self Monitoring, Analysis and
Reporting Technology
Some IDE disk drives have SMART (Self Monitoring, Analysis and
Reporting Technology) capabilities built into them. It is a standard developed
by Compaq Computer Corporation and Microsoft Corporation. Microsoft provides an
interface using SMART but seems to have discontinued support of it.
Hopefully it is still useful. See:
Processor Serial Numbers
Intel provides serial numbers for some of it's processors. The following are
the most relevant documentation direct from Intel for getting the Serial Number
direct from the processor.
I am not sure if any AMD Processors have a serial number, but for use of the
CPUID instruction with AMD Processors, there is some sample code at the bottom
of the following page:
For use of the CPUID instruction with IBM Processors:
Windows 9X Disk Drive I/O
Using the Windows NT operating system and NT types of operating systems, a
drive (floppy, hard, CD-ROM etc.) can be opened as a volume using CreateFile
as described in the documentation of CreateFile.
For Windows 95/98/Me operating systems a "system VxD" must be used in
a CreateFile;
see the following articles, and search the SDK documentation and the KB articles
for "VWIN32" for more help.
Windows NT/2000/XP
October 1997 MSJ Under the Hood: "Win32 exceptions and how they correlate to hardware exceptions"
Beyond Logic has numerous articles
about Interfacing the PC; some about Windows, some about Linux and many that are
about hardware that are independent of operating system.
Run any Ring 0 code
from a Win32 application on Windows NT
Miscellaneous
To read hard drive manufacturing information see the Reading
Hard Drive Manufacturing Information article in the CodeGuru web site. I do
not know what interface it uses but it can be used by an NT user without
Administrator privileges, which is an advantage since only read access is used.
The article says that the code was contributed by the www.internals.com
web site; that web site does have a lot of that kind of stuff.
For Intel processor information you can go direct to the source; Intel's
Developer Site.
For some interesting electronics projects see Hans Wedemeyer's Projects, Code and More
web site.
See
Sysinternals for more
hardware-related and low-level software.