IeXdiServer::ReadVirtualMemory
This method reads a virtual memory block.
HRESULT ReadVirtualMemory(
ADDRESS_TYPE Address,
DWORD dwNbElemToRead,
BYTE bAccessWidth,
BYTE* pbReadBuffer,
DWORD* pdwNbElementEffectRead
);
Parameters
- Address
[in] Starting address of the data buffer to be accessed on the target. - dwNbElemToRead
[in] Number of byDataWidth bits elements to be accessed. - bAccessWidth
[in] Data width in bits. - pbReadBuffer
[out, size_is(dwNbElemToRead * (((bAccessWidth - 1) >> 3) + 1))] Buffer on which the result of the method is written. Must be large enough to hold all elements returned. Elements must be aligned on byte boundary. Bit padding must be added if byDataWidth is not multiple of 8. The server should handle buffers of at least 64 kilobytes (KB). - pdwNbElementEffectRead
[out] Returns the number of elements effectively read. This is used by the client to speed up the process in case of an access violation in the range. If an entire range is not accessible, this returned value should be 0, so there is no need to query the range with smaller granularity.
Return Values
This method has the following return values.
| Return value | Description |
|---|---|
| S_OK | Function is successful. |
| EXDI_E_NOTIMPL | Not implemented. |
| EXDI_E_OUTOFMEMORY | Failed to allocate necessary memory. |
| EXDI_E_ABORT | Operation aborted. |
| EXDI_E_FAIL | Unspecified failure occurred. |
| EXDI_E_COMMUNICATION | Communication error occurred between host driver and target. |
| EXDI_E_INVALIDARG | One or more arguments are invalid. |
| EXDI_E_CANNOTWHILETGTRUNNING | Cannot proceed while target is running. |
| EXDI_E_USEDBYCONCURRENTTHREAD | Cannot proceed immediately because resource is already used by concurrent thread. |
| EXDI_E_ACCESSVIOLATION | Access violation on at least one element in address range specified by the operation. |
Requirements
OS Versions: Windows CE 3.0 and later.
Header: exdi.idl.
See Also
Last updated on Friday, October 08, 2004
© 1992-2003 Microsoft Corporation. All rights reserved.