This function reads from the shadow memory of the x86 BIOS emulator.


x86BiosReadMemory (
    USHORT Segment,
    USHORT Offset,
    PVOID Buffer,
    ULONG Size);


The Segment and Offset arguments provide a real-mode address to read from.

The Buffer and Size arguments provide the address and size (in bytes) of a buffer to read into.

Return Value

The function returns zero (STATUS_SUCCESS) for success, else a status code.


It is an error (STATUS_INVALID_PARAMETER) if the function would read beyond 1MB, i.e., if adding the Size to the physical address represented by the Segment and Offset exceeds 0x00100000. Otherwise, the function reads the given number of bytes into the given buffer from the real-mode shadow memory, and succeeds. If a byte to be read is not shadowed, it reads as undefined. The read is confined to the given 64KB segment: on reaching the end of the segment, it wraps to the beginning.


The x86BiosReadMemory function is exported by name from the HAL in version 6.0 and higher. It is undocumented.