Reads MMIO contents using a physical address.
PPS_ENGINE pEngine
An opaque handle to an engine created by the EngCreateEngine function.
uint64_t Address
The physical address from which to read.
uint8_t AccessSize
The size of the access that will be used for MMIO reads. Valid values are 1, 2, 4 and 8.
PS_CACHE_TYPE *pCacheType
The memory caching type that will be used for MMIO reads. Receives the effective memory-caching type used for the operation. See Remarks for more information.
void* pBuffer
The buffer that stores the read data.
uint64_t cbToRead
Specifies how many bytes should be read.
uint64_t* pcbRead
Returns the number of bytes that were actually read.
If the function succeeds, the return value is PULSE_STATUS_SUCCESS.
If it fails, it returns one of the PULSE_STATUS values. Possible return codes include, but are not limited to, the following:
| PULSE_STATUS_PARTIAL_READ0x00000001 | Only a portion of memory was read. Check the *pcbRead parameter value to determine how many bytes were read. |
| PULSE_STATUS_INSUFFICIENT_RESOURCES0xC0000002 | One of the memory allocations failed during initialization. |
| PULSE_STATUS_READ_FAILED0xC0000003 | Transport communication failed during a read operation. |
| PULSE_STATUS_WRITE_FAILED0xC0000004 | Transport communication failed during a write operation. |
| PULSE_STATUS_TIMEOUT0xC0000007 | Might happen if
|
| PULSE_STATUS_INVALID_PARAMETER0xC0000010 | Might happen if
|
| PULSE_STATUS_INVALID_PACKET0xC0000031 | An invalid or unexpected packet was received in response. |
| PULSE_STATUS_DEVICE_CONNECTION_LOST0xC0000308 | The connection to the transport was lost. Try restarting the engine or the transport. |
The maximum number of bytes that can be read in a single request can be determined using the PsRequestGetMaxReadMmioPhysicalBufferSize function. If a larger amount is specified, this function performs multiple requests to the debug target.
The function attempts to use the memory caching type specified by pCacheType, but platform settings may override it. The effective memory caching type used for the operation is returned through pCacheType