Share via


IFlexiPTMInfo::GetData (Windows Embedded CE 6.0)

1/5/2010

This method gets the data associated with specified processes, threads, or modules.

Syntax

HRESULT GetData(
  [in]  FLEXI_GETDATA_TYPE
  fgds
,
  [out, size_is(, *pcProcess)] PTM_RAW_DATA** ppdatProcess,
  [out] DWORD* pcProcess,
  [out] DWORD* pcProcessTotal,
  [out, size_is(, *pcThread)] PTM_RAW_DATA** ppdatThread,
  [out] DWORD* pcThread,
  [out] DWORD* pcThreadTotal,
  [out, size_is(,* pcModule)] PTM_RAW_DATA** ppdatModule,
  [out] DWORD* pcModule,
  [out] DWORD* pcModuleTotal
);

Parameters

  • fgds
    Specification of which processes, thread, or module to retrieve.
  • pdatProcess
    Pointer to an array of PTM_RAW_DATA structures that contain process data.

    The buffer for this value is allocated by CoTaskMemAlloc.

  • pcProcess
    Number of processes returned.
  • pcProcessTotal
    Total number of processes.
  • pdatThread
    Pointer to an array of PTM_RAW_DATA structures that contain thread data.

    The buffer for this value is allocated by CoTaskMemAlloc.

  • pcThread
    Number of threads returned.
  • pcThreadTotal
    Total number of threads.
  • pdatModule
    Pointer to an array of PTM_RAW_DATA structures that contain module data.

    The buffer for this value is allocated by CoTaskMemAlloc.

  • pcModule
    Number of modules returned.
  • pcModuleTotal
    Total number of modules.

Return Value

The following table shows return values for this method.

Value Description

S_OK

Indicates the function was successful.

E_INVALIDARG

Indicates one or more invalid arguments.

E_POINTER

Indicates one or more invalid pointer values.

E_OUTOFMEMORY

Indicates an out of memory error.

E_FAIL

Indicates an unspecified failure

Remarks

The method returns data in the PTM_RAW_DATA structure, along with a count of processes, threads, or modules in the pcProcessTotal, pcThreadTotal, and pcModuleTotal parameters.

Each PTM_RAW_DATA consists of an array of bytes that juxtapose all fields.

To avoid resource leaking, use CoTaskMemFree to free the task memory used by the buffers PTM_RAW_DATA.pbRawData.

The following example shows how you might use CoTaskMemFree to release the memory held for the return buffers.

.// Use a utility function
void FreePTMRawData (DWORD cData, PTM_RAW_DATA *pData)
{
    for (DWORD i = 0; i < cData; ++i)
    {
        CoTaskMemFree (pData[i].pbRawData);
    }
    CoTaskMemFree (pData);
}
PTM_RAW_DATA *ppdatProcess, *ppdatThread, *ppdatModule;
DWORD pcProcess, pcThread, pcModule;
DWORD pcProcessTotal, pcThreadTotal, pcModuleTotal;
HRESULT hr = piFlexiPTMInfo->GetData (fgds,
        &ppdatProcess, &pcProcess, &pcProcessTotal,
        &ppdatThread, &pcThread, &cThreadTotal,
        &ppdatModule, &pcModule, &pcModuleTotal);
if (SUCCEEDED (hr))
{
    // Use data...
    
    FreePTMRawData (ppdatProcess, pcProcess);
    ppdatProcess = 0;
    FreePTMRawData (ppdatThread, pcThread);
    ppdatThread = 0;
    FreePTMRawData (ppdatModule, pcModule);
    ppdatModule = 0;
}

Requirements

Header FlexiPMTInfo.h
Windows Embedded CE Windows CE 5.0 and later

See Also

Reference

IFlexiPTMInfo Interface