diff --git a/windows/winobject/volume.py b/windows/winobject/volume.py index 4f6790d..b9f54cd 100644 --- a/windows/winobject/volume.py +++ b/windows/winobject/volume.py @@ -31,7 +31,7 @@ class LogicalDrive(AutoHandle): :type: :class:`long` or :class:`int` (or subclass) """ - t = winproxy.GetDriveTypeA(self.name) + t = winproxy.GetDriveTypeW(self.name) return self.DRIVE_TYPE.get(t,t) @property @@ -63,7 +63,7 @@ class LogicalDrive(AutoHandle): def _get_handle(self): nt_name = windows.utils.dospath_to_ntpath(self.name) - handle = windows.winproxy.CreateFileA(nt_name, gdef.GENERIC_READ, + handle = windows.winproxy.CreateFileW(nt_name, gdef.GENERIC_READ, gdef.FILE_SHARE_READ, None, gdef.OPEN_EXISTING, gdef.FILE_FLAG_BACKUP_SEMANTICS , None) return handle @@ -75,20 +75,20 @@ def enum_logical_drive(): def get_logical_drive_names(): size = 0x100 - buffer = ctypes.c_buffer(size) - rsize = winproxy.GetLogicalDriveStringsA(0x1000, buffer) - return buffer[:rsize].rstrip(b"\x00").split(b"\x00") + buffer = ctypes.create_unicode_buffer(size) + rsize = winproxy.GetLogicalDriveStringsW(size, buffer) + return buffer[:rsize].rstrip(u"\x00").split(u"\x00") def get_info(drivename): size = 0x1000 - volume_name = ctypes.c_buffer(size) - fs_name = ctypes.c_buffer(size) + volume_name = ctypes.create_unicode_buffer(size) + fs_name = ctypes.create_unicode_buffer(size) flags = DWORD() - winproxy.GetVolumeInformationA(drivename, volume_name, size, None, None, ctypes.byref(flags), fs_name, size) + winproxy.GetVolumeInformationW(drivename, volume_name, size, None, None, ctypes.byref(flags), fs_name, size) return volume_name[:10], fs_name[:10] def query_dos_device(name): size = 0x1000 - buffer = ctypes.c_buffer(size) - rsize = winproxy.QueryDosDeviceA(name, buffer, size) - return buffer[:rsize].rstrip(b"\x00").split(b"\x00") \ No newline at end of file + buffer = ctypes.create_unicode_buffer(size) + rsize = winproxy.QueryDosDeviceW(name, buffer, size) + return buffer[:rsize].rstrip(u"\x00").split(u"\x00") \ No newline at end of file