Fields

media_id: u32,

The current media ID. If the media changes, this value is changed.

removable_media: bool,

true if the media is removable; otherwise, false.

media_present: bool,

true if there is a media currently present in the device

logical_partition: bool,

true if the BlockIoProtocol was produced to abstract partition structures on the disk. false if the BlockIoProtocol was produced to abstract the logical blocks on a hardware device.

read_only: bool,

true if the media is marked read-only otherwise, false. This field shows the read-only status as of the most recent WriteBlocks()

write_caching: bool,

true if the WriteBlocks() function caches write data.

block_size: u32,

The intrinsic block size of the device. If the media changes, then this

io_align: u32,

Supplies the alignment requirement for any buffer used in a data transfer. IoAlign values of 0 and 1 mean that the buffer can be placed anywhere in memory. Otherwise, IoAlign must be a power of 2, and the requirement is that the start address of a buffer must be evenly divisible by IoAlign with no remainder.

last_block: u64,

The last LBA on the device. If the media changes, then this field is updated.

lowest_aligned_lba: u64,
logical_blocks_per_physical_block: u32,
optimal_transfer_length_granularity: u32,