perflib.h 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. /**
  2. * This file has no copyright assigned and is placed in the Public Domain.
  3. * This file is part of the mingw-w64 runtime package.
  4. * No warranty is given; refer to the file DISCLAIMER.PD within this package.
  5. */
  6. #ifndef _INC_PERFLIB
  7. #define _INC_PERFLIB
  8. #if (_WIN32_WINNT >= 0x0600)
  9. #ifdef __cplusplus
  10. extern "C" {
  11. #endif
  12. #include <apisetcconv.h>
  13. typedef LPVOID (CALLBACK *PERF_MEM_ALLOC)(SIZE_T AllocSize,LPVOID pContext);
  14. typedef ULONG (WINAPI *PERFLIBREQUEST)(ULONG RequestCode,PVOID Buffer,ULONG BufferSize);
  15. typedef void (CALLBACK *PERF_MEM_FREE)(LPVOID pBuffer,LPVOID pContext);
  16. typedef struct _PERF_PROVIDER_CONTEXT {
  17. DWORD ContextSize;
  18. DWORD Reserved;
  19. PERFLIBREQUEST ControlCallback;
  20. PERF_MEM_ALLOC MemAllocRoutine;
  21. PERF_MEM_FREE MemFreeRoutine;
  22. LPVOID pMemContext;
  23. } PERF_PROVIDER_CONTEXT, *PPERF_PROVIDER_CONTEXT;
  24. typedef struct _PERF_COUNTER_IDENTITY {
  25. GUID CounterSetGuid;
  26. ULONG BufferSize;
  27. ULONG CounterId;
  28. ULONG InstanceId;
  29. ULONG MachineOffset;
  30. ULONG NameOffset;
  31. ULONG Reserved;
  32. } PERF_COUNTER_IDENTITY, *PPERF_COUNTER_IDENTITY;
  33. typedef struct _PERF_COUNTER_INFO {
  34. ULONG CounterId;
  35. ULONG Type;
  36. ULONGLONG Attrib;
  37. ULONG Size;
  38. ULONG DetailLevel;
  39. LONG Scale;
  40. ULONG Offset;
  41. } PERF_COUNTER_INFO, *PPERF_COUNTER_INFO;
  42. typedef struct _PERF_COUNTERSET_INFO {
  43. GUID CounterSetGuid;
  44. GUID ProviderGuid;
  45. ULONG NumCounters;
  46. ULONG InstanceType;
  47. } PERF_COUNTERSET_INFO, *PPERF_COUNTERSET_INFO;
  48. typedef struct _PERF_COUNTERSET_INSTANCE {
  49. GUID CounterSetGuid;
  50. ULONG dwSize;
  51. ULONG InstanceId;
  52. ULONG InstanceNameOffset;
  53. ULONG InstanceNameSize;
  54. } PERF_COUNTERSET_INSTANCE, *PPERF_COUNTERSET_INSTANCE;
  55. WINADVAPI PPERF_COUNTERSET_INSTANCE WINAPI PerfCreateInstance(
  56. HANDLE hProvider,
  57. LPCGUID CounterSetGuid,
  58. LPCWSTR szInstanceName,
  59. ULONG dwInstance
  60. );
  61. WINADVAPI ULONG WINAPI PerfDecrementULongCounterValue(
  62. HANDLE hProvider,
  63. PPERF_COUNTERSET_INSTANCE pInstance,
  64. ULONG CounterId,
  65. ULONG lValue
  66. );
  67. WINADVAPI ULONG WINAPI PerfDecrementULongLongCounterValue(
  68. HANDLE hProvider,
  69. PPERF_COUNTERSET_INSTANCE pInstance,
  70. ULONG CounterId,
  71. ULONGLONG llValue
  72. );
  73. WINADVAPI ULONG WINAPI PerfDeleteInstance(
  74. HANDLE hProvider,
  75. PPERF_COUNTERSET_INSTANCE InstanceBlock
  76. );
  77. WINADVAPI ULONG WINAPI PerfIncrementULongCounterValue(
  78. HANDLE hProvider,
  79. PPERF_COUNTERSET_INSTANCE pInstance,
  80. ULONG CounterId,
  81. ULONG lValue
  82. );
  83. WINADVAPI ULONG WINAPI PerfIncrementULongLongCounterValue(
  84. HANDLE hProvider,
  85. PPERF_COUNTERSET_INSTANCE pInstance,
  86. ULONG CounterId,
  87. ULONGLONG llValue
  88. );
  89. WINADVAPI PPERF_COUNTERSET_INSTANCE WINAPI PerfQueryInstance(
  90. HANDLE hProvider,
  91. LPCGUID CounterSetGuid,
  92. LPCWSTR szInstance,
  93. ULONG dwInstance
  94. );
  95. WINADVAPI ULONG WINAPI PerfSetCounterRefValue(
  96. HANDLE hProvider,
  97. PPERF_COUNTERSET_INSTANCE pInstance,
  98. ULONG CounterId,
  99. PVOID lpAddr
  100. );
  101. WINADVAPI ULONG WINAPI PerfSetCounterSetInfo(
  102. HANDLE hProvider,
  103. PPERF_COUNTERSET_INFO pTemplate,
  104. ULONG dwTemplateSize
  105. );
  106. WINADVAPI ULONG WINAPI PerfSetULongCounterValue(
  107. HANDLE hProvider,
  108. PPERF_COUNTERSET_INSTANCE pInstance,
  109. ULONG CounterId,
  110. ULONG lValue
  111. );
  112. WINADVAPI ULONG WINAPI PerfSetULongLongCounterValue(
  113. HANDLE hProvider,
  114. PPERF_COUNTERSET_INSTANCE pInstance,
  115. ULONG CounterId,
  116. ULONGLONG llValue
  117. );
  118. WINADVAPI ULONG WINAPI PerfStartProvider(
  119. LPGUID ProviderGuid,
  120. PERFLIBREQUEST ControlCallback,
  121. HANDLE *phProvider
  122. );
  123. WINADVAPI ULONG WINAPI PerfStartProviderEx(
  124. LPGUID ProviderGuid,
  125. PPERF_PROVIDER_CONTEXT ProviderContext,
  126. HANDLE *phProvider
  127. );
  128. WINADVAPI ULONG WINAPI PerfStopProvider(
  129. HANDLE hProvider
  130. );
  131. #ifdef __cplusplus
  132. }
  133. #endif
  134. #endif /*(_WIN32_WINNT >= 0x0600)*/
  135. #endif /*_INC_PERFLIB*/