/// <summary> /// Function will calculate/read 'Disk geometry' for provided <see cref="SystemVolume"/> /// </summary> /// <param name="device"><see cref="SystemVolume"/> to query</param> /// <returns>Disk geometry information</returns> internal virtual DISK_GEOMETRY_EX GetDriveGeometry(DeviceHandle device) { DeviceIoControl<DISK_GEOMETRY_EX> deviceControl = new DeviceIoControl<DISK_GEOMETRY_EX>(); return deviceControl.GetDiskGeometryEx(device); }
/// <summary> /// Retrieves the device type, device number, and, for a partitionable device, the partition number of a device. /// </summary> /// <param name="device"><see cref="SystemVolume"/> to query</param> /// <returns><see cref="STORAGE_DEVICE_NUMBER"/> structure</returns> internal virtual STORAGE_DEVICE_NUMBER GetDeviceNumber(DeviceHandle device) { DeviceIoControl<STORAGE_DEVICE_NUMBER> deviceControl = new DeviceIoControl<STORAGE_DEVICE_NUMBER>(); return deviceControl.GetDataForDevice(device, IoControlCode.IOCTL_STORAGE_GET_DEVICE_NUMBER); }