Calculates a SHA-1 hash of a data block referenced by a linear address.
PPS_ENGINE pEngine
An opaque handle to an engine created by the EngCreateEngine function.
uint64_t PageTableAddress
The target page table root address. This page table is used to perform the page walk for the given address. The currently loaded page table address is in the CR3 register.
uint64_t Address
The linear address of the data to be hashed.
uint64_t cbToRead
Specifies how many bytes should be hashed.
PPS_SHA1_HASH pSha1Hash
The buffer that stores the hash data.
uint64_t* pcbRead
Returns the number of bytes that were actually hashed.
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_INVALID_TRANSLATION0xC0000021 | Linear to physical address tranlation failed. |
| PULSE_STATUS_DEVICE_CONNECTION_LOST0xC0000308 | The connection to the transport was lost. Try restarting the engine or the transport. |
Partial reads may occur when address translation is not available beyond a certain point.