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

IeXdiServer

 Last updated on Friday, October 08, 2004

© 1992-2003 Microsoft Corporation. All rights reserved.