Beispiel #1
0
 def _set_disk_attrttributes(self, attributes, mask):
     set_struct = structures.SET_DISK_ATTRIBUTES(Version=0x28, Persist=constants.TRUE,
                                                 RelinquishOwnership=0, Attributes=attributes,
                                                 AttributesMask=mask,
                                                 Caller=GUID_ZERO)
     io = DeviceIoControl(self._path, True)
     io.ioctl_disk_set_disk_attributes(set_struct)
Beispiel #2
0
 def __init__(self, disk_number):
     super(Disk, self).__init__()
     self._number = disk_number
     self._path = r"\\.\PHYSICALDRIVE{}".format(self._number)
     if not self._is_path_valid(self._path):
         raise RuntimeError("Invalid disk number: {0}".format(self._number))
     self._io = DeviceIoControl(self._path, True)
Beispiel #3
0
 def _filter(volume):
     try:
         actual = DeviceIoControl(volume.DeviceID.rstrip(
             r'\\')).storage_get_device_and_partition_number()
     except WindowsException as e:
         if e.winerror == 1:  # Floppy/CD/..
             return False
     return actual == expected
 def windows():
     from infi.devicemanager import DeviceManager
     from infi.devicemanager.ioctl import DeviceIoControl
     drive_numbers = [
         DeviceIoControl(
             disk_drive.psuedo_device_object).storage_get_device_number()
         for disk_drive in DeviceManager().disk_drives
     ]
     return [
         r"\\.\PHYSICALDRIVE{0}".format(drive_number)
         for drive_number in drive_numbers if drive_number != -1
     ]
Beispiel #5
0
 def get_ioctl_interface(self):
     from infi.devicemanager.ioctl import DeviceIoControl
     return DeviceIoControl(self.get_pdo())
Beispiel #6
0
 def __init__(self, disk, partition, mount_manager=None):
     super(Volume, self).__init__()
     self._disk = disk
     self._partition = partition
     self._mount_manager = mount_manager or MountManager()
     self._io = DeviceIoControl(self._path, False)
Beispiel #7
0
 def resize(self, size_in_bytes):
     return DeviceIoControl(self._path, True,
                            True).ioctl_extend_volume(size_in_bytes)
Beispiel #8
0
 def offline(self):
     return DeviceIoControl(self._path, True, False).ioctl_volume_offline()
Beispiel #9
0
 def _get_device_and_partition_number(self):
     from infi.devicemanager.ioctl import DeviceIoControl
     return DeviceIoControl(
         self._path).storage_get_device_and_partition_number()
Beispiel #10
0
 def __init__(self, disk_number):
     super(Disk, self).__init__()
     self._number = disk_number
     self._path = r"\\.\PHYSICALDRIVE{}".format(self._number)
     self._io = DeviceIoControl(self._path, True)
Beispiel #11
0
 def _filter(volume):
     actual = DeviceIoControl(volume.DeviceID.rstrip(r'\\')).storage_get_device_and_partition_number()
     return actual == expected