mirror of
https://github.com/QB64Official/qb64.git
synced 2024-08-22 02:05:08 +00:00
159 lines
3.7 KiB
C
159 lines
3.7 KiB
C
/**
|
|
* 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*/
|