The Block IO protocol is used to abstract block devices like hard drives, DVD-ROMs and floppy drives.
Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
#define BLOCK_IO_PROTOCOL EFI_BLOCK_IO_PROTOCOL_GUID |
Protocol GUID name defined in EFI1.1.
#define EFI_BLOCK_IO_INTERFACE_REVISION EFI_BLOCK_IO_PROTOCOL_REVISION |
Revision defined in EFI1.1.
#define EFI_BLOCK_IO_PROTOCOL_GUID |
Value:
{ \ 0x964e5b21, 0x6459, 0x11d2, {0x8e, 0x39, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x3b } \ }
#define EFI_BLOCK_IO_PROTOCOL_REVISION 0x00010000 |
#define EFI_BLOCK_IO_PROTOCOL_REVISION2 0x00020001 |
#define EFI_BLOCK_IO_PROTOCOL_REVISION3 0x00020031 |
typedef EFI_STATUS(EFIAPI * EFI_BLOCK_FLUSH)(IN EFI_BLOCK_IO_PROTOCOL *This) |
Flush the Block Device.
This | Indicates a pointer to the calling context. |
EFI_SUCCESS | All outstanding data was written to the device | |
EFI_DEVICE_ERROR | The device reported an error while writting back the data | |
EFI_NO_MEDIA | There is no media in the device. |
typedef EFI_BLOCK_IO_PROTOCOL EFI_BLOCK_IO |
Protocol defined in EFI1.1.
typedef struct _EFI_BLOCK_IO_PROTOCOL EFI_BLOCK_IO_PROTOCOL |
typedef EFI_STATUS(EFIAPI * EFI_BLOCK_READ)(IN EFI_BLOCK_IO_PROTOCOL *This, IN UINT32 MediaId, IN EFI_LBA Lba, IN UINTN BufferSize, OUT VOID *Buffer) |
Read BufferSize bytes from Lba into Buffer.
This | Indicates a pointer to the calling context. | |
MediaId | Id of the media, changes every time the media is replaced. | |
Lba | The starting Logical Block Address to read from | |
BufferSize | Size of Buffer, must be a multiple of device block size. | |
Buffer | A pointer to the destination buffer for the data. The caller is responsible for either having implicit or explicit ownership of the buffer. |
EFI_SUCCESS | The data was read correctly from the device. | |
EFI_DEVICE_ERROR | The device reported an error while performing the read. | |
EFI_NO_MEDIA | There is no media in the device. | |
EFI_MEDIA_CHANGED | The MediaId does not matched the current device. | |
EFI_BAD_BUFFER_SIZE | The Buffer was not a multiple of the block size of the device. | |
EFI_INVALID_PARAMETER | The read request contains LBAs that are not valid, or the buffer is not on proper alignment. |
typedef EFI_STATUS(EFIAPI * EFI_BLOCK_RESET)(IN EFI_BLOCK_IO_PROTOCOL *This, IN BOOLEAN ExtendedVerification) |
Reset the Block Device.
This | Indicates a pointer to the calling context. | |
ExtendedVerification | Driver may perform diagnostics on reset. |
EFI_SUCCESS | The device was reset. | |
EFI_DEVICE_ERROR | The device is not functioning properly and could not be reset. |
typedef EFI_STATUS(EFIAPI * EFI_BLOCK_WRITE)(IN EFI_BLOCK_IO_PROTOCOL *This, IN UINT32 MediaId, IN EFI_LBA Lba, IN UINTN BufferSize, IN VOID *Buffer) |
Write BufferSize bytes from Lba into Buffer.
This | Indicates a pointer to the calling context. | |
MediaId | The media ID that the write request is for. | |
Lba | The starting logical block address to be written. The caller is responsible for writing to only legitimate locations. | |
BufferSize | Size of Buffer, must be a multiple of device block size. | |
Buffer | A pointer to the source buffer for the data. |
EFI_SUCCESS | The data was written correctly to the device. | |
EFI_WRITE_PROTECTED | The device can not be written to. | |
EFI_DEVICE_ERROR | The device reported an error while performing the write. | |
EFI_NO_MEDIA | There is no media in the device. | |
EFI_MEDIA_CHNAGED | The MediaId does not matched the current device. | |
EFI_BAD_BUFFER_SIZE | The Buffer was not a multiple of the block size of the device. | |
EFI_INVALID_PARAMETER | The write request contains LBAs that are not valid, or the buffer is not on proper alignment. |