node-gpuinfo 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/LICENSE +674 -0
  2. package/README.md +336 -0
  3. package/binding.gyp +69 -0
  4. package/build/Release/gpu.exp +0 -0
  5. package/build/Release/gpu.lib +0 -0
  6. package/build/Release/gpu.node +0 -0
  7. package/build/Release/gpu.pdb +0 -0
  8. package/build/binding.sln +19 -0
  9. package/build/gpu.vcxproj +175 -0
  10. package/build/gpu.vcxproj.filters +169 -0
  11. package/example.js +69 -0
  12. package/index.js +33 -0
  13. package/package.json +68 -0
  14. package/src/binding.cpp +201 -0
  15. package/src/gpu_info.c +130 -0
  16. package/src/gpu_info.h +86 -0
  17. package/src/includes/adlx/ADLX.h +367 -0
  18. package/src/includes/adlx/ADLXDefines.h +1345 -0
  19. package/src/includes/adlx/ADLXHelper/ADLXHelper.c +175 -0
  20. package/src/includes/adlx/ADLXHelper/ADLXHelper.h +245 -0
  21. package/src/includes/adlx/ADLXHelper/WinAPIS.c +64 -0
  22. package/src/includes/adlx/ADLXStructures.h +206 -0
  23. package/src/includes/adlx/ADLXVersion.h +18 -0
  24. package/src/includes/adlx/I3DSettings.h +3476 -0
  25. package/src/includes/adlx/I3DSettings1.h +292 -0
  26. package/src/includes/adlx/I3DSettings2.h +317 -0
  27. package/src/includes/adlx/IApplications.h +397 -0
  28. package/src/includes/adlx/IChangedEvent.h +71 -0
  29. package/src/includes/adlx/ICollections.h +325 -0
  30. package/src/includes/adlx/IDesktops.h +918 -0
  31. package/src/includes/adlx/IDisplay3DLUT.h +663 -0
  32. package/src/includes/adlx/IDisplayGamma.h +683 -0
  33. package/src/includes/adlx/IDisplayGamut.h +760 -0
  34. package/src/includes/adlx/IDisplaySettings.h +3476 -0
  35. package/src/includes/adlx/IDisplays.h +2676 -0
  36. package/src/includes/adlx/IDisplays1.h +191 -0
  37. package/src/includes/adlx/IDisplays2.h +188 -0
  38. package/src/includes/adlx/IDisplays3.h +256 -0
  39. package/src/includes/adlx/IGPUAutoTuning.h +460 -0
  40. package/src/includes/adlx/IGPUManualFanTuning.h +1007 -0
  41. package/src/includes/adlx/IGPUManualGFXTuning.h +607 -0
  42. package/src/includes/adlx/IGPUManualPowerTuning.h +340 -0
  43. package/src/includes/adlx/IGPUManualVRAMTuning.h +576 -0
  44. package/src/includes/adlx/IGPUPresetTuning.h +469 -0
  45. package/src/includes/adlx/IGPUTuning.h +1239 -0
  46. package/src/includes/adlx/IGPUTuning1.h +197 -0
  47. package/src/includes/adlx/II2C.h +198 -0
  48. package/src/includes/adlx/ILog.h +72 -0
  49. package/src/includes/adlx/IMultiMedia.h +578 -0
  50. package/src/includes/adlx/IPerformanceMonitoring.h +2520 -0
  51. package/src/includes/adlx/IPerformanceMonitoring1.h +134 -0
  52. package/src/includes/adlx/IPerformanceMonitoring2.h +341 -0
  53. package/src/includes/adlx/IPerformanceMonitoring3.h +199 -0
  54. package/src/includes/adlx/IPowerTuning.h +473 -0
  55. package/src/includes/adlx/IPowerTuning1.h +515 -0
  56. package/src/includes/adlx/ISmartAccessMemory.h +114 -0
  57. package/src/includes/adlx/ISystem.h +1557 -0
  58. package/src/includes/adlx/ISystem1.h +237 -0
  59. package/src/includes/adlx/ISystem2.h +643 -0
  60. package/src/linux/amd_linux.c +269 -0
  61. package/src/linux/intel_linux.c +20 -0
  62. package/src/linux/nvidia_linux.c +257 -0
  63. package/src/macos/amd_mac.c +131 -0
  64. package/src/macos/intel_mac.c +131 -0
  65. package/src/macos/nvidia_mac.c +21 -0
  66. package/src/vendor/amd.c +37 -0
  67. package/src/vendor/intel.c +37 -0
  68. package/src/vendor/nvidia.c +37 -0
  69. package/src/windows/amd_windows.c +468 -0
  70. package/src/windows/intel_windows.c +157 -0
  71. package/src/windows/nvidia_windows.c +252 -0
@@ -0,0 +1,2520 @@
1
+ //
2
+ // Copyright (c) 2021 - 2025 Advanced Micro Devices, Inc. All rights reserved.
3
+ //
4
+ //-------------------------------------------------------------------------------------------------
5
+
6
+ #ifndef ADLX_IPERFORMANCEMONITORING_H
7
+ #define ADLX_IPERFORMANCEMONITORING_H
8
+ #pragma once
9
+
10
+ #include "ADLXStructures.h"
11
+ #include "ICollections.h"
12
+
13
+ //-------------------------------------------------------------------------------------------------
14
+ //IPerformanceMonitoring.h - Interfaces for ADLX Performance Monitoring functionality
15
+ #pragma region IADLXGPUMetricsSupport
16
+ #if defined (__cplusplus)
17
+ namespace adlx
18
+ {
19
+ class ADLX_NO_VTABLE IADLXGPUMetricsSupport : public IADLXInterface
20
+ {
21
+ public:
22
+ ADLX_DECLARE_IID (L"IADLXGPUMetricsSupport")
23
+
24
+ /**
25
+ *@page DOX_IADLXGPUMetricsSupport_IsSupportedGPUUsage IsSupportedGPUUsage
26
+ *@ENG_START_DOX @brief Checks if the GPU usage metric reporting is supported on a GPU. @ENG_END_DOX
27
+ *
28
+ *@syntax
29
+ *@codeStart
30
+ * @ref ADLX_RESULT IsSupportedGPUUsage (adlx_bool* supported)
31
+ *@codeEnd
32
+ *
33
+ *@params
34
+ *@paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of GPU usage metric reporting is returned. The variable is __true__ if the GPU usage metric reporting is supported\. The variable is __false__ if the GPU usage metric reporting is not supported. @ENG_END_DOX}
35
+ *
36
+ *@retvalues
37
+ *@ENG_START_DOX If the state of GPU usage metric reporting is successfully returned, __ADLX_OK__ is returned. <br>
38
+ *If the state of GPU usage metric reporting is not successfully returned, an error code is returned. <br>
39
+ *Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
40
+ *
41
+ *
42
+ *@copydoc IADLXGPUMetricsSupport_REQ_TABLE
43
+ *
44
+ */
45
+ virtual ADLX_RESULT ADLX_STD_CALL IsSupportedGPUUsage (adlx_bool* supported) = 0;
46
+ /**
47
+ *@page DOX_IADLXGPUMetricsSupport_IsSupportedGPUClockSpeed IsSupportedGPUClockSpeed
48
+ *@ENG_START_DOX @brief Checks if the GPU clock speed metric reporting is supported on a GPU. @ENG_END_DOX
49
+ *
50
+ *@syntax
51
+ *@codeStart
52
+ * @ref ADLX_RESULT IsSupportedGPUClockSpeed (adlx_bool* supported)
53
+ *@codeEnd
54
+ *
55
+ *@params
56
+ *@paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of GPU clock speed metric reporting is returned. The variable is __true__ if the GPU clock speed metric reporting is supported\. The variable is __false__ if the GPU clock speed metric reporting is not supported. @ENG_END_DOX}
57
+ *
58
+ *@retvalues
59
+ *@ENG_START_DOX If the state of GPU clock speed metric reporting is successfully returned, __ADLX_OK__ is returned. <br>
60
+ *If the state of GPU clock speed metric reporting is not successfully returned, an error code is returned. <br>
61
+ *Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
62
+ *
63
+ *
64
+ *@copydoc IADLXGPUMetricsSupport_REQ_TABLE
65
+ *
66
+ */
67
+ virtual ADLX_RESULT ADLX_STD_CALL IsSupportedGPUClockSpeed (adlx_bool* supported) = 0;
68
+ /**
69
+ *@page DOX_IADLXGPUMetricsSupport_IsSupportedGPUVRAMClockSpeed IsSupportedGPUVRAMClockSpeed
70
+ *@ENG_START_DOX @brief Checks if the GPU memory clock speed metric reporting is supported on a GPU. @ENG_END_DOX
71
+ *
72
+ *@syntax
73
+ *@codeStart
74
+ * @ref ADLX_RESULT IsSupportedGPUVRAMClockSpeed (adlx_bool* supported)
75
+ *@codeEnd
76
+ *
77
+ *@params
78
+ *@paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of GPU memory clock speed metric reporting is returned. The variable is __true__ if the GPU memory clock speed metric reporting is supported\. The variable is __false__ if the GPU memory clock speed metric reporting is not supported. @ENG_END_DOX}
79
+ *
80
+ *@retvalues
81
+ *@ENG_START_DOX If the state of GPU memory clock speed metric reporting is successfully returned, __ADLX_OK__ is returned. <br>
82
+ *If the state of GPU memory clock speed metric reporting is not successfully returned, an error code is returned. <br>
83
+ *Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
84
+ *
85
+ *
86
+ *@copydoc IADLXGPUMetricsSupport_REQ_TABLE
87
+ *
88
+ */
89
+ virtual ADLX_RESULT ADLX_STD_CALL IsSupportedGPUVRAMClockSpeed (adlx_bool* supported) = 0;
90
+ /**
91
+ *@page DOX_IADLXGPUMetricsSupport_IsSupportedGPUTemperature IsSupportedGPUTemperature
92
+ *@ENG_START_DOX @brief Checks if the GPU temperature metric reporting is supported on a GPU. @ENG_END_DOX
93
+ *
94
+ *@syntax
95
+ *@codeStart
96
+ * @ref ADLX_RESULT IsSupportedGPUTemperature (adlx_bool* supported)
97
+ *@codeEnd
98
+ *
99
+ *@params
100
+ *@paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of GPU temperature metric reporting is returned. The variable is __true__ if the GPU temperature metric reporting is supported\. The variable is __false__ if the GPU temperature metric reporting is not supported. @ENG_END_DOX}
101
+ *
102
+ *@retvalues
103
+ *@ENG_START_DOX If the state of GPU temperature metric reporting is successfully returned, __ADLX_OK__ is returned. <br>
104
+ *If the state of GPU temperature metric reporting is not successfully returned, an error code is returned. <br>
105
+ *Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
106
+ *
107
+ *
108
+ *@copydoc IADLXGPUMetricsSupport_REQ_TABLE
109
+ *
110
+ */
111
+ virtual ADLX_RESULT ADLX_STD_CALL IsSupportedGPUTemperature (adlx_bool* supported) = 0;
112
+ /**
113
+ *@page DOX_IADLXGPUMetricsSupport_IsSupportedGPUHotspotTemperature IsSupportedGPUHotspotTemperature
114
+ *@ENG_START_DOX @brief Checks if the GPU hotspot temperature metric reporting is supported on a GPU. @ENG_END_DOX
115
+ *
116
+ *@syntax
117
+ *@codeStart
118
+ * @ref ADLX_RESULT IsSupportedGPUHotspotTemperature (adlx_bool* supported)
119
+ *@codeEnd
120
+ *
121
+ *@params
122
+ *@paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of GPU temperature metric reporting is returned. The variable is __true__ if the GPU hotspot temperature metric reporting is supported\. The variable is __false__ if the GPU hotspot temperature metric reporting is not supported. @ENG_END_DOX}
123
+ *
124
+ *@retvalues
125
+ *@ENG_START_DOX If the state of GPU hotspot temperature metric reporting is successfully returned, __ADLX_OK__ is returned. <br>
126
+ *If the state of GPU hotspot temperature metric reporting is not successfully returned, an error code is returned. <br>
127
+ *Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
128
+ *
129
+ *
130
+ *@copydoc IADLXGPUMetricsSupport_REQ_TABLE
131
+ *
132
+ */
133
+ virtual ADLX_RESULT ADLX_STD_CALL IsSupportedGPUHotspotTemperature (adlx_bool* supported) = 0;
134
+ /**
135
+ *@page DOX_IADLXGPUMetricsSupport_IsSupportedGPUPower IsSupportedGPUPower
136
+ *@ENG_START_DOX @brief Checks if the GPU power metric reporting is supported on a GPU. @ENG_END_DOX
137
+ *
138
+ *@syntax
139
+ *@codeStart
140
+ * @ref ADLX_RESULT IsSupportedGPUPower (adlx_bool* supported)
141
+ *@codeEnd
142
+ *
143
+ *@params
144
+ *@paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of GPU power metric reporting is returned. The variable is __true__ if the GPU power metric reporting is supported\. The variable is __false__ if the GPU power metric reporting is not supported. @ENG_END_DOX}
145
+ *
146
+ *@retvalues
147
+ *@ENG_START_DOX If the state of GPU power metric reporting is successfully returned, __ADLX_OK__ is returned. <br>
148
+ *If the state of GPU power metric reporting is not successfully returned, an error code is returned. <br>
149
+ *Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
150
+ *
151
+ *
152
+ *@copydoc IADLXGPUMetricsSupport_REQ_TABLE
153
+ *
154
+ */
155
+ virtual ADLX_RESULT ADLX_STD_CALL IsSupportedGPUPower (adlx_bool* supported) = 0;
156
+ /**
157
+ *@page DOX_IADLXGPUMetricsSupport_IsSupportedGPUTotalBoardPower IsSupportedGPUTotalBoardPower
158
+ *@ENG_START_DOX @brief Checks if the GPU total board power metric reporting is supported on a GPU. @ENG_END_DOX
159
+ *
160
+ *@syntax
161
+ *@codeStart
162
+ * @ref ADLX_RESULT IsSupportedGPUTotalBoardPower (adlx_bool* supported)
163
+ *@codeEnd
164
+ *
165
+ *@params
166
+ *@paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of GPU total board power metric reporting is returned. The variable is __true__ if the GPU total board power metric reporting is supported\. The variable is __false__ if the GPU total board power metric reporting is not supported. @ENG_END_DOX}
167
+ *
168
+ *@retvalues
169
+ *@ENG_START_DOX If the state of GPU total board power metric reporting is successfully returned, __ADLX_OK__ is returned. <br>
170
+ *If the state of GPU total board power metric reporting is not successfully returned, an error code is returned. <br>
171
+ *Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
172
+ *
173
+ *
174
+ *@copydoc IADLXGPUMetricsSupport_REQ_TABLE
175
+ *
176
+ */
177
+ virtual ADLX_RESULT ADLX_STD_CALL IsSupportedGPUTotalBoardPower(adlx_bool* supported) = 0;
178
+ /**
179
+ *@page DOX_IADLXGPUMetricsSupport_IsSupportedGPUFanSpeed IsSupportedGPUFanSpeed
180
+ *@ENG_START_DOX @brief Checks if the GPU fan speed metric reporting is supported on a GPU. @ENG_END_DOX
181
+ *
182
+ *@syntax
183
+ *@codeStart
184
+ * @ref ADLX_RESULT IsSupportedGPUFanSpeed (adlx_bool* supported)
185
+ *@codeEnd
186
+ *
187
+ *@params
188
+ *@paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of GPU fan speed metric reporting is returned. The variable is __true__ if the GPU fan speed metric reporting is supported\. The variable is __false__ if the GPU fan speed metric reporting is not supported. @ENG_END_DOX}
189
+ *
190
+ *@retvalues
191
+ *@ENG_START_DOX If the state of GPU fan speed metric reporting is successfully returned, __ADLX_OK__ is returned. <br>
192
+ *If the state of GPU fan speed metric reporting is not successfully returned, an error code is returned. <br>
193
+ *Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
194
+ *
195
+ *
196
+ *@copydoc IADLXGPUMetricsSupport_REQ_TABLE
197
+ *
198
+ */
199
+ virtual ADLX_RESULT ADLX_STD_CALL IsSupportedGPUFanSpeed (adlx_bool* supported) = 0;
200
+ /**
201
+ *@page DOX_IADLXGPUMetricsSupport_IsSupportedGPUVRAM IsSupportedGPUVRAM
202
+ *@ENG_START_DOX @brief Checks if the GPU VRAM usage metric reporting is supported on a GPU. @ENG_END_DOX
203
+ *
204
+ *@syntax
205
+ *@codeStart
206
+ * @ref ADLX_RESULT IsSupportedGPUVRAM (adlx_bool* supported)
207
+ *@codeEnd
208
+ *
209
+ *@params
210
+ *@paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of GPU VRAM usage metric reporting is returned. The variable is __true__ if the GPU VRAM usage metric reporting is supported. The variable is __false__ if the GPU VRAM usage metric reporting is not supported. @ENG_END_DOX}
211
+ *
212
+ *@retvalues
213
+ *@ENG_START_DOX If the state of GPU VRAM usage metric reporting is successfully returned, __ADLX_OK__ is returned. <br>
214
+ *If the state of GPU VRAM usage metric reporting is not successfully returned, an error code is returned. <br>
215
+ *Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
216
+ *
217
+ *
218
+ *@copydoc IADLXGPUMetricsSupport_REQ_TABLE
219
+ *
220
+ */
221
+ virtual ADLX_RESULT ADLX_STD_CALL IsSupportedGPUVRAM (adlx_bool* supported) = 0;
222
+ /**
223
+ *@page DOX_IADLXGPUMetricsSupport_IsSupportedGPUVoltage IsSupportedGPUVoltage
224
+ *@ENG_START_DOX @brief Checks if the GPU voltage metric reporting is supported on a GPU. @ENG_END_DOX
225
+ *
226
+ *@syntax
227
+ *@codeStart
228
+ * @ref ADLX_RESULT IsSupportedGPUVoltage (adlx_bool* supported)
229
+ *@codeEnd
230
+ *
231
+ *@params
232
+ *@paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of GPU voltage metric reporting is returned. The variable is __true__ if the GPU voltage metric reporting is supported. The variable is __false__ if the GPU voltage metric reporting is not supported. @ENG_END_DOX}
233
+ *
234
+ *@retvalues
235
+ *@ENG_START_DOX If the state of GPU voltage metric reporting is successfully returned, __ADLX_OK__ is returned. <br>
236
+ *If the state of GPU voltage metric reporting is not successfully returned, an error code is returned. <br>
237
+ *Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
238
+ *
239
+ *
240
+ *@copydoc IADLXGPUMetricsSupport_REQ_TABLE
241
+ *
242
+ */
243
+ virtual ADLX_RESULT ADLX_STD_CALL IsSupportedGPUVoltage (adlx_bool* supported) = 0;
244
+
245
+ /**
246
+ *@page DOX_IADLXGPUMetricsSupport_GetGPUUsageRange GetGPUUsageRange
247
+ *@ENG_START_DOX @brief Gets the minimum and maximum GPU usage on a GPU. @ENG_END_DOX
248
+ *
249
+ *@syntax
250
+ *@codeStart
251
+ * @ref ADLX_RESULT GetGPUUsageRange (adlx_int* minValue, adlx_int* maxValue)
252
+ *@codeEnd
253
+ *
254
+ *@params
255
+ * @paramrow{1.,[out],minValue,adlx_int*,@ENG_START_DOX The pointer to a variable where the minimum GPU usage (in %) is returned. @ENG_END_DOX}
256
+ * @paramrow{2.,[out],maxValue,adlx_int*,@ENG_START_DOX The pointer to a variable where the maximum GPU usage (in %) is returned. @ENG_END_DOX}
257
+ *
258
+ *@retvalues
259
+ *@ENG_START_DOX If the GPU usage range is successfully returned, __ADLX_OK__ is returned.<br>
260
+ * If the GPU usage range is not successfully returned, an error code is returned.<br>
261
+ * Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
262
+ *
263
+ *@detaileddesc
264
+ *@ENG_START_DOX @details The minimum and maximum GPU usage are read only. @ENG_END_DOX
265
+ *
266
+ *
267
+ *@copydoc IADLXGPUMetricsSupport_REQ_TABLE
268
+ *
269
+ */
270
+ virtual ADLX_RESULT ADLX_STD_CALL GetGPUUsageRange (adlx_int* minValue, adlx_int* maxValue) = 0;
271
+ /**
272
+ *@page DOX_IADLXGPUMetricsSupport_GetGPUClockSpeedRange GetGPUClockSpeedRange
273
+ *@ENG_START_DOX @brief Gets the minimum and maximum GPU clock speed on a GPU. @ENG_END_DOX
274
+ *
275
+ *@syntax
276
+ *@codeStart
277
+ * @ref ADLX_RESULT GetGPUClockSpeedRange (adlx_int* minValue, adlx_int* maxValue)
278
+ *@codeEnd
279
+ *
280
+ *@params
281
+ * @paramrow{1.,[out],minValue,adlx_int*,@ENG_START_DOX The pointer to a variable where the minimum GPU clock speed (in MHz) is returned. @ENG_END_DOX}
282
+ * @paramrow{2.,[out],maxValue,adlx_int*,@ENG_START_DOX The pointer to a variable where the maximum GPU clock speed (in MHz) is returned. @ENG_END_DOX}
283
+ *
284
+ *@retvalues
285
+ *@ENG_START_DOX If the GPU clock speed range is successfully returned, __ADLX_OK__ is returned.<br>
286
+ * If the GPU clock speed range is not successfully returned, an error code is returned.<br>
287
+ * Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
288
+ *
289
+ *@detaileddesc
290
+ *@ENG_START_DOX @details The minimum and maximum GPU clock speed are read only. @ENG_END_DOX
291
+ *
292
+ *
293
+ *@copydoc IADLXGPUMetricsSupport_REQ_TABLE
294
+ *
295
+ */
296
+ virtual ADLX_RESULT ADLX_STD_CALL GetGPUClockSpeedRange (adlx_int* minValue, adlx_int* maxValue) = 0;
297
+ /**
298
+ *@page DOX_IADLXGPUMetricsSupport_GetGPUVRAMClockSpeedRange GetGPUVRAMClockSpeedRange
299
+ *@ENG_START_DOX @brief Gets the minimum and maximum VRAM clock speed on a GPU. @ENG_END_DOX
300
+ *
301
+ *@syntax
302
+ *@codeStart
303
+ * @ref ADLX_RESULT GetGPUVRAMClockSpeedRange (adlx_int* minValue, adlx_int* maxValue)
304
+ *@codeEnd
305
+ *
306
+ *@params
307
+ * @paramrow{1.,[out],minValue,adlx_int*,@ENG_START_DOX The pointer to a variable where the minimum VRAM clock speed (in MHz) is returned. @ENG_END_DOX}
308
+ * @paramrow{2.,[out],maxValue,adlx_int*,@ENG_START_DOX The pointer to a variable where the maximum VRAM clock speed (in MHz) is returned. @ENG_END_DOX}
309
+ *
310
+ *@retvalues
311
+ *@ENG_START_DOX If the VRAM clock speed range is successfully returned, __ADLX_OK__ is returned.<br>
312
+ * If the VRAM clock speed range is not successfully returned, an error code is returned.<br>
313
+ * Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
314
+ *
315
+ *@detaileddesc
316
+ *@ENG_START_DOX @details The minimum and maximum VRAM clock speed are read only. @ENG_END_DOX
317
+ *
318
+ *
319
+ *@copydoc IADLXGPUMetricsSupport_REQ_TABLE
320
+ *
321
+ */
322
+ virtual ADLX_RESULT ADLX_STD_CALL GetGPUVRAMClockSpeedRange (adlx_int* minValue, adlx_int* maxValue) = 0;
323
+ /**
324
+ *@page DOX_IADLXGPUMetricsSupport_GetGPUTemperatureRange GetGPUTemperatureRange
325
+ *@ENG_START_DOX @brief Gets the minimum and maximum GPU temperature on a GPU. @ENG_END_DOX
326
+ *
327
+ *@syntax
328
+ *@codeStart
329
+ * @ref ADLX_RESULT GetGPUTemperatureRange (adlx_int* minValue, adlx_int* maxValue)
330
+ *@codeEnd
331
+ *
332
+ *@params
333
+ * @paramrow{1.,[out],minValue,adlx_int*,@ENG_START_DOX The pointer to a variable where the minimum GPU temperature (in °C) is returned. @ENG_END_DOX}
334
+ * @paramrow{2.,[out],maxValue,adlx_int*,@ENG_START_DOX The pointer to a variable where the maximum GPU temperature (in °C) is returned. @ENG_END_DOX}
335
+ *
336
+ *@retvalues
337
+ *@ENG_START_DOX If the GPU temperature range is successfully returned, __ADLX_OK__ is returned.<br>
338
+ * If the GPU temperature range is not successfully returned, an error code is returned.<br>
339
+ * Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
340
+ *
341
+ *@detaileddesc
342
+ *@ENG_START_DOX @details The minimum and maximum GPU temperature are read only. @ENG_END_DOX
343
+ *
344
+ *
345
+ *@copydoc IADLXGPUMetricsSupport_REQ_TABLE
346
+ *
347
+ */
348
+ virtual ADLX_RESULT ADLX_STD_CALL GetGPUTemperatureRange (adlx_int* minValue, adlx_int* maxValue) = 0;
349
+ /**
350
+ *@page DOX_IADLXGPUMetricsSupport_GetGPUHotspotTemperatureRange GetGPUHotspotTemperatureRange
351
+ *@ENG_START_DOX @brief Gets the minimum and maximum GPU hotspot temperature on a GPU. @ENG_END_DOX
352
+ *
353
+ *@syntax
354
+ *@codeStart
355
+ * @ref ADLX_RESULT GetGPUHotspotTemperatureRange (adlx_int* minValue, adlx_int* maxValue)
356
+ *@codeEnd
357
+ *
358
+ *@params
359
+ * @paramrow{1.,[out],minValue,adlx_int*,@ENG_START_DOX The pointer to a variable where the minimum GPU hotspot temperature (in °C) is returned. @ENG_END_DOX}
360
+ * @paramrow{2.,[out],maxValue,adlx_int*,@ENG_START_DOX The pointer to a variable where the maximum GPU hotspot temperature (in °C) is returned. @ENG_END_DOX}
361
+ *
362
+ *@retvalues
363
+ *@ENG_START_DOX If the GPU hotspot temperature range is successfully returned, __ADLX_OK__ is returned.<br>
364
+ * If the GPU hotspot temperature range is not successfully returned, an error code is returned.<br>
365
+ * Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
366
+ *
367
+ *@detaileddesc
368
+ *@ENG_START_DOX @details The minimum and maximum GPU hotspot temperature are read only. @ENG_END_DOX
369
+ *
370
+ *
371
+ *@copydoc IADLXGPUMetricsSupport_REQ_TABLE
372
+ *
373
+ */
374
+ virtual ADLX_RESULT ADLX_STD_CALL GetGPUHotspotTemperatureRange (adlx_int* minValue, adlx_int* maxValue) = 0;
375
+ /**
376
+ *@page DOX_IADLXGPUMetricsSupport_GetGPUPowerRange GetGPUPowerRange
377
+ *@ENG_START_DOX @brief Gets the minimum and maximum GPU power consumption on a GPU. @ENG_END_DOX
378
+ *
379
+ *@syntax
380
+ *@codeStart
381
+ * @ref ADLX_RESULT GetGPUPowerRange (adlx_int* minValue, adlx_int* maxValue)
382
+ *@codeEnd
383
+ *
384
+ *@params
385
+ * @paramrow{1.,[out],minValue,adlx_int*,@ENG_START_DOX The pointer to a variable where the minimum GPU power consumption (in W) is returned. @ENG_END_DOX}
386
+ * @paramrow{2.,[out],maxValue,adlx_int*,@ENG_START_DOX The pointer to a variable where the maximum GPU power consumption (in W) is returned. @ENG_END_DOX}
387
+ *
388
+ *@retvalues
389
+ *@ENG_START_DOX If the GPU power consumption range is successfully returned, __ADLX_OK__ is returned.<br>
390
+ * If the GPU power consumption range is not successfully returned, an error code is returned.<br>
391
+ * Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
392
+ *
393
+ *@detaileddesc
394
+ *@ENG_START_DOX @details The minimum and maximum GPU power consumption are read only. @ENG_END_DOX
395
+ *
396
+ *
397
+ *@copydoc IADLXGPUMetricsSupport_REQ_TABLE
398
+ *
399
+ */
400
+ virtual ADLX_RESULT ADLX_STD_CALL GetGPUPowerRange (adlx_int* minValue, adlx_int* maxValue) = 0;
401
+ /**
402
+ *@page DOX_IADLXGPUMetricsSupport_GetGPUFanSpeedRange GetGPUFanSpeedRange
403
+ *@ENG_START_DOX @brief Gets the minimum and maximum GPU fan speed on a GPU. @ENG_END_DOX
404
+ *
405
+ *@syntax
406
+ *@codeStart
407
+ * @ref ADLX_RESULT GetGPUFanSpeedRange (adlx_int* minValue, adlx_int* maxValue)
408
+ *@codeEnd
409
+ *
410
+ *@params
411
+ * @paramrow{1.,[out],minValue,adlx_int*,@ENG_START_DOX The pointer to a variable where the minimum GPU fan speed (in RPM) is returned. @ENG_END_DOX}
412
+ * @paramrow{2.,[out],maxValue,adlx_int*,@ENG_START_DOX The pointer to a variable where the maximum GPU fan speed (in RPM) is returned. @ENG_END_DOX}
413
+ *
414
+ *@retvalues
415
+ *@ENG_START_DOX If the GPU fan speed range is successfully returned, __ADLX_OK__ is returned.<br>
416
+ * If the GPU fan speed range is not successfully returned, an error code is returned.<br>
417
+ * Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
418
+ *
419
+ *@detaileddesc
420
+ *@ENG_START_DOX @details The minimum and maximum GPU fan speed are read only. @ENG_END_DOX
421
+ *
422
+ *
423
+ *@copydoc IADLXGPUMetricsSupport_REQ_TABLE
424
+ *
425
+ */
426
+ virtual ADLX_RESULT ADLX_STD_CALL GetGPUFanSpeedRange (adlx_int* minValue, adlx_int* maxValue) = 0;
427
+ /**
428
+ *@page DOX_IADLXGPUMetricsSupport_GetGPUVRAMRange GetGPUVRAMRange
429
+ *@ENG_START_DOX @brief Gets the minimum and maximum GPU memory on a GPU. @ENG_END_DOX
430
+ *
431
+ *@syntax
432
+ *@codeStart
433
+ * @ref ADLX_RESULT GetGPUVRAMRange (adlx_int* minValue, adlx_int* maxValue)
434
+ *@codeEnd
435
+ *
436
+ *@params
437
+ * @paramrow{1.,[out],minValue,adlx_int*,@ENG_START_DOX The pointer to a variable where the minimum GPU memory (in MB) is returned. @ENG_END_DOX}
438
+ * @paramrow{2.,[out],maxValue,adlx_int*,@ENG_START_DOX The pointer to a variable where the maximum GPU memory (in MB) is returned. @ENG_END_DOX}
439
+ *
440
+ *@retvalues
441
+ *@ENG_START_DOX If the GPU memory range is successfully returned, __ADLX_OK__ is returned.<br>
442
+ * If the GPU memory range is not successfully returned, an error code is returned.<br>
443
+ * Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
444
+ *
445
+ *@detaileddesc
446
+ *@ENG_START_DOX @details The minimum and maximum GPU memory are read only. @ENG_END_DOX
447
+ *
448
+ *
449
+ *@copydoc IADLXGPUMetricsSupport_REQ_TABLE
450
+ *
451
+ */
452
+ virtual ADLX_RESULT ADLX_STD_CALL GetGPUVRAMRange (adlx_int* minValue, adlx_int* maxValue) = 0;
453
+ /**
454
+ *@page DOX_IADLXGPUMetricsSupport_GetGPUVoltageRange GetGPUVoltageRange
455
+ *@ENG_START_DOX @brief Gets the minimum and maximum GPU voltage on a GPU. @ENG_END_DOX
456
+ *
457
+ *@syntax
458
+ *@codeStart
459
+ * @ref ADLX_RESULT GetGPUVoltageRange (adlx_int* minValue, adlx_int* maxValue)
460
+ *@codeEnd
461
+ *
462
+ *@params
463
+ * @paramrow{1.,[out],minValue,adlx_int*,@ENG_START_DOX The pointer to a variable where the minimum GPU voltage (in mV) is returned. @ENG_END_DOX}
464
+ * @paramrow{2.,[out],maxValue,adlx_int*,@ENG_START_DOX The pointer to a variable where the maximum GPU voltage (in mV) is returned. @ENG_END_DOX}
465
+ *
466
+ *@retvalues
467
+ *@ENG_START_DOX If the GPU voltage range is successfully returned, __ADLX_OK__ is returned.<br>
468
+ * If the GPU voltage range is not successfully returned, an error code is returned.<br>
469
+ * Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
470
+ *
471
+ *@detaileddesc
472
+ *@ENG_START_DOX @details The minimum and maximum GPU voltage are read only. @ENG_END_DOX
473
+ *
474
+ *
475
+ *@copydoc IADLXGPUMetricsSupport_REQ_TABLE
476
+ *
477
+ */
478
+ virtual ADLX_RESULT ADLX_STD_CALL GetGPUVoltageRange (adlx_int* minValue, adlx_int* maxValue) = 0;
479
+ /**
480
+ *@page DOX_IADLXGPUMetricsSupport_GetGPUTotalBoardPowerRange GetGPUTotalBoardPowerRange
481
+ *@ENG_START_DOX @brief Gets the minimum and maximum GPU total board power consumption on a GPU. @ENG_END_DOX
482
+ *
483
+ *@syntax
484
+ *@codeStart
485
+ * @ref ADLX_RESULT GetGPUTotalBoardPowerRange (adlx_int* minValue, adlx_int* maxValue)
486
+ *@codeEnd
487
+ *
488
+ *@params
489
+ * @paramrow{1.,[out],minValue,adlx_int*,@ENG_START_DOX The pointer to a variable where the minimum GPU total board power consumption (in W) is returned. @ENG_END_DOX}
490
+ * @paramrow{2.,[out],maxValue,adlx_int*,@ENG_START_DOX The pointer to a variable where the maximum GPU total board power consumption (in W) is returned. @ENG_END_DOX}
491
+ *
492
+ *@retvalues
493
+ *@ENG_START_DOX If the GPU total board power consumption range is successfully returned, __ADLX_OK__ is returned.<br>
494
+ * If the GPU total board power consumption range is not successfully returned, an error code is returned.<br>
495
+ * Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
496
+ *
497
+ *@detaileddesc
498
+ *@ENG_START_DOX @details The minimum and maximum GPU total board power consumption are read only. @ENG_END_DOX
499
+ *
500
+ *
501
+ *@copydoc IADLXGPUMetricsSupport_REQ_TABLE
502
+ *
503
+ */
504
+ virtual ADLX_RESULT ADLX_STD_CALL GetGPUTotalBoardPowerRange (adlx_int* minValue, adlx_int* maxValue) = 0;
505
+ /**
506
+ *@page DOX_IADLXGPUMetricsSupport_GetGPUIntakeTemperatureRange GetGPUIntakeTemperatureRange
507
+ *@ENG_START_DOX @brief Gets the minimum and maximum GPU intake temperature on a GPU. @ENG_END_DOX
508
+ *
509
+ *@syntax
510
+ *@codeStart
511
+ * @ref ADLX_RESULT GetGPUIntakeTemperatureRange (adlx_int* minValue, adlx_int* maxValue)
512
+ *@codeEnd
513
+ *
514
+ *@params
515
+ * @paramrow{1.,[out],minValue,adlx_int*,@ENG_START_DOX The pointer to a variable where the minimum GPU intake temperature (in °C) is returned. @ENG_END_DOX}
516
+ * @paramrow{2.,[out],maxValue,adlx_int*,@ENG_START_DOX The pointer to a variable where the maximum GPU intake temperature (in °C) is returned. @ENG_END_DOX}
517
+ *
518
+ *@retvalues
519
+ *@ENG_START_DOX If the GPU intake temperature range is successfully returned, __ADLX_OK__ is returned.<br>
520
+ * If the GPU intake temperature range is not successfully returned, an error code is returned.<br>
521
+ * Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
522
+ *
523
+ *@detaileddesc
524
+ *@ENG_START_DOX @details The minimum and maximum GPU intake temperature are read only. @ENG_END_DOX
525
+ *
526
+ *
527
+ *@copydoc IADLXGPUMetricsSupport_REQ_TABLE
528
+ *
529
+ */
530
+ virtual ADLX_RESULT ADLX_STD_CALL GetGPUIntakeTemperatureRange (adlx_int* minValue, adlx_int* maxValue) = 0;
531
+ /**
532
+ *@page DOX_IADLXGPUMetricsSupport_IsSupportedGPUIntakeTemperature IsSupportedGPUIntakeTemperature
533
+ *@ENG_START_DOX @brief Checks if the GPU intake temperature metric reporting is supported on a GPU. @ENG_END_DOX
534
+ *
535
+ *@syntax
536
+ *@codeStart
537
+ * @ref ADLX_RESULT IsSupportedGPUIntakeTemperature (adlx_bool* supported)
538
+ *@codeEnd
539
+ *
540
+ *@params
541
+ *@paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of GPU intake temperature metric reporting is returned. The variable is __true__ if the GPU intake temperature metric reporting is supported\. The variable is __false__ if the GPU intake temperature metric reporting is not supported. @ENG_END_DOX}
542
+ *
543
+ *@retvalues
544
+ *@ENG_START_DOX If the state of GPU intake temperature metric reporting is successfully returned, __ADLX_OK__ is returned. <br>
545
+ *If the state of GPU intake temperature metric reporting is not successfully returned, an error code is returned. <br>
546
+ *Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
547
+ *
548
+ *
549
+ *@copydoc IADLXGPUMetricsSupport_REQ_TABLE
550
+ *
551
+ */
552
+ virtual ADLX_RESULT ADLX_STD_CALL IsSupportedGPUIntakeTemperature (adlx_bool* supported) = 0;
553
+ };
554
+ //----------------------------------------------------------------------------------------------
555
+ typedef IADLXInterfacePtr_T<IADLXGPUMetricsSupport> IADLXGPUMetricsSupportPtr;
556
+ } //namespace adlx
557
+ #else //__cplusplus
558
+ ADLX_DECLARE_IID (IADLXGPUMetricsSupport, L"IADLXGPUMetricsSupport")
559
+
560
+ typedef struct IADLXGPUMetricsSupport IADLXGPUMetricsSupport;
561
+
562
+ typedef struct IADLXGPUMetricsSupportVtbl
563
+ {
564
+ //IADLXInterface
565
+ adlx_long (ADLX_STD_CALL* Acquire)(IADLXGPUMetricsSupport* pThis);
566
+ adlx_long (ADLX_STD_CALL* Release)(IADLXGPUMetricsSupport* pThis);
567
+ ADLX_RESULT (ADLX_STD_CALL* QueryInterface)(IADLXGPUMetricsSupport* pThis, const wchar_t* interfaceId, void** ppInterface);
568
+
569
+ //IADLXGPUMetricsSupport
570
+ ADLX_RESULT (ADLX_STD_CALL* IsSupportedGPUUsage)(IADLXGPUMetricsSupport* pThis, adlx_bool* supported);
571
+ ADLX_RESULT (ADLX_STD_CALL* IsSupportedGPUClockSpeed)(IADLXGPUMetricsSupport* pThis, adlx_bool* supported);
572
+ ADLX_RESULT (ADLX_STD_CALL* IsSupportedGPUVRAMClockSpeed)(IADLXGPUMetricsSupport* pThis, adlx_bool* supported);
573
+ ADLX_RESULT (ADLX_STD_CALL* IsSupportedGPUTemperature)(IADLXGPUMetricsSupport* pThis, adlx_bool* supported);
574
+ ADLX_RESULT (ADLX_STD_CALL* IsSupportedGPUHotspotTemperature)(IADLXGPUMetricsSupport* pThis, adlx_bool* supported);
575
+ ADLX_RESULT (ADLX_STD_CALL* IsSupportedGPUPower)(IADLXGPUMetricsSupport* pThis, adlx_bool* supported);
576
+ ADLX_RESULT (ADLX_STD_CALL* IsSupportedGPUTotalBoardPower)(IADLXGPUMetricsSupport* pThis, adlx_bool* supported);
577
+ ADLX_RESULT (ADLX_STD_CALL* IsSupportedGPUFanSpeed)(IADLXGPUMetricsSupport* pThis, adlx_bool* supported);
578
+ ADLX_RESULT (ADLX_STD_CALL* IsSupportedGPUVRAM)(IADLXGPUMetricsSupport* pThis, adlx_bool* supported);
579
+ ADLX_RESULT (ADLX_STD_CALL* IsSupportedGPUVoltage)(IADLXGPUMetricsSupport* pThis, adlx_bool* supported);
580
+
581
+ ADLX_RESULT (ADLX_STD_CALL* GetGPUUsageRange)(IADLXGPUMetricsSupport* pThis, adlx_int* minValue, adlx_int* maxValue);
582
+ ADLX_RESULT (ADLX_STD_CALL* GetGPUClockSpeedRange)(IADLXGPUMetricsSupport* pThis, adlx_int* minValue, adlx_int* maxValue);
583
+ ADLX_RESULT (ADLX_STD_CALL* GetGPUVRAMClockSpeedRange)(IADLXGPUMetricsSupport* pThis, adlx_int* minValue, adlx_int* maxValue);
584
+ ADLX_RESULT (ADLX_STD_CALL* GetGPUTemperatureRange)(IADLXGPUMetricsSupport* pThis, adlx_int* minValue, adlx_int* maxValue);
585
+ ADLX_RESULT (ADLX_STD_CALL* GetGPUHotspotTemperatureRange)(IADLXGPUMetricsSupport* pThis, adlx_int* minValue, adlx_int* maxValue);
586
+ ADLX_RESULT (ADLX_STD_CALL* GetGPUPowerRange)(IADLXGPUMetricsSupport* pThis, adlx_int* minValue, adlx_int* maxValue);
587
+ ADLX_RESULT (ADLX_STD_CALL* GetGPUFanSpeedRange)(IADLXGPUMetricsSupport* pThis, adlx_int* minValue, adlx_int* maxValue);
588
+ ADLX_RESULT (ADLX_STD_CALL* GetGPUVRAMRange)(IADLXGPUMetricsSupport* pThis, adlx_int* minValue, adlx_int* maxValue);
589
+ ADLX_RESULT (ADLX_STD_CALL* GetGPUVoltageRange)(IADLXGPUMetricsSupport* pThis, adlx_int* minValue, adlx_int* maxValue);
590
+ ADLX_RESULT (ADLX_STD_CALL* GetGPUTotalBoardPowerRange)(IADLXGPUMetricsSupport* pThis, adlx_int* minValue, adlx_int* maxValue);
591
+ ADLX_RESULT (ADLX_STD_CALL* GetGPUIntakeTemperatureRange)(IADLXGPUMetricsSupport* pThis, adlx_int* minValue, adlx_int* maxValue);
592
+ ADLX_RESULT (ADLX_STD_CALL* IsSupportedGPUIntakeTemperature)(IADLXGPUMetricsSupport* pThis, adlx_bool* supported);
593
+ } IADLXGPUMetricsSupportVtbl;
594
+
595
+ struct IADLXGPUMetricsSupport { const IADLXGPUMetricsSupportVtbl *pVtbl; };
596
+ #endif //__cplusplus
597
+ #pragma endregion IADLXGPUMetricsSupport
598
+
599
+ #pragma region IADLXSystemMetricsSupport
600
+ #if defined (__cplusplus)
601
+ namespace adlx
602
+ {
603
+ class ADLX_NO_VTABLE IADLXSystemMetricsSupport : public IADLXInterface
604
+ {
605
+ public:
606
+ ADLX_DECLARE_IID (L"IADLXSystemMetricsSupport")
607
+
608
+ /**
609
+ *@page DOX_IADLXSystemMetricsSupport_IsSupportedCPUUsage IsSupportedCPUUsage
610
+ *@ENG_START_DOX @brief Checks if the CPU usage metric reporting is supported by the system. @ENG_END_DOX
611
+ *
612
+ *@syntax
613
+ *@codeStart
614
+ * @ref ADLX_RESULT IsSupportedCPUUsage (adlx_bool* supported)
615
+ *@codeEnd
616
+ *
617
+ *@params
618
+ *@paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of CPU usage metric reporting is returned. The variable is __true__ if the CPU usage metric reporting is supported\. The variable is __false__ if the CPU usage metric reporting is not supported. @ENG_END_DOX}
619
+ *
620
+ *@retvalues
621
+ *@ENG_START_DOX If the state of CPU usage metric reporting is successfully returned, __ADLX_OK__ is returned. <br>
622
+ *If the state of CPU usage metric reporting is not successfully returned, an error code is returned. <br>
623
+ *Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
624
+ *
625
+ *
626
+ *@copydoc IADLXSystemMetricsSupport_REQ_TABLE
627
+ *
628
+ */
629
+ virtual ADLX_RESULT ADLX_STD_CALL IsSupportedCPUUsage (adlx_bool* supported) = 0;
630
+ /**
631
+ *@page DOX_IADLXSystemMetricsSupport_IsSupportedSystemRAM IsSupportedSystemRAM
632
+ *@ENG_START_DOX @brief Checks if the RAM usage metric reporting is supported by the system. @ENG_END_DOX
633
+ *
634
+ *@syntax
635
+ *@codeStart
636
+ * @ref ADLX_RESULT IsSupportedSystemRAM (adlx_bool* supported)
637
+ *@codeEnd
638
+ *
639
+ *@params
640
+ *@paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of system RAM usage metric reporting is returned. The variable is __true__ if the system RAM usage metric reporting is supported. The variable is __false__ if the system RAM usage metric reporting is not supported. @ENG_END_DOX}
641
+ *
642
+ *@retvalues
643
+ *@ENG_START_DOX If the state of system RAM usage metric reporting is successfully returned, __ADLX_OK__ is returned. <br>
644
+ *If the state of system RAM usage metric reporting is not successfully returned, an error code is returned. <br>
645
+ *Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
646
+ *
647
+ *
648
+ *@copydoc IADLXSystemMetricsSupport_REQ_TABLE
649
+ *
650
+ */
651
+ virtual ADLX_RESULT ADLX_STD_CALL IsSupportedSystemRAM (adlx_bool* supported) = 0;
652
+ /**
653
+ *@page DOX_IADLXSystemMetricsSupport_IsSupportedSmartShift IsSupportedSmartShift
654
+ *@ENG_START_DOX @brief Checks if the SmartShift metric reporting is supported by the system. @ENG_END_DOX
655
+ *
656
+ *@syntax
657
+ *@codeStart
658
+ * @ref ADLX_RESULT IsSupportedSmartShift (adlx_bool* supported)
659
+ *@codeEnd
660
+ *
661
+ *@params
662
+ *@paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of SmartShift metric reporting is returned. The variable is __true__ if the SmartShift metric reporting is supported\. The variable is __false__ if the SmartShift metric reporting is not supported. @ENG_END_DOX}
663
+ *
664
+ *@retvalues
665
+ *@ENG_START_DOX If the state of SmartShift metric reporting is successfully returned, __ADLX_OK__ is returned. <br>
666
+ *If the state of SmartShift metric reporting is not successfully returned, an error code is returned. <br>
667
+ *Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
668
+ *
669
+ *
670
+ *@copydoc IADLXSystemMetricsSupport_REQ_TABLE
671
+ *
672
+ */
673
+ virtual ADLX_RESULT ADLX_STD_CALL IsSupportedSmartShift (adlx_bool* supported) = 0;
674
+ /**
675
+ *@page DOX_IADLXSystemMetricsSupport_GetCPUUsageRange GetCPUUsageRange
676
+ *@ENG_START_DOX @brief Gets the minimum and maximum CPU usage of a system. @ENG_END_DOX
677
+ *
678
+ *@syntax
679
+ *@codeStart
680
+ * @ref ADLX_RESULT GetCPUUsageRange (adlx_int* minValue, adlx_int* maxValue)
681
+ *@codeEnd
682
+ *
683
+ *@params
684
+ * @paramrow{1.,[out],minValue,adlx_int*,@ENG_START_DOX The pointer to a variable where the minimum CPU usage (in %) is returned. @ENG_END_DOX}
685
+ * @paramrow{2.,[out],maxValue,adlx_int*,@ENG_START_DOX The pointer to a variable where the maximum CPU usage (in %) is returned. @ENG_END_DOX}
686
+ *
687
+ *@retvalues
688
+ *@ENG_START_DOX If the CPU usage range is successfully returned, __ADLX_OK__ is returned.<br>
689
+ * If the CPU usage range is not successfully returned, an error code is returned.<br>
690
+ * Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
691
+ *
692
+ *@detaileddesc
693
+ *@ENG_START_DOX @details The minimum and maximum CPU usage are read only. @ENG_END_DOX
694
+ *
695
+ *
696
+ *@copydoc IADLXSystemMetricsSupport_REQ_TABLE
697
+ *
698
+ */
699
+ virtual ADLX_RESULT ADLX_STD_CALL GetCPUUsageRange (adlx_int* minValue, adlx_int* maxValue) = 0;
700
+ /**
701
+ *@page DOX_IADLXSystemMetricsSupport_GetSystemRAMRange GetSystemRAMRange
702
+ *@ENG_START_DOX @brief Gets the minimum and maximum system RAM of a system. @ENG_END_DOX
703
+ *
704
+ *@syntax
705
+ *@codeStart
706
+ * @ref ADLX_RESULT GetSystemRAMRange (adlx_int* minValue, adlx_int* maxValue)
707
+ *@codeEnd
708
+ *
709
+ *@params
710
+ * @paramrow{1.,[out],minValue,adlx_int*,@ENG_START_DOX The pointer to a variable where the minimum system RAM (in MB) is returned. @ENG_END_DOX}
711
+ * @paramrow{2.,[out],maxValue,adlx_int*,@ENG_START_DOX The pointer to a variable where the maximum system RAM (in MB) is returned. @ENG_END_DOX}
712
+ *
713
+ *@retvalues
714
+ *@ENG_START_DOX If the system RAM range is successfully returned, __ADLX_OK__ is returned.<br>
715
+ * If the system RAM range is not successfully returned, an error code is returned.<br>
716
+ * Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
717
+ *
718
+ *@detaileddesc
719
+ *@ENG_START_DOX @details The minimum and maximum system RAM are read only. @ENG_END_DOX
720
+ *
721
+ *
722
+ *@copydoc IADLXSystemMetricsSupport_REQ_TABLE
723
+ *
724
+ */
725
+ virtual ADLX_RESULT ADLX_STD_CALL GetSystemRAMRange (adlx_int* minValue, adlx_int* maxValue) = 0;
726
+ /**
727
+ *@page DOX_IADLXSystemMetricsSupport_GetSmartShiftRange GetSmartShiftRange
728
+ *@ENG_START_DOX @brief Gets the minimum and maximum SmartShift value of a system. @ENG_END_DOX
729
+ *
730
+ *@syntax
731
+ *@codeStart
732
+ * @ref ADLX_RESULT GetSmartShiftRange (adlx_int* minValue, adlx_int* maxValue)
733
+ *@codeEnd
734
+ *
735
+ *@params
736
+ * @paramrow{1.,[out],minValue,adlx_int*,@ENG_START_DOX The pointer to a variable where the minimum SmartShift value is returned. @ENG_END_DOX}
737
+ * @paramrow{2.,[out],maxValue,adlx_int*,@ENG_START_DOX The pointer to a variable where the maximum SmartShift value is returned. @ENG_END_DOX}
738
+ *
739
+ *@retvalues
740
+ *@ENG_START_DOX If the SmartShift value range is successfully returned, __ADLX_OK__ is returned.<br>
741
+ * If the SmartShift value range is not successfully returned, an error code is returned.<br>
742
+ * Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
743
+ *
744
+ *@detaileddesc
745
+ *@ENG_START_DOX @details The minimum and maximum SmartShift value are read only. @ENG_END_DOX
746
+ *
747
+ *
748
+ *@copydoc IADLXSystemMetricsSupport_REQ_TABLE
749
+ *
750
+ */
751
+ virtual ADLX_RESULT ADLX_STD_CALL GetSmartShiftRange (adlx_int* minValue, adlx_int* maxValue) = 0;
752
+ };
753
+ //----------------------------------------------------------------------------------------------
754
+ typedef IADLXInterfacePtr_T<IADLXSystemMetricsSupport> IADLXSystemMetricsSupportPtr;
755
+ } //namespace adlx
756
+ #else //__cplusplus
757
+ ADLX_DECLARE_IID (IADLXSystemMetricsSupport, L"IADLXSystemMetricsSupport")
758
+
759
+ typedef struct IADLXSystemMetricsSupport IADLXSystemMetricsSupport;
760
+
761
+ typedef struct IADLXSystemMetricsSupportVtbl
762
+ {
763
+ //IADLXInterface
764
+ adlx_long (ADLX_STD_CALL *Acquire)(IADLXSystemMetricsSupport* pThis);
765
+ adlx_long (ADLX_STD_CALL *Release)(IADLXSystemMetricsSupport* pThis);
766
+ ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLXSystemMetricsSupport* pThis, const wchar_t* interfaceId, void** ppInterface);
767
+
768
+ //IADLXSystemMetricsSupport
769
+ ADLX_RESULT (ADLX_STD_CALL *IsSupportedCPUUsage)(IADLXSystemMetricsSupport* pThis, adlx_bool* supported);
770
+ ADLX_RESULT (ADLX_STD_CALL *IsSupportedSystemRAM)(IADLXSystemMetricsSupport* pThis, adlx_bool* supported);
771
+ ADLX_RESULT (ADLX_STD_CALL *IsSupportedSmartShift)(IADLXSystemMetricsSupport* pThis, adlx_bool* supported);
772
+ ADLX_RESULT (ADLX_STD_CALL *GetCPUUsageRange)(IADLXSystemMetricsSupport* pThis, adlx_int* minValue, adlx_int* maxValue);
773
+ ADLX_RESULT (ADLX_STD_CALL *GetSystemRAMRange)(IADLXSystemMetricsSupport* pThis, adlx_int* minValue, adlx_int* maxValue);
774
+ ADLX_RESULT (ADLX_STD_CALL *GetSmartShiftRange)(IADLXSystemMetricsSupport* pThis, adlx_int* minValue, adlx_int* maxValue);
775
+ }IADLXSystemMetricsSupportVtbl;
776
+
777
+ struct IADLXSystemMetricsSupport { const IADLXSystemMetricsSupportVtbl *pVtbl; };
778
+ #endif //__cplusplus
779
+ #pragma endregion IADLXSystemMetricsSupport
780
+
781
+ #pragma region IADLXGPUMetrics
782
+ #if defined (__cplusplus)
783
+ namespace adlx
784
+ {
785
+ class ADLX_NO_VTABLE IADLXGPUMetrics : public IADLXInterface
786
+ {
787
+ public:
788
+ ADLX_DECLARE_IID (L"IADLXGPUMetrics")
789
+ /**
790
+ *@page DOX_IADLXGPUMetrics_TimeStamp TimeStamp
791
+ *@ENG_START_DOX @brief Gets the timestamp of a GPU metric sample. @ENG_END_DOX
792
+ *
793
+ *@syntax
794
+ *@codeStart
795
+ * @ref ADLX_RESULT TimeStamp (adlx_int64* ms)
796
+ *@codeEnd
797
+ *
798
+ *@params
799
+ *@paramrow{1.,[out] ,ms,adlx_int64* ,@ENG_START_DOX The pointer to a variable where the timestamp (in ms) is returned. @ENG_END_DOX}
800
+ *
801
+ *@retvalues
802
+ *@ENG_START_DOX If the timestamp is successfully returned, __ADLX_OK__ is returned. <br>
803
+ * If the timestamp is not successfully returned, an error code is returned. <br>
804
+ * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
805
+ *
806
+ *@detaileddesc
807
+ *@ENG_START_DOX @details The timestamp is the duration (in ms) from the system epoch time to the time when the metric sample was acquired. @ENG_END_DOX
808
+ *
809
+ *@copydoc IADLXGPUMetrics_REQ_TABLE
810
+ *
811
+ */
812
+ virtual ADLX_RESULT ADLX_STD_CALL TimeStamp (adlx_int64* ms) = 0;
813
+ /**
814
+ *@page DOX_IADLXGPUMetrics_GPUUsage GPUUsage
815
+ *@ENG_START_DOX @brief Gets the GPU usage of a GPU metric sample. @ENG_END_DOX
816
+ *
817
+ *@syntax
818
+ *@codeStart
819
+ * @ref ADLX_RESULT GPUUsage (adlx_double* data)
820
+ *@codeEnd
821
+ *
822
+ *@params
823
+ *@paramrow{1.,[out] ,data,adlx_double* ,@ENG_START_DOX The pointer to a variable where the CPU usage (in %) is returned. @ENG_END_DOX}
824
+ *
825
+ *@retvalues
826
+ *@ENG_START_DOX If the GPU usage is successfully returned, __ADLX_OK__ is returned. <br>
827
+ * If the GPU usage is not successfully returned, an error code is returned. <br>
828
+ * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
829
+ *
830
+ *
831
+ *@copydoc IADLXGPUMetrics_REQ_TABLE
832
+ *
833
+ */
834
+ virtual ADLX_RESULT ADLX_STD_CALL GPUUsage (adlx_double* data) = 0;
835
+ /**
836
+ *@page DOX_IADLXGPUMetrics_GPUClockSpeed GPUClockSpeed
837
+ *@ENG_START_DOX @brief Gets the GPU clock speed of a GPU metric sample. @ENG_END_DOX
838
+ *
839
+ *@syntax
840
+ *@codeStart
841
+ * @ref ADLX_RESULT GPUClockSpeed (adlx_int* data)
842
+ *@codeEnd
843
+ *
844
+ *@params
845
+ *@paramrow{1.,[out] ,data,adlx_int* ,@ENG_START_DOX The pointer to a variable where the GPU clock speed (in MHz) is returned. @ENG_END_DOX}
846
+ *
847
+ *@retvalues
848
+ *@ENG_START_DOX If the GPU clock speed is successfully returned, __ADLX_OK__ is returned. <br>
849
+ * If the GPU clock speed is not successfully returned, an error code is returned. <br>
850
+ * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
851
+ *
852
+ *
853
+ *@copydoc IADLXGPUMetrics_REQ_TABLE
854
+ *
855
+ */
856
+ virtual ADLX_RESULT ADLX_STD_CALL GPUClockSpeed (adlx_int* data) = 0;
857
+ /**
858
+ *@page DOX_IADLXGPUMetrics_GPUVRAMClockSpeed GPUVRAMClockSpeed
859
+ *@ENG_START_DOX @brief Gets the VRAM clock speed of a GPU metric sample. @ENG_END_DOX
860
+ *
861
+ *@syntax
862
+ *@codeStart
863
+ * @ref ADLX_RESULT GPUVRAMClockSpeed (adlx_int* data)
864
+ *@codeEnd
865
+ *
866
+ *@params
867
+ *@paramrow{1.,[out] ,data,adlx_int* ,@ENG_START_DOX GPU Memory The pointer to a variable where the VRAM clock speed (in MHz) is returned. @ENG_END_DOX}
868
+ *
869
+ *@retvalues
870
+ *@ENG_START_DOX If the VRAM clock speed is successfully returned, __ADLX_OK__ is returned. <br>
871
+ * If the VRAM clock speed is not successfully returned, an error code is returned. <br>
872
+ * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
873
+ *
874
+ *
875
+ *@copydoc IADLXGPUMetrics_REQ_TABLE
876
+ *
877
+ */
878
+ virtual ADLX_RESULT ADLX_STD_CALL GPUVRAMClockSpeed (adlx_int* data) = 0;
879
+ /**
880
+ *@page DOX_IADLXGPUMetrics_GPUTemperature GPUTemperature
881
+ *@ENG_START_DOX
882
+ *@brief Gets the GPU temperature of a GPU metric sample.
883
+ *@details GPUTemperature reports the average temperature measured at the edge of the die of the GPU. This is sometimes referred to as ‘Edge Temperature’.
884
+ *@ENG_END_DOX
885
+ *
886
+ *@syntax
887
+ *@codeStart
888
+ * @ref ADLX_RESULT GPUTemperature (adlx_double* data)
889
+ *@codeEnd
890
+ *
891
+ *@params
892
+ *@paramrow{1.,[out] ,data,adlx_double* ,@ENG_START_DOX The pointer to a variable where the GPU temperature (in °C) is returned. @ENG_END_DOX}
893
+ *
894
+ *@retvalues
895
+ *@ENG_START_DOX If the GPU temperature is successfully returned, __ADLX_OK__ is returned. <br>
896
+ * If the GPU temperature is not successfully returned, an error code is returned. <br>
897
+ * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
898
+ *@addinfo
899
+ * @ENG_START_DOX Related method: @ref DOX_IADLXGPUMetrics_GPUHotspotTemperature, @ref DOX_IADLXGPUMetrics_GPUIntakeTemperature. @ENG_END_DOX
900
+ *
901
+ *
902
+ *@copydoc IADLXGPUMetrics_REQ_TABLE
903
+ *
904
+ */
905
+ virtual ADLX_RESULT ADLX_STD_CALL GPUTemperature (adlx_double* data) = 0;
906
+ /**
907
+ *@page DOX_IADLXGPUMetrics_GPUHotspotTemperature GPUHotspotTemperature
908
+ *@ENG_START_DOX
909
+ *@brief Gets the GPU hotspot temperature of a GPU metric sample.
910
+ *@details GPUHotspotTemperature reports the highest temperature measured on the die of the GPU from a collection of junction temperature sensors on the die. This is sometimes referred to as ‘Junction Temperature’.
911
+ *@ENG_END_DOX
912
+ *
913
+ *@syntax
914
+ *@codeStart
915
+ * @ref ADLX_RESULT GPUHotspotTemperature (adlx_double* data)
916
+ *@codeEnd
917
+ *
918
+ *@params
919
+ *@paramrow{1.,[out] ,data,adlx_double* ,@ENG_START_DOX The pointer to a variable where the GPU hotspot temperature (in °C) is returned. @ENG_END_DOX}
920
+ *
921
+ *@retvalues
922
+ *@ENG_START_DOX If the GPU hotspot temperature is successfully returned, __ADLX_OK__ is returned. <br>
923
+ * If the GPU hotspot temperature is not successfully returned, an error code is returned. <br>
924
+ * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
925
+ *
926
+ *@addinfo
927
+ * @ENG_START_DOX Related method: @ref DOX_IADLXGPUMetrics_GPUIntakeTemperature, @ref DOX_IADLXGPUMetrics_GPUTemperature. @ENG_END_DOX
928
+ *
929
+ *
930
+ *@copydoc IADLXGPUMetrics_REQ_TABLE
931
+ *
932
+ */
933
+ virtual ADLX_RESULT ADLX_STD_CALL GPUHotspotTemperature (adlx_double* data) = 0;
934
+ /**
935
+ *@page DOX_IADLXGPUMetrics_GPUPower GPUPower
936
+ *@ENG_START_DOX
937
+ *@brief Gets the GPU power consumption of a GPU metric sample.
938
+ *@ENG_END_DOX
939
+ *
940
+ *@syntax
941
+ *@codeStart
942
+ * @ref ADLX_RESULT GPUPower (adlx_double* data)
943
+ *@codeEnd
944
+ *
945
+ *@params
946
+ *@paramrow{1.,[out] ,data,adlx_double* ,@ENG_START_DOX The pointer to a variable where the GPU power consumption (in W) is returned. @ENG_END_DOX}
947
+ *
948
+ *@retvalues
949
+ *@ENG_START_DOX If the GPU power is successfully returned, __ADLX_OK__ is returned. <br>
950
+ * If the GPU power is not successfully returned, an error code is returned. <br>
951
+ * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
952
+ *
953
+ *
954
+ *@copydoc IADLXGPUMetrics_REQ_TABLE
955
+ *
956
+ */
957
+ virtual ADLX_RESULT ADLX_STD_CALL GPUPower (adlx_double* data) = 0;
958
+ /**
959
+ *@page DOX_IADLXGPUMetrics_GPUTotalBoardPower GPUTotalBoardPower
960
+ *@ENG_START_DOX @brief Gets the GPU total board power consumption of a GPU metric sample. @ENG_END_DOX
961
+ *
962
+ *@syntax
963
+ *@codeStart
964
+ * @ref ADLX_RESULT GPUTotalBoardPower (adlx_double* data)
965
+ *@codeEnd
966
+ *
967
+ *@params
968
+ *@paramrow{1.,[out] ,data,adlx_double* ,@ENG_START_DOX The pointer to a variable where the GPU total board power consumption (in W) is returned. @ENG_END_DOX}
969
+ *
970
+ *@retvalues
971
+ *@ENG_START_DOX If the GPU total board power is successfully returned, __ADLX_OK__ is returned. <br>
972
+ * If the GPU total board power is not successfully returned, an error code is returned. <br>
973
+ * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
974
+ *
975
+ *@addinfo
976
+ * @ENG_START_DOX The method returns power of all components on the board including VRAM. @ENG_END_DOX
977
+ *
978
+ *@copydoc IADLXGPUMetrics_REQ_TABLE
979
+ *
980
+ */
981
+ virtual ADLX_RESULT ADLX_STD_CALL GPUTotalBoardPower(adlx_double* data) = 0;
982
+ /**
983
+ *@page DOX_IADLXGPUMetrics_GPUFanSpeed GPUFanSpeed
984
+ *@ENG_START_DOX @brief Gets the GPU fan speed of a GPU metric sample. @ENG_END_DOX
985
+ *
986
+ *@syntax
987
+ *@codeStart
988
+ * @ref ADLX_RESULT GPUFanSpeed (adlx_int* data)
989
+ *@codeEnd
990
+ *
991
+ *@params
992
+ *@paramrow{1.,[out] ,data,adlx_int* ,@ENG_START_DOX The pointer to a variable where the GPU fan speed (in RPM) is returned. @ENG_END_DOX}
993
+ *
994
+ *@retvalues
995
+ *@ENG_START_DOX If the GPU fan speed is successfully returned, __ADLX_OK__ is returned. <br>
996
+ * If the GPU fan speed is not successfully returned, an error code is returned. <br>
997
+ * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
998
+ *
999
+ *
1000
+ *@copydoc IADLXGPUMetrics_REQ_TABLE
1001
+ *
1002
+ */
1003
+ virtual ADLX_RESULT ADLX_STD_CALL GPUFanSpeed (adlx_int* data) = 0;
1004
+ /**
1005
+ *@page DOX_IADLXGPUMetrics_GPUVRAM GPUVRAM
1006
+ *@ENG_START_DOX @brief Gets the dedicated GPU memory of a GPU metric sample. @ENG_END_DOX
1007
+ *
1008
+ *@syntax
1009
+ *@codeStart
1010
+ * @ref ADLX_RESULT GPUVRAM (adlx_int* data)
1011
+ *@codeEnd
1012
+ *
1013
+ *@params
1014
+ *@paramrow{1.,[out] ,data,adlx_int* ,@ENG_START_DOX The pointer to a variable where the dedicated GPU memory (in MB) is returned. @ENG_END_DOX}
1015
+ *
1016
+ *@retvalues
1017
+ *@ENG_START_DOX If the dedicated GPU memory is successfully returned, __ADLX_OK__ is returned. <br>
1018
+ * If the dedicated GPU memory is not successfully returned, an error code is returned. <br>
1019
+ * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
1020
+ *
1021
+ *
1022
+ *@copydoc IADLXGPUMetrics_REQ_TABLE
1023
+ *
1024
+ */
1025
+ virtual ADLX_RESULT ADLX_STD_CALL GPUVRAM (adlx_int* data) = 0;
1026
+ /**
1027
+ *@page DOX_IADLXGPUMetrics_GPUVoltage GPUVoltage
1028
+ *@ENG_START_DOX @brief Gets the GPU voltage of a GPU metric sample. @ENG_END_DOX
1029
+ *
1030
+ *@syntax
1031
+ *@codeStart
1032
+ * @ref ADLX_RESULT GPUVoltage (adlx_int* data)
1033
+ *@codeEnd
1034
+ *
1035
+ *@params
1036
+ *@paramrow{1.,[out] ,data,adlx_int* ,@ENG_START_DOX The pointer to a variable where the GPU voltage (in mV) is returned. @ENG_END_DOX}
1037
+ *
1038
+ *@retvalues
1039
+ *@ENG_START_DOX If the GPU voltage is successfully returned, __ADLX_OK__ is returned. <br>
1040
+ * If the GPU voltage is not successfully returned, an error code is returned. <br>
1041
+ * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
1042
+ *
1043
+ *
1044
+ *@copydoc IADLXGPUMetrics_REQ_TABLE
1045
+ *
1046
+ */
1047
+ virtual ADLX_RESULT ADLX_STD_CALL GPUVoltage (adlx_int* data) = 0;
1048
+ /**
1049
+ *@page DOX_IADLXGPUMetrics_GPUIntakeTemperature GPUIntakeTemperature
1050
+ *@ENG_START_DOX
1051
+ *@brief Gets the GPU intake temperature of a GPU metric sample.
1052
+ *@details GPUIntakeTemperature reports the fan intake temperature.
1053
+ *@ENG_END_DOX
1054
+ *
1055
+ *@syntax
1056
+ *@codeStart
1057
+ * @ref ADLX_RESULT GPUIntakeTemperature (adlx_double* data)
1058
+ *@codeEnd
1059
+ *
1060
+ *@params
1061
+ *@paramrow{1.,[out] ,data,adlx_double* ,@ENG_START_DOX The pointer to a variable where the GPU intake temperature (in °C) is returned. @ENG_END_DOX}
1062
+ *
1063
+ *@retvalues
1064
+ *@ENG_START_DOX If the GPU intake temperature is successfully returned, __ADLX_OK__ is returned. <br>
1065
+ * If the GPU Intake temperature is not successfully returned, an error code is returned. <br>
1066
+ * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
1067
+ *@addinfo
1068
+ * @ENG_START_DOX Related method: @ref DOX_IADLXGPUMetrics_GPUHotspotTemperature, @ref DOX_IADLXGPUMetrics_GPUTemperature. @ENG_END_DOX
1069
+ *
1070
+ *
1071
+ *@copydoc IADLXGPUMetrics_REQ_TABLE
1072
+ *
1073
+ */
1074
+ virtual ADLX_RESULT ADLX_STD_CALL GPUIntakeTemperature (adlx_double* data) = 0;
1075
+ };
1076
+ //----------------------------------------------------------------------------------------------
1077
+ typedef IADLXInterfacePtr_T<IADLXGPUMetrics> IADLXGPUMetricsPtr;
1078
+ } //namespace adlx
1079
+ #else //__cplusplus
1080
+ ADLX_DECLARE_IID (IADLXGPUMetrics, L"IADLXGPUMetrics")
1081
+
1082
+ typedef struct IADLXGPUMetrics IADLXGPUMetrics;
1083
+
1084
+ typedef struct IADLXGPUMetricsVtbl
1085
+ {
1086
+ //IADLXInterface
1087
+ adlx_long (ADLX_STD_CALL* Acquire)(IADLXGPUMetrics* pThis);
1088
+ adlx_long (ADLX_STD_CALL* Release)(IADLXGPUMetrics* pThis);
1089
+ ADLX_RESULT (ADLX_STD_CALL* QueryInterface)(IADLXGPUMetrics* pThis, const wchar_t* interfaceId, void** ppInterface);
1090
+
1091
+ //IADLXGPUMetrics
1092
+ ADLX_RESULT (ADLX_STD_CALL* TimeStamp)(IADLXGPUMetrics* pThis, adlx_int64* ms);
1093
+ ADLX_RESULT (ADLX_STD_CALL* GPUUsage)(IADLXGPUMetrics* pThis, adlx_double* data);
1094
+ ADLX_RESULT (ADLX_STD_CALL* GPUClockSpeed)(IADLXGPUMetrics* pThis, adlx_int* data);
1095
+ ADLX_RESULT (ADLX_STD_CALL* GPUVRAMClockSpeed)(IADLXGPUMetrics* pThis, adlx_int* data);
1096
+ ADLX_RESULT (ADLX_STD_CALL* GPUTemperature)(IADLXGPUMetrics* pThis, adlx_double* data);
1097
+ ADLX_RESULT (ADLX_STD_CALL* GPUHotspotTemperature)(IADLXGPUMetrics* pThis, adlx_double* data);
1098
+ ADLX_RESULT (ADLX_STD_CALL* GPUPower)(IADLXGPUMetrics* pThis, adlx_double* data);
1099
+ ADLX_RESULT (ADLX_STD_CALL* GPUTotalBoardPower)(IADLXGPUMetrics* pThis, adlx_double* data);
1100
+ ADLX_RESULT (ADLX_STD_CALL* GPUFanSpeed)(IADLXGPUMetrics* pThis, adlx_int* data);
1101
+ ADLX_RESULT (ADLX_STD_CALL* GPUVRAM)(IADLXGPUMetrics* pThis, adlx_int* data);
1102
+ ADLX_RESULT (ADLX_STD_CALL* GPUVoltage)(IADLXGPUMetrics* pThis, adlx_int* data);
1103
+ ADLX_RESULT (ADLX_STD_CALL* GPUIntakeTemperature)(IADLXGPUMetrics* pThis, adlx_double* data);
1104
+ } IADLXGPUMetricsVtbl;
1105
+
1106
+ struct IADLXGPUMetrics { const IADLXGPUMetricsVtbl *pVtbl; };
1107
+ #endif //__cplusplus
1108
+ #pragma endregion IADLXGPUMetrics
1109
+
1110
+ #pragma region IADLXGPUMetricsList
1111
+ #if defined (__cplusplus)
1112
+ namespace adlx
1113
+ {
1114
+ class ADLX_NO_VTABLE IADLXGPUMetricsList : public IADLXList
1115
+ {
1116
+ public:
1117
+ ADLX_DECLARE_IID (L"IADLXGPUMetricsList")
1118
+ //Lists must declare the type of items it holds - what was passed as ADLX_DECLARE_IID() in that interface
1119
+ ADLX_DECLARE_ITEM_IID (IADLXGPUMetrics::IID ())
1120
+
1121
+ /**
1122
+ * @page DOX_IADLXGPUMetricsList_At At
1123
+ * @ENG_START_DOX
1124
+ * @brief Returns the reference counted interface at the requested location.
1125
+ * @ENG_END_DOX
1126
+ *
1127
+ * @syntax
1128
+ * @codeStart
1129
+ * @ref ADLX_RESULT At (const adlx_uint location, @ref DOX_IADLXGPUMetrics** ppItem)
1130
+ * @codeEnd
1131
+ *
1132
+ * @params
1133
+ * @paramrow{1.,[in] ,location,const adlx_uint ,@ENG_START_DOX The location of the requested interface. @ENG_END_DOX}
1134
+ * @paramrow{2.,[out] ,ppItem,@ref DOX_IADLXGPUMetrics** ,@ENG_START_DOX The address of a pointer to the returned interface. If the interface is not successfully returned\, the method sets dereferenced address __*ppItem__ to __nullptr__. @ENG_END_DOX}
1135
+ *
1136
+ * @retvalues
1137
+ * @ENG_START_DOX
1138
+ * If the location is within the list bounds, __ADLX_OK__ is returned. <br>
1139
+ * If the location is not within the list bounds, an error code is returned. <br>
1140
+ * Refer to @ref ADLX_RESULT for success codes and error codes.
1141
+ * @ENG_END_DOX
1142
+ *
1143
+ * @detaileddesc
1144
+ * @ENG_START_DOX
1145
+ * @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed.
1146
+ * @ENG_END_DOX
1147
+ *
1148
+ * @addinfo
1149
+ * @ENG_START_DOX
1150
+ * In C++, when using ADLX interfaces as smart pointers, there is no need to call @ref DOX_IADLXInterface_Release because smart pointers call it in their internal implementation.
1151
+ * @ENG_END_DOX
1152
+ *
1153
+ * @copydoc IADLXGPUMetricsList_REQ_TABLE
1154
+ *
1155
+ */
1156
+ virtual ADLX_RESULT ADLX_STD_CALL At (const adlx_uint location, IADLXGPUMetrics** ppItem) = 0;
1157
+
1158
+ /**
1159
+ *@page DOX_IADLXGPUMetricsList_Add_Back Add_Back
1160
+ *@ENG_START_DOX @brief Adds an interface to the end of a list. @ENG_END_DOX
1161
+ *
1162
+ *@syntax
1163
+ *@codeStart
1164
+ * @ref ADLX_RESULT Add_Back (@ref DOX_IADLXGPUMetrics* pItem)
1165
+ *@codeEnd
1166
+ *
1167
+ *@params
1168
+ *@paramrow{1.,[in] ,pItem,@ref DOX_IADLXGPUMetrics* ,@ENG_START_DOX The pointer to the interface to be added to the list. @ENG_END_DOX}
1169
+ *
1170
+ *@retvalues
1171
+ *@ENG_START_DOX If the interface is added successfully to the end of the list, __ADLX_OK__ is returned. <br>
1172
+ * If the interface is not added to the end of the list, an error code is returned. <br>
1173
+ * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
1174
+ *
1175
+ *
1176
+ *@copydoc IADLXGPUMetricsList_REQ_TABLE
1177
+ *
1178
+ */
1179
+ virtual ADLX_RESULT ADLX_STD_CALL Add_Back (IADLXGPUMetrics* pItem) = 0;
1180
+ }; //IADLXGPUMetricsList
1181
+ //----------------------------------------------------------------------------------------------
1182
+ typedef IADLXInterfacePtr_T<IADLXGPUMetricsList> IADLXGPUMetricsListPtr;
1183
+ } //namespace adlx
1184
+ #else //__cplusplus
1185
+ ADLX_DECLARE_IID (IADLXGPUMetricsList, L"IADLXGPUMetricsList")
1186
+ ADLX_DECLARE_ITEM_IID (IADLXGPUMetrics, IID_IADLXGPUMetrics ())
1187
+
1188
+ typedef struct IADLXGPUMetricsList IADLXGPUMetricsList;
1189
+
1190
+ typedef struct IADLXGPUMetricsListVtbl
1191
+ {
1192
+ //IADLXInterface
1193
+ adlx_long (ADLX_STD_CALL *Acquire)(IADLXGPUMetricsList* pThis);
1194
+ adlx_long (ADLX_STD_CALL *Release)(IADLXGPUMetricsList* pThis);
1195
+ ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLXGPUMetricsList* pThis, const wchar_t* interfaceId, void** ppInterface);
1196
+
1197
+ //IADLXList
1198
+ adlx_uint (ADLX_STD_CALL *Size)(IADLXGPUMetricsList* pThis);
1199
+ adlx_bool (ADLX_STD_CALL *Empty)(IADLXGPUMetricsList* pThis);
1200
+ adlx_uint (ADLX_STD_CALL *Begin)(IADLXGPUMetricsList* pThis);
1201
+ adlx_uint (ADLX_STD_CALL *End)(IADLXGPUMetricsList* pThis);
1202
+ ADLX_RESULT (ADLX_STD_CALL *At)(IADLXGPUMetricsList* pThis, const adlx_uint location, IADLXInterface** ppItem);
1203
+ ADLX_RESULT (ADLX_STD_CALL *Clear)(IADLXGPUMetricsList* pThis);
1204
+ ADLX_RESULT (ADLX_STD_CALL *Remove_Back)(IADLXGPUMetricsList* pThis);
1205
+ ADLX_RESULT (ADLX_STD_CALL *Add_Back)(IADLXGPUMetricsList* pThis, IADLXInterface* pItem);
1206
+
1207
+ //IADLXGPUMetricsList
1208
+ ADLX_RESULT (ADLX_STD_CALL *At_GPUMetricsList)(IADLXGPUMetricsList* pThis, const adlx_uint location, IADLXGPUMetrics** ppItem);
1209
+ ADLX_RESULT (ADLX_STD_CALL *Add_Back_GPUMetricsList)(IADLXGPUMetricsList* pThis, IADLXGPUMetrics* pItem);
1210
+
1211
+ }IADLXGPUMetricsListVtbl;
1212
+
1213
+ struct IADLXGPUMetricsList { const IADLXGPUMetricsListVtbl *pVtbl; };
1214
+ #endif //__cplusplus
1215
+ #pragma endregion IADLXGPUMetricsList
1216
+
1217
+ #pragma region IADLXSystemMetrics
1218
+ #if defined (__cplusplus)
1219
+ namespace adlx
1220
+ {
1221
+ class ADLX_NO_VTABLE IADLXSystemMetrics : public IADLXInterface
1222
+ {
1223
+ public:
1224
+ ADLX_DECLARE_IID (L"IADLXSystemMetrics")
1225
+ /**
1226
+ *@page DOX_IADLXSystemMetrics_TimeStamp TimeStamp
1227
+ *@ENG_START_DOX @brief Gets the timestamp of a system metric sample. @ENG_END_DOX
1228
+ *
1229
+ *@syntax
1230
+ *@codeStart
1231
+ * @ref ADLX_RESULT TimeStamp (adlx_int64* ms)
1232
+ *@codeEnd
1233
+ *
1234
+ *@params
1235
+ *@paramrow{1.,[out] ,ms,adlx_int64* ,@ENG_START_DOX The pointer to a variable where the timestamp (in ms) is returned. @ENG_END_DOX}
1236
+ *
1237
+ *@retvalues
1238
+ *@ENG_START_DOX If the timestamp is successfully returned, __ADLX_OK__ is returned. <br>
1239
+ * If the timestamp is not successfully returned, an error code is returned. <br>
1240
+ * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
1241
+ *
1242
+ *@detaileddesc
1243
+ *@ENG_START_DOX @details The timestamp is the duration (in ms) from the system epoch time to the time when the metric sample was acquired. @ENG_END_DOX
1244
+ *
1245
+ *@copydoc IADLXSystemMetrics_REQ_TABLE
1246
+ *
1247
+ */
1248
+ virtual ADLX_RESULT ADLX_STD_CALL TimeStamp (adlx_int64* ms) = 0;
1249
+ /**
1250
+ *@page DOX_IADLXSystemMetrics_CPUUsage CPUUsage
1251
+ *@ENG_START_DOX @brief Gets the CPU usage of a system metric sample. @ENG_END_DOX
1252
+ *
1253
+ *@syntax
1254
+ *@codeStart
1255
+ * @ref ADLX_RESULT CPUUsage (adlx_double* data)
1256
+ *@codeEnd
1257
+ *
1258
+ *@params
1259
+ *@paramrow{1.,[out] ,data,adlx_double* ,@ENG_START_DOX The pointer to a variable where the CPU usage (in %) is returned. @ENG_END_DOX}
1260
+ *
1261
+ *@retvalues
1262
+ *@ENG_START_DOX If the CPU usage is successfully returned, __ADLX_OK__ is returned. <br>
1263
+ * If the CPU usage is not successfully returned, an error code is returned. <br>
1264
+ * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
1265
+ *
1266
+ *
1267
+ *@copydoc IADLXSystemMetrics_REQ_TABLE
1268
+ *
1269
+ */
1270
+ virtual ADLX_RESULT ADLX_STD_CALL CPUUsage (adlx_double* data) = 0;
1271
+ /**
1272
+ *@page DOX_IADLXSystemMetrics_SystemRAM SystemRAM
1273
+ *@ENG_START_DOX @brief Gets the system RAM of a system metric sample. @ENG_END_DOX
1274
+ *
1275
+ *@syntax
1276
+ *@codeStart
1277
+ * @ref ADLX_RESULT SystemRAM (adlx_int* data)
1278
+ *@codeEnd
1279
+ *
1280
+ *@params
1281
+ *@paramrow{1.,[out] ,data,adlx_int* ,@ENG_START_DOX The pointer to a variable where the system RAM (in MB) is returned. @ENG_END_DOX}
1282
+ *
1283
+ *@retvalues
1284
+ *@ENG_START_DOX If the system RAM is successfully returned, __ADLX_OK__ is returned. <br>
1285
+ * If the system RAM is not successfully returned, an error code is returned. <br>
1286
+ * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
1287
+ *
1288
+ *
1289
+ *@copydoc IADLXSystemMetrics_REQ_TABLE
1290
+ *
1291
+ */
1292
+ virtual ADLX_RESULT ADLX_STD_CALL SystemRAM (adlx_int* data) = 0;
1293
+ /**
1294
+ *@page DOX_IADLXSystemMetrics_SmartShift SmartShift
1295
+ *@ENG_START_DOX @brief Gets the SmartShift value of a system metric sample. @ENG_END_DOX
1296
+ *
1297
+ *@syntax
1298
+ *@codeStart
1299
+ * @ref ADLX_RESULT SmartShift (adlx_int* data)
1300
+ *@codeEnd
1301
+ *
1302
+ *@params
1303
+ *@paramrow{1.,[out] ,data,adlx_int* ,@ENG_START_DOX The pointer to a variable where the SmartShift value is returned. @ENG_END_DOX}
1304
+ *
1305
+ *@retvalues
1306
+ *@ENG_START_DOX If the SmartShift value is successfully returned, __ADLX_OK__ is returned. <br>
1307
+ * If the SmartShift value is not successfully returned, an error code is returned. <br>
1308
+ * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
1309
+ *
1310
+ *@detaileddesc
1311
+ *@ENG_START_DOX @details The value returned by SmartShift is an integer number which is within -100 to +100 range.<br>
1312
+ * A negative value indicates that the power is shifted to the CPU. <br>
1313
+ * A positive value indicates that the power is shifted to the GPU. <br>
1314
+ * Considering zero as the state with no power shift, the larger the deviation from zero, the larger the power shift. @ENG_END_DOX
1315
+ *
1316
+ *@addinfo
1317
+ *@ENG_START_DOX AMD SmartShift helps boost notebook performance by dynamically shifting the power between the CPU and the GPU depending on the workload. @ENG_END_DOX
1318
+ *
1319
+ *@copydoc IADLXSystemMetrics_REQ_TABLE
1320
+ *
1321
+ */
1322
+ virtual ADLX_RESULT ADLX_STD_CALL SmartShift (adlx_int* data) = 0;
1323
+ };
1324
+ //----------------------------------------------------------------------------------------------
1325
+ typedef IADLXInterfacePtr_T<IADLXSystemMetrics> IADLXSystemMetricsPtr;
1326
+ } //namespace adlx
1327
+ #else //__cplusplus
1328
+ ADLX_DECLARE_IID (IADLXSystemMetrics, L"IADLXSystemMetrics")
1329
+
1330
+ typedef struct IADLXSystemMetrics IADLXSystemMetrics;
1331
+
1332
+ typedef struct IADLXSystemMetricsVtbl
1333
+ {
1334
+ //IADLXInterface
1335
+ adlx_long (ADLX_STD_CALL *Acquire)(IADLXSystemMetrics* pThis);
1336
+ adlx_long (ADLX_STD_CALL *Release)(IADLXSystemMetrics* pThis);
1337
+ ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLXSystemMetrics* pThis, const wchar_t* interfaceId, void** ppInterface);
1338
+
1339
+ //IADLXSystemMetrics
1340
+ ADLX_RESULT (ADLX_STD_CALL *TimeStamp)(IADLXSystemMetrics* pThis, adlx_int64* ms);
1341
+ ADLX_RESULT (ADLX_STD_CALL *CPUUsage)(IADLXSystemMetrics* pThis, adlx_double* data);
1342
+ ADLX_RESULT (ADLX_STD_CALL *SystemRAM)(IADLXSystemMetrics* pThis, adlx_int* data);
1343
+ ADLX_RESULT (ADLX_STD_CALL *SmartShift)(IADLXSystemMetrics* pThis, adlx_int* data);
1344
+ }IADLXSystemMetricsVtbl;
1345
+
1346
+ struct IADLXSystemMetrics { const IADLXSystemMetricsVtbl *pVtbl; };
1347
+ #endif //__cplusplus
1348
+ #pragma endregion IADLXSystemMetrics
1349
+
1350
+ #pragma region IADLXSystemMetricsList
1351
+ #if defined (__cplusplus)
1352
+ namespace adlx
1353
+ {
1354
+ class ADLX_NO_VTABLE IADLXSystemMetricsList : public IADLXList
1355
+ {
1356
+ public:
1357
+ ADLX_DECLARE_IID (L"IADLXSystemMetricsList")
1358
+ //Lists must declare the type of items it holds - what was passed as ADLX_DECLARE_IID() in that interface
1359
+ ADLX_DECLARE_ITEM_IID (IADLXSystemMetrics::IID ())
1360
+
1361
+ /**
1362
+ * @page DOX_IADLXSystemMetricsList_At At
1363
+ * @ENG_START_DOX
1364
+ * @brief Returns the reference counted interface at the requested location.
1365
+ * @ENG_END_DOX
1366
+ *
1367
+ * @syntax
1368
+ * @codeStart
1369
+ * @ref ADLX_RESULT At (const adlx_uint location, @ref DOX_IADLXSystemMetrics** ppItem)
1370
+ * @codeEnd
1371
+ *
1372
+ * @params
1373
+ * @paramrow{1.,[in] ,location,const adlx_uint ,@ENG_START_DOX The location of the requested interface. @ENG_END_DOX}
1374
+ * @paramrow{2.,[out] ,ppItem,@ref DOX_IADLXSystemMetrics** ,@ENG_START_DOX The address of a pointer to the returned interface. If the interface is not successfully returned\, the method sets dereferenced address __*ppItem__ to __nullptr__. @ENG_END_DOX}
1375
+ *
1376
+ * @retvalues
1377
+ * @ENG_START_DOX
1378
+ * If the location is within the list bounds, __ADLX_OK__ is returned. <br>
1379
+ * If the location is not within the list bounds, an error code is returned. <br>
1380
+ * Refer to @ref ADLX_RESULT for success codes and error codes.
1381
+ * @ENG_END_DOX
1382
+ *
1383
+ * @detaileddesc
1384
+ * @ENG_START_DOX
1385
+ * @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed.
1386
+ * @ENG_END_DOX
1387
+ *
1388
+ * @addinfo
1389
+ * @ENG_START_DOX
1390
+ * In C++, when using ADLX interfaces as smart pointers, there is no need to call @ref DOX_IADLXInterface_Release because smart pointers call it in their internal implementation.
1391
+ * @ENG_END_DOX
1392
+ *
1393
+ * @copydoc IADLXSystemMetricsList_REQ_TABLE
1394
+ *
1395
+ */
1396
+ virtual ADLX_RESULT ADLX_STD_CALL At (const adlx_uint location, IADLXSystemMetrics** ppItem) = 0;
1397
+
1398
+ /**
1399
+ *@page DOX_IADLXSystemMetricsList_Add_Back Add_Back
1400
+ *@ENG_START_DOX @brief Adds an interface to the end of a list. @ENG_END_DOX
1401
+ *
1402
+ *@syntax
1403
+ *@codeStart
1404
+ * @ref ADLX_RESULT Add_Back (@ref DOX_IADLXSystemMetrics* pItem)
1405
+ *@codeEnd
1406
+ *
1407
+ *@params
1408
+ *@paramrow{1.,[in] ,pItem,@ref DOX_IADLXSystemMetrics* ,@ENG_START_DOX The pointer to the interface to be added to the list. @ENG_END_DOX}
1409
+ *
1410
+ *@retvalues
1411
+ *@ENG_START_DOX If the interface is added successfully to the end of the list, __ADLX_OK__ is returned. <br>
1412
+ * If the interface is not added to the end of the list, an error code is returned. <br>
1413
+ * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
1414
+ *
1415
+ *
1416
+ *@copydoc IADLXSystemMetricsList_REQ_TABLE
1417
+ *
1418
+ */
1419
+ virtual ADLX_RESULT ADLX_STD_CALL Add_Back (IADLXSystemMetrics* pItem) = 0;
1420
+ }; //IADLXSystemMetricsList
1421
+ //----------------------------------------------------------------------------------------------
1422
+ typedef IADLXInterfacePtr_T<IADLXSystemMetricsList> IADLXSystemMetricsListPtr;
1423
+ } //namespace adlx
1424
+ #else //__cplusplus
1425
+ ADLX_DECLARE_IID (IADLXSystemMetricsList, L"IADLXSystemMetricsList")
1426
+ ADLX_DECLARE_ITEM_IID (IADLXSystemMetrics, IID_IADLXSystemMetrics ())
1427
+
1428
+ typedef struct IADLXSystemMetricsList IADLXSystemMetricsList;
1429
+
1430
+ typedef struct IADLXSystemMetricsListVtbl
1431
+ {
1432
+ //IADLXInterface
1433
+ adlx_long (ADLX_STD_CALL *Acquire)(IADLXSystemMetricsList* pThis);
1434
+ adlx_long (ADLX_STD_CALL *Release)(IADLXSystemMetricsList* pThis);
1435
+ ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLXSystemMetricsList* pThis, const wchar_t* interfaceId, void** ppInterface);
1436
+
1437
+ //IADLXList
1438
+ adlx_uint (ADLX_STD_CALL *Size)(IADLXSystemMetricsList* pThis);
1439
+ adlx_bool (ADLX_STD_CALL *Empty)(IADLXSystemMetricsList* pThis);
1440
+ adlx_uint (ADLX_STD_CALL *Begin)(IADLXSystemMetricsList* pThis);
1441
+ adlx_uint (ADLX_STD_CALL *End)(IADLXSystemMetricsList* pThis);
1442
+ ADLX_RESULT (ADLX_STD_CALL *At)(IADLXSystemMetricsList* pThis, const adlx_uint location, IADLXInterface** ppItem);
1443
+ ADLX_RESULT (ADLX_STD_CALL *Clear)(IADLXSystemMetricsList* pThis);
1444
+ ADLX_RESULT (ADLX_STD_CALL *Remove_Back)(IADLXSystemMetricsList* pThis);
1445
+ ADLX_RESULT (ADLX_STD_CALL *Add_Back)(IADLXSystemMetricsList* pThis, IADLXInterface* pItem);
1446
+
1447
+ //IADLXSystemMetricsList
1448
+ ADLX_RESULT (ADLX_STD_CALL *At_SystemMetricsList)(IADLXSystemMetricsList* pThis, const adlx_uint location, IADLXSystemMetrics** ppItem);
1449
+ ADLX_RESULT (ADLX_STD_CALL *Add_Back_SystemMetricsList)(IADLXSystemMetricsList* pThis, IADLXSystemMetrics* pItem);
1450
+
1451
+ }IADLXSystemMetricsListVtbl;
1452
+
1453
+ struct IADLXSystemMetricsList { const IADLXSystemMetricsListVtbl *pVtbl; };
1454
+ #endif //__cplusplus
1455
+ #pragma endregion IADLXSystemMetricsList
1456
+
1457
+ #pragma region IADLXFPS
1458
+ #if defined (__cplusplus)
1459
+ namespace adlx
1460
+ {
1461
+ class ADLX_NO_VTABLE IADLXFPS : public IADLXInterface
1462
+ {
1463
+ public:
1464
+ ADLX_DECLARE_IID (L"IADLXFPS")
1465
+ /**
1466
+ *@page DOX_IADLXFPS_TimeStamp TimeStamp
1467
+ *@ENG_START_DOX @brief Gets the timestamp of an FPS metric sample. @ENG_END_DOX
1468
+ *
1469
+ *@syntax
1470
+ *@codeStart
1471
+ * @ref ADLX_RESULT TimeStamp (adlx_int64* ms)
1472
+ *@codeEnd
1473
+ *
1474
+ *@params
1475
+ *@paramrow{1.,[out] ,ms,adlx_int64* ,@ENG_START_DOX The pointer to a variable where the timestamp (in ms) is returned. @ENG_END_DOX}
1476
+ *
1477
+ *@retvalues
1478
+ *@ENG_START_DOX If the timestamp is successfully returned, __ADLX_OK__ is returned. <br>
1479
+ * If the timestamp is not successfully returned, an error code is returned. <br>
1480
+ * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
1481
+ *
1482
+ *@detaileddesc
1483
+ *@ENG_START_DOX @details The timestamp is the duration (in ms) from the system epoch time to the time when the metric sample was acquired. @ENG_END_DOX
1484
+ *
1485
+ *@copydoc IADLXFPS_REQ_TABLE
1486
+ *
1487
+ */
1488
+ virtual ADLX_RESULT ADLX_STD_CALL TimeStamp (adlx_int64* ms) = 0;
1489
+ /**
1490
+ *@page DOX_IADLXFPS_FPS FPS
1491
+ *@ENG_START_DOX @brief Gets the FPS when this metric set was acquired. @ENG_END_DOX
1492
+ *
1493
+ *@syntax
1494
+ *@codeStart
1495
+ * @ref ADLX_RESULT FPS (adlx_int* data)
1496
+ *@codeEnd
1497
+ *
1498
+ *@params
1499
+ *@paramrow{1.,[out] ,data,adlx_int* ,@ENG_START_DOX The pointer to a variable where the FPS is returned. @ENG_END_DOX}
1500
+ *
1501
+ *@retvalues
1502
+ *@ENG_START_DOX If the FPS is successfully returned, __ADLX_OK__ is returned. <br>
1503
+ * If the FPS is not successfully returned, an error code is returned. <br>
1504
+ * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
1505
+ *
1506
+ *
1507
+ *@copydoc IADLXFPS_REQ_TABLE
1508
+ *
1509
+ */
1510
+ virtual ADLX_RESULT ADLX_STD_CALL FPS (adlx_int* data) = 0;
1511
+ };
1512
+ //----------------------------------------------------------------------------------------------
1513
+ typedef IADLXInterfacePtr_T<IADLXFPS> IADLXFPSPtr;
1514
+ } //namespace adlx
1515
+ #else //__cplusplus
1516
+ ADLX_DECLARE_IID (IADLXFPS, L"IADLXFPS")
1517
+
1518
+ typedef struct IADLXFPS IADLXFPS;
1519
+
1520
+ typedef struct IADLXFPSVtbl
1521
+ {
1522
+ //IADLXInterface
1523
+ adlx_long (ADLX_STD_CALL *Acquire)(IADLXFPS* pThis);
1524
+ adlx_long (ADLX_STD_CALL *Release)(IADLXFPS* pThis);
1525
+ ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLXFPS* pThis, const wchar_t* interfaceId, void** ppInterface);
1526
+
1527
+ //IADLXFPS
1528
+ ADLX_RESULT (ADLX_STD_CALL *TimeStamp)(IADLXFPS* pThis, adlx_int64* ms);
1529
+ ADLX_RESULT (ADLX_STD_CALL *FPS)(IADLXFPS* pThis, adlx_int* data);
1530
+ }IADLXFPSVtbl;
1531
+
1532
+ struct IADLXFPS { const IADLXFPSVtbl *pVtbl; };
1533
+ #endif //__cplusplus
1534
+ #pragma endregion IADLXFPS
1535
+
1536
+ #pragma region IADLXFPSList
1537
+ #if defined (__cplusplus)
1538
+ namespace adlx
1539
+ {
1540
+ class ADLX_NO_VTABLE IADLXFPSList : public IADLXList
1541
+ {
1542
+ public:
1543
+ ADLX_DECLARE_IID (L"IADLXFPSList")
1544
+ //Lists must declare the type of items it holds - what was passed as ADLX_DECLARE_IID() in that interface
1545
+ ADLX_DECLARE_ITEM_IID (IADLXFPS::IID ())
1546
+
1547
+ /**
1548
+ * @page DOX_IADLXFPSList_At At
1549
+ * @ENG_START_DOX
1550
+ * @brief Returns the reference counted interface at the requested location.
1551
+ * @ENG_END_DOX
1552
+ *
1553
+ * @syntax
1554
+ * @codeStart
1555
+ * @ref ADLX_RESULT At (const adlx_uint location, @ref DOX_IADLXFPS** ppItem)
1556
+ * @codeEnd
1557
+ *
1558
+ * @params
1559
+ * @paramrow{1.,[in] ,location,const adlx_uint ,@ENG_START_DOX The location of the requested interface. @ENG_END_DOX}
1560
+ * @paramrow{2.,[out] ,ppItem,@ref DOX_IADLXFPS** ,@ENG_START_DOX The address of a pointer to the returned interface. If the interface is not successfully returned\, the method sets dereferenced address __*ppItem__ to __nullptr__. @ENG_END_DOX}
1561
+ *
1562
+ * @retvalues
1563
+ * @ENG_START_DOX
1564
+ * If the location is within the list bounds, __ADLX_OK__ is returned. <br>
1565
+ * If the location is not within the list bounds, an error code is returned. <br>
1566
+ * Refer to @ref ADLX_RESULT for success codes and error codes.
1567
+ * @ENG_END_DOX
1568
+ *
1569
+ * @detaileddesc
1570
+ * @ENG_START_DOX
1571
+ * @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed.
1572
+ * @ENG_END_DOX
1573
+ *
1574
+ * @addinfo
1575
+ * @ENG_START_DOX
1576
+ * In C++, when using ADLX interfaces as smart pointers, there is no need to call @ref DOX_IADLXInterface_Release because smart pointers call it in their internal implementation.
1577
+ * @ENG_END_DOX
1578
+ *
1579
+ * @copydoc IADLXFPSList_REQ_TABLE
1580
+ *
1581
+ */
1582
+ virtual ADLX_RESULT ADLX_STD_CALL At (const adlx_uint location, IADLXFPS** ppItem) = 0;
1583
+
1584
+ /**
1585
+ *@page DOX_IADLXFPSList_Add_Back Add_Back
1586
+ *@ENG_START_DOX @brief Adds an interface to the end of a list. @ENG_END_DOX
1587
+ *
1588
+ *@syntax
1589
+ *@codeStart
1590
+ * @ref ADLX_RESULT Add_Back (@ref DOX_IADLXFPS* pItem)
1591
+ *@codeEnd
1592
+ *
1593
+ *@params
1594
+ *@paramrow{1.,[in] ,pItem,@ref DOX_IADLXFPS* ,@ENG_START_DOX The pointer to the interface to be added to the list. @ENG_END_DOX}
1595
+ *
1596
+ *@retvalues
1597
+ *@ENG_START_DOX If the interface is added successfully to the end of the list, __ADLX_OK__ is returned. <br>
1598
+ * If the interface is not added to the end of the list, an error code is returned. <br>
1599
+ * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
1600
+ *
1601
+ *
1602
+ *@copydoc IADLXFPSList_REQ_TABLE
1603
+ *
1604
+ */
1605
+ virtual ADLX_RESULT ADLX_STD_CALL Add_Back (IADLXFPS* pItem) = 0;
1606
+ }; //IADLXFPSList
1607
+ //----------------------------------------------------------------------------------------------
1608
+ typedef IADLXInterfacePtr_T<IADLXFPSList> IADLXFPSListPtr;
1609
+ } //namespace adlx
1610
+ #else //__cplusplus
1611
+ ADLX_DECLARE_IID (IADLXFPSList, L"IADLXFPSList")
1612
+ ADLX_DECLARE_ITEM_IID (IADLXFPS, IID_IADLXFPS ())
1613
+
1614
+ typedef struct IADLXFPSList IADLXFPSList;
1615
+
1616
+ typedef struct IADLXFPSListVtbl
1617
+ {
1618
+ //IADLXInterface
1619
+ adlx_long (ADLX_STD_CALL *Acquire)(IADLXFPSList* pThis);
1620
+ adlx_long (ADLX_STD_CALL *Release)(IADLXFPSList* pThis);
1621
+ ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLXFPSList* pThis, const wchar_t* interfaceId, void** ppInterface);
1622
+
1623
+ //IADLXList
1624
+ adlx_uint (ADLX_STD_CALL *Size)(IADLXFPSList* pThis);
1625
+ adlx_bool (ADLX_STD_CALL *Empty)(IADLXFPSList* pThis);
1626
+ adlx_uint (ADLX_STD_CALL *Begin)(IADLXFPSList* pThis);
1627
+ adlx_uint (ADLX_STD_CALL *End)(IADLXFPSList* pThis);
1628
+ ADLX_RESULT (ADLX_STD_CALL *At)(IADLXFPSList* pThis, const adlx_uint location, IADLXInterface** ppItem);
1629
+ ADLX_RESULT (ADLX_STD_CALL *Clear)(IADLXFPSList* pThis);
1630
+ ADLX_RESULT (ADLX_STD_CALL *Remove_Back)(IADLXFPSList* pThis);
1631
+ ADLX_RESULT (ADLX_STD_CALL *Add_Back)(IADLXFPSList* pThis, IADLXInterface* pItem);
1632
+
1633
+ //IADLXFPSList
1634
+ ADLX_RESULT (ADLX_STD_CALL *At_FPSList)(IADLXFPSList* pThis, const adlx_uint location, IADLXFPS** ppItem);
1635
+ ADLX_RESULT (ADLX_STD_CALL *Add_Back_FPSList)(IADLXFPSList* pThis, IADLXFPS* pItem);
1636
+
1637
+ }IADLXFPSListVtbl;
1638
+
1639
+ struct IADLXFPSList { const IADLXFPSListVtbl *pVtbl; };
1640
+ #endif //__cplusplus
1641
+ #pragma endregion IADLXFPSList
1642
+
1643
+ #pragma region IADLXAllMetrics
1644
+ #if defined (__cplusplus)
1645
+ namespace adlx
1646
+ {
1647
+ class ADLX_NO_VTABLE IADLXGPU;
1648
+ class ADLX_NO_VTABLE IADLXAllMetrics : public IADLXInterface
1649
+ {
1650
+ public:
1651
+ ADLX_DECLARE_IID (L"IADLXAllMetrics")
1652
+ /**
1653
+ *@page DOX_IADLXAllMetrics_TimeStamp TimeStamp
1654
+ *@ENG_START_DOX @brief Gets the timestamp of a metric sample. @ENG_END_DOX
1655
+ *
1656
+ *@syntax
1657
+ *@codeStart
1658
+ * @ref ADLX_RESULT TimeStamp (adlx_int64* ms)
1659
+ *@codeEnd
1660
+ *
1661
+ *@params
1662
+ *@paramrow{1.,[out] ,ms,adlx_int64* ,@ENG_START_DOX The pointer to a variable where the timestamp (in ms) is returned. @ENG_END_DOX}
1663
+ *
1664
+ *@retvalues
1665
+ *@ENG_START_DOX If the timestamp is successfully returned, __ADLX_OK__ is returned. <br>
1666
+ * If the timestamp is not successfully returned, an error code is returned. <br>
1667
+ * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
1668
+ *
1669
+ *@detaileddesc
1670
+ *@ENG_START_DOX @details The timestamp is the duration (in ms) from the system epoch time to the time when the metric sample was acquired. @ENG_END_DOX
1671
+ *
1672
+ *@copydoc IADLXAllMetrics_REQ_TABLE
1673
+ *
1674
+ */
1675
+ virtual ADLX_RESULT ADLX_STD_CALL TimeStamp (adlx_int64* ms) = 0;
1676
+ /**
1677
+ *@page DOX_IADLXAllMetrics_GetSystemMetrics GetSystemMetrics
1678
+ *@ENG_START_DOX @brief Gets the reference counted system metrics interface of a metric sample. @ENG_END_DOX
1679
+ *
1680
+ *@syntax
1681
+ *@codeStart
1682
+ * @ref ADLX_RESULT GetSystemMetrics (@ref DOX_IADLXSystemMetrics** ppSystemMetrics)
1683
+ *@codeEnd
1684
+ *
1685
+ *@params
1686
+ * @paramrow{1.,[out] ,ppSystemMetrics,@ref DOX_IADLXSystemMetrics** ,@ENG_START_DOX The address of a pointer to the returned interface. If the interface is not successfully returned\, the method sets the dereferenced address __*ppSystemMetrics__ to __nullptr__. @ENG_END_DOX}
1687
+ *
1688
+ *@retvalues
1689
+ *@ENG_START_DOX If the interface is successfully returned, __ADLX_OK__ is returned. <br>
1690
+ * If the interface is not successfully returned, an error code is returned. <br>
1691
+ * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
1692
+ *
1693
+ *@detaileddesc
1694
+ *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX
1695
+ *
1696
+ *@addinfo
1697
+ *@ENG_START_DOX In C++, when using ADLX interfaces as smart pointers, there is no need to call @ref DOX_IADLXInterface_Release because smart pointers call it in their internal implementation. @ENG_END_DOX
1698
+ *
1699
+ *@copydoc IADLXAllMetrics_REQ_TABLE
1700
+ *
1701
+ */
1702
+ virtual ADLX_RESULT ADLX_STD_CALL GetSystemMetrics (IADLXSystemMetrics** ppSystemMetrics) = 0;
1703
+ /**
1704
+ *@page DOX_IADLXAllMetrics_GetFPS GetFPS
1705
+ *@ENG_START_DOX @brief Gets the reference counted FPS metrics interface of a metric sample. @ENG_END_DOX
1706
+ *
1707
+ *@syntax
1708
+ *@codeStart
1709
+ * @ref ADLX_RESULT GetFPS (@ref DOX_IADLXFPS** ppFPS)
1710
+ *@codeEnd
1711
+ *
1712
+ *@params
1713
+ * @paramrow{1.,[out] ,ppFPS,@ref DOX_IADLXFPS** ,@ENG_START_DOX The address of a pointer to the returned interface. If the interface is not successfully returned\, the method sets the dereferenced address __*ppFPS__ to __nullptr__. @ENG_END_DOX}
1714
+ *
1715
+ *@retvalues
1716
+ *@ENG_START_DOX If the interface is successfully returned, __ADLX_OK__ is returned. <br>
1717
+ * If the interface is not successfully returned, an error code is returned. <br>
1718
+ * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
1719
+ *
1720
+ *@detaileddesc
1721
+ *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX
1722
+ *
1723
+ *@addinfo
1724
+ *@ENG_START_DOX In C++, when using ADLX interfaces as smart pointers, there is no need to call @ref DOX_IADLXInterface_Release because smart pointers call it in their internal implementation. @ENG_END_DOX
1725
+ *
1726
+ *@copydoc IADLXAllMetrics_REQ_TABLE
1727
+ *
1728
+ */
1729
+ virtual ADLX_RESULT ADLX_STD_CALL GetFPS (IADLXFPS** ppFPS) = 0;
1730
+ /**
1731
+ *@page DOX_IADLXAllMetrics_GetGPUMetrics GetGPUMetrics
1732
+ *@ENG_START_DOX @brief Gets the reference counted GPU metrics interface of a metric sample. @ENG_END_DOX
1733
+ *
1734
+ *@syntax
1735
+ *@codeStart
1736
+ * @ref ADLX_RESULT GetGPUMetrics (@ref DOX_IADLXGPU* pGPU, @ref DOX_IADLXGPUMetrics** ppGPUMetrics)
1737
+ *@codeEnd
1738
+ *
1739
+ *@params
1740
+ * @paramrow{1.,[in] ,pGPU,@ref DOX_IADLXGPU* ,@ENG_START_DOX The pointer to a variable where IADLXGPU interface is returned. @ENG_END_DOX}
1741
+ * @paramrow{2.,[out] ,ppGPUMetrics,@ref DOX_IADLXGPUMetrics** ,@ENG_START_DOX The address of a pointer to the returned interface. If the interface is not successfully returned\, the method sets the dereferenced address __*ppGPUMetrics__ to __nullptr__. @ENG_END_DOX}
1742
+ *
1743
+ *@retvalues
1744
+ *@ENG_START_DOX If the interface is successfully returned, __ADLX_OK__ is returned. <br>
1745
+ * If the interface is not successfully returned, an error code is returned. <br>
1746
+ * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
1747
+ *
1748
+ *@detaileddesc
1749
+ *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX
1750
+ *
1751
+ *@addinfo
1752
+ *@ENG_START_DOX In C++, when using ADLX interfaces as smart pointers, there is no need to call @ref DOX_IADLXInterface_Release because smart pointers call it in their internal implementation. @ENG_END_DOX
1753
+ *
1754
+ *@copydoc IADLXAllMetrics_REQ_TABLE
1755
+ *
1756
+ */
1757
+ virtual ADLX_RESULT ADLX_STD_CALL GetGPUMetrics (IADLXGPU* pGPU, IADLXGPUMetrics** ppGPUMetrics) = 0;
1758
+ };
1759
+ //----------------------------------------------------------------------------------------------
1760
+ typedef IADLXInterfacePtr_T<IADLXAllMetrics> IADLXAllMetricsPtr;
1761
+ } //namespace adlx
1762
+ #else //__cplusplus
1763
+ ADLX_DECLARE_IID (IADLXAllMetrics, L"IADLXAllMetrics")
1764
+
1765
+ typedef struct IADLXAllMetrics IADLXAllMetrics;
1766
+
1767
+ typedef struct IADLXAllMetricsVtbl
1768
+ {
1769
+ //IADLXInterface
1770
+ adlx_long (ADLX_STD_CALL *Acquire)(IADLXAllMetrics* pThis);
1771
+ adlx_long (ADLX_STD_CALL *Release)(IADLXAllMetrics* pThis);
1772
+ ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLXAllMetrics* pThis, const wchar_t* interfaceId, void** ppInterface);
1773
+
1774
+ //IADLXAllMetrics
1775
+ ADLX_RESULT (ADLX_STD_CALL *TimeStamp)(IADLXAllMetrics* pThis, adlx_int64* ms);
1776
+ ADLX_RESULT (ADLX_STD_CALL *GetSystemMetrics)(IADLXAllMetrics* pThis, IADLXSystemMetrics** metrics);
1777
+ ADLX_RESULT (ADLX_STD_CALL *GetFPS)(IADLXAllMetrics* pThis, IADLXFPS** metrics);
1778
+ ADLX_RESULT (ADLX_STD_CALL *GetGPUMetrics)(IADLXAllMetrics* pThis, IADLXGPU* pGPU, IADLXGPUMetrics** metrics);
1779
+ }IADLXAllMetricsVtbl;
1780
+
1781
+ struct IADLXAllMetrics { const IADLXAllMetricsVtbl *pVtbl; };
1782
+ #endif //__cplusplus
1783
+ #pragma endregion IADLXAllMetrics
1784
+
1785
+ #pragma region IADLXAllMetricsList
1786
+ #if defined (__cplusplus)
1787
+ namespace adlx
1788
+ {
1789
+ class ADLX_NO_VTABLE IADLXAllMetricsList : public IADLXList
1790
+ {
1791
+ public:
1792
+ ADLX_DECLARE_IID (L"IADLXAllMetricsList")
1793
+ //Lists must declare the type of items it holds - what was passed as ADLX_DECLARE_IID() in that interface
1794
+ ADLX_DECLARE_ITEM_IID (IADLXAllMetrics::IID ())
1795
+
1796
+ /**
1797
+ * @page DOX_IADLXAllMetricsList_At At
1798
+ * @ENG_START_DOX
1799
+ * @brief Returns the reference counted interface at the requested location.
1800
+ * @ENG_END_DOX
1801
+ *
1802
+ * @syntax
1803
+ * @codeStart
1804
+ * @ref ADLX_RESULT At (const adlx_uint location, @ref DOX_IADLXAllMetrics** ppItem)
1805
+ * @codeEnd
1806
+ *
1807
+ * @params
1808
+ * @paramrow{1.,[in] ,location,const adlx_uint ,@ENG_START_DOX The location of the requested interface. @ENG_END_DOX}
1809
+ * @paramrow{2.,[out] ,ppItem,@ref DOX_IADLXAllMetrics** ,@ENG_START_DOX The address of a pointer to the returned interface. If the interface is not successfully returned\, the method sets dereferenced address __*ppItem__ to __nullptr__. @ENG_END_DOX}
1810
+ *
1811
+ * @retvalues
1812
+ * @ENG_START_DOX
1813
+ * If the location is within the list bounds, __ADLX_OK__ is returned. <br>
1814
+ * If the location is not within the list bounds, an error code is returned. <br>
1815
+ * Refer to @ref ADLX_RESULT for success codes and error codes.
1816
+ * @ENG_END_DOX
1817
+ *
1818
+ * @detaileddesc
1819
+ * @ENG_START_DOX
1820
+ * @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed.
1821
+ * @ENG_END_DOX
1822
+ *
1823
+ * @addinfo
1824
+ * @ENG_START_DOX
1825
+ * In C++, when using ADLX interfaces as smart pointers, there is no need to call @ref DOX_IADLXInterface_Release because smart pointers call it in their internal implementation.
1826
+ * @ENG_END_DOX
1827
+ *
1828
+ * @copydoc IADLXAllMetricsList_REQ_TABLE
1829
+ *
1830
+ */
1831
+ virtual ADLX_RESULT ADLX_STD_CALL At (const adlx_uint location, IADLXAllMetrics** ppItem) = 0;
1832
+
1833
+ /**
1834
+ *@page DOX_IADLXAllMetricsList_Add_Back Add_Back
1835
+ *@ENG_START_DOX @brief Adds an interface to the end of a list. @ENG_END_DOX
1836
+ *
1837
+ *@syntax
1838
+ *@codeStart
1839
+ * @ref ADLX_RESULT Add_Back (@ref DOX_IADLXAllMetrics* pItem)
1840
+ *@codeEnd
1841
+ *
1842
+ *@params
1843
+ *@paramrow{1.,[in] ,pItem,@ref DOX_IADLXAllMetrics* ,@ENG_START_DOX The pointer to the interface to be added to the list. @ENG_END_DOX}
1844
+ *
1845
+ *@retvalues
1846
+ *@ENG_START_DOX If the interface is added successfully to the end of the list, __ADLX_OK__ is returned. <br>
1847
+ * If the interface is not added to the end of the list, an error code is returned. <br>
1848
+ * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
1849
+ *
1850
+ *@detaileddesc
1851
+ *@ENG_START_DOX @details @ENG_END_DOX
1852
+ *
1853
+ *@copydoc IADLXAllMetricsList_REQ_TABLE
1854
+ *
1855
+ */
1856
+ virtual ADLX_RESULT ADLX_STD_CALL Add_Back (IADLXAllMetrics* pItem) = 0;
1857
+ }; //IADLXAllMetricsList
1858
+ //----------------------------------------------------------------------------------------------
1859
+ typedef IADLXInterfacePtr_T<IADLXAllMetricsList> IADLXAllMetricsListPtr;
1860
+ } //namespace adlx
1861
+ #else //__cplusplus
1862
+ ADLX_DECLARE_IID (IADLXAllMetricsList, L"IADLXAllMetricsList")
1863
+ ADLX_DECLARE_ITEM_IID (IADLXAllMetrics, IID_IADLXAllMetrics ())
1864
+
1865
+ typedef struct IADLXAllMetricsList IADLXAllMetricsList;
1866
+
1867
+ typedef struct IADLXAllMetricsListVtbl
1868
+ {
1869
+ //IADLXInterface
1870
+ adlx_long (ADLX_STD_CALL *Acquire)(IADLXAllMetricsList* pThis);
1871
+ adlx_long (ADLX_STD_CALL *Release)(IADLXAllMetricsList* pThis);
1872
+ ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLXAllMetricsList* pThis, const wchar_t* interfaceId, void** ppInterface);
1873
+
1874
+ //IADLXList
1875
+ adlx_uint (ADLX_STD_CALL *Size)(IADLXAllMetricsList* pThis);
1876
+ adlx_bool (ADLX_STD_CALL *Empty)(IADLXAllMetricsList* pThis);
1877
+ adlx_uint (ADLX_STD_CALL *Begin)(IADLXAllMetricsList* pThis);
1878
+ adlx_uint (ADLX_STD_CALL *End)(IADLXAllMetricsList* pThis);
1879
+ ADLX_RESULT (ADLX_STD_CALL *At)(IADLXAllMetricsList* pThis, const adlx_uint location, IADLXInterface** ppItem);
1880
+ ADLX_RESULT (ADLX_STD_CALL *Clear)(IADLXAllMetricsList* pThis);
1881
+ ADLX_RESULT (ADLX_STD_CALL *Remove_Back)(IADLXAllMetricsList* pThis);
1882
+ ADLX_RESULT (ADLX_STD_CALL *Add_Back)(IADLXAllMetricsList* pThis, IADLXInterface* pItem);
1883
+
1884
+ //IADLXAllMetricsList
1885
+ ADLX_RESULT (ADLX_STD_CALL *At_AllMetricsList)(IADLXAllMetricsList* pThis, const adlx_uint location, IADLXAllMetrics** ppItem);
1886
+ ADLX_RESULT (ADLX_STD_CALL *Add_Back_AllMetricsList)(IADLXAllMetricsList* pThis, IADLXAllMetrics* pItem);
1887
+
1888
+ }IADLXAllMetricsListVtbl;
1889
+
1890
+ struct IADLXAllMetricsList { const IADLXAllMetricsListVtbl *pVtbl; };
1891
+ #endif //__cplusplus
1892
+ #pragma endregion IADLXAllMetricsList
1893
+
1894
+ #pragma region IADLXPerformanceMonitoringServices
1895
+ #if defined (__cplusplus)
1896
+ namespace adlx
1897
+ {
1898
+ class ADLX_NO_VTABLE IADLXPerformanceMonitoringServices : public IADLXInterface
1899
+ {
1900
+ public:
1901
+ ADLX_DECLARE_IID(L"IADLXPerformanceMonitoringServices")
1902
+ /**
1903
+ *@page DOX_IADLXPerformanceMonitoringServices_GetSamplingIntervalRange GetSamplingIntervalRange
1904
+ *@ENG_START_DOX @brief Gets the maximum sampling interval, minimum sampling interval, and step sampling interval for the performance monitoring. @ENG_END_DOX
1905
+ *
1906
+ *@syntax
1907
+ *@codeStart
1908
+ * @ref ADLX_RESULT GetSamplingIntervalRange (@ref ADLX_IntRange* range)
1909
+ *@codeEnd
1910
+ *
1911
+ *@params
1912
+ * @paramrow{1.,[out],range,@ref ADLX_IntRange*,@ENG_START_DOX The pointer to a variable where the sampling interval range (in millisecond) is returned. @ENG_END_DOX}
1913
+ *
1914
+ *@retvalues
1915
+ *@ENG_START_DOX If the sampling interval range is successfully returned, __ADLX_OK__ is returned.<br>
1916
+ * If the sampling interval range is not successfully returned, an error code is returned.<br>
1917
+ * Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
1918
+ *
1919
+ *@detaileddesc
1920
+ *@ENG_START_DOX @details The maximum sampling interval, minimum sampling interval, and step sampling interval are read only. @ENG_END_DOX
1921
+ *
1922
+ *
1923
+ *@copydoc IADLXPerformanceMonitoringServices_REQ_TABLE
1924
+ *
1925
+ */
1926
+ virtual ADLX_RESULT ADLX_STD_CALL GetSamplingIntervalRange (ADLX_IntRange* range) = 0;
1927
+ /**
1928
+ *@page DOX_IADLXPerformanceMonitoringServices_SetSamplingInterval SetSamplingInterval
1929
+ *@ENG_START_DOX @brief Sets the sampling interval for the performance monitoring. @ENG_END_DOX
1930
+ *
1931
+ *@syntax
1932
+ *@codeStart
1933
+ * @ref ADLX_RESULT SetSamplingInterval (adlx_int intervalMs)
1934
+ *@codeEnd
1935
+ *
1936
+ *@params
1937
+ *@paramrow{1.,[in] ,intervalMs,adlx_int ,@ENG_START_DOX The sampling interval (in millisecond). @ENG_END_DOX}
1938
+ *
1939
+ *@retvalues
1940
+ *@ENG_START_DOX If the sampling interval is successfully set, __ADLX_OK__ is returned. <br>
1941
+ * If the sampling interval is not successfully set, an error code is returned. <br>
1942
+ * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
1943
+ *
1944
+ *@detaileddesc
1945
+ *@ENG_START_DOX @details The sampling interval is the time gap between two samples.
1946
+ * Obtain the sampling interval range with @ref DOX_IADLXPerformanceMonitoringServices_GetSamplingIntervalRange. The default sampling interval is 1000 ms.
1947
+ * @ENG_END_DOX
1948
+ *
1949
+ *@copydoc IADLXPerformanceMonitoringServices_REQ_TABLE
1950
+ *
1951
+ */
1952
+ virtual ADLX_RESULT ADLX_STD_CALL SetSamplingInterval (adlx_int askedIntervalMs) = 0;
1953
+ /**
1954
+ *@page DOX_IADLXPerformanceMonitoringServices_GetSamplingInterval GetSamplingInterval
1955
+ *@ENG_START_DOX @brief Gets the sampling interval for performance monitoring. @ENG_END_DOX
1956
+ *
1957
+ *@syntax
1958
+ *@codeStart
1959
+ * @ref ADLX_RESULT GetSamplingInterval (adlx_int* intervalMs)
1960
+ *@codeEnd
1961
+ *
1962
+ *@params
1963
+ *@paramrow{1.,[out] ,intervalMs,adlx_int* ,@ENG_START_DOX The pointer to a variable where the sampling interval (in millisecond) is returned. @ENG_END_DOX}
1964
+ *
1965
+ *@retvalues
1966
+ *@ENG_START_DOX If the sampling interval is successfully returned, __ADLX_OK__ is returned. <br>
1967
+ * If the sampling interval is not successfully returned, an error code is returned. <br>
1968
+ * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
1969
+ *
1970
+ *@detaileddesc
1971
+ *@ENG_START_DOX @details The sampling interval is the time gap between two samples.
1972
+ * Obtain the sampling interval range with @ref DOX_IADLXPerformanceMonitoringServices_GetSamplingIntervalRange. The default sampling interval is 1000 ms.
1973
+ * @ENG_END_DOX
1974
+ *
1975
+ *@copydoc IADLXPerformanceMonitoringServices_REQ_TABLE
1976
+ *
1977
+ */
1978
+ virtual ADLX_RESULT ADLX_STD_CALL GetSamplingInterval (adlx_int* intervalMs) = 0;
1979
+ /**
1980
+ *@page DOX_IADLXPerformanceMonitoringServices_GetMaxPerformanceMetricsHistorySizeRange GetMaxPerformanceMetricsHistorySizeRange
1981
+ *@ENG_START_DOX @brief Gets the maximum size, minimum size, and step size for the performance monitoring buffer. @ENG_END_DOX
1982
+ *
1983
+ *@syntax
1984
+ *@codeStart
1985
+ * @ref ADLX_RESULT GetMaxPerformanceMetricsHistorySizeRange (@ref ADLX_IntRange* range)
1986
+ *@codeEnd
1987
+ *
1988
+ *@params
1989
+ * @paramrow{1.,[out],range,@ref ADLX_IntRange*,@ENG_START_DOX The pointer to a variable where the buffer size range (in second) is returned. @ENG_END_DOX}
1990
+ *
1991
+ *@retvalues
1992
+ *@ENG_START_DOX If the buffer size range is successfully returned, __ADLX_OK__ is returned.<br>
1993
+ * If the buffer size range is not successfully returned, an error code is returned.<br>
1994
+ * Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
1995
+ *
1996
+ *@detaileddesc
1997
+ *@ENG_START_DOX @details The maximum buffer size, minimum buffer size, and step buffer size are read only. @ENG_END_DOX
1998
+ *
1999
+ *
2000
+ *@copydoc IADLXPerformanceMonitoringServices_REQ_TABLE
2001
+ *
2002
+ */
2003
+ virtual ADLX_RESULT ADLX_STD_CALL GetMaxPerformanceMetricsHistorySizeRange (ADLX_IntRange* range) = 0;
2004
+ /**
2005
+ *@page DOX_IADLXPerformanceMonitoringServices_SetMaxPerformanceMetricsHistorySize SetMaxPerformanceMetricsHistorySize
2006
+ *@ENG_START_DOX @brief Sets the duration of the performance monitoring buffer. @ENG_END_DOX
2007
+ *
2008
+ *@syntax
2009
+ *@codeStart
2010
+ * @ref ADLX_RESULT SetMaxPerformanceMetricsHistorySize (adlx_int sizeSec)
2011
+ *@codeEnd
2012
+ *
2013
+ *@params
2014
+ *@paramrow{1.,[in] ,sizeSec,adlx_int ,@ENG_START_DOX The buffer duration (in second). @ENG_END_DOX}
2015
+ *
2016
+ *@retvalues
2017
+ *@ENG_START_DOX If the buffer duration is successfully set, __ADLX_OK__ is returned. <br>
2018
+ * If the buffer duration is not successfully set, an error code is returned. <br>
2019
+ * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
2020
+ *
2021
+ *@detaileddesc
2022
+ *@ENG_START_DOX @details Obtain the buffer duration range with @ref DOX_IADLXPerformanceMonitoringServices_GetMaxPerformanceMetricsHistorySizeRange.
2023
+ * The default buffer duration is 100 s. If the monitoring continues longer than the buffer duration, the old performance samples are discarded to give buffer space to the latest samples.
2024
+ * @ENG_END_DOX
2025
+ *
2026
+ *@copydoc IADLXPerformanceMonitoringServices_REQ_TABLE
2027
+ *
2028
+ */
2029
+ virtual ADLX_RESULT ADLX_STD_CALL SetMaxPerformanceMetricsHistorySize (adlx_int sizeSec) = 0;
2030
+ /**
2031
+ *@page DOX_IADLXPerformanceMonitoringServices_GetMaxPerformanceMetricsHistorySize GetMaxPerformanceMetricsHistorySize
2032
+ *@ENG_START_DOX @brief Gets the duration of the performance monitoring buffer. @ENG_END_DOX
2033
+ *
2034
+ *@syntax
2035
+ *@codeStart
2036
+ * @ref ADLX_RESULT GetMaxPerformanceMetricsHistorySize (adlx_int* sizeSec)
2037
+ *@codeEnd
2038
+ *
2039
+ *@params
2040
+ *@paramrow{1.,[out] ,sizeSec,adlx_int* ,@ENG_START_DOX The pointer to a variable where the buffer duration (in second) is returned. @ENG_END_DOX}
2041
+ *
2042
+ *@retvalues
2043
+ *@ENG_START_DOX If the buffer duration is successfully returned, __ADLX_OK__ is returned. <br>
2044
+ * If the buffer duration is not successfully returned, an error code is returned. <br>
2045
+ * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
2046
+ *
2047
+ *@detaileddesc
2048
+ *@ENG_START_DOX @details Obtain the buffer duration range with @ref DOX_IADLXPerformanceMonitoringServices_GetMaxPerformanceMetricsHistorySizeRange.
2049
+ * The default buffer duration is 100 s. If the monitoring continues longer than the buffer duration, the old performance samples are discarded to give buffer space to the latest samples.
2050
+ * @ENG_END_DOX
2051
+ *
2052
+ *@copydoc IADLXPerformanceMonitoringServices_REQ_TABLE
2053
+ *
2054
+ */
2055
+ virtual ADLX_RESULT ADLX_STD_CALL GetMaxPerformanceMetricsHistorySize (adlx_int* sizeSec) = 0;
2056
+ /**
2057
+ *@page DOX_IADLXPerformanceMonitoringServices_ClearPerformanceMetricsHistory ClearPerformanceMetricsHistory
2058
+ *@ENG_START_DOX @brief Clears the buffer for performance monitoring. @ENG_END_DOX
2059
+ *
2060
+ *@syntax
2061
+ *@codeStart
2062
+ * @ref ADLX_RESULT ClearPerformanceMetricsHistory ()
2063
+ *@codeEnd
2064
+ *
2065
+ *@params
2066
+ * N/A
2067
+ *
2068
+ *@retvalues
2069
+ *@ENG_START_DOX If the buffer of performance monitoring is successfully cleared, __ADLX_OK__ is returned. <br>
2070
+ * If the buffer of performance monitoring is not successfully cleared, an error code is returned. <br>
2071
+ * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
2072
+ *
2073
+ *
2074
+ *@copydoc IADLXPerformanceMonitoringServices_REQ_TABLE
2075
+ *
2076
+ */
2077
+ virtual ADLX_RESULT ADLX_STD_CALL ClearPerformanceMetricsHistory () = 0;
2078
+ /**
2079
+ *@page DOX_IADLXPerformanceMonitoringServices_GetCurrentPerformanceMetricsHistorySize GetCurrentPerformanceMetricsHistorySize
2080
+ *@ENG_START_DOX @brief Gets the duration of the metrics history from the performance monitoring buffer. @ENG_END_DOX
2081
+ *
2082
+ *@syntax
2083
+ *@codeStart
2084
+ * @ref ADLX_RESULT GetCurrentPerformanceMetricsHistorySize (adlx_int* sizeSec)
2085
+ *@codeEnd
2086
+ *
2087
+ *@params
2088
+ *@paramrow{1.,[out] ,sizeSec,adlx_int* ,@ENG_START_DOX The pointer to a variable where the duration (in second) is returned. @ENG_END_DOX}
2089
+ *
2090
+ *@retvalues
2091
+ *@ENG_START_DOX If the duration is successfully returned, __ADLX_OK__ is returned. <br>
2092
+ * If the duration is not successfully returned, an error code is returned. <br>
2093
+ * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
2094
+ *
2095
+ *@detaileddesc
2096
+ *@ENG_START_DOX @details The buffer duration ranges between 50 s and 100 s. The default size is 100 s.
2097
+ * If the monitoring continues longer than the buffer duration, the old performance samples are discarded to give buffer space to the new samples. @ENG_END_DOX
2098
+ *
2099
+ *@copydoc IADLXPerformanceMonitoringServices_REQ_TABLE
2100
+ *
2101
+ */
2102
+ virtual ADLX_RESULT ADLX_STD_CALL GetCurrentPerformanceMetricsHistorySize (adlx_int* sizeSec) = 0;
2103
+ /**
2104
+ *@page DOX_IADLXPerformanceMonitoringServices_StartPerformanceMetricsTracking StartPerformanceMetricsTracking
2105
+ *@ENG_START_DOX @brief Increases the count for the performance metrics tracking. @ENG_END_DOX
2106
+ *
2107
+ *@syntax
2108
+ *@codeStart
2109
+ * @ref ADLX_RESULT StartPerformanceMetricsTracking ()
2110
+ *@codeEnd
2111
+ *
2112
+ *@params
2113
+ * N/A
2114
+ *
2115
+ *@retvalues
2116
+ *@ENG_START_DOX If the count is successfully increased, __ADLX_OK__ is returned. <br>
2117
+ * If the count is not successfully increased, an error code is returned. <br>
2118
+ * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
2119
+ *
2120
+ *@detaileddesc
2121
+ *@ENG_START_DOX @details ADLX reserves one buffer for the performance data. A count is used to keep a track of the calls to the __StartPerformanceMetricsTracking__. The count is increased by one every time the tracking starts. <br>
2122
+ * By default, the count is zero. The monitoring starts when the first call is made and the count increases by one. <br>
2123
+ * If the monitoring continues longer than the buffer duration, the old performance samples are discarded to give buffer space to the new samples.
2124
+ * @ENG_END_DOX
2125
+ *
2126
+ *@copydoc IADLXPerformanceMonitoringServices_REQ_TABLE
2127
+ *
2128
+ */
2129
+ virtual ADLX_RESULT ADLX_STD_CALL StartPerformanceMetricsTracking () = 0;
2130
+ /**
2131
+ *@page DOX_IADLXPerformanceMonitoringServices_StopPerformanceMetricsTracking StopPerformanceMetricsTracking
2132
+ *@ENG_START_DOX @brief Decreases the count for the performance metrics tracking. @ENG_END_DOX
2133
+ *
2134
+ *@syntax
2135
+ *@codeStart
2136
+ * @ref ADLX_RESULT StopPerformanceMetricsTracking ()
2137
+ *@codeEnd
2138
+ *
2139
+ *@params
2140
+ * N/A
2141
+ *
2142
+ *@retvalues
2143
+ *@ENG_START_DOX If the count is successfully decreased, __ADLX_OK__ is returned. <br>
2144
+ * If the count is not successfully decreased, an error code is returned. <br>
2145
+ * Refer to @ref ADLX_RESULT for success codes and error codes @ENG_END_DOX
2146
+ *
2147
+ *@detaileddesc
2148
+ *@ENG_START_DOX @details ADLX reserves one buffer for the performance data. A count is used to keep a track of the calls to the __StopPerformanceMetricsTracking__. <br>
2149
+ * When the __StopPerformanceMetricsTracking__ is called, the count is decreased by one. When the count reaches zero, the monitoring stops.<br>
2150
+ * If the monitoring continues longer than the buffer duration, the old performance samples are discarded to give buffer space to the new samples.
2151
+ * @ENG_END_DOX
2152
+ *
2153
+ *@copydoc IADLXPerformanceMonitoringServices_REQ_TABLE
2154
+ *
2155
+ */
2156
+ virtual ADLX_RESULT ADLX_STD_CALL StopPerformanceMetricsTracking () = 0;
2157
+ /**
2158
+ *@page DOX_IADLXPerformanceMonitoringServices_GetAllMetricsHistory GetAllMetricsHistory
2159
+ *@ENG_START_DOX @brief Gets the reference counted list of all the metrics in a time interval. @ENG_END_DOX
2160
+ *
2161
+ *@syntax
2162
+ *@codeStart
2163
+ * @ref ADLX_RESULT GetAllMetricsHistory (adlx_int startMs, adlx_int stopMs, @ref DOX_IADLXAllMetricsList** ppMetricsList)
2164
+ *@codeEnd
2165
+ *
2166
+ *@params
2167
+ * @paramrow{1.,[in] ,startMs,adlx_int ,@ENG_START_DOX The start time of the time interval (in millisecond). @ENG_END_DOX}
2168
+ * @paramrow{1.,[in] ,stopMs,adlx_int ,@ENG_START_DOX The stop time of the time interval (in millisecond). @ENG_END_DOX}
2169
+ * @paramrow{1.,[out] ,ppMetricsList,@ref DOX_IADLXAllMetricsList** ,@ENG_START_DOX The address of a pointer to the returned interface. If the interface is not successfully returned\, the method sets the dereferenced address __*ppMetricsList__ to __nullptr__. @ENG_END_DOX}
2170
+ *
2171
+ *@retvalues
2172
+ *@ENG_START_DOX If the interface is successfully returned, __ADLX_OK__ is returned. <br>
2173
+ * If the interface is not successfully returned, an error code is returned. <br>
2174
+ * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
2175
+ *
2176
+ *@detaileddesc
2177
+ *@ENG_START_DOX @details Use the __startMs__ and __stopMs__ to specify the time intervals for fetching the history.
2178
+ * - To get the reference counted list of the latest performance metric samples from the performance monitoring buffer, specify both the __startMs__ and __stopMs__ as zero.<br>
2179
+ * - To get the reference counted list of the performance metric samples from A ms ago to the present time, specify __startMs__ as A ms and __stopMs__ as zero. <br>
2180
+ * - To get the reference counted list of the performance metric samples from A ms ago to B ms ago, specify __startMs__ as A ms and __stopMs__ as B ms. <br>
2181
+ *
2182
+ * The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. <br>
2183
+ * @ENG_END_DOX
2184
+ *
2185
+ *@addinfo
2186
+ *@ENG_START_DOX In C++, when using ADLX interfaces as smart pointers, there is no need to call @ref DOX_IADLXInterface_Release because smart pointers call it in their internal implementation. @ENG_END_DOX
2187
+ *
2188
+ *@copydoc IADLXPerformanceMonitoringServices_REQ_TABLE
2189
+ *
2190
+ */
2191
+ virtual ADLX_RESULT ADLX_STD_CALL GetAllMetricsHistory (adlx_int startMs, adlx_int stopMs, IADLXAllMetricsList** ppMetricsList) = 0;
2192
+ /**
2193
+ *@page DOX_IADLXPerformanceMonitoringServices_GetGPUMetricsHistory GetGPUMetricsHistory
2194
+ *@ENG_START_DOX @brief Gets the reference counted list of GPU metrics in a time interval of a GPU. @ENG_END_DOX
2195
+ *
2196
+ *@syntax
2197
+ *@codeStart
2198
+ * @ref ADLX_RESULT GetGPUMetricsHistory (@ref DOX_IADLXGPU* pGPU, adlx_int startMs, adlx_int stopMs, @ref DOX_IADLXGPUMetricsList** ppMetricsList)
2199
+ *@codeEnd
2200
+ *
2201
+ *@params
2202
+ * @paramrow{1.,[in] ,pGPU,@ref DOX_IADLXGPU* ,@ENG_START_DOX The pointer to the GPU interface. @ENG_END_DOX}
2203
+ * @paramrow{2.,[in] ,startMs,adlx_int ,@ENG_START_DOX The start time of the time interval (in millisecond). @ENG_END_DOX}
2204
+ * @paramrow{3.,[in] ,stopMs,adlx_int ,@ENG_START_DOX The stop time of the time interval (in millisecond). @ENG_END_DOX}
2205
+ * @paramrow{4.,[out] ,ppMetricsList,@ref DOX_IADLXGPUMetricsList** ,@ENG_START_DOX The address of a pointer to the returned interface. If the interface is not successfully returned\, the method sets the dereferenced address __*ppMetricsList__ to __nullptr__. @ENG_END_DOX}
2206
+ *
2207
+ *@retvalues
2208
+ *@ENG_START_DOX If the interface is successfully returned, __ADLX_OK__ is returned. <br>
2209
+ * If the interface is not successfully returned, an error code is returned. <br>
2210
+ * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
2211
+ *
2212
+ *@detaileddesc
2213
+ *@ENG_START_DOX @details Use the __startMs__ and __stopMs__ to specify the time intervals for fetching the history.
2214
+ * - To get the reference counted list of the latest performance metric samples from the performance monitoring buffer, specify both the __startMs__ and __stopMs__ as zero.<br>
2215
+ * - To get the reference counted list of the performance metric samples from A ms ago to the present time, specify __startMs__ as A ms and __stopMs__ as zero. <br>
2216
+ * - To get the reference counted list of the performance metric samples from A ms ago to B ms ago, specify __startMs__ as A ms and __stopMs__ as B ms. <br>
2217
+ *
2218
+ * The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. <br>
2219
+ * @ENG_END_DOX
2220
+ *
2221
+ *@addinfo
2222
+ *@ENG_START_DOX In C++, when using ADLX interfaces as smart pointers, there is no need to call @ref DOX_IADLXInterface_Release because smart pointers call it in their internal implementation. @ENG_END_DOX
2223
+ *
2224
+ *@copydoc IADLXPerformanceMonitoringServices_REQ_TABLE
2225
+ *
2226
+ */
2227
+ virtual ADLX_RESULT ADLX_STD_CALL GetGPUMetricsHistory (IADLXGPU* pGPU, adlx_int startMs, adlx_int stopMs, IADLXGPUMetricsList** ppMetricsList) = 0;
2228
+ /**
2229
+ *@page DOX_IADLXPerformanceMonitoringServices_GetSystemMetricsHistory GetSystemMetricsHistory
2230
+ *@ENG_START_DOX @brief Gets the reference counted list of system metrics in a time interval. @ENG_END_DOX
2231
+ *
2232
+ *@syntax
2233
+ *@codeStart
2234
+ * @ref ADLX_RESULT GetSystemMetricsHistory (adlx_int startMs, adlx_int stopMs, @ref DOX_IADLXSystemMetricsList** ppMetricsList)
2235
+ *@codeEnd
2236
+ *
2237
+ *@params
2238
+ * @paramrow{1.,[in] ,startMs,adlx_int ,@ENG_START_DOX The start time of the time interval (in millisecond). @ENG_END_DOX}
2239
+ * @paramrow{2.,[in] ,stopMs,adlx_int ,@ENG_START_DOX The stop time of the time interval (in millisecond). @ENG_END_DOX}
2240
+ * @paramrow{3.,[out] ,ppMetricsList,@ref DOX_IADLXSystemMetricsList** ,@ENG_START_DOX The address of a pointer to the returned interface. If the interface is not successfully returned\, the method sets the dereferenced address __*ppMetricsList__ to __nullptr__. @ENG_END_DOX}
2241
+ *
2242
+ *@retvalues
2243
+ *@ENG_START_DOX If the interface is successfully returned, __ADLX_OK__ is returned. <br>
2244
+ * If the interface is not successfully returned, an error code is returned. <br>
2245
+ * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
2246
+ *
2247
+ *@detaileddesc
2248
+ *@ENG_START_DOX @details Use the __startMs__ and __stopMs__ to specify the time intervals for fetching the history.
2249
+ * - To get the reference counted list of the latest performance metric samples from the performance monitoring buffer, specify both the __startMs__ and __stopMs__ as zero.<br>
2250
+ * - To get the reference counted list of the performance metric samples from A ms ago to the present time, specify __startMs__ as A ms and __stopMs__ as zero. <br>
2251
+ * - To get the reference counted list of the performance metric samples from A ms ago to B ms ago, specify __startMs__ as A ms and __stopMs__ as B ms. <br>
2252
+ *
2253
+ * The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. <br>
2254
+ * @ENG_END_DOX
2255
+ *
2256
+ *@addinfo
2257
+ *@ENG_START_DOX In C++, when using ADLX interfaces as smart pointers, there is no need to call @ref DOX_IADLXInterface_Release because smart pointers call it in their internal implementation. @ENG_END_DOX
2258
+ *
2259
+ *@copydoc IADLXPerformanceMonitoringServices_REQ_TABLE
2260
+ *
2261
+ */
2262
+ virtual ADLX_RESULT ADLX_STD_CALL GetSystemMetricsHistory (adlx_int startMs, adlx_int stopMs, IADLXSystemMetricsList** ppMetricsList) = 0;
2263
+ /**
2264
+ *@page DOX_IADLXPerformanceMonitoringServices_GetFPSHistory GetFPSHistory
2265
+ *@ENG_START_DOX @brief Gets the reference counted list of FPS metrics in a time interval. @ENG_END_DOX
2266
+ *
2267
+ *@syntax
2268
+ *@codeStart
2269
+ * @ref ADLX_RESULT GetFPSHistory (adlx_int startMs, adlx_int stopMs, @ref DOX_IADLXFPSList** ppMetricsList)
2270
+ *@codeEnd
2271
+ *
2272
+ *@params
2273
+ * @paramrow{1.,[in] ,startMs,adlx_int ,@ENG_START_DOX The start time of the time interval (in millisecond). @ENG_END_DOX}
2274
+ * @paramrow{2.,[in] ,stopMs,adlx_int ,@ENG_START_DOX The stop time of the time interval (in millisecond). @ENG_END_DOX}
2275
+ * @paramrow{3.,[out] ,ppMetricsList,@ref DOX_IADLXFPSList** ,@ENG_START_DOX The address of a pointer to the returned interface. If the interface is not successfully returned\, the method sets the dereferenced address __*ppMetricsList__ to __nullptr__. @ENG_END_DOX}
2276
+ *
2277
+ *@retvalues
2278
+ *@ENG_START_DOX If the interface is successfully returned, __ADLX_OK__ is returned. <br>
2279
+ * If the interface is not successfully returned, an error code is returned. <br>
2280
+ * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
2281
+ *
2282
+ *@detaileddesc
2283
+ *@ENG_START_DOX @details Use the __startMs__ and __stopMs__ to specify the time intervals for fetching the history.
2284
+ * - To get the reference counted list of the latest performance metric samples from the performance monitoring buffer, specify both the __startMs__ and __stopMs__ as zero.<br>
2285
+ * - To get the reference counted list of the performance metric samples from A ms ago to the present time, specify __startMs__ as A ms and __stopMs__ as zero. <br>
2286
+ * - To get the reference counted list of the performance metric samples from A ms ago to B ms ago, specify __startMs__ as A ms and __stopMs__ as B ms. <br>
2287
+ *
2288
+ * The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. <br>
2289
+ * @ENG_END_DOX
2290
+ *
2291
+ *@addinfo
2292
+ *@ENG_START_DOX In C++, when using ADLX interfaces as smart pointers, there is no need to call @ref DOX_IADLXInterface_Release because smart pointers call it in their internal implementation. <br>
2293
+ * __Note:__ The FPS metric is only available while a 3D graphics application or game runs in exclusive full screen mode.
2294
+ * @ENG_END_DOX
2295
+ *
2296
+ *@copydoc IADLXPerformanceMonitoringServices_REQ_TABLE
2297
+ *
2298
+ */
2299
+ virtual ADLX_RESULT ADLX_STD_CALL GetFPSHistory (adlx_int startMs, adlx_int stopMs, IADLXFPSList** ppMetricsList) = 0;
2300
+ /**
2301
+ *@page DOX_IADLXPerformanceMonitoringServices_GetCurrentAllMetrics GetCurrentAllMetrics
2302
+ *@ENG_START_DOX @brief Gets the reference counted @ref DOX_IADLXAllMetrics interface for the current metric set. @ENG_END_DOX
2303
+ *
2304
+ *@syntax
2305
+ *@codeStart
2306
+ * @ref ADLX_RESULT GetCurrentAllMetrics (@ref DOX_IADLXAllMetrics** ppMetrics)
2307
+ *@codeEnd
2308
+ *
2309
+ *@params
2310
+ *@paramrow{1.,[out] ,ppMetrics,@ref DOX_IADLXAllMetrics** ,@ENG_START_DOX The address of a pointer to the returned interface. If the interface is not successfully returned\, the method sets the dereferenced address __*ppMetrics__ to __nullptr__. @ENG_END_DOX}
2311
+ *
2312
+ *@retvalues
2313
+ *@ENG_START_DOX If the interface is successfully returned, __ADLX_OK__ is returned. <br>
2314
+ * If the current interface is not successfully returned, an error code is returned. <br>
2315
+ * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
2316
+ *
2317
+ *@detaileddesc
2318
+ *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed.
2319
+ * It takes some time and is suitable for a single acquisition. For continuous collection, it is recommended to use @ref DOX_IADLXPerformanceMonitoringServices_GetAllMetricsHistory.
2320
+ * @ENG_END_DOX
2321
+ *
2322
+ *@addinfo
2323
+ *@ENG_START_DOX In C++, when using ADLX interfaces as smart pointers, there is no need to call @ref DOX_IADLXInterface_Release because smart pointers call it in their internal implementation. @ENG_END_DOX
2324
+ *
2325
+ *@copydoc IADLXPerformanceMonitoringServices_REQ_TABLE
2326
+ *
2327
+ */
2328
+ virtual ADLX_RESULT ADLX_STD_CALL GetCurrentAllMetrics (IADLXAllMetrics** ppMetrics) = 0;
2329
+ /**
2330
+ *@page DOX_IADLXPerformanceMonitoringServices_GetCurrentGPUMetrics GetCurrentGPUMetrics
2331
+ *@ENG_START_DOX @brief Gets the reference counted @ref DOX_IADLXGPUMetrics interface for the current metric set of a GPU. @ENG_END_DOX
2332
+ *
2333
+ *@syntax
2334
+ *@codeStart
2335
+ * @ref ADLX_RESULT GetCurrentGPUMetrics (@ref DOX_IADLXGPU* pGPU, @ref DOX_IADLXGPUMetrics** ppMetrics)
2336
+ *@codeEnd
2337
+ *
2338
+ *@params
2339
+ * @paramrow{1.,[in] ,pGPU,@ref DOX_IADLXGPU* ,@ENG_START_DOX The pointer to the GPU interface. @ENG_END_DOX}
2340
+ * @paramrow{2.,[out] ,ppMetrics,@ref DOX_IADLXGPUMetrics** ,@ENG_START_DOX The address of a pointer to the returned interface. If the interface is not successfully returned\, the method sets the dereferenced address __*ppMetrics__ to __nullptr__. @ENG_END_DOX}
2341
+ *
2342
+ *@retvalues
2343
+ *@ENG_START_DOX If the interface is successfully returned, __ADLX_OK__ is returned. <br>
2344
+ * If the interface is not successfully returned, an error code is returned. <br>
2345
+ * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
2346
+ *
2347
+ *@detaileddesc
2348
+ *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed.
2349
+ * It takes some time and is suitable for a single acquisition. For continuous collection, it is recommended to use @ref DOX_IADLXPerformanceMonitoringServices_GetGPUMetricsHistory.
2350
+ * @ENG_END_DOX
2351
+ *
2352
+ *@addinfo
2353
+ *@ENG_START_DOX In C++, when using ADLX interfaces as smart pointers, there is no need to call @ref DOX_IADLXInterface_Release because smart pointers call it in their internal implementation. @ENG_END_DOX
2354
+ *
2355
+ *@copydoc IADLXPerformanceMonitoringServices_REQ_TABLE
2356
+ *
2357
+ */
2358
+ virtual ADLX_RESULT ADLX_STD_CALL GetCurrentGPUMetrics (IADLXGPU* pGPU, IADLXGPUMetrics** ppMetrics) = 0;
2359
+ /**
2360
+ *@page DOX_IADLXPerformanceMonitoringServices_GetCurrentSystemMetrics GetCurrentSystemMetrics
2361
+ *@ENG_START_DOX @brief Gets the reference counted @ref DOX_IADLXSystemMetrics interface for the current metric set. @ENG_END_DOX
2362
+ *
2363
+ *@syntax
2364
+ *@codeStart
2365
+ * @ref ADLX_RESULT GetCurrentSystemMetrics (@ref DOX_IADLXSystemMetrics** ppMetrics)
2366
+ *@codeEnd
2367
+ *
2368
+ *@params
2369
+ *@paramrow{1.,[out] ,ppMetrics,@ref DOX_IADLXSystemMetrics** ,@ENG_START_DOX The address of a pointer to the returned interface. If the interface is not successfully returned\, the method sets the dereferenced address __*ppMetrics__ to __nullptr__. @ENG_END_DOX}
2370
+ *
2371
+ *@retvalues
2372
+ *@ENG_START_DOX If the interface is successfully returned, __ADLX_OK__ is returned. <br>
2373
+ * If the interface is not successfully returned, an error code is returned. <br>
2374
+ * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
2375
+ *
2376
+ *@detaileddesc
2377
+ *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed.
2378
+ * It takes some time and is suitable for a single acquisition. For continuous collection, it is recommended to use @ref DOX_IADLXPerformanceMonitoringServices_GetSystemMetricsHistory.
2379
+ * @ENG_END_DOX
2380
+ *
2381
+ *@addinfo
2382
+ *@ENG_START_DOX In C++, when using ADLX interfaces as smart pointers, there is no need to call @ref DOX_IADLXInterface_Release because smart pointers call it in their internal implementation. @ENG_END_DOX
2383
+ *
2384
+ *@copydoc IADLXPerformanceMonitoringServices_REQ_TABLE
2385
+ *
2386
+ */
2387
+ virtual ADLX_RESULT ADLX_STD_CALL GetCurrentSystemMetrics (IADLXSystemMetrics** ppMetrics) = 0;
2388
+ /**
2389
+ *@page DOX_IADLXPerformanceMonitoringServices_GetCurrentFPS GetCurrentFPS
2390
+ *@ENG_START_DOX @brief Gets the reference counted @ref DOX_IADLXFPS interface for the current FPS metric. @ENG_END_DOX
2391
+ *
2392
+ *@syntax
2393
+ *@codeStart
2394
+ * @ref ADLX_RESULT GetCurrentFPS (@ref DOX_IADLXFPS** ppMetrics)
2395
+ *@codeEnd
2396
+ *
2397
+ *@params
2398
+ *@paramrow{1.,[out] ,ppMetrics,@ref DOX_IADLXFPS** ,@ENG_START_DOX The address of a pointer to the returned interface. If the interface is not successfully returned\, the method sets the dereferenced address __*ppMetrics__ to __nullptr__. @ENG_END_DOX}
2399
+ *
2400
+ *@retvalues
2401
+ *@ENG_START_DOX If the interface is successfully returned, __ADLX_OK__ is returned. <br>
2402
+ * If the interface is not successfully returned, an error code is returned. <br>
2403
+ * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
2404
+ *
2405
+ *@detaileddesc
2406
+ *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed.
2407
+ * It takes some time and is suitable for a single acquisition. For continuous collection, it is recommended to use @ref DOX_IADLXPerformanceMonitoringServices_GetFPSHistory.
2408
+ * @ENG_END_DOX
2409
+ *
2410
+ *@addinfo
2411
+ *@ENG_START_DOX
2412
+ * In C++, when using ADLX interfaces as smart pointers, there is no need to call @ref DOX_IADLXInterface_Release because smart pointers call it in their internal implementation. <br>
2413
+ * __Note:__ The FPS metric is only available while a 3D graphics application or game runs in exclusive full screen mode.
2414
+ * @ENG_END_DOX
2415
+ *
2416
+ *@copydoc IADLXPerformanceMonitoringServices_REQ_TABLE
2417
+ *
2418
+ */
2419
+ virtual ADLX_RESULT ADLX_STD_CALL GetCurrentFPS (IADLXFPS** ppMetrics) = 0;
2420
+ /**
2421
+ *@page DOX_IADLXPerformanceMonitoringServices_GetSupportedGPUMetrics GetSupportedGPUMetrics
2422
+ *@ENG_START_DOX @brief Gets the reference counted interface for discovering what performance metrics are supported on a GPU. @ENG_END_DOX
2423
+ *
2424
+ *@syntax
2425
+ *@codeStart
2426
+ * @ref ADLX_RESULT GetSupportedGPUMetrics (@ref DOX_IADLXGPU* pGPU, @ref DOX_IADLXGPUMetricsSupport** ppMetricsSupported)
2427
+ *@codeEnd
2428
+ *
2429
+ *@params
2430
+ * @paramrow{1.,[in] ,pGPU,@ref DOX_IADLXGPU* ,@ENG_START_DOX The pointer to the GPU interface. @ENG_END_DOX}
2431
+ * @paramrow{2.,[out] ,ppMetricsSupported,@ref DOX_IADLXGPUMetricsSupport** ,@ENG_START_DOX The address of a pointer to the returned interface. If the interface is not successfully returned\, the method sets the dereferenced address __*ppMetricsSupported__ to __nullptr__. @ENG_END_DOX}
2432
+ *
2433
+ *@retvalues
2434
+ *@ENG_START_DOX If the interface is successfully returned, __ADLX_OK__ is returned. <br>
2435
+ * If the interface is not successfully returned, an error code is returned. <br>
2436
+ * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
2437
+ *
2438
+ *@detaileddesc
2439
+ *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed.
2440
+ * @ENG_END_DOX
2441
+ *
2442
+ *@addinfo
2443
+ *@ENG_START_DOX In C++, when using ADLX interfaces as smart pointers, there is no need to call @ref DOX_IADLXInterface_Release because smart pointers call it in their internal implementation. @ENG_END_DOX
2444
+ *
2445
+ *@copydoc IADLXPerformanceMonitoringServices_REQ_TABLE
2446
+ *
2447
+ */
2448
+ virtual ADLX_RESULT ADLX_STD_CALL GetSupportedGPUMetrics (IADLXGPU* pGPU, IADLXGPUMetricsSupport** ppMetricsSupported) = 0;
2449
+ /**
2450
+ *@page DOX_IADLXPerformanceMonitoringServices_GetSupportedSystemMetrics GetSupportedSystemMetrics
2451
+ *@ENG_START_DOX @brief Gets the reference counted interface for discovering what performance metrics are supported on the system. @ENG_END_DOX
2452
+ *
2453
+ *@syntax
2454
+ *@codeStart
2455
+ * @ref ADLX_RESULT GetSupportedSystemMetrics (@ref DOX_IADLXSystemMetricsSupport** ppMetricsSupported)
2456
+ *@codeEnd
2457
+ *
2458
+ *@params
2459
+ *@paramrow{1.,[out] ,ppMetricsSupported,@ref DOX_IADLXSystemMetricsSupport** ,@ENG_START_DOX The address of a pointer to the returned interface. If the interface is not successfully returned\, the method sets the dereferenced address __*ppMetricsSupported__ to __nullptr__. @ENG_END_DOX}
2460
+ *
2461
+ *@retvalues
2462
+ *@ENG_START_DOX If the interface is successfully returned, __ADLX_OK__ is returned. <br>
2463
+ * If the interface is not successfully returned, an error code is returned. <br>
2464
+ * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
2465
+ *
2466
+ *@detaileddesc
2467
+ *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed.
2468
+ * @ENG_END_DOX
2469
+ *
2470
+ *@addinfo
2471
+ *@ENG_START_DOX In C++, when using ADLX interfaces as smart pointers, there is no need to call @ref DOX_IADLXInterface_Release because smart pointers call it in their internal implementation. @ENG_END_DOX
2472
+ *
2473
+ *@copydoc IADLXPerformanceMonitoringServices_REQ_TABLE
2474
+ *
2475
+ */
2476
+ virtual ADLX_RESULT ADLX_STD_CALL GetSupportedSystemMetrics (IADLXSystemMetricsSupport** ppMetricsSupported) = 0;
2477
+
2478
+ }; //IADLXPerformanceMonitoringServices
2479
+ //----------------------------------------------------------------------------------------------
2480
+ typedef IADLXInterfacePtr_T<IADLXPerformanceMonitoringServices> IADLXPerformanceMonitoringServicesPtr;
2481
+ } //namespace adlx
2482
+ #else //__cplusplus
2483
+ ADLX_DECLARE_IID (IADLXPerformanceMonitoringServices, L"IADLXPerformanceMonitoringServices")
2484
+ typedef struct IADLXPerformanceMonitoringServices IADLXPerformanceMonitoringServices;
2485
+
2486
+ typedef struct IADLXPerformanceMonitoringServicesVtbl
2487
+ {
2488
+ //IADLXInterface
2489
+ adlx_long (ADLX_STD_CALL *Acquire)(IADLXPerformanceMonitoringServices* pThis);
2490
+ adlx_long (ADLX_STD_CALL *Release)(IADLXPerformanceMonitoringServices* pThis);
2491
+ ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLXPerformanceMonitoringServices* pThis, const wchar_t* interfaceId, void** ppInterface);
2492
+
2493
+ //IADLXPerformanceMonitoringServices
2494
+ ADLX_RESULT (ADLX_STD_CALL *GetSamplingIntervalRange)(IADLXPerformanceMonitoringServices* pThis, ADLX_IntRange* range);
2495
+ ADLX_RESULT (ADLX_STD_CALL *SetSamplingInterval)(IADLXPerformanceMonitoringServices* pThis, adlx_int intervalMs);
2496
+ ADLX_RESULT (ADLX_STD_CALL *GetSamplingInterval)(IADLXPerformanceMonitoringServices* pThis, adlx_int* intervalMs);
2497
+ ADLX_RESULT (ADLX_STD_CALL *GetMaxPerformanceMetricsHistorySizeRange)(IADLXPerformanceMonitoringServices* pThis, ADLX_IntRange* range);
2498
+ ADLX_RESULT (ADLX_STD_CALL *SetMaxPerformanceMetricsHistorySize)(IADLXPerformanceMonitoringServices* pThis, adlx_int sizeSec);
2499
+ ADLX_RESULT (ADLX_STD_CALL *GetMaxPerformanceMetricsHistorySize)(IADLXPerformanceMonitoringServices* pThis, adlx_int* sizeSec);
2500
+ ADLX_RESULT (ADLX_STD_CALL *ClearPerformanceMetricsHistory)(IADLXPerformanceMonitoringServices* pThis);
2501
+ ADLX_RESULT (ADLX_STD_CALL *GetCurrentPerformanceMetricsHistorySize)(IADLXPerformanceMonitoringServices* pThis, adlx_int* sizeSec);
2502
+ ADLX_RESULT (ADLX_STD_CALL *StartPerformanceMetricsTracking)(IADLXPerformanceMonitoringServices* pThis);
2503
+ ADLX_RESULT (ADLX_STD_CALL *StopPerformanceMetricsTracking)(IADLXPerformanceMonitoringServices* pThis);
2504
+ ADLX_RESULT (ADLX_STD_CALL *GetAllMetricsHistory)(IADLXPerformanceMonitoringServices* pThis, adlx_int startMs, adlx_int stopMs, IADLXAllMetricsList** ppMetricsList);
2505
+ ADLX_RESULT (ADLX_STD_CALL *GetGPUMetricsHistory)(IADLXPerformanceMonitoringServices* pThis, IADLXGPU* pGPU, adlx_int startMs, adlx_int stopMs, IADLXGPUMetricsList** ppMetricsList);
2506
+ ADLX_RESULT (ADLX_STD_CALL *GetSystemMetricsHistory)(IADLXPerformanceMonitoringServices* pThis, adlx_int startMs, adlx_int stopMs, IADLXSystemMetricsList** ppMetricsList);
2507
+ ADLX_RESULT (ADLX_STD_CALL *GetFPSHistory)(IADLXPerformanceMonitoringServices* pThis, adlx_int startMs, adlx_int stopMs, IADLXFPSList** ppMetricsList);
2508
+ ADLX_RESULT (ADLX_STD_CALL *GetCurrentAllMetrics)(IADLXPerformanceMonitoringServices* pThis, IADLXAllMetrics** ppMetrics);
2509
+ ADLX_RESULT (ADLX_STD_CALL *GetCurrentGPUMetrics)(IADLXPerformanceMonitoringServices* pThis, IADLXGPU* pGPU, IADLXGPUMetrics** ppMetrics);
2510
+ ADLX_RESULT (ADLX_STD_CALL *GetCurrentSystemMetrics)(IADLXPerformanceMonitoringServices* pThis, IADLXSystemMetrics** ppMetrics);
2511
+ ADLX_RESULT (ADLX_STD_CALL *GetCurrentFPS)(IADLXPerformanceMonitoringServices* pThis, IADLXFPS** ppMetrics);
2512
+ ADLX_RESULT (ADLX_STD_CALL *GetSupportedGPUMetrics)(IADLXPerformanceMonitoringServices* pThis, IADLXGPU* pGPU, IADLXGPUMetricsSupport** ppMetricsSupported);
2513
+ ADLX_RESULT (ADLX_STD_CALL *GetSupportedSystemMetrics)(IADLXPerformanceMonitoringServices* pThis, IADLXSystemMetricsSupport** ppMetricsSupported);
2514
+ }IADLXPerformanceMonitoringServicesVtbl;
2515
+
2516
+ struct IADLXPerformanceMonitoringServices { const IADLXPerformanceMonitoringServicesVtbl *pVtbl; };
2517
+ #endif //__cplusplus
2518
+ #pragma endregion IADLXPerformanceMonitoringServices
2519
+
2520
+ #endif//ADLX_IPERFORMANCEMONITORING_H