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,1007 @@
1
+ //
2
+ // Copyright (c) 2021 - 2025 Advanced Micro Devices, Inc. All rights reserved.
3
+ //
4
+ //-------------------------------------------------------------------------------------------------
5
+
6
+ #ifndef ADLX_IGPUMANUALFANTUNING_H
7
+ #define ADLX_IGPUMANUALFANTUNING_H
8
+ #pragma once
9
+
10
+ #include "ADLXStructures.h"
11
+ #include "ICollections.h"
12
+
13
+ //-------------------------------------------------------------------------------------------------
14
+ //IGPUManualFanTuning.h - Interfaces for ADLX GPU Manual Fan Tuning functionality
15
+
16
+ //Manual Tuning interface
17
+ #pragma region IADLXManualFanTuningState
18
+ #if defined (__cplusplus)
19
+ namespace adlx
20
+ {
21
+ class ADLX_NO_VTABLE IADLXManualFanTuningState : public IADLXInterface
22
+ {
23
+ public:
24
+ ADLX_DECLARE_IID (L"IADLXManualFanTuningState")
25
+
26
+ /**
27
+ * @page DOX_IADLXManualFanTuningState_GetFanSpeed GetFanSpeed
28
+ * @ENG_START_DOX
29
+ * @brief Gets the fan speed in the manual fan tuning state.
30
+ * @ENG_END_DOX
31
+ *
32
+ * @syntax
33
+ * @codeStart
34
+ * @ref ADLX_RESULT GetFanSpeed (adlx_int* value)
35
+ * @codeEnd
36
+ *
37
+ * @params
38
+ * @paramrow{1.,[out] ,value,adlx_uint* ,@ENG_START_DOX The pointer to a variable where the fan speed (in %) is returned. @ENG_END_DOX}
39
+ *
40
+ * @retvalues
41
+ * @ENG_START_DOX
42
+ * If the fan speed is successfully returned, __ADLX_OK__ is returned.<br>
43
+ * If the fan speed is not successfully returned, an error code is returned.<br>
44
+ * Refer to @ref ADLX_RESULT for success codes and error codes.<br>
45
+ * @ENG_END_DOX
46
+ *
47
+ * @copydoc IADLXManualFanTuningState_REQ_TABLE
48
+ *
49
+ */
50
+ virtual ADLX_RESULT ADLX_STD_CALL GetFanSpeed (adlx_int* value) = 0;
51
+
52
+ /**
53
+ *@page DOX_IADLXManualFanTuningState_SetFanSpeed SetFanSpeed
54
+ *@ENG_START_DOX @brief Sets the fan speed in the manual fan tuning state. @ENG_END_DOX
55
+ *
56
+ *@syntax
57
+ *@codeStart
58
+ * @ref ADLX_RESULT SetFanSpeed (adlx_int value)
59
+ *@codeEnd
60
+ *
61
+ * @params
62
+ * @paramrow{1.,[in] ,value,adlx_int ,@ENG_START_DOX The new fan speed value (in %). @ENG_END_DOX}
63
+ *
64
+ * @retvalues
65
+ * @ENG_START_DOX
66
+ * If the fan speed is successfully set, __ADLX_OK__ is returned.<br>
67
+ * If the fan speed is not successfully set, an error code is returned.<br>
68
+ * Refer to @ref ADLX_RESULT for success codes and error codes.<br>
69
+ * @ENG_END_DOX
70
+ *
71
+ *@detaileddesc
72
+ *@ENG_START_DOX @details Method for applying fan speed for the fan tuning state. @ENG_END_DOX
73
+ *
74
+ *@copydoc IADLXManualFanTuningState_REQ_TABLE
75
+ *
76
+ */
77
+ virtual ADLX_RESULT ADLX_STD_CALL SetFanSpeed (adlx_int value) = 0;
78
+
79
+ /**
80
+ * @page DOX_IADLXManualFanTuningState_GetTemperature GetTemperature
81
+ * @ENG_START_DOX
82
+ * @brief Gets the temperature in the manual fan tuning state.
83
+ * @ENG_END_DOX
84
+ *
85
+ * @syntax
86
+ * @codeStart
87
+ * @ref ADLX_RESULT GetTemperature (adlx_uint* value)
88
+ * @codeEnd
89
+ *
90
+ * @params
91
+ * @paramrow{1.,[out] ,value,adlx_uint* ,@ENG_START_DOX The pointer to a variable where the temperature (in °C) is returned. @ENG_END_DOX}
92
+ *
93
+ * @retvalues
94
+ * @ENG_START_DOX
95
+ * If the temperature is successfully returned, __ADLX_OK__ is returned.<br>
96
+ * If the temperature is not successfully returned, an error code is returned.<br>
97
+ * Refer to @ref ADLX_RESULT for success codes and error codes.<br>
98
+ * @ENG_END_DOX
99
+ *
100
+ * @copydoc IADLXManualFanTuningState_REQ_TABLE
101
+ *
102
+ */
103
+ virtual ADLX_RESULT ADLX_STD_CALL GetTemperature (adlx_int* value) = 0;
104
+
105
+ /**
106
+ *@page DOX_IADLXManualFanTuningState_SetTemperature SetTemperature
107
+ *@ENG_START_DOX @brief Sets the temperature in the manual fan tuning state. @ENG_END_DOX
108
+ *
109
+ *@syntax
110
+ *@codeStart
111
+ * @ref ADLX_RESULT SetTemperature (adlx_int value)
112
+ *@codeEnd
113
+ *
114
+ * @params
115
+ * @paramrow{1.,[in] ,value,adlx_int ,@ENG_START_DOX The new temperature value (in °C). @ENG_END_DOX}
116
+ *
117
+ * @retvalues
118
+ * @ENG_START_DOX
119
+ * If the temperature is successfully set, __ADLX_OK__ is returned.<br>
120
+ * If the temperature is not successfully set, an error code is returned.<br>
121
+ * Refer to @ref ADLX_RESULT for success codes and error codes.<br>
122
+ * @ENG_END_DOX
123
+ *
124
+ *@copydoc IADLXManualFanTuningState_REQ_TABLE
125
+ *
126
+ */
127
+ virtual ADLX_RESULT ADLX_STD_CALL SetTemperature (adlx_int value) = 0;
128
+ };
129
+ //----------------------------------------------------------------------------------------------
130
+ typedef IADLXInterfacePtr_T<IADLXManualFanTuningState> IADLXManualFanTuningStatePtr;
131
+ } //namespace adlx
132
+ #else //__cplusplus
133
+ ADLX_DECLARE_IID (IADLXManualFanTuningState, L"IADLXManualFanTuningState")
134
+
135
+ typedef struct IADLXManualFanTuningState IADLXManualFanTuningState;
136
+
137
+ typedef struct IADLXManualFanTuningStateVtbl
138
+ {
139
+ //IADLXInterface
140
+ adlx_long (ADLX_STD_CALL *Acquire)(IADLXManualFanTuningState* pThis);
141
+ adlx_long (ADLX_STD_CALL *Release)(IADLXManualFanTuningState* pThis);
142
+ ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLXManualFanTuningState* pThis, const wchar_t* interfaceId, void** ppInterface);
143
+
144
+ //IADLXManualFanTuningState
145
+ ADLX_RESULT (ADLX_STD_CALL *GetFanSpeed)(IADLXManualFanTuningState* pThis, adlx_int* value);
146
+ ADLX_RESULT (ADLX_STD_CALL *SetFanSpeed)(IADLXManualFanTuningState* pThis, adlx_int value);
147
+ ADLX_RESULT (ADLX_STD_CALL *GetTemperature)(IADLXManualFanTuningState* pThis, adlx_int* value);
148
+ ADLX_RESULT (ADLX_STD_CALL *SetTemperature)(IADLXManualFanTuningState* pThis, adlx_int value);
149
+ }IADLXManualFanTuningStateVtbl;
150
+
151
+ struct IADLXManualFanTuningState { const IADLXManualFanTuningStateVtbl *pVtbl; };
152
+ #endif //__cplusplus
153
+ #pragma endregion IADLXManualFanTuningState
154
+
155
+ //IADLXManualFanTuningState list interface
156
+ #pragma region IADLXManualFanTuningStateList
157
+ #if defined (__cplusplus)
158
+ namespace adlx
159
+ {
160
+ class ADLX_NO_VTABLE IADLXManualFanTuningStateList : public IADLXList
161
+ {
162
+ public:
163
+ ADLX_DECLARE_IID (L"IADLXManualFanTuningStateList")
164
+ //Lists must declare the type of items it holds - what was passed as ADLX_DECLARE_IID() in that interface
165
+ ADLX_DECLARE_ITEM_IID (IADLXManualFanTuningState::IID ())
166
+
167
+ /**
168
+ * @page DOX_IADLXManualFanTuningStateList_At At
169
+ * @ENG_START_DOX
170
+ * @brief Returns the reference counted interface at the requested location.
171
+ * @ENG_END_DOX
172
+ *
173
+ * @syntax
174
+ * @codeStart
175
+ * @ref ADLX_RESULT At (const adlx_uint location, @ref DOX_IADLXManualFanTuningState** ppItem)
176
+ * @codeEnd
177
+ *
178
+ * @params
179
+ * @paramrow{1.,[in] ,location,const adlx_uint ,@ENG_START_DOX The location of the requested interface. @ENG_END_DOX}
180
+ * @paramrow{2.,[out] ,ppItem,@ref DOX_IADLXManualFanTuningState** ,@ENG_START_DOX The address of a pointer to the returned interface. If the interface is not successfully returned then the method sets the dereferenced address __*ppItem__ to __nullptr__. @ENG_END_DOX}
181
+ *
182
+ * @retvalues
183
+ * @ENG_START_DOX
184
+ * If the location is within the list bounds, __ADLX_OK__ is returned.<br>
185
+ * If the location is not within the list bounds, an error code is returned.<br>
186
+ * Refer to @ref ADLX_RESULT for success codes and error codes.<br>
187
+ * @ENG_END_DOX
188
+ *
189
+ * @detaileddesc
190
+ * @ENG_START_DOX
191
+ * @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed.
192
+ * @ENG_END_DOX
193
+ *
194
+ * @addinfo
195
+ * @ENG_START_DOX
196
+ * 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.
197
+ * @ENG_END_DOX
198
+ *
199
+ * @copydoc IADLXManualFanTuningStateList_REQ_TABLE
200
+ *
201
+ */
202
+ virtual ADLX_RESULT ADLX_STD_CALL At (const adlx_uint location, IADLXManualFanTuningState** ppItem) = 0;
203
+ /**
204
+ *@page DOX_IADLXManualFanTuningStateList_Add_Back Add_Back
205
+ *@ENG_START_DOX @brief Adds an interface to the end of a list. @ENG_END_DOX
206
+ *
207
+ *@syntax
208
+ *@codeStart
209
+ * @ref ADLX_RESULT Add_Back (@ref DOX_IADLXManualFanTuningState* pItem)
210
+ *@codeEnd
211
+ *
212
+ *@params
213
+ *@paramrow{1.,[in] ,pItem,@ref DOX_IADLXManualFanTuningState* ,@ENG_START_DOX The pointer to the interface to be added to the list. @ENG_END_DOX}
214
+ *
215
+ * @retvalues
216
+ * @ENG_START_DOX
217
+ * If the interface is added successfully to the end of the list, __ADLX_OK__ is returned.<br>
218
+ * If the interface is not added to the end of the list, an error code is returned.<br>
219
+ * Refer to @ref ADLX_RESULT for success codes and error codes.<br>
220
+ * @ENG_END_DOX
221
+ *
222
+ *@copydoc IADLXManualFanTuningStateList_REQ_TABLE
223
+ *
224
+ */
225
+ virtual ADLX_RESULT ADLX_STD_CALL Add_Back (IADLXManualFanTuningState* pItem) = 0;
226
+ }; //IADLXManualFanTuningStateList
227
+ //----------------------------------------------------------------------------------------------
228
+ typedef IADLXInterfacePtr_T<IADLXManualFanTuningStateList> IADLXManualFanTuningStateListPtr;
229
+ } //namespace adlx
230
+ #else //__cplusplus
231
+ ADLX_DECLARE_IID (IADLXManualFanTuningStateList, L"IADLXManualFanTuningStateList")
232
+ ADLX_DECLARE_ITEM_IID (IADLXManualFanTuningState, IID_IADLXManualFanTuningState ())
233
+
234
+ typedef struct IADLXManualFanTuningStateList IADLXManualFanTuningStateList;
235
+
236
+ typedef struct IADLXManualFanTuningStateListVtbl
237
+ {
238
+ //IADLXInterface
239
+ adlx_long (ADLX_STD_CALL *Acquire)(IADLXManualFanTuningStateList* pThis);
240
+ adlx_long (ADLX_STD_CALL *Release)(IADLXManualFanTuningStateList* pThis);
241
+ ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLXManualFanTuningStateList* pThis, const wchar_t* interfaceId, void** ppInterface);
242
+
243
+ //IADLXList
244
+ adlx_uint (ADLX_STD_CALL *Size)(IADLXManualFanTuningStateList* pThis);
245
+ adlx_bool (ADLX_STD_CALL *Empty)(IADLXManualFanTuningStateList* pThis);
246
+ adlx_uint (ADLX_STD_CALL *Begin)(IADLXManualFanTuningStateList* pThis);
247
+ adlx_uint (ADLX_STD_CALL *End)(IADLXManualFanTuningStateList* pThis);
248
+ ADLX_RESULT (ADLX_STD_CALL *At)(IADLXManualFanTuningStateList* pThis, const adlx_uint location, IADLXInterface** ppItem);
249
+ ADLX_RESULT (ADLX_STD_CALL *Clear)(IADLXManualFanTuningStateList* pThis);
250
+ ADLX_RESULT (ADLX_STD_CALL *Remove_Back)(IADLXManualFanTuningStateList* pThis);
251
+ ADLX_RESULT (ADLX_STD_CALL *Add_Back)(IADLXManualFanTuningStateList* pThis, IADLXInterface* pItem);
252
+
253
+ //IADLXManualFanTuningStateList
254
+ ADLX_RESULT (ADLX_STD_CALL *At_ManualFanTuningStateList)(IADLXManualFanTuningStateList* pThis, const adlx_uint location, IADLXManualFanTuningState** ppItem);
255
+ ADLX_RESULT (ADLX_STD_CALL *Add_Back_ManualFanTuningStateList)(IADLXManualFanTuningStateList* pThis, IADLXManualFanTuningState* pItem);
256
+
257
+ }IADLXManualFanTuningStateListVtbl;
258
+
259
+ struct IADLXManualFanTuningStateList { const IADLXManualFanTuningStateListVtbl *pVtbl; };
260
+ #endif //__cplusplus
261
+ #pragma endregion IADLXManualFanTuningStateList
262
+
263
+ // Manual FAN Tuning
264
+ #pragma region IADLXManualFanTuning
265
+ #if defined (__cplusplus)
266
+ namespace adlx
267
+ {
268
+ class ADLX_NO_VTABLE IADLXManualFanTuning : public IADLXInterface
269
+ {
270
+ public:
271
+ ADLX_DECLARE_IID (L"IADLXManualFanTuning")
272
+
273
+ /**
274
+ *@page DOX_IADLXManualFanTuning_GetFanTuningRanges GetFanTuningRanges
275
+ *@ENG_START_DOX @brief Gets the fan speed range and the temperature range on a GPU. @ENG_END_DOX
276
+ *
277
+ *@syntax
278
+ *@codeStart
279
+ * @ref ADLX_RESULT GetFanTuningRanges (@ref ADLX_IntRange* speedRange, @ref ADLX_IntRange* temperatureRange)
280
+ *@codeEnd
281
+ *
282
+ *@params
283
+ *@paramrow{1.,[out],speedRange,@ref ADLX_IntRange*,@ENG_START_DOX The pointer to a variable where the fan speed range (in %) is returned. @ENG_END_DOX}
284
+ *@paramrow{2.,[out],temperatureRange,@ref ADLX_IntRange*,@ENG_START_DOX The pointer to a variable where the temperature range (in °C) is returned. @ENG_END_DOX}
285
+ *
286
+ *@retvalues
287
+ *@ENG_START_DOX If the fan speed and temperature range is successfully returned, __ADLX_OK__ is returned.<br>
288
+ * If the fan speed and temperature range is not successfully returned, an error code is returned.<br>
289
+ * Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
290
+ *
291
+ * @addinfo
292
+ * @ENG_START_DOX
293
+ * The fan speed range and the temperature range are applicable to all GPU states on a GPU.
294
+ * @ENG_END_DOX
295
+ *
296
+ *@copydoc IADLXManualFanTuning_REQ_TABLE
297
+ *
298
+ */
299
+ virtual ADLX_RESULT ADLX_STD_CALL GetFanTuningRanges (ADLX_IntRange* speedRange, ADLX_IntRange* temperatureRange) = 0;
300
+
301
+ /**
302
+ *@page DOX_IADLXManualFanTuning_GetFanTuningStates GetFanTuningStates
303
+ *@ENG_START_DOX @brief Gets the reference counted list of current GPU fan tuning states on a GPU. @ENG_END_DOX
304
+ *
305
+ *@syntax
306
+ *@codeStart
307
+ * @ref ADLX_RESULT GetFanTuningStates (@ref DOX_IADLXManualFanTuningStateList** ppStates)
308
+ *@codeEnd
309
+ *
310
+ *@params
311
+ *@paramrow{1.,[out],ppStates,@ref DOX_IADLXManualFanTuningStateList**,@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 __*ppStates__ to __nullptr__. @ENG_END_DOX}
312
+ *
313
+ *@retvalues
314
+ *@ENG_START_DOX If the list of GPU fan tuning states is successfully returned, __ADLX_OK__ is returned.<br>
315
+ * If the list of GPU fan tuning states is not successfully returned, an error code is returned.<br>
316
+ * Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
317
+ *
318
+ *@detaileddesc
319
+ *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX
320
+ *
321
+ *@addinfo
322
+ *@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
323
+ *
324
+ *@copydoc IADLXManualFanTuning_REQ_TABLE
325
+ *
326
+ */
327
+ virtual ADLX_RESULT ADLX_STD_CALL GetFanTuningStates (IADLXManualFanTuningStateList** ppStates) = 0;
328
+
329
+ /**
330
+ *@page DOX_IADLXManualFanTuning_GetEmptyFanTuningStates GetEmptyFanTuningStates
331
+ *@ENG_START_DOX @brief Gets the reference counted list of empty GPU fan tuning states on a GPU. @ENG_END_DOX
332
+ *
333
+ *@syntax
334
+ *@codeStart
335
+ * @ref ADLX_RESULT GetEmptyFanTuningStates (@ref DOX_IADLXManualFanTuningStateList** ppStates)
336
+ *@codeEnd
337
+ *
338
+ *@params
339
+ *@paramrow{1.,[out],ppStates,@ref DOX_IADLXManualFanTuningStateList**,@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 __*ppStates__ to __nullptr__. @ENG_END_DOX}
340
+ *
341
+ *@retvalues
342
+ *@ENG_START_DOX If the list of empty GPU fan tuning states is successfully returned, __ADLX_OK__ is returned.<br>
343
+ * If the list of empty GPU fan tuning states is not successfully returned, an error code is returned.<br>
344
+ * Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
345
+ *
346
+ *@detaileddesc
347
+ *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX
348
+ *
349
+ *@addinfo
350
+ *@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
351
+ *
352
+ *@copydoc IADLXManualFanTuning_REQ_TABLE
353
+ *
354
+ */
355
+ virtual ADLX_RESULT ADLX_STD_CALL GetEmptyFanTuningStates (IADLXManualFanTuningStateList** ppStates) = 0;
356
+
357
+ /**
358
+ *@page DOX_IADLXManualFanTuning_IsValidFanTuningStates IsValidFanTuningStates
359
+ *@ENG_START_DOX @brief Checks if each GPU fan tuning state in a list is valid on a GPU. @ENG_END_DOX
360
+ *
361
+ *@syntax
362
+ *@codeStart
363
+ * @ref ADLX_RESULT IsValidFanTuningStates (@ref DOX_IADLXManualFanTuningStateList* pStates, adlx_int* errorIndex)
364
+ *@codeEnd
365
+ *
366
+ *@params
367
+ *@paramrow{1.,[in],pStates,@ref DOX_IADLXManualFanTuningStateList*,@ENG_START_DOX The pointer to the GPU fan tuning states list interface. @ENG_END_DOX}
368
+ *@paramrow{2.,[out],errorIndex,adlx_int*,@ENG_START_DOX The pointer to a variable where the invalid states index is returned. @ENG_END_DOX}
369
+ *
370
+ *@retvalues
371
+ *@ENG_START_DOX If __IsValidFanTuningStates__ is successfully executed, __ADLX_OK__ is returned.<br>
372
+ * If __IsValidFanTuningStates__ is not successfully executed, an error code is returned.<br>
373
+ * Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
374
+ *
375
+ *@detaileddesc
376
+ *@ENG_START_DOX @details If the __*pStates__ is valid then the method sets the __errorIndex__ to -1. @ENG_END_DOX
377
+ *
378
+ *@copydoc IADLXManualFanTuning_REQ_TABLE
379
+ *
380
+ */
381
+ virtual ADLX_RESULT ADLX_STD_CALL IsValidFanTuningStates (IADLXManualFanTuningStateList* pStates, adlx_int* errorIndex) = 0;
382
+
383
+ /**
384
+ *@page DOX_IADLXManualFanTuning_SetFanTuningStates SetFanTuningStates
385
+ *@ENG_START_DOX @brief Sets the fan tuning states on a GPU. @ENG_END_DOX
386
+ *
387
+ *@syntax
388
+ *@codeStart
389
+ * @ref ADLX_RESULT SetFanTuningStates (@ref DOX_IADLXManualFanTuningStateList* pStates)
390
+ *@codeEnd
391
+ *
392
+ *@params
393
+ *@paramrow{1.,[in],pStates,@ref DOX_IADLXManualFanTuningStateList*,@ENG_START_DOX The pointer to the GPU states list interface. @ENG_END_DOX}
394
+ *
395
+ *@retvalues
396
+ *@ENG_START_DOX If the GPU fan tuning states are successfully set, __ADLX_OK__ is returned.<br>
397
+ * If the GPU fan tuning states are not successfully set, an error code is returned.<br>
398
+ * Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
399
+ *
400
+ *@copydoc IADLXManualFanTuning_REQ_TABLE
401
+ *
402
+ */
403
+ virtual ADLX_RESULT ADLX_STD_CALL SetFanTuningStates (IADLXManualFanTuningStateList* pStates) = 0;
404
+
405
+ /**
406
+ *@page DOX_IADLXManualFanTuning_IsSupportedZeroRPM IsSupportedZeroRPM
407
+ *@ENG_START_DOX @brief Checks if zero RPM is supported on a GPU. @ENG_END_DOX
408
+ *
409
+ *@syntax
410
+ *@codeStart
411
+ * @ref ADLX_RESULT IsSupportedZeroRPM (adlx_bool* supported)
412
+ *@codeEnd
413
+ *
414
+ *@params
415
+ *@paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of zero RPM feature is returned. The variable is __true__ if zero RPM feature is supported. The variable is __false__ if zero RPM feature is not supported. @ENG_END_DOX}
416
+ *
417
+ *@retvalues
418
+ *@ENG_START_DOX If the state of zero RPM feature is successfully returned, __ADLX_OK__ is returned.<br>
419
+ * If the state of zero RPM feature is not successfully returned, an error code is returned.<br>
420
+ * Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
421
+ *
422
+ * @addinfo
423
+ * @ENG_START_DOX
424
+ * Zero RPM enables quiet operation when the GPU is under a light load and speeds up the fans when the GPU load and temperature increases.
425
+ * @ENG_END_DOX
426
+ *
427
+ *@copydoc IADLXManualFanTuning_REQ_TABLE
428
+ *
429
+ */
430
+ virtual ADLX_RESULT ADLX_STD_CALL IsSupportedZeroRPM (adlx_bool* supported) = 0;
431
+
432
+ /**
433
+ *@page DOX_IADLXManualFanTuning_GetZeroRPMState GetZeroRPMState
434
+ *@ENG_START_DOX @brief Checks if zero RPM is currently activated on a GPU. @ENG_END_DOX
435
+ *
436
+ *@syntax
437
+ *@codeStart
438
+ * @ref ADLX_RESULT GetZeroRPMState (adlx_bool* isSet)
439
+ *@codeEnd
440
+ *
441
+ *@params
442
+ *@paramrow{1.,[out],isSet,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of zero RPM is returned. The variable is __true__ if zero RPM is enabled. The variable is __false__ if zero RPM is not enabled. @ENG_END_DOX}
443
+ *
444
+ *@retvalues
445
+ *@ENG_START_DOX If the state of zero RPM is successfully returned, __ADLX_OK__ is returned.<br>
446
+ * If the state of zero RPM is not successfully returned, an error code is returned.<br>
447
+ * Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
448
+ *
449
+ * @addinfo
450
+ * @ENG_START_DOX
451
+ * Zero RPM enables quiet operation when the GPU is under a light load and speeds up the fans when the GPU load and temperature increases.
452
+ * @ENG_END_DOX
453
+ *
454
+ *@copydoc IADLXManualFanTuning_REQ_TABLE
455
+ *
456
+ */
457
+ virtual ADLX_RESULT ADLX_STD_CALL GetZeroRPMState (adlx_bool* isSet) = 0;
458
+
459
+ /**
460
+ *@page DOX_IADLXManualFanTuning_SetZeroRPMState SetZeroRPMState
461
+ *@ENG_START_DOX @brief Enables or disables zero RPM on a GPU. @ENG_END_DOX
462
+ *
463
+ *@syntax
464
+ *@codeStart
465
+ * @ref ADLX_RESULT SetZeroRPMState (adlx_bool set)
466
+ *@codeEnd
467
+ *
468
+ *@params
469
+ *@paramrow{1.,[in],isSet,adlx_bool,@ENG_START_DOX The new zero RPM state. Set __true__ to enable zero RPM. Set __false__ to disable zero RPM. @ENG_END_DOX}
470
+ *
471
+ *@retvalues
472
+ *@ENG_START_DOX If the state of zero RPM is successfully set, __ADLX_OK__ is returned.<br>
473
+ * If the state of zero RPM is not successfully set, an error code is returned.<br>
474
+ * Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
475
+ *
476
+ * @addinfo
477
+ * @ENG_START_DOX
478
+ * Zero RPM enables quiet operation when the GPU is under a light load and speeds up the fans when the GPU load and temperature increases.
479
+ * @ENG_END_DOX
480
+ *
481
+ *@copydoc IADLXManualFanTuning_REQ_TABLE
482
+ *
483
+ */
484
+ virtual ADLX_RESULT ADLX_STD_CALL SetZeroRPMState (adlx_bool set) = 0;
485
+
486
+ /**
487
+ *@page DOX_IADLXManualFanTuning_IsSupportedMinAcousticLimit IsSupportedMinAcousticLimit
488
+ *@ENG_START_DOX @brief Checks if the minimum acoustic limit is supported on a GPU. @ENG_END_DOX
489
+ *
490
+ *@syntax
491
+ *@codeStart
492
+ * @ref ADLX_RESULT IsSupportedMinAcousticLimit (adlx_bool* supported)
493
+ *@codeEnd
494
+ *
495
+ *@params
496
+ *@paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of min acoustic limit feature is returned. The variable is __true__ if min acoustic limit feature is supported. The variable is __false__ if min acoustic limit feature is not supported. @ENG_END_DOX}
497
+ *
498
+ *@retvalues
499
+ *@ENG_START_DOX If the state of min acoustic limit feature is successfully returned, __ADLX_OK__ is returned.<br>
500
+ * If the state of min acoustic limit feature is not successfully returned, an error code is returned.<br>
501
+ * Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
502
+ *
503
+ * @addinfo
504
+ * @ENG_START_DOX
505
+ * Some GPUs support Minimum Acoustic Limit adjustments (in MHz).
506
+ * @ENG_END_DOX
507
+ *
508
+ *@copydoc IADLXManualFanTuning_REQ_TABLE
509
+ *
510
+ */
511
+ virtual ADLX_RESULT ADLX_STD_CALL IsSupportedMinAcousticLimit (adlx_bool* supported) = 0;
512
+
513
+ /**
514
+ *@page DOX_IADLXManualFanTuning_GetMinAcousticLimitRange GetMinAcousticLimitRange
515
+ *@ENG_START_DOX @brief Gets the maximum value, minimum value, and step for the minimum acoustic limit on a GPU. @ENG_END_DOX
516
+ *
517
+ *@syntax
518
+ *@codeStart
519
+ * @ref ADLX_RESULT GetMinAcousticLimitRange (@ref ADLX_IntRange* tuningRange)
520
+ *@codeEnd
521
+ *
522
+ *@params
523
+ *@paramrow{1.,[out],tuningRange,@ref ADLX_IntRange*,@ENG_START_DOX The pointer to a variable where the min acoustic limit range (in MHz) is returned. @ENG_END_DOX}
524
+ *
525
+ *@retvalues
526
+ *@ENG_START_DOX If the min acoustic limit range is successfully returned, __ADLX_OK__ is returned.<br>
527
+ * If the min acoustic limit range is not successfully returned, an error code is returned.<br>
528
+ * Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
529
+ *
530
+ * @addinfo
531
+ * @ENG_START_DOX
532
+ * Some GPUs support Minimum Acoustic Limit adjustments (in MHz).
533
+ * @ENG_END_DOX
534
+ *
535
+ *@copydoc IADLXManualFanTuning_REQ_TABLE
536
+ *
537
+ */
538
+ virtual ADLX_RESULT ADLX_STD_CALL GetMinAcousticLimitRange (ADLX_IntRange* tuningRange) = 0;
539
+
540
+ /**
541
+ *@page DOX_IADLXManualFanTuning_GetMinAcousticLimit GetMinAcousticLimit
542
+ *@ENG_START_DOX @brief Gets the current minimum acoustic limit on a GPU. @ENG_END_DOX
543
+ *
544
+ *@syntax
545
+ *@codeStart
546
+ * @ref ADLX_RESULT GetMinAcousticLimit (adlx_int* value)
547
+ *@codeEnd
548
+ *
549
+ *@params
550
+ *@paramrow{1.,[out],value,adlx_int*,@ENG_START_DOX The pointer to a variable where the min acoustic limit value (in MHz) is returned. @ENG_END_DOX}
551
+ *
552
+ *@retvalues
553
+ *@ENG_START_DOX If the min acoustic limit value is successfully returned, __ADLX_OK__ is returned.<br>
554
+ * If the min acoustic limit value is not successfully returned, an error code is returned.<br>
555
+ * Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
556
+ *
557
+ * @addinfo
558
+ * @ENG_START_DOX
559
+ * Some GPUs support Minimum Acoustic Limit adjustments (in MHz).
560
+ * @ENG_END_DOX
561
+ *
562
+ *@copydoc IADLXManualFanTuning_REQ_TABLE
563
+ *
564
+ */
565
+ virtual ADLX_RESULT ADLX_STD_CALL GetMinAcousticLimit (adlx_int* value) = 0;
566
+
567
+ /**
568
+ *@page DOX_IADLXManualFanTuning_SetMinAcousticLimit SetMinAcousticLimit
569
+ *@ENG_START_DOX @brief Sets the minimum acoustic limit on a GPU. @ENG_END_DOX
570
+ *
571
+ *@syntax
572
+ *@codeStart
573
+ * @ref ADLX_RESULT SetMinAcousticLimit (adlx_int value)
574
+ *@codeEnd
575
+ *
576
+ *@params
577
+ *@paramrow{1.,[in],value,adlx_int,@ENG_START_DOX The new min acoustic limit (in MHz). @ENG_END_DOX}
578
+ *
579
+ *@retvalues
580
+ *@ENG_START_DOX If the min acoustic limit value is successfully set, __ADLX_OK__ is returned.<br>
581
+ * If the min acoustic limit value is not successfully set, an error code is returned.<br>
582
+ * Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
583
+ *
584
+ * @addinfo
585
+ * @ENG_START_DOX
586
+ * Some GPUs support Minimum Acoustic Limit adjustments (in MHz).
587
+ * @ENG_END_DOX
588
+ *
589
+ *@copydoc IADLXManualFanTuning_REQ_TABLE
590
+ *
591
+ */
592
+ virtual ADLX_RESULT ADLX_STD_CALL SetMinAcousticLimit (adlx_int value) = 0;
593
+
594
+ /**
595
+ *@page DOX_IADLXManualFanTuning_IsSupportedMinFanSpeed IsSupportedMinFanSpeed
596
+ *@ENG_START_DOX @brief Checks if the minimum fan speed is supported on a GPU. @ENG_END_DOX
597
+ *
598
+ *@syntax
599
+ *@codeStart
600
+ * @ref ADLX_RESULT IsSupportedMinFanSpeed (adlx_bool* supported)
601
+ *@codeEnd
602
+ *
603
+ *@params
604
+ *@paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of minimum fan speed feature is returned. The variable is __true__ if minimum fan speed feature is supported. The variable is __false__ if minimum fan speed feature is not supported. @ENG_END_DOX}
605
+ *
606
+ *@retvalues
607
+ *@ENG_START_DOX If the state of minimum fan speed feature is successfully returned, __ADLX_OK__ is returned.<br>
608
+ * If the state of minimum fan speed feature is not successfully returned, an error code is returned.<br>
609
+ * Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
610
+ *
611
+ *
612
+ *@copydoc IADLXManualFanTuning_REQ_TABLE
613
+ *
614
+ */
615
+ virtual ADLX_RESULT ADLX_STD_CALL IsSupportedMinFanSpeed (adlx_bool* supported) = 0;
616
+
617
+ /**
618
+ *@page DOX_IADLXManualFanTuning_GetMinFanSpeedRange GetMinFanSpeedRange
619
+ *@ENG_START_DOX @brief Gets the maximum value, minimum value, and step for the minimum fan speed on a GPU. @ENG_END_DOX
620
+ *
621
+ *@syntax
622
+ *@codeStart
623
+ * @ref ADLX_RESULT GetMinFanSpeedRange (@ref ADLX_IntRange* tuningRange)
624
+ *@codeEnd
625
+ *
626
+ *@params
627
+ *@paramrow{1.,[out],tuningRange,@ref ADLX_IntRange*,@ENG_START_DOX The pointer to a variable where the minimum fan speed range (in RPM) is returned. @ENG_END_DOX}
628
+ *
629
+ *@retvalues
630
+ *@ENG_START_DOX If the minimum fan speed range is successfully returned, __ADLX_OK__ is returned.<br>
631
+ * If the minimum fan speed range is not successfully returned, an error code is returned.<br>
632
+ * Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
633
+ *
634
+ *
635
+ *@copydoc IADLXManualFanTuning_REQ_TABLE
636
+ *
637
+ */
638
+ virtual ADLX_RESULT ADLX_STD_CALL GetMinFanSpeedRange (ADLX_IntRange* tuningRange) = 0;
639
+
640
+ /**
641
+ *@page DOX_IADLXManualFanTuning_GetMinFanSpeed GetMinFanSpeed
642
+ *@ENG_START_DOX @brief Gets the current minimum fan speed on a GPU. @ENG_END_DOX
643
+ *
644
+ *@syntax
645
+ *@codeStart
646
+ * @ref ADLX_RESULT GetMinFanSpeed (adlx_int* value)
647
+ *@codeEnd
648
+ *
649
+ *@params
650
+ *@paramrow{1.,[out],value,adlx_int*,@ENG_START_DOX The pointer to a variable where the minimum fan speed value (in RPM) is returned. @ENG_END_DOX}
651
+ *
652
+ *@retvalues
653
+ *@ENG_START_DOX If the minimum fan speed value is successfully returned, __ADLX_OK__ is returned.<br>
654
+ * If the minimum fan speed value is not successfully returned, an error code is returned.<br>
655
+ * Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
656
+ *
657
+ * @addinfo
658
+ * @ENG_START_DOX
659
+ * Some GPUs support minimum fan speed adjustments (in MHz).
660
+ * @ENG_END_DOX
661
+ *
662
+ *@copydoc IADLXManualFanTuning_REQ_TABLE
663
+ *
664
+ */
665
+ virtual ADLX_RESULT ADLX_STD_CALL GetMinFanSpeed (adlx_int* value) = 0;
666
+
667
+ /**
668
+ *@page DOX_IADLXManualFanTuning_SetMinFanSpeed SetMinFanSpeed
669
+ *@ENG_START_DOX @brief Sets the minimum fan speed on a GPU. @ENG_END_DOX
670
+ *
671
+ *@syntax
672
+ *@codeStart
673
+ * @ref ADLX_RESULT SetMinFanSpeed (adlx_int value)
674
+ *@codeEnd
675
+ *
676
+ *@params
677
+ *@paramrow{1.,[in],value,adlx_int,@ENG_START_DOX The new minimum fan speed (in RPM). @ENG_END_DOX}
678
+ *
679
+ *@retvalues
680
+ *@ENG_START_DOX If the minimum fan speed value is successfully set, __ADLX_OK__ is returned.<br>
681
+ * If the minimum fan speed value is not successfully set, an error code is returned.<br>
682
+ * Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
683
+ *
684
+ *@copydoc IADLXManualFanTuning_REQ_TABLE
685
+ *
686
+ */
687
+ virtual ADLX_RESULT ADLX_STD_CALL SetMinFanSpeed (adlx_int value) = 0;
688
+
689
+ /**
690
+ *@page DOX_IADLXManualFanTuning_IsSupportedTargetFanSpeed IsSupportedTargetFanSpeed
691
+ *@ENG_START_DOX @brief Checks if the target fan speed is supported on a GPU. @ENG_END_DOX
692
+ *
693
+ *@syntax
694
+ *@codeStart
695
+ * @ref ADLX_RESULT IsSupportedTargetFanSpeed (adlx_bool* supported)
696
+ *@codeEnd
697
+ *
698
+ *@params
699
+ *@paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of target fan speed feature is returned. The variable is __true__ if target fan speed feature is supported. The variable is __false__ if target fan speed feature is not supported. @ENG_END_DOX}
700
+ *
701
+ *@retvalues
702
+ *@ENG_START_DOX If the state of target fan speed feature is successfully returned, __ADLX_OK__ is returned.<br>
703
+ * If the state of target fan speed feature is not successfully returned, an error code is returned.<br>
704
+ * Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
705
+ *
706
+ *@copydoc IADLXManualFanTuning_REQ_TABLE
707
+ *
708
+ */
709
+ virtual ADLX_RESULT ADLX_STD_CALL IsSupportedTargetFanSpeed (adlx_bool* supported) = 0;
710
+
711
+ /**
712
+ *@page DOX_IADLXManualFanTuning_GetTargetFanSpeedRange GetTargetFanSpeedRange
713
+ *@ENG_START_DOX @brief Gets the maximum value, minimum value, and step for the target fan speed on a GPU. @ENG_END_DOX
714
+ *
715
+ *@syntax
716
+ *@codeStart
717
+ * @ref ADLX_RESULT GetTargetFanSpeedRange (@ref ADLX_IntRange* tuningRange)
718
+ *@codeEnd
719
+ *
720
+ *@params
721
+ *@paramrow{1.,[out],tuningRange,@ref ADLX_IntRange*,@ENG_START_DOX The pointer to a variable where the target fan speed range (in RPM) is returned. @ENG_END_DOX}
722
+ *
723
+ *@retvalues
724
+ *@ENG_START_DOX If the target fan speed range is successfully returned, __ADLX_OK__ is returned.<br>
725
+ * If the target fan speed range is not successfully returned, an error code is returned.<br>
726
+ * Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
727
+ *
728
+ *@copydoc IADLXManualFanTuning_REQ_TABLE
729
+ *
730
+ */
731
+ virtual ADLX_RESULT ADLX_STD_CALL GetTargetFanSpeedRange (ADLX_IntRange* tuningRange) = 0;
732
+
733
+ /**
734
+ *@page DOX_IADLXManualFanTuning_GetTargetFanSpeed GetTargetFanSpeed
735
+ *@ENG_START_DOX @brief Gets the current target fan speed on a GPU. @ENG_END_DOX
736
+ *
737
+ *@syntax
738
+ *@codeStart
739
+ * @ref ADLX_RESULT GetTargetFanSpeed (adlx_int* value)
740
+ *@codeEnd
741
+ *
742
+ *@params
743
+ *@paramrow{1.,[out],value,adlx_int*,@ENG_START_DOX The pointer to a variable where the target fan speed value (in RPM) is returned. @ENG_END_DOX}
744
+ *
745
+ *@retvalues
746
+ *@ENG_START_DOX If the target fan speed value is successfully returned, __ADLX_OK__ is returned.<br>
747
+ * If the target fan speed value is not successfully returned, an error code is returned.<br>
748
+ * Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
749
+ *
750
+ *@copydoc IADLXManualFanTuning_REQ_TABLE
751
+ *
752
+ */
753
+ virtual ADLX_RESULT ADLX_STD_CALL GetTargetFanSpeed (adlx_int* value) = 0;
754
+
755
+ /**
756
+ *@page DOX_IADLXManualFanTuning_SetTargetFanSpeed SetTargetFanSpeed
757
+ *@ENG_START_DOX @brief Sets the target fan speed on a GPU. @ENG_END_DOX
758
+ *
759
+ *@syntax
760
+ *@codeStart
761
+ * @ref ADLX_RESULT SetTargetFanSpeed (adlx_int value)
762
+ *@codeEnd
763
+ *
764
+ *@params
765
+ *@paramrow{1.,[in],value,adlx_int,@ENG_START_DOX The new target fan speed (in RPM). @ENG_END_DOX}
766
+ *
767
+ *@retvalues
768
+ *@ENG_START_DOX If the target fan speed value is successfully set, __ADLX_OK__ is returned.<br>
769
+ * If the target fan speed value is not successfully set, an error code is returned.<br>
770
+ * Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
771
+ *
772
+ *@copydoc IADLXManualFanTuning_REQ_TABLE
773
+ *
774
+ */
775
+ virtual ADLX_RESULT ADLX_STD_CALL SetTargetFanSpeed (adlx_int value) = 0;
776
+ };
777
+ //----------------------------------------------------------------------------------------------
778
+ typedef IADLXInterfacePtr_T<IADLXManualFanTuning> IADLXManualFanTuningPtr;
779
+ } //namespace adlx
780
+ #else //__cplusplus
781
+ ADLX_DECLARE_IID (IADLXManualFanTuning, L"IADLXManualFanTuning")
782
+
783
+ typedef struct IADLXManualFanTuning IADLXManualFanTuning;
784
+
785
+ typedef struct IADLXManualFanTuningVtbl
786
+ {
787
+ //IADLXInterface
788
+ adlx_long (ADLX_STD_CALL *Acquire)(IADLXManualFanTuning* pThis);
789
+ adlx_long (ADLX_STD_CALL *Release)(IADLXManualFanTuning* pThis);
790
+ ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLXManualFanTuning* pThis, const wchar_t* interfaceId, void** ppInterface);
791
+
792
+ //IADLXManualFanTuningState
793
+ ADLX_RESULT (ADLX_STD_CALL *GetFanTuningRanges)(IADLXManualFanTuning* pThis, ADLX_IntRange* speedRange, ADLX_IntRange* temperatureRange);
794
+ ADLX_RESULT (ADLX_STD_CALL *GetFanTuningStates)(IADLXManualFanTuning* pThis, IADLXManualFanTuningStateList** ppStates);
795
+ ADLX_RESULT (ADLX_STD_CALL *GetEmptyFanTuningStates)(IADLXManualFanTuning* pThis, IADLXManualFanTuningStateList** ppStates);
796
+ ADLX_RESULT (ADLX_STD_CALL *IsValidFanTuningStates)(IADLXManualFanTuning* pThis, IADLXManualFanTuningStateList* pStates, adlx_int* errorIndex);
797
+ ADLX_RESULT (ADLX_STD_CALL *SetFanTuningStates)(IADLXManualFanTuning* pThis, IADLXManualFanTuningStateList* pStates);
798
+ ADLX_RESULT (ADLX_STD_CALL *IsSupportedZeroRPM)(IADLXManualFanTuning* pThis, adlx_bool* supported);
799
+ ADLX_RESULT (ADLX_STD_CALL *GetZeroRPMState)(IADLXManualFanTuning* pThis, adlx_bool* isSet);
800
+ ADLX_RESULT (ADLX_STD_CALL *SetZeroRPMState)(IADLXManualFanTuning* pThis, adlx_bool set);
801
+ ADLX_RESULT (ADLX_STD_CALL *IsSupportedMinAcousticLimit)(IADLXManualFanTuning* pThis, adlx_bool* supported);
802
+ ADLX_RESULT (ADLX_STD_CALL *GetMinAcousticLimitRange)(IADLXManualFanTuning* pThis, ADLX_IntRange* tuningRange);
803
+ ADLX_RESULT (ADLX_STD_CALL *GetMinAcousticLimit)(IADLXManualFanTuning* pThis, adlx_int* value);
804
+ ADLX_RESULT (ADLX_STD_CALL *SetMinAcousticLimit)(IADLXManualFanTuning* pThis, adlx_int value);
805
+ ADLX_RESULT (ADLX_STD_CALL* IsSupportedMinFanSpeed)(IADLXManualFanTuning* pThis, adlx_bool* supported);
806
+ ADLX_RESULT (ADLX_STD_CALL* GetMinFanSpeedRange)(IADLXManualFanTuning* pThis, ADLX_IntRange* tuningRange);
807
+ ADLX_RESULT (ADLX_STD_CALL* GetMinFanSpeed)(IADLXManualFanTuning* pThis, adlx_int* value);
808
+ ADLX_RESULT (ADLX_STD_CALL* SetMinFanSpeed)(IADLXManualFanTuning* pThis, adlx_int value);
809
+ ADLX_RESULT (ADLX_STD_CALL* IsSupportedTargetFanSpeed)(IADLXManualFanTuning* pThis, adlx_bool* supported);
810
+ ADLX_RESULT (ADLX_STD_CALL* GetTargetFanSpeedRange)(IADLXManualFanTuning* pThis, ADLX_IntRange* tuningRange);
811
+ ADLX_RESULT (ADLX_STD_CALL* GetTargetFanSpeed)(IADLXManualFanTuning* pThis, adlx_int* value);
812
+ ADLX_RESULT (ADLX_STD_CALL* SetTargetFanSpeed)(IADLXManualFanTuning* pThis, adlx_int value);
813
+ }IADLXManualFanTuningVtbl;
814
+
815
+ struct IADLXManualFanTuning { const IADLXManualFanTuningVtbl *pVtbl; };
816
+ #endif //__cplusplus
817
+ #pragma endregion IADLXManualFanTuning
818
+
819
+ #pragma region IADLXManualFanTuning1
820
+ #if defined (__cplusplus)
821
+ namespace adlx
822
+ {
823
+ class ADLX_NO_VTABLE IADLXManualFanTuning1 : public IADLXManualFanTuning
824
+ {
825
+ public:
826
+ ADLX_DECLARE_IID(L"IADLXManualFanTuning1")
827
+
828
+ /**
829
+ *@page DOX_IADLXManualFanTuning1_GetDefaultFanTuningStates GetDefaultFanTuningStates
830
+ *@ENG_START_DOX @brief Gets the reference counted list of default GPU fan tuning states on a GPU. @ENG_END_DOX
831
+ *
832
+ *@syntax
833
+ *@codeStart
834
+ * @ref ADLX_RESULT GetDefaultFanTuningStates (@ref DOX_IADLXManualFanTuningStateList** ppStates)
835
+ *@codeEnd
836
+ *
837
+ *@params
838
+ *@paramrow{1.,[out],ppStates,@ref DOX_IADLXManualFanTuningStateList**,@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 __*ppStates__ to __nullptr__. @ENG_END_DOX}
839
+ *
840
+ *@retvalues
841
+ *@ENG_START_DOX If the list of GPU fan tuning default states is successfully returned, __ADLX_OK__ is returned.<br>
842
+ * If the list of GPU fan tuning default states is not successfully returned, an error code is returned.<br>
843
+ * Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
844
+ *
845
+ *@detaileddesc
846
+ *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX
847
+ *
848
+ *@addinfo
849
+ *@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
850
+ *
851
+ *@copydoc IADLXManualFanTuning1_REQ_TABLE
852
+ *
853
+ */
854
+ virtual ADLX_RESULT ADLX_STD_CALL GetDefaultFanTuningStates(IADLXManualFanTuningStateList** ppStates) = 0;
855
+
856
+ /**
857
+ *@page DOX_IADLXManualFanTuning1_GetMinAcousticLimitDefault GetMinAcousticLimitDefault
858
+ *@ENG_START_DOX @brief Gets the default minimum acoustic limit on a GPU. @ENG_END_DOX
859
+ *
860
+ *@syntax
861
+ *@codeStart
862
+ * @ref ADLX_RESULT GetMinAcousticLimitDefault (adlx_int* defaultVal)
863
+ *@codeEnd
864
+ *
865
+ *@params
866
+ *@paramrow{1.,[out],defaultVal,adlx_int*,@ENG_START_DOX The pointer to a variable where the min acoustic limit default value (in MHz) is returned. @ENG_END_DOX}
867
+ *
868
+ *@retvalues
869
+ *@ENG_START_DOX If the min acoustic limit default value is successfully returned, __ADLX_OK__ is returned.<br>
870
+ * If the min acoustic limit default value is not successfully returned, an error code is returned.<br>
871
+ * Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
872
+ *
873
+ * @addinfo
874
+ * @ENG_START_DOX
875
+ * Some GPUs support Minimum Acoustic Limit adjustments (in MHz).
876
+ * @ENG_END_DOX
877
+ *
878
+ *@copydoc IADLXManualFanTuning1_REQ_TABLE
879
+ *
880
+ */
881
+ virtual ADLX_RESULT ADLX_STD_CALL GetMinAcousticLimitDefault(adlx_int* defaultVal) = 0;
882
+
883
+ /**
884
+ *@page DOX_IADLXManualFanTuning1_GetMinFanSpeedDefault GetMinFanSpeedDefault
885
+ *@ENG_START_DOX @brief Gets the default minimum fan speed on a GPU. @ENG_END_DOX
886
+ *
887
+ *@syntax
888
+ *@codeStart
889
+ * @ref ADLX_RESULT GetMinFanSpeedDefault (adlx_int* defaultVal)
890
+ *@codeEnd
891
+ *
892
+ *@params
893
+ *@paramrow{1.,[out],value,adlx_int*,@ENG_START_DOX The pointer to a variable where the minimum fan speed default value (in RPM) is returned. @ENG_END_DOX}
894
+ *
895
+ *@retvalues
896
+ *@ENG_START_DOX If the minimum fan speed default value is successfully returned, __ADLX_OK__ is returned.<br>
897
+ * If the minimum fan speed default value is not successfully returned, an error code is returned.<br>
898
+ * Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
899
+ *
900
+ * @addinfo
901
+ * @ENG_START_DOX
902
+ * Some GPUs support minimum fan speed adjustments (in MHz).
903
+ * @ENG_END_DOX
904
+ *
905
+ *@copydoc IADLXManualFanTuning1_REQ_TABLE
906
+ *
907
+ */
908
+ virtual ADLX_RESULT ADLX_STD_CALL GetMinFanSpeedDefault(adlx_int* defaultVal) = 0;
909
+
910
+ /**
911
+ *@page DOX_IADLXManualFanTuning1_GetTargetFanSpeedDefault GetTargetFanSpeedDefault
912
+ *@ENG_START_DOX @brief Gets the default target fan speed on a GPU. @ENG_END_DOX
913
+ *
914
+ *@syntax
915
+ *@codeStart
916
+ * @ref ADLX_RESULT GetTargetFanSpeedDefault (adlx_int* defaultVal)
917
+ *@codeEnd
918
+ *
919
+ *@params
920
+ *@paramrow{1.,[out],defaultVal,adlx_int*,@ENG_START_DOX The pointer to a variable where the target fan speed default value (in RPM) is returned. @ENG_END_DOX}
921
+ *
922
+ *@retvalues
923
+ *@ENG_START_DOX If the target fan speed default value is successfully returned, __ADLX_OK__ is returned.<br>
924
+ * If the target fan speed default value is not successfully returned, an error code is returned.<br>
925
+ * Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
926
+ *
927
+ *@copydoc IADLXManualFanTuning1_REQ_TABLE
928
+ *
929
+ */
930
+ virtual ADLX_RESULT ADLX_STD_CALL GetTargetFanSpeedDefault(adlx_int* defaultVal) = 0;
931
+
932
+ /**
933
+ *@page DOX_IADLXManualFanTuning1_GetDefaultZeroRPMState GetDefaultZeroRPMState
934
+ *@ENG_START_DOX @brief Gets the default zero RPM is state on a GPU. @ENG_END_DOX
935
+ *
936
+ *@syntax
937
+ *@codeStart
938
+ * @ref ADLX_RESULT GetDefaultZeroRPMState (adlx_bool* defaultVal)
939
+ *@codeEnd
940
+ *
941
+ *@params
942
+ *@paramrow{1.,[out],defaultVal,adlx_bool*,@ENG_START_DOX The pointer to a variable where the default state of zero RPM is returned. The variable is __true__ if default zero RPM is enabled. The variable is __false__ if default zero RPM is not enabled. @ENG_END_DOX}
943
+ *
944
+ *@retvalues
945
+ *@ENG_START_DOX If the default state of zero RPM is successfully returned, __ADLX_OK__ is returned.<br>
946
+ * If the default state of zero RPM is not successfully returned, an error code is returned.<br>
947
+ * Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
948
+ *
949
+ * @addinfo
950
+ * @ENG_START_DOX
951
+ * Zero RPM enables quiet operation when the GPU is under a light load and speeds up the fans when the GPU load and temperature increases.
952
+ * @ENG_END_DOX
953
+ *
954
+ *@copydoc IADLXManualFanTuning1_REQ_TABLE
955
+ *
956
+ */
957
+ virtual ADLX_RESULT ADLX_STD_CALL GetDefaultZeroRPMState(adlx_bool* defaultVal) = 0;
958
+ };
959
+ //----------------------------------------------------------------------------------------------
960
+ typedef IADLXInterfacePtr_T<IADLXManualFanTuning1> IADLXManualFanTuning1Ptr;
961
+ } //namespace adlx
962
+ #else //__cplusplus
963
+ ADLX_DECLARE_IID(IADLXManualFanTuning1, L"IADLXManualFanTuning1")
964
+
965
+ typedef struct IADLXManualFanTuning1 IADLXManualFanTuning1;
966
+
967
+ typedef struct IADLXManualFanTuning1Vtbl
968
+ {
969
+ //IADLXInterface
970
+ adlx_long(ADLX_STD_CALL* Acquire)(IADLXManualFanTuning1* pThis);
971
+ adlx_long(ADLX_STD_CALL* Release)(IADLXManualFanTuning1* pThis);
972
+ ADLX_RESULT(ADLX_STD_CALL* QueryInterface)(IADLXManualFanTuning1* pThis, const wchar_t* interfaceId, void** ppInterface);
973
+
974
+ //IADLXManualFanTuningState
975
+ ADLX_RESULT(ADLX_STD_CALL* GetFanTuningRanges)(IADLXManualFanTuning1* pThis, ADLX_IntRange* speedRange, ADLX_IntRange* temperatureRange);
976
+ ADLX_RESULT(ADLX_STD_CALL* GetFanTuningStates)(IADLXManualFanTuning1* pThis, IADLXManualFanTuningStateList** ppStates);
977
+ ADLX_RESULT(ADLX_STD_CALL* GetEmptyFanTuningStates)(IADLXManualFanTuning1* pThis, IADLXManualFanTuningStateList** ppStates);
978
+ ADLX_RESULT(ADLX_STD_CALL* IsValidFanTuningStates)(IADLXManualFanTuning1* pThis, IADLXManualFanTuningStateList* pStates, adlx_int* errorIndex);
979
+ ADLX_RESULT(ADLX_STD_CALL* SetFanTuningStates)(IADLXManualFanTuning1* pThis, IADLXManualFanTuningStateList* pStates);
980
+ ADLX_RESULT(ADLX_STD_CALL* IsSupportedZeroRPM)(IADLXManualFanTuning1* pThis, adlx_bool* supported);
981
+ ADLX_RESULT(ADLX_STD_CALL* GetZeroRPMState)(IADLXManualFanTuning1* pThis, adlx_bool* isSet);
982
+ ADLX_RESULT(ADLX_STD_CALL* SetZeroRPMState)(IADLXManualFanTuning1* pThis, adlx_bool set);
983
+ ADLX_RESULT(ADLX_STD_CALL* IsSupportedMinAcousticLimit)(IADLXManualFanTuning1* pThis, adlx_bool* supported);
984
+ ADLX_RESULT(ADLX_STD_CALL* GetMinAcousticLimitRange)(IADLXManualFanTuning1* pThis, ADLX_IntRange* tuningRange);
985
+ ADLX_RESULT(ADLX_STD_CALL* GetMinAcousticLimit)(IADLXManualFanTuning1* pThis, adlx_int* value);
986
+ ADLX_RESULT(ADLX_STD_CALL* SetMinAcousticLimit)(IADLXManualFanTuning1* pThis, adlx_int value);
987
+ ADLX_RESULT(ADLX_STD_CALL* IsSupportedMinFanSpeed)(IADLXManualFanTuning1* pThis, adlx_bool* supported);
988
+ ADLX_RESULT(ADLX_STD_CALL* GetMinFanSpeedRange)(IADLXManualFanTuning1* pThis, ADLX_IntRange* tuningRange);
989
+ ADLX_RESULT(ADLX_STD_CALL* GetMinFanSpeed)(IADLXManualFanTuning1* pThis, adlx_int* value);
990
+ ADLX_RESULT(ADLX_STD_CALL* SetMinFanSpeed)(IADLXManualFanTuning1* pThis, adlx_int value);
991
+ ADLX_RESULT(ADLX_STD_CALL* IsSupportedTargetFanSpeed)(IADLXManualFanTuning1* pThis, adlx_bool* supported);
992
+ ADLX_RESULT(ADLX_STD_CALL* GetTargetFanSpeedRange)(IADLXManualFanTuning1* pThis, ADLX_IntRange* tuningRange);
993
+ ADLX_RESULT(ADLX_STD_CALL* GetTargetFanSpeed)(IADLXManualFanTuning1* pThis, adlx_int* value);
994
+ ADLX_RESULT(ADLX_STD_CALL* SetTargetFanSpeed)(IADLXManualFanTuning1* pThis, adlx_int value);
995
+
996
+ //IADLXManualFanTuningState1
997
+ ADLX_RESULT(ADLX_STD_CALL* GetDefaultFanTuningStates)(IADLXManualFanTuning1* pThis, IADLXManualFanTuningStateList** ppStates);
998
+ ADLX_RESULT(ADLX_STD_CALL* GetMinAcousticLimitDefault)(IADLXManualFanTuning1* pThis, adlx_int* defaultVal);
999
+ ADLX_RESULT(ADLX_STD_CALL* GetMinFanSpeedDefault)(IADLXManualFanTuning1* pThis, adlx_int* defaultVal);
1000
+ ADLX_RESULT(ADLX_STD_CALL* GetTargetFanSpeedDefault)(IADLXManualFanTuning1* pThis, adlx_int* defaultVal);
1001
+ ADLX_RESULT(ADLX_STD_CALL* GetDefaultZeroRPMState)(IADLXManualFanTuning1* pThis, adlx_bool* defaultVal);
1002
+ }IADLXManualFanTuning1Vtbl;
1003
+
1004
+ struct IADLXManualFanTuning1 { const IADLXManualFanTuning1Vtbl* pVtbl; };
1005
+ #endif //__cplusplus
1006
+ #pragma endregion IADLXManualFanTuning1
1007
+ #endif//ADLX_IGPUMANUALFANTUNING_H