I was once looking for getting the HDD serial number without using WMI, and I found it. The code I found and posted on StackOverFlow.com works very well on 32 bit Windows, b
use DeviceIoControl with IOCTL_STORAGE_GET_MEDIA_SERIAL_NUMBER
or check IOCTL_CHANGER_GET_PRODUCT_DATA