If you are interesting in Volume serial number you can modify the code as shown below.
Just want to show what is possible with OLEobject. This also works for Windows XP
Sub ShowDriveType(drvpath As String)
// Returns the decimal serial number used to uniquely identify a disk volume.
//http://msdn.microsoft.com/en-us/library/aa265837%28v=vs.60%29.aspx
// Other properties you can use: http://msdn.microsoft.com/en-us/library/aa262390%28v=vs.60%29.aspx
Dim fs As OLEObject
Dim d As OLEObject
Dim s, t As String
Dim sn as uint32
fs = New OLEObject("Scripting.FileSystemObject")
d = fs.GetDrive(fs.GetDriveName(fs.GetAbsolutePathName(drvpath)))
If d.IsReady Then //Returns True if the specified drive is ready;
Select Case d.DriveType
Case 0
t = "Unknown"
Case 1
t = "Removable"
Case 2
t = "Fixed"
Case 3
t = "Network"
Case 4
t = "CD-ROM"
Case 5
t = "RAM Disk"
End Select
// d.SerialNumber Returns the decimal serial number used to uniquely identify a disk volume
sn = d.SerialNumber
s = "Drive " + d.DriveLetter + ": - " + t + EndOfLine.Windows +"Volume SN: "+ Hex(sn)
MsgBox s
End If
fs = Nil
exception err as oleexception
msgbox err.message
End Sub
To confirm the above code shows the correct serial number for disk volume. You can use the windows command: vol
Example: C:\\vol c:
Volume in drive C has no label.
Volume Serial Number is 74E2-AB7A