How do I get the internal serial number of a USB-Stick or USB-HardDrive in C#?
A solution using Win32 is described here
Edit: the original link seems to have gone missing. The above is a cached copy, and the author also wrote some sample code in VB.Net which is still online here.