TianoCore EDK2 master
|
#include "WinHost.h"
Go to the source code of this file.
Data Structures | |
struct | WIN_NT_BLOCK_IO_PRIVATE |
Macros | |
#define | WIN_NT_BLOCK_IO_PRIVATE_SIGNATURE SIGNATURE_32 ('N', 'T', 'b', 'k') |
#define | WIN_NT_BLOCK_IO_PRIVATE_DATA_FROM_THIS(a) CR(a, WIN_NT_BLOCK_IO_PRIVATE, EmuBlockIo, WIN_NT_BLOCK_IO_PRIVATE_SIGNATURE) |
Variables | |
EMU_BLOCK_IO_PROTOCOL | gEmuBlockIoProtocol |
EMU_IO_THUNK_PROTOCOL | mWinNtBlockIoThunkIo |
Copyright (c) 2004 - 2018, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
Definition in file WinBlockIo.c.
#define WIN_NT_BLOCK_IO_PRIVATE_DATA_FROM_THIS | ( | a | ) | CR(a, WIN_NT_BLOCK_IO_PRIVATE, EmuBlockIo, WIN_NT_BLOCK_IO_PRIVATE_SIGNATURE) |
Definition at line 27 of file WinBlockIo.c.
#define WIN_NT_BLOCK_IO_PRIVATE_SIGNATURE SIGNATURE_32 ('N', 'T', 'b', 'k') |
Definition at line 10 of file WinBlockIo.c.
EFI_STATUS SetFilePointer64 | ( | IN WIN_NT_BLOCK_IO_PRIVATE * | Private, |
IN INT64 | DistanceToMove, | ||
OUT UINT64 * | NewFilePointer, | ||
IN DWORD | MoveMethod | ||
) |
Definition at line 37 of file WinBlockIo.c.
EFI_STATUS EFIAPI WinNtBlockIoCreateMapping | ( | IN EMU_BLOCK_IO_PROTOCOL * | This, |
IN EFI_BLOCK_IO_MEDIA * | Media | ||
) |
Definition at line 138 of file WinBlockIo.c.
EFI_STATUS WinNtBlockIoError | ( | IN WIN_NT_BLOCK_IO_PRIVATE * | Private | ) |
Definition at line 172 of file WinBlockIo.c.
EFI_STATUS WinNtBlockIoFlushBlocks | ( | IN EMU_BLOCK_IO_PROTOCOL * | This, |
IN OUT EFI_BLOCK_IO2_TOKEN * | Token | ||
) |
Flush the Block Device.
If EFI_DEVICE_ERROR, EFI_NO_MEDIA,_EFI_WRITE_PROTECTED or EFI_MEDIA_CHANGED is returned and non-blocking I/O is being used, the Event associated with this request will not be signaled.
[in] | This | Indicates a pointer to the calling context. |
[in,out] | Token | A pointer to the token associated with the transaction |
EFI_SUCCESS | The flush request was queued if Event is not NULL. All outstanding data was written correctly to the device if the Event is NULL. |
EFI_DEVICE_ERROR | The device reported an error while writing back the data. |
EFI_WRITE_PROTECTED | The device cannot be written to. |
EFI_NO_MEDIA | There is no media in the device. |
EFI_MEDIA_CHANGED | The MediaId is not for the current media. |
EFI_OUT_OF_RESOURCES | The request could not be completed due to a lack of resources. |
Definition at line 414 of file WinBlockIo.c.
EFI_STATUS WinNtBlockIoOpenDevice | ( | IN WIN_NT_BLOCK_IO_PRIVATE * | Private, |
IN EFI_BLOCK_IO_MEDIA * | Media | ||
) |
Definition at line 75 of file WinBlockIo.c.
EFI_STATUS WinNtBlockIoReadBlocks | ( | IN EMU_BLOCK_IO_PROTOCOL * | This, |
IN UINT32 | MediaId, | ||
IN EFI_LBA | Lba, | ||
IN OUT EFI_BLOCK_IO2_TOKEN * | Token, | ||
IN UINTN | BufferSize, | ||
OUT VOID * | Buffer | ||
) |
Read BufferSize bytes from Lba into Buffer.
This function reads the requested number of blocks from the device. All the blocks are read, or an error is returned. If EFI_DEVICE_ERROR, EFI_NO_MEDIA,_or EFI_MEDIA_CHANGED is returned and non-blocking I/O is being used, the Event associated with this request will not be signaled.
[in] | This | Indicates a pointer to the calling context. |
[in] | MediaId | Id of the media, changes every time the media is replaced. |
[in] | Lba | The starting Logical Block Address to read from. |
[in,out] | Token | A pointer to the token associated with the transaction. |
[in] | BufferSize | Size of Buffer, must be a multiple of device block size. |
[out] | 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 read request was queued if Token->Event is not NULL.The data was read correctly from the device if the Token->Event is NULL. |
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 is not for the current media. |
EFI_BAD_BUFFER_SIZE | The BufferSize parameter is not a multiple of the intrinsic 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. |
EFI_OUT_OF_RESOURCES | The request could not be completed due to a lack of resources. |
Definition at line 279 of file WinBlockIo.c.
EFI_STATUS WinNtBlockIoReset | ( | IN EMU_BLOCK_IO_PROTOCOL * | This, |
IN BOOLEAN | ExtendedVerification | ||
) |
Reset the block device hardware.
[in] | This | Indicates a pointer to the calling context. |
[in] | ExtendedVerification | Indicates that the driver may perform a more exhausive verfication operation of the device during reset. |
EFI_SUCCESS | The device was reset. |
EFI_DEVICE_ERROR | The device is not functioning properly and could not be reset. |
Definition at line 436 of file WinBlockIo.c.
EFI_STATUS EFIAPI WinNtBlockIoThunkClose | ( | IN EMU_IO_THUNK_PROTOCOL * | This | ) |
Definition at line 518 of file WinBlockIo.c.
EFI_STATUS EFIAPI WinNtBlockIoThunkOpen | ( | IN EMU_IO_THUNK_PROTOCOL * | This | ) |
Definition at line 463 of file WinBlockIo.c.
EFI_STATUS WinNtBlockIoWriteBlocks | ( | IN EMU_BLOCK_IO_PROTOCOL * | This, |
IN UINT32 | MediaId, | ||
IN EFI_LBA | Lba, | ||
IN OUT EFI_BLOCK_IO2_TOKEN * | Token, | ||
IN UINTN | BufferSize, | ||
IN VOID * | Buffer | ||
) |
Write BufferSize bytes from Lba into Buffer.
This function writes the requested number of blocks to the device. All blocks are written, or an error is returned.If EFI_DEVICE_ERROR, EFI_NO_MEDIA, EFI_WRITE_PROTECTED or EFI_MEDIA_CHANGED is returned and non-blocking I/O is being used, the Event associated with this request will not be signaled.
[in] | This | Indicates a pointer to the calling context. |
[in] | MediaId | The media ID that the write request is for. |
[in] | Lba | The starting logical block address to be written. The caller is responsible for writing to only legitimate locations. |
[in,out] | Token | A pointer to the token associated with the transaction. |
[in] | BufferSize | Size of Buffer, must be a multiple of device block size. |
[in] | Buffer | A pointer to the source buffer for the data. |
EFI_SUCCESS | The write request was queued if Event is not NULL. The data was written correctly to the device if the Event is NULL. |
EFI_WRITE_PROTECTED | The device can not be written to. |
EFI_NO_MEDIA | There is no media in the device. |
EFI_MEDIA_CHANGED | The MediaId does not match the current device. |
EFI_DEVICE_ERROR | The device reported an error while performing the write. |
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. |
EFI_OUT_OF_RESOURCES | The request could not be completed due to a lack of resources. |
Definition at line 349 of file WinBlockIo.c.
EFI_STATUS WinNtSignalToken | ( | IN OUT EFI_BLOCK_IO2_TOKEN * | Token, |
IN EFI_STATUS | Status | ||
) |
Definition at line 229 of file WinBlockIo.c.
EMU_BLOCK_IO_PROTOCOL gEmuBlockIoProtocol |
Definition at line 453 of file WinBlockIo.c.
EMU_IO_THUNK_PROTOCOL mWinNtBlockIoThunkIo |
Definition at line 537 of file WinBlockIo.c.