extern structstd.os.uefi.protocol.block_io.BlockIo.BlockMedia[src]

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 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: 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

Source Code

Source code
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,
}