PerfStartProviderEx function (perflib.h)

Registers the provider.


ULONG PerfStartProviderEx(
  [in]           LPGUID                 ProviderGuid,
  [in, optional] PPERF_PROVIDER_CONTEXT ProviderContext,
  [out]          PHANDLE                Provider


[in] ProviderGuid

GUID that uniquely identifies the provider. The providerGuid attribute of the provider element specifies the GUID.

[in, optional] ProviderContext

A PERF_PROVIDER_CONTEXT structure that contains pointers to the control callback, memory management routines, and context information.

[out] Provider

Handle to the provider. You must call PerfStopProvider to release resources associated with the handle.

Return value

If the function succeeds, it returns ERROR_SUCCESS.

If the function fails, the return value is a system error code.


The CounterInitialize function calls this function; do not call this function directly.

Windows Vista:  The PerfAutoInitialize function calls this function.

The CTRPP tool includes this function instead of PerfStartProvider if you use the -MemoryRoutines argument or -NotificationCallback argument when calling CTRPP, or if the callback attribute of the provider element is set to "custom".


Requirement Value
Minimum supported client Windows Vista [desktop apps only]
Minimum supported server Windows Server 2008 [desktop apps only]
Target Platform Windows
Header perflib.h
Library Advapi32.lib
DLL Advapi32.dll

See also