Calling of GetVolumeInformation returns empty serial number
Durumdara
durumdara at gmail.com
Tue Nov 7 02:58:27 EST 2017
Hi!
Windows 10, Python 3.6.
I want to get the serial number of the drives (without external modules
like Win32 or WMI).
It is needed for identification of removable devices (like USB external
drives).
Somewhere I saw this code:
def GetVolumeID(Drive):
import ctypes
kernel32 = ctypes.windll.kernel32
volumeNameBuffer = ctypes.create_unicode_buffer(1024)
fileSystemNameBuffer = ctypes.create_unicode_buffer(1024)
serial_number = None
max_component_length = None
file_system_flags = None
rc = kernel32.GetVolumeInformationW(
ctypes.c_wchar_p(Drive),
volumeNameBuffer,
ctypes.sizeof(volumeNameBuffer),
serial_number,
max_component_length,
file_system_flags,
fileSystemNameBuffer,
ctypes.sizeof(fileSystemNameBuffer)
)
return serial_number;
print(GetVolumeID('c:\\'))
This function is working with other values (volumeNameBuffer), but for
serial it returns None.
The serial number is empty.
How to I pass this parameter to I get the value?
The doc said it's LPDWORD (pointer to DWORD):
https://msdn.microsoft.com/en-us/library/windows/desktop/aa364993(v=vs.85).aspx
_Out_opt_ LPDWORD lpVolumeSerialNumber,
Thank you for any advance in this theme!
Best wishes
dd
More information about the Python-list
mailing list