ReactOS 0.4.16-dev-1946-g52006dd
perflib.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2017 Austin English
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
17 */
18
19#ifndef _PERFLIB_H_
20#define _PERFLIB_H_
21
22#ifdef __cplusplus
23extern "C" {
24#endif
25
26typedef void * (__WINE_ALLOC_SIZE(1) CDECL * PERF_MEM_ALLOC)(SIZE_T,void*);
27typedef void (CDECL * PERF_MEM_FREE)(LPVOID,LPVOID);
29
36
37/* PERF_COUNTERSET_INFO InstanceType values. */
38#define PERF_COUNTERSET_FLAG_MULTIPLE 0x00000002
39#define PERF_COUNTERSET_FLAG_AGGREGATE 0x00000004
40#define PERF_COUNTERSET_FLAG_HISTORY 0x00000008
41#define PERF_COUNTERSET_FLAG_INSTANCE 0x00000010
42
43#define PERF_COUNTERSET_SINGLE_INSTANCE 0
44#define PERF_COUNTERSET_MULTI_INSTANCES PERF_COUNTERSET_FLAG_MULTIPLE
45#define PERF_COUNTERSET_SINGLE_AGGREGATE PERF_COUNTERSET_FLAG_AGGREGATE
46#define PERF_COUNTERSET_MULTI_AGGREGATE (PERF_COUNTERSET_FLAG_AGGREGATE | PERF_COUNTERSET_FLAG_MULTIPLE)
47#define PERF_COUNTERSET_SINGLE_AGGREGATE_HISTORY (PERF_COUNTERSET_FLAG_HISTORY | PERF_COUNTERSET_SINGLE_AGGREGATE)
48#define PERF_COUNTERSET_INSTANCE_AGGREGATE (PERF_COUNTERSET_MULTI_AGGREGATE | PERF_COUNTERSET_FLAG_INSTANCE)
49
57
58typedef struct _PERF_COUNTER_INFO {
67
68/* PERF_COUNTER_INFO Attrib flags. */
69#define PERF_ATTRIB_BY_REFERENCE 0x00000001
70#define PERF_ATTRIB_NO_DISPLAYABLE 0x00000002
71#define PERF_ATTRIB_NO_GROUP_SEPARATOR 0x00000004
72#define PERF_ATTRIB_DISPLAY_AS_REAL 0x00000008
73#define PERF_ATTRIB_DISPLAY_AS_HEX 0x00000010
74
75typedef struct _PROVIDER_CONTEXT {
79 PERF_MEM_ALLOC MemAllocRoutine;
83
93
94#define PERF_WILDCARD_COUNTER 0xFFFFFFFF
95#define PERF_WILDCARD_INSTANCE L"*"
96
97typedef struct _PERF_DATA_HEADER {
105
113
118
119#ifdef __cplusplus
120} /* extern "C" */
121#endif
122
123#endif /* _PERFLIB_H_ */
#define CDECL
Definition: compat.h:29
unsigned long DWORD
Definition: ntddk_ex.h:95
long LONG
Definition: pedump.c:60
ULONG WINAPI PerfStartProvider(GUID *, PERFLIBREQUEST, HANDLE *)
Definition: main.c:340
ULONG WINAPI PerfStopProvider(HANDLE)
Definition: main.c:380
ULONG(WINAPI * PERFLIBREQUEST)(ULONG, PVOID, ULONG)
Definition: perflib.h:28
struct _PERF_COUNTERSET_INSTANCE PERF_COUNTERSET_INSTANCE
ULONG WINAPI PerfSetCounterSetInfo(HANDLE, PERF_COUNTERSET_INFO *, ULONG)
Definition: main.c:267
struct _PERF_DATA_HEADER * PPERF_DATA_HEADER
void * __WINE_ALLOC_SIZE(1) CDECL *PERF_MEM_ALLOC)(SIZE_T
Definition: perflib.h:26
struct _PERF_COUNTER_INFO PERF_COUNTER_INFO
struct _PERF_COUNTER_INFO * PPERF_COUNTER_INFO
ULONG WINAPI PerfAddCounters(HANDLE, PERF_COUNTER_IDENTIFIER *, DWORD)
ULONG WINAPI PerfSetCounterRefValue(HANDLE, PERF_COUNTERSET_INSTANCE *, ULONG, void *)
Definition: main.c:312
ULONG WINAPI PerfStartProviderEx(GUID *, PERF_PROVIDER_CONTEXT *, HANDLE *)
Definition: main.c:356
ULONG WINAPI PerfOpenQueryHandle(const WCHAR *, HANDLE *)
struct _PERF_COUNTERSET_INSTANCE * PPERF_COUNTERSET_INSTANCE
struct _PROVIDER_CONTEXT * PPERF_PROVIDER_CONTEXT
ULONG WINAPI PerfQueryCounterData(HANDLE, PERF_DATA_HEADER *, DWORD, DWORD *)
struct _PERF_COUNTER_IDENTIFIER PERF_COUNTER_IDENTIFIER
ULONG WINAPI PerfCloseQueryHandle(HANDLE)
struct _PROVIDER_CONTEXT PERF_PROVIDER_CONTEXT
struct _PERF_DATA_HEADER PERF_DATA_HEADER
void void *typedef void(CDECL * PERF_MEM_FREE)(LPVOID, LPVOID)
Definition: perflib.h:27
PERF_COUNTERSET_INSTANCE *WINAPI PerfCreateInstance(HANDLE, const GUID *, const WCHAR *, ULONG)
Definition: main.c:185
struct _PERF_COUNTER_IDENTIFIER * PPERF_COUNTER_IDENTIFIER
struct _PERF_COUNTERSET_INFO * PPERF_COUNTERSET_INFO
struct _PERF_COUNTERSET_INFO PERF_COUNTERSET_INFO
ULONG WINAPI PerfDeleteInstance(HANDLE, PERF_COUNTERSET_INSTANCE *)
Definition: main.c:248
ULONGLONG Attrib
Definition: perflib.h:61
ULONG DetailLevel
Definition: perflib.h:63
SYSTEMTIME SystemTime
Definition: perflib.h:103
LONGLONG PerfTime100NSec
Definition: perflib.h:101
LONGLONG PerfFreq
Definition: perflib.h:102
LONGLONG PerfTimeStamp
Definition: perflib.h:100
ULONG dwNumCounters
Definition: perflib.h:99
ULONG dwTotalSize
Definition: perflib.h:98
DWORD ContextSize
Definition: perflib.h:76
LPVOID pMemContext
Definition: perflib.h:81
PERF_MEM_FREE MemFreeRoutine
Definition: perflib.h:80
PERFLIBREQUEST ControlCallback
Definition: perflib.h:78
DWORD Reserved
Definition: perflib.h:77
PERF_MEM_ALLOC MemAllocRoutine
Definition: perflib.h:79
int64_t LONGLONG
Definition: typedefs.h:68
ULONG_PTR SIZE_T
Definition: typedefs.h:80
uint32_t ULONG
Definition: typedefs.h:59
uint64_t ULONGLONG
Definition: typedefs.h:67
#define WINAPI
Definition: msvc.h:6
__wchar_t WCHAR
Definition: xmlstorage.h:180