Share via


IeXdi2Mem::SearchMemoryX (Windows Embedded CE 6.0)

1/5/2010

This method searches memory for a block that matches a given sequence.

Syntax

HRESULT SearchMemoryX(
  [in] DWORD dwCpuNum,
  [in] LINEAR_MEM_MAP_TYPE lmt,
  [in] ADDRESS_TYPE AddressRangeStart,
  [in] ADDRESS_TYPE AddressRangeEnd,
  [in] DWORD dwNbElem,
  [in] BYTE bAccessWidthInBytes,
  [in, size_is(dwNbElem* bAccessWidthInBytes)] BYTE* pbSequenceToSearch,
  [out] ADDRESS_TYPE** ppAddressFound
);

Parameters

  • dwCpuNum
    CPU number.

    This parameter should be 0 if this is not a symmetric multi-processor (SMP). Otherwise, assign dwCpuNum a value between 0 and n-1, where n is the CPU number in the SMP system.

  • lmt
    Linear memory map type.

    The following memory map types are used by convention:

    Value Description

    LMM_VIRT, 0

    Virtual memory

    LMM_PHYS, 1

    Physical memory

    LMM_IO, 2

    Peripheral I/O

    3 and higher

    Free for custom use

  • AddressRangeStart
    Starting address of the memory block to be searched on the target device.
  • AddressRangeEnd
    Ending address of the memory block to be searched on the target device.
  • *dwNbElem   *
    Number of elements of bAccessWidthInBytes to be searched.
  • bAccessWidthInBytes
    Data width in bytes, where byte=1, word=2, dword=4, and so on.
  • pbSequenceToSearch
    Buffer containing the sequence to search.

    pbSequenceToSearch must be large enough to hold dwNbElem elements.

    Note

    The server should handle sequence buffers of at least 1 KB.

  • ppAddressFound
    Pointer to first found address, if found. NULL if not found.

    The buffer for this value is allocated by CoTaskMemAlloc.

Return Value

The following table shows return values for this method.

Value Description

S_OK

Indicates the function was successful.

E_FAIL

Indicates an unspecified failure.

E_OUTOFMEMORY

Indicates an out of memory error.

E_INVALIDARG

Indicates one or more invalid arguments.

EXDI_E_COMMUNICATION

Indicates a communication error between host driver and debugging target.

EXDI_E_ACCESSVIOLATION

Indicates an access violation occurred on at least one element in the address range specified by the operation.

Remarks

To avoid resource leaking, use CoTaskMemFree to free the task memory used by the buffer for ppAddressFound.

Requirements

Header eXDI2.h
Library ole32.lib, oleaut32.lib
Windows Embedded CE Windows CE 5.0 and later

See Also

Reference

IeXdi2Mem
IeXDI2 Interfaces