extern struct BlockMedia [src]
Fields
media_id: u32The current media ID. If the media changes, this value is changed.
removable_media: booltrue if the media is removable; otherwise, false.
media_present: booltrue if there is a media currently present in the device
logical_partition: booltrue if the BlockIo was produced to abstract
partition structures on the disk. false if the BlockIo was
produced to abstract the logical blocks on a hardware device.
read_only: booltrue if the media is marked read-only otherwise, false. This field
shows the read-only status as of the most recent WriteBlocks()
write_caching: booltrue if the WriteBlocks() function caches write data.
block_size: u32The intrinsic block size of the device. If the media changes, then this
io_align: u32Supplies 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: u64The 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
Source
pub const BlockMedia = extern struct {
/// The current media ID. If the media changes, this value is changed.
media_id: u32,
/// `true` if the media is removable; otherwise, `false`.
removable_media: bool,
/// `true` if there is a media currently present in the device
media_present: bool,
/// `true` if the `BlockIo` was produced to abstract
/// partition structures on the disk. `false` if the `BlockIo` was
/// produced to abstract the logical blocks on a hardware device.
logical_partition: bool,
/// `true` if the media is marked read-only otherwise, `false`. This field
/// shows the read-only status as of the most recent `WriteBlocks()`
read_only: bool,
/// `true` if the WriteBlocks() function caches write data.
write_caching: bool,
/// The intrinsic block size of the device. If the media changes, then this
// field is updated. Returns the number of bytes per logical block.
block_size: 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.
io_align: u32,
/// The last LBA on the device. If the media changes, then this field is updated.
last_block: u64,
// Revision 2
lowest_aligned_lba: u64,
logical_blocks_per_physical_block: u32,
optimal_transfer_length_granularity: u32,
}