6 block_io protocol, Block_io protocol, Block_io – Intel Extensible Firmware Interface User Manual
Page 401: Block i/oprotocol, Proto, Efi_block_io

Protocols
— Bootable Image Support
Version 1.10
12/01/02
11-41
11.6 BLOCK_IO Protocol
This chapter defines the Block I/O protocol. This protocol is used to abstract mass storage devices
to allow code running in the EFI boot services environment to access them without specific
knowledge of the type of device or controller that manages the device. Functions are defined to
read and write data at a block level from mass storage devices as well as to manage such devices in
the EFI boot services environment.
BLOCK_IO Protocol
Summary
This protocol provides control over block devices.
GUID
#define BLOCK_IO_PROTOCOL \
{ 964e5b21-6459-11d2-8e39-00a0c969723b }
Revision Number
#define EFI_BLOCK_IO_INTERFACE_REVISION
0x00010000
Protocol Interface Structure
typedef struct _EFI_BLOCK_IO {
UINT64
Revision;
EFI_BLOCK_IO_MEDIA
*Media;
EFI_BLOCK_RESET
Reset;
EFI_BLOCK_READ
ReadBlocks;
EFI_BLOCK_WRITE
WriteBlocks;
EFI_BLOCK_FLUSH
FlushBlocks;
} EFI_BLOCK_IO;
Parameters
Revision
The revision to which the block IO interface adheres. All future
revisions must be backwards compatible. If a future version is
not back wards compatible it is not the same GUID.
Media
A pointer to the
EFI_BLOCK_IO_MEDIA
data for this device.
Type
EFI_BLOCK_IO_MEDIA
is defined in “Related
Definitions” below.
Reset
Resets the block device hardware. See the
function
description.
ReadBlocks
Reads the requested number of blocks from the device. See the
function description.