| /** |
| * This file has no copyright assigned and is placed in the Public Domain. |
| * This file is part of the mingw-w64 runtime package. |
| * No warranty is given; refer to the file DISCLAIMER.PD within this package. |
| */ |
| #ifndef _INC_PERFLIB |
| #define _INC_PERFLIB |
| #if (_WIN32_WINNT >= 0x0600) |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| #include <apisetcconv.h> |
| |
| typedef LPVOID (CALLBACK *PERF_MEM_ALLOC)(SIZE_T AllocSize,LPVOID pContext); |
| typedef ULONG (WINAPI *PERFLIBREQUEST)(ULONG RequestCode,PVOID Buffer,ULONG BufferSize); |
| typedef void (CALLBACK *PERF_MEM_FREE)(LPVOID pBuffer,LPVOID pContext); |
| |
| typedef struct _PERF_PROVIDER_CONTEXT { |
| DWORD ContextSize; |
| DWORD Reserved; |
| PERFLIBREQUEST ControlCallback; |
| PERF_MEM_ALLOC MemAllocRoutine; |
| PERF_MEM_FREE MemFreeRoutine; |
| LPVOID pMemContext; |
| } PERF_PROVIDER_CONTEXT, *PPERF_PROVIDER_CONTEXT; |
| |
| typedef struct _PERF_COUNTER_IDENTITY { |
| GUID CounterSetGuid; |
| ULONG BufferSize; |
| ULONG CounterId; |
| ULONG InstanceId; |
| ULONG MachineOffset; |
| ULONG NameOffset; |
| ULONG Reserved; |
| } PERF_COUNTER_IDENTITY, *PPERF_COUNTER_IDENTITY; |
| |
| typedef struct _PERF_COUNTER_INFO { |
| ULONG CounterId; |
| ULONG Type; |
| ULONGLONG Attrib; |
| ULONG Size; |
| ULONG DetailLevel; |
| LONG Scale; |
| ULONG Offset; |
| } PERF_COUNTER_INFO, *PPERF_COUNTER_INFO; |
| |
| typedef struct _PERF_COUNTERSET_INFO { |
| GUID CounterSetGuid; |
| GUID ProviderGuid; |
| ULONG NumCounters; |
| ULONG InstanceType; |
| } PERF_COUNTERSET_INFO, *PPERF_COUNTERSET_INFO; |
| |
| typedef struct _PERF_COUNTERSET_INSTANCE { |
| GUID CounterSetGuid; |
| ULONG dwSize; |
| ULONG InstanceId; |
| ULONG InstanceNameOffset; |
| ULONG InstanceNameSize; |
| } PERF_COUNTERSET_INSTANCE, *PPERF_COUNTERSET_INSTANCE; |
| |
| WINADVAPI PPERF_COUNTERSET_INSTANCE WINAPI PerfCreateInstance( |
| HANDLE hProvider, |
| LPCGUID CounterSetGuid, |
| LPCWSTR szInstanceName, |
| ULONG dwInstance |
| ); |
| |
| WINADVAPI ULONG WINAPI PerfDecrementULongCounterValue( |
| HANDLE hProvider, |
| PPERF_COUNTERSET_INSTANCE pInstance, |
| ULONG CounterId, |
| ULONG lValue |
| ); |
| |
| WINADVAPI ULONG WINAPI PerfDecrementULongLongCounterValue( |
| HANDLE hProvider, |
| PPERF_COUNTERSET_INSTANCE pInstance, |
| ULONG CounterId, |
| ULONGLONG llValue |
| ); |
| |
| WINADVAPI ULONG WINAPI PerfDeleteInstance( |
| HANDLE hProvider, |
| PPERF_COUNTERSET_INSTANCE InstanceBlock |
| ); |
| |
| WINADVAPI ULONG WINAPI PerfIncrementULongCounterValue( |
| HANDLE hProvider, |
| PPERF_COUNTERSET_INSTANCE pInstance, |
| ULONG CounterId, |
| ULONG lValue |
| ); |
| |
| WINADVAPI ULONG WINAPI PerfIncrementULongLongCounterValue( |
| HANDLE hProvider, |
| PPERF_COUNTERSET_INSTANCE pInstance, |
| ULONG CounterId, |
| ULONGLONG llValue |
| ); |
| |
| WINADVAPI PPERF_COUNTERSET_INSTANCE WINAPI PerfQueryInstance( |
| HANDLE hProvider, |
| LPCGUID CounterSetGuid, |
| LPCWSTR szInstance, |
| ULONG dwInstance |
| ); |
| |
| WINADVAPI ULONG WINAPI PerfSetCounterRefValue( |
| HANDLE hProvider, |
| PPERF_COUNTERSET_INSTANCE pInstance, |
| ULONG CounterId, |
| PVOID lpAddr |
| ); |
| |
| WINADVAPI ULONG WINAPI PerfSetCounterSetInfo( |
| HANDLE hProvider, |
| PPERF_COUNTERSET_INFO pTemplate, |
| ULONG dwTemplateSize |
| ); |
| |
| WINADVAPI ULONG WINAPI PerfSetULongCounterValue( |
| HANDLE hProvider, |
| PPERF_COUNTERSET_INSTANCE pInstance, |
| ULONG CounterId, |
| ULONG lValue |
| ); |
| |
| WINADVAPI ULONG WINAPI PerfSetULongLongCounterValue( |
| HANDLE hProvider, |
| PPERF_COUNTERSET_INSTANCE pInstance, |
| ULONG CounterId, |
| ULONGLONG llValue |
| ); |
| |
| WINADVAPI ULONG WINAPI PerfStartProvider( |
| LPGUID ProviderGuid, |
| PERFLIBREQUEST ControlCallback, |
| HANDLE *phProvider |
| ); |
| |
| WINADVAPI ULONG WINAPI PerfStartProviderEx( |
| LPGUID ProviderGuid, |
| PPERF_PROVIDER_CONTEXT ProviderContext, |
| HANDLE *phProvider |
| ); |
| |
| WINADVAPI ULONG WINAPI PerfStopProvider( |
| HANDLE hProvider |
| ); |
| |
| #ifdef __cplusplus |
| } |
| #endif |
| |
| #endif /*(_WIN32_WINNT >= 0x0600)*/ |
| #endif /*_INC_PERFLIB*/ |