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.
- package/LICENSE +674 -0
- package/README.md +336 -0
- package/binding.gyp +69 -0
- package/build/Release/gpu.exp +0 -0
- package/build/Release/gpu.lib +0 -0
- package/build/Release/gpu.node +0 -0
- package/build/Release/gpu.pdb +0 -0
- package/build/binding.sln +19 -0
- package/build/gpu.vcxproj +175 -0
- package/build/gpu.vcxproj.filters +169 -0
- package/example.js +69 -0
- package/index.js +33 -0
- package/package.json +68 -0
- package/src/binding.cpp +201 -0
- package/src/gpu_info.c +130 -0
- package/src/gpu_info.h +86 -0
- package/src/includes/adlx/ADLX.h +367 -0
- package/src/includes/adlx/ADLXDefines.h +1345 -0
- package/src/includes/adlx/ADLXHelper/ADLXHelper.c +175 -0
- package/src/includes/adlx/ADLXHelper/ADLXHelper.h +245 -0
- package/src/includes/adlx/ADLXHelper/WinAPIS.c +64 -0
- package/src/includes/adlx/ADLXStructures.h +206 -0
- package/src/includes/adlx/ADLXVersion.h +18 -0
- package/src/includes/adlx/I3DSettings.h +3476 -0
- package/src/includes/adlx/I3DSettings1.h +292 -0
- package/src/includes/adlx/I3DSettings2.h +317 -0
- package/src/includes/adlx/IApplications.h +397 -0
- package/src/includes/adlx/IChangedEvent.h +71 -0
- package/src/includes/adlx/ICollections.h +325 -0
- package/src/includes/adlx/IDesktops.h +918 -0
- package/src/includes/adlx/IDisplay3DLUT.h +663 -0
- package/src/includes/adlx/IDisplayGamma.h +683 -0
- package/src/includes/adlx/IDisplayGamut.h +760 -0
- package/src/includes/adlx/IDisplaySettings.h +3476 -0
- package/src/includes/adlx/IDisplays.h +2676 -0
- package/src/includes/adlx/IDisplays1.h +191 -0
- package/src/includes/adlx/IDisplays2.h +188 -0
- package/src/includes/adlx/IDisplays3.h +256 -0
- package/src/includes/adlx/IGPUAutoTuning.h +460 -0
- package/src/includes/adlx/IGPUManualFanTuning.h +1007 -0
- package/src/includes/adlx/IGPUManualGFXTuning.h +607 -0
- package/src/includes/adlx/IGPUManualPowerTuning.h +340 -0
- package/src/includes/adlx/IGPUManualVRAMTuning.h +576 -0
- package/src/includes/adlx/IGPUPresetTuning.h +469 -0
- package/src/includes/adlx/IGPUTuning.h +1239 -0
- package/src/includes/adlx/IGPUTuning1.h +197 -0
- package/src/includes/adlx/II2C.h +198 -0
- package/src/includes/adlx/ILog.h +72 -0
- package/src/includes/adlx/IMultiMedia.h +578 -0
- package/src/includes/adlx/IPerformanceMonitoring.h +2520 -0
- package/src/includes/adlx/IPerformanceMonitoring1.h +134 -0
- package/src/includes/adlx/IPerformanceMonitoring2.h +341 -0
- package/src/includes/adlx/IPerformanceMonitoring3.h +199 -0
- package/src/includes/adlx/IPowerTuning.h +473 -0
- package/src/includes/adlx/IPowerTuning1.h +515 -0
- package/src/includes/adlx/ISmartAccessMemory.h +114 -0
- package/src/includes/adlx/ISystem.h +1557 -0
- package/src/includes/adlx/ISystem1.h +237 -0
- package/src/includes/adlx/ISystem2.h +643 -0
- package/src/linux/amd_linux.c +269 -0
- package/src/linux/intel_linux.c +20 -0
- package/src/linux/nvidia_linux.c +257 -0
- package/src/macos/amd_mac.c +131 -0
- package/src/macos/intel_mac.c +131 -0
- package/src/macos/nvidia_mac.c +21 -0
- package/src/vendor/amd.c +37 -0
- package/src/vendor/intel.c +37 -0
- package/src/vendor/nvidia.c +37 -0
- package/src/windows/amd_windows.c +468 -0
- package/src/windows/intel_windows.c +157 -0
- package/src/windows/nvidia_windows.c +252 -0
|
@@ -0,0 +1,643 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright (c) 2023 - 2025 Advanced Micro Devices, Inc. All rights reserved.
|
|
3
|
+
//
|
|
4
|
+
//-------------------------------------------------------------------------------------------------
|
|
5
|
+
|
|
6
|
+
#ifndef ADLX_ISYSTEM2_H
|
|
7
|
+
#define ADLX_ISYSTEM2_H
|
|
8
|
+
#pragma once
|
|
9
|
+
|
|
10
|
+
#include "ISystem1.h"
|
|
11
|
+
#include "ADLXStructures.h"
|
|
12
|
+
|
|
13
|
+
// Interfaces for GPU2 Info
|
|
14
|
+
#pragma region IADLXGPU2 interface
|
|
15
|
+
#if defined (__cplusplus)
|
|
16
|
+
namespace adlx
|
|
17
|
+
{
|
|
18
|
+
class ADLX_NO_VTABLE IADLXGPUConnectChangedListener;
|
|
19
|
+
class ADLX_NO_VTABLE IADLXApplicationList;
|
|
20
|
+
class ADLX_NO_VTABLE IADLXGPU2 : public IADLXGPU1
|
|
21
|
+
{
|
|
22
|
+
public:
|
|
23
|
+
ADLX_DECLARE_IID(L"IADLXGPU2")
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* @page DOX_IADLXGPU2_IsPowerOff IsPowerOff
|
|
27
|
+
* @ENG_START_DOX @brief Checks if a GPU is powered off. @ENG_END_DOX
|
|
28
|
+
* @syntax
|
|
29
|
+
* @codeStart
|
|
30
|
+
* @ref ADLX_RESULT IsPowerOff (adlx_bool* state)
|
|
31
|
+
* @codeEnd
|
|
32
|
+
*
|
|
33
|
+
* @params
|
|
34
|
+
* @paramrow{1.,[out],state,adlx_bool*,@ENG_START_DOX The pointer to a variable where the GPU powered off state is returned. @ENG_END_DOX}
|
|
35
|
+
*
|
|
36
|
+
* @retvalues
|
|
37
|
+
* @ENG_START_DOX
|
|
38
|
+
* If the GPU powered off state is successfully returned, __ADLX_OK__ is returned.<br>
|
|
39
|
+
* If the GPU powered off state is not successfully returned, an error code is returned.<br>
|
|
40
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes.<br>
|
|
41
|
+
* @ENG_END_DOX
|
|
42
|
+
*
|
|
43
|
+
* @detaileddesc
|
|
44
|
+
* @ENG_START_DOX
|
|
45
|
+
* If the method returns __ADLX_PENDING_OPERATION__, the GPU is busy executing another power related operation, and the call should be repeated.
|
|
46
|
+
* @ENG_END_DOX
|
|
47
|
+
*
|
|
48
|
+
* @copydoc IADLXGPU2_REQ_TABLE
|
|
49
|
+
*
|
|
50
|
+
*/
|
|
51
|
+
virtual ADLX_RESULT ADLX_STD_CALL IsPowerOff (adlx_bool* state) = 0;
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* @page DOX_IADLXGPU2_PowerOn PowerOn
|
|
55
|
+
* @ENG_START_DOX @brief Powers on a GPU. @ENG_END_DOX
|
|
56
|
+
* @syntax
|
|
57
|
+
* @codeStart
|
|
58
|
+
* @ref ADLX_RESULT PowerOn ()
|
|
59
|
+
* @codeEnd
|
|
60
|
+
*
|
|
61
|
+
* @params
|
|
62
|
+
* N/A
|
|
63
|
+
*
|
|
64
|
+
* @retvalues
|
|
65
|
+
* @ENG_START_DOX
|
|
66
|
+
* If powers on the GPU successfully, __ADLX_OK__ is returned.<br>
|
|
67
|
+
* If powers on the GPU unsuccessfully, 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 This method controls the power of the discrete GPU power by disabling the __SmartShift Eco__ feature when called, which can be re-enabled by calling @ref DOX_IADLXSmartShiftEco_SetEnabled.<br>
|
|
73
|
+
* If the method returns __ADLX_PENDING_OPERATION__, the GPU is busy executing another power related operation, and the call should be repeated.
|
|
74
|
+
*
|
|
75
|
+
* @depifc
|
|
76
|
+
* When the GPU is powered on, @ref DOX_IADLXSmartShiftEco "AMD SmartShift Eco" is automatically disabled. To return the power control of this GPU to the AMD driver, use @ref DOX_IADLXSmartShiftEco_SetEnabled.<br>
|
|
77
|
+
*
|
|
78
|
+
* @ENG_END_DOX
|
|
79
|
+
*
|
|
80
|
+
* @copydoc IADLXGPU2_REQ_TABLE
|
|
81
|
+
*
|
|
82
|
+
*/
|
|
83
|
+
virtual ADLX_RESULT ADLX_STD_CALL PowerOn () = 0;
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* @page DOX_IADLXGPU2_StartPowerOff StartPowerOff
|
|
87
|
+
* @ENG_START_DOX @brief Powers off a GPU. @ENG_END_DOX
|
|
88
|
+
* @syntax
|
|
89
|
+
* @codeStart
|
|
90
|
+
* @ref ADLX_RESULT StartPowerOff (@ref DOX_IADLXGPUConnectChangedListener* pGPUConnectChangedListener, adlx_int timeout)
|
|
91
|
+
* @codeEnd
|
|
92
|
+
*
|
|
93
|
+
* @params
|
|
94
|
+
* @paramrow{1.,[in],pGPUConnectChangedListener,@ref DOX_IADLXGPUConnectChangedListener*,@ENG_START_DOX The pointer to a GPU Connect change complete listener interface. @ENG_END_DOX}
|
|
95
|
+
* @paramrow{2.,[in],timeout,adlx_int,@ENG_START_DOX The timeout for power off operation. @ENG_END_DOX}
|
|
96
|
+
*
|
|
97
|
+
* @retvalues
|
|
98
|
+
* @ENG_START_DOX
|
|
99
|
+
* If starts to power off the GPU successfully, __ADLX_OK__ is returned.<br>
|
|
100
|
+
* If starts to power off the GPU unsuccessfully, an error code is returned.<br>
|
|
101
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes.<br>
|
|
102
|
+
* @ENG_END_DOX
|
|
103
|
+
|
|
104
|
+
* @detaileddesc
|
|
105
|
+
* @ENG_START_DOX This method triggers an asynchronous execution for GPU power off and returns immediately.
|
|
106
|
+
* When the GPUConnect settings change, ADLX calls @ref DOX_IADLXGPUConnectChangedListener_OnGPUConnectChanged in the AMD GPUConnect changed listener.
|
|
107
|
+
*
|
|
108
|
+
* After the event is raised, @ref DOX_IADLXGPUConnectChangedEvent_IsGPUPowerChanged returns __true__ for the power state change of a GPU.<br/>
|
|
109
|
+
*
|
|
110
|
+
* If it returns __false__, the @ref DOX_IADLXGPUConnectChangedEvent_IsGPUPowerChangeError returns the specific error.
|
|
111
|
+
* This method controls the discrete GPU power, it disables the SmartShift Eco feature when called, using @ref DOX_IADLXSmartShiftEco_SetEnabled to return
|
|
112
|
+
* the power control to AMD.<br>
|
|
113
|
+
*
|
|
114
|
+
* If the method returns __ADLX_PENDING_OPERATION__, the GPU is busy executing another power related operation, and the call should be repeated.<br/>
|
|
115
|
+
*
|
|
116
|
+
* @depifc
|
|
117
|
+
* When the GPU is powered off, @ref DOX_IADLXSmartShiftEco "AMD SmartShift Eco" is automatically disabled. To return the power control of this GPU to the AMD driver, use @ref DOX_IADLXSmartShiftEco_SetEnabled.<br>
|
|
118
|
+
*
|
|
119
|
+
* @ENG_END_DOX
|
|
120
|
+
*
|
|
121
|
+
* @copydoc IADLXGPU2_REQ_TABLE
|
|
122
|
+
*
|
|
123
|
+
*/
|
|
124
|
+
virtual ADLX_RESULT ADLX_STD_CALL StartPowerOff (IADLXGPUConnectChangedListener* pGPUConnectChangedListener, adlx_int timeout) = 0;
|
|
125
|
+
|
|
126
|
+
/**
|
|
127
|
+
* @page DOX_IADLXGPU2_AbortPowerOff AbortPowerOff
|
|
128
|
+
* @ENG_START_DOX @brief Aborts powering off a GPU. @ENG_END_DOX
|
|
129
|
+
* @syntax
|
|
130
|
+
* @codeStart
|
|
131
|
+
* @ref ADLX_RESULT AbortPowerOff ()
|
|
132
|
+
* @codeEnd
|
|
133
|
+
*
|
|
134
|
+
* @params
|
|
135
|
+
* N/A
|
|
136
|
+
*
|
|
137
|
+
* @retvalues
|
|
138
|
+
* @ENG_START_DOX
|
|
139
|
+
* If GPU power off was aborted successfully, __ADLX_OK__ is returned.<br>
|
|
140
|
+
* If GPU power off was aborted unsuccessfully returned, an error code is returned.<br>
|
|
141
|
+
*
|
|
142
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes.<br>
|
|
143
|
+
* @ENG_END_DOX
|
|
144
|
+
*
|
|
145
|
+
* @copydoc IADLXGPU2_REQ_TABLE
|
|
146
|
+
*
|
|
147
|
+
*/
|
|
148
|
+
virtual ADLX_RESULT ADLX_STD_CALL AbortPowerOff () = 0;
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* @page DOX_IADLXGPU2_IsSupportedApplicationList IsSupportedApplicationList
|
|
152
|
+
* @ENG_START_DOX @brief Checks if reporting the list of applications running on a GPU is supported. @ENG_END_DOX
|
|
153
|
+
* @syntax
|
|
154
|
+
* @codeStart
|
|
155
|
+
* @ref ADLX_RESULT IsSupportedApplicationList (adlx_bool* supported)
|
|
156
|
+
* @codeEnd
|
|
157
|
+
*
|
|
158
|
+
* @params
|
|
159
|
+
* @paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the Application list support status is returned. The variable is __true__ if Integer Display Scaling is supported. The variable is __false__ if Integer Display Scaling is not supported. @ENG_END_DOX}
|
|
160
|
+
*
|
|
161
|
+
* @retvalues
|
|
162
|
+
* @ENG_START_DOX
|
|
163
|
+
* If the Application list support status is successfully returned, __ADLX_OK__ is returned.<br>
|
|
164
|
+
* If the Application list support status is not successfully returned, an error code is returned.<br>
|
|
165
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes.<br>
|
|
166
|
+
* @ENG_END_DOX
|
|
167
|
+
*
|
|
168
|
+
* @copydoc IADLXGPU2_REQ_TABLE
|
|
169
|
+
*
|
|
170
|
+
*/
|
|
171
|
+
virtual ADLX_RESULT ADLX_STD_CALL IsSupportedApplicationList (adlx_bool* supported) = 0;
|
|
172
|
+
|
|
173
|
+
/**
|
|
174
|
+
* @page DOX_IADLXGPU2_GetApplications GetApplications
|
|
175
|
+
* @ENG_START_DOX @brief Gets the reference counted list of applications that run in the context of a GPU. @ENG_END_DOX
|
|
176
|
+
* @syntax
|
|
177
|
+
* @codeStart
|
|
178
|
+
* @ref ADLX_RESULT GetApplications (@ref DOX_IADLXApplicationList** ppApplications)
|
|
179
|
+
* @codeEnd
|
|
180
|
+
*
|
|
181
|
+
* @params
|
|
182
|
+
* @paramrow{1.,[out],ppApplications,@ref DOX_IADLXApplicationList**,@ENG_START_DOX The pointer to a variable where the application list is returned. @ENG_END_DOX}
|
|
183
|
+
*
|
|
184
|
+
* @retvalues
|
|
185
|
+
* @ENG_START_DOX
|
|
186
|
+
* If the application list is successfully returned, __ADLX_OK__ is returned.<br>
|
|
187
|
+
* If the application list is not successfully returned, an error code is returned.<br>
|
|
188
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes.<br>
|
|
189
|
+
* @ENG_END_DOX
|
|
190
|
+
*
|
|
191
|
+
* @copydoc IADLXGPU2_REQ_TABLE
|
|
192
|
+
*
|
|
193
|
+
*/
|
|
194
|
+
virtual ADLX_RESULT ADLX_STD_CALL GetApplications (IADLXApplicationList** ppApplications) = 0;
|
|
195
|
+
|
|
196
|
+
/**
|
|
197
|
+
* @page DOX_IADLXGPU2_AMDSoftwareReleaseDate AMDSoftwareReleaseDate
|
|
198
|
+
* @ENG_START_DOX
|
|
199
|
+
* @brief Gets the AMD software release date of a GPU.
|
|
200
|
+
* @ENG_END_DOX
|
|
201
|
+
* @syntax
|
|
202
|
+
* @codeStart
|
|
203
|
+
* @ref ADLX_RESULT AMDSoftwareReleaseDate(adlx_uint* year, adlx_uint* month, adlx_uint* day)
|
|
204
|
+
* @codeEnd
|
|
205
|
+
*
|
|
206
|
+
* @params
|
|
207
|
+
* @paramrow{1.,[out],year,adlx_uint*,@ENG_START_DOX Year of the AMD software release date. @ENG_END_DOX}
|
|
208
|
+
* @paramrow{2.,[out],month,adlx_uint*,@ENG_START_DOX Month of the AMD software release date. @ENG_END_DOX}
|
|
209
|
+
* @paramrow{3.,[out],day,adlx_uint*,@ENG_START_DOX Day of the AMD software release date. @ENG_END_DOX}
|
|
210
|
+
*
|
|
211
|
+
* @retvalues
|
|
212
|
+
* @ENG_START_DOX
|
|
213
|
+
* If the AMD software release date is successfully returned, __ADLX_OK__ is returned.<br>
|
|
214
|
+
* If the AMD software release date is not successfully returned, an error code is returned.<br>
|
|
215
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes.<br>
|
|
216
|
+
* @ENG_END_DOX
|
|
217
|
+
*
|
|
218
|
+
* @copydoc IADLXGPU2_REQ_TABLE
|
|
219
|
+
*
|
|
220
|
+
*/
|
|
221
|
+
virtual ADLX_RESULT ADLX_STD_CALL AMDSoftwareReleaseDate(adlx_uint* year, adlx_uint* month, adlx_uint* day) = 0;
|
|
222
|
+
|
|
223
|
+
/**
|
|
224
|
+
* @page DOX_IADLXGPU2_AMDSoftwareEdition AMDSoftwareEdition
|
|
225
|
+
* @ENG_START_DOX
|
|
226
|
+
* @brief Gets the AMD software edition of a GPU.
|
|
227
|
+
* @ENG_END_DOX
|
|
228
|
+
* @syntax
|
|
229
|
+
* @codeStart
|
|
230
|
+
* @ref ADLX_RESULT AMDSoftwareEdition(const char** edition)
|
|
231
|
+
* @codeEnd
|
|
232
|
+
*
|
|
233
|
+
* @params
|
|
234
|
+
* @paramrow{1.,[out],edition,const char**,@ENG_START_DOX The pointer to a zero-terminated string where the AMD software edition is returned. @ENG_END_DOX}
|
|
235
|
+
*
|
|
236
|
+
* @retvalues
|
|
237
|
+
* @ENG_START_DOX
|
|
238
|
+
* If the AMD software edition is successfully returned, __ADLX_OK__ is returned.<br>
|
|
239
|
+
* If the AMD software edition is not successfully returned, an error code is returned.<br>
|
|
240
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes.<br>
|
|
241
|
+
* @ENG_END_DOX
|
|
242
|
+
*
|
|
243
|
+
* @addinfo
|
|
244
|
+
* @ENG_START_DOX
|
|
245
|
+
* The returned memory buffer is valid within the lifetime of the @ref DOX_IADLXGPU2 interface.<br>
|
|
246
|
+
* If the application uses the AMD software edition beyond the lifetime of the @ref DOX_IADLXGPU2 interface, the application must make a copy of the AMD software edition.
|
|
247
|
+
* @ENG_END_DOX
|
|
248
|
+
* @copydoc IADLXGPU2_REQ_TABLE
|
|
249
|
+
*
|
|
250
|
+
*/
|
|
251
|
+
virtual ADLX_RESULT ADLX_STD_CALL AMDSoftwareEdition(const char** edition) = 0;
|
|
252
|
+
|
|
253
|
+
/**
|
|
254
|
+
* @page DOX_IADLXGPU2_AMDSoftwareVersion AMDSoftwareVersion
|
|
255
|
+
* @ENG_START_DOX
|
|
256
|
+
* @brief Gets the AMD software version of a GPU.
|
|
257
|
+
* @ENG_END_DOX
|
|
258
|
+
* @syntax
|
|
259
|
+
* @codeStart
|
|
260
|
+
* @ref ADLX_RESULT AMDSoftwareVersion(const char** version)
|
|
261
|
+
* @codeEnd
|
|
262
|
+
*
|
|
263
|
+
* @params
|
|
264
|
+
* @paramrow{1.,[out],version,const char**,@ENG_START_DOX The pointer to a zero-terminated string where the AMD software version is returned. @ENG_END_DOX}
|
|
265
|
+
*
|
|
266
|
+
* @retvalues
|
|
267
|
+
* @ENG_START_DOX
|
|
268
|
+
* If the AMD software version is successfully returned, __ADLX_OK__ is returned.<br>
|
|
269
|
+
* If the AMD software version is not successfully returned, an error code is returned.<br>
|
|
270
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes.<br>
|
|
271
|
+
* @ENG_END_DOX
|
|
272
|
+
*
|
|
273
|
+
* @addinfo
|
|
274
|
+
* @ENG_START_DOX
|
|
275
|
+
* The returned memory buffer is valid within the lifetime of the @ref DOX_IADLXGPU2 interface.<br>
|
|
276
|
+
* If the application uses the AMD software version beyond the lifetime of the @ref DOX_IADLXGPU2 interface, the application must make a copy of the AMD software version.
|
|
277
|
+
* @ENG_END_DOX
|
|
278
|
+
* @copydoc IADLXGPU2_REQ_TABLE
|
|
279
|
+
*
|
|
280
|
+
*/
|
|
281
|
+
virtual ADLX_RESULT ADLX_STD_CALL AMDSoftwareVersion(const char** version) = 0;
|
|
282
|
+
|
|
283
|
+
/**
|
|
284
|
+
* @page DOX_IADLXGPU2_DriverVersion DriverVersion
|
|
285
|
+
* @ENG_START_DOX
|
|
286
|
+
* @brief Gets the driver version of a GPU.
|
|
287
|
+
* @ENG_END_DOX
|
|
288
|
+
* @syntax
|
|
289
|
+
* @codeStart
|
|
290
|
+
* @ref ADLX_RESULT DriverVersion(const char** version)
|
|
291
|
+
* @codeEnd
|
|
292
|
+
*
|
|
293
|
+
* @params
|
|
294
|
+
* @paramrow{1.,[out],version,const char**,@ENG_START_DOX The pointer to a zero-terminated string where the driver version is returned. @ENG_END_DOX}
|
|
295
|
+
*
|
|
296
|
+
* @retvalues
|
|
297
|
+
* @ENG_START_DOX
|
|
298
|
+
* If the driver version is successfully returned, __ADLX_OK__ is returned.<br>
|
|
299
|
+
* If the driver version is not successfully returned, an error code is returned.<br>
|
|
300
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes.<br>
|
|
301
|
+
* @ENG_END_DOX
|
|
302
|
+
*
|
|
303
|
+
* @addinfo
|
|
304
|
+
* @ENG_START_DOX
|
|
305
|
+
* The returned memory buffer is valid within the lifetime of the @ref DOX_IADLXGPU2 interface.<br>
|
|
306
|
+
* If the application uses the driver version beyond the lifetime of the @ref DOX_IADLXGPU2 interface, the application must make a copy of the driver version.
|
|
307
|
+
* @ENG_END_DOX
|
|
308
|
+
* @copydoc IADLXGPU2_REQ_TABLE
|
|
309
|
+
*
|
|
310
|
+
*/
|
|
311
|
+
virtual ADLX_RESULT ADLX_STD_CALL DriverVersion(const char** version) = 0;
|
|
312
|
+
|
|
313
|
+
/**
|
|
314
|
+
* @page DOX_IADLXGPU2_AMDWindowsDriverVersion AMDWindowsDriverVersion
|
|
315
|
+
* @ENG_START_DOX
|
|
316
|
+
* @brief Gets the AMD Windows driver version of a GPU.
|
|
317
|
+
* @ENG_END_DOX
|
|
318
|
+
* @syntax
|
|
319
|
+
* @codeStart
|
|
320
|
+
* @ref ADLX_RESULT AMDWindowsDriverVersion(const char** version)
|
|
321
|
+
* @codeEnd
|
|
322
|
+
*
|
|
323
|
+
* @params
|
|
324
|
+
* @paramrow{1.,[out],version,const char**,@ENG_START_DOX The pointer to a zero-terminated string where the AMD Windows driver version is returned. @ENG_END_DOX}
|
|
325
|
+
*
|
|
326
|
+
* @retvalues
|
|
327
|
+
* @ENG_START_DOX
|
|
328
|
+
* If the AMD Windows driver version is successfully returned, __ADLX_OK__ is returned.<br>
|
|
329
|
+
* If the AMD Windows driver version is not successfully returned, an error code is returned.<br>
|
|
330
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes.<br>
|
|
331
|
+
* @ENG_END_DOX
|
|
332
|
+
*
|
|
333
|
+
* @addinfo
|
|
334
|
+
* @ENG_START_DOX
|
|
335
|
+
* The returned memory buffer is valid within the lifetime of the @ref DOX_IADLXGPU2 interface.<br>
|
|
336
|
+
* If the application uses the AMD windows driver version beyond the lifetime of the @ref DOX_IADLXGPU2 interface, the application must make a copy of the AMD windows driver version.
|
|
337
|
+
* @ENG_END_DOX
|
|
338
|
+
* @copydoc IADLXGPU2_REQ_TABLE
|
|
339
|
+
*
|
|
340
|
+
*/
|
|
341
|
+
virtual ADLX_RESULT ADLX_STD_CALL AMDWindowsDriverVersion(const char** version) = 0;
|
|
342
|
+
|
|
343
|
+
/**
|
|
344
|
+
* @page DOX_IADLXGPU2_LUID LUID
|
|
345
|
+
* @ENG_START_DOX
|
|
346
|
+
* @brief Gets the local identifier information of a GPU.
|
|
347
|
+
* @ENG_END_DOX
|
|
348
|
+
* @syntax
|
|
349
|
+
* @codeStart
|
|
350
|
+
* @ref ADLX_RESULT LUID (@ref ADLX_LUID* luid)
|
|
351
|
+
* @codeEnd
|
|
352
|
+
*
|
|
353
|
+
* @params
|
|
354
|
+
* @paramrow{1.,[out],luid,@ref ADLX_LUID*,@ENG_START_DOX The pointer to a variable where the local identifier information of the GPU is returned. @ENG_END_DOX}
|
|
355
|
+
*
|
|
356
|
+
* @retvalues
|
|
357
|
+
* @ENG_START_DOX
|
|
358
|
+
* If the local identifier information is successfully returned, __ADLX_OK__ is returned.<br>
|
|
359
|
+
* If the local identifier information is not successfully returned, an error code is returned.<br>
|
|
360
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes.<br>
|
|
361
|
+
* @ENG_END_DOX
|
|
362
|
+
*
|
|
363
|
+
* @copydoc IADLXGPU2_REQ_TABLE
|
|
364
|
+
*
|
|
365
|
+
*/
|
|
366
|
+
virtual ADLX_RESULT ADLX_STD_CALL LUID(ADLX_LUID* luid) = 0;
|
|
367
|
+
|
|
368
|
+
}; //IADLXGPU2
|
|
369
|
+
//----------------------------------------------------------------------------------------------
|
|
370
|
+
typedef IADLXInterfacePtr_T<IADLXGPU2> IADLXGPU2Ptr;
|
|
371
|
+
} //namespace adlx
|
|
372
|
+
#else
|
|
373
|
+
ADLX_DECLARE_IID(IADLXGPU2, L"IADLXGPU2");
|
|
374
|
+
typedef struct IADLXGPU2 IADLXGPU2;
|
|
375
|
+
typedef struct IADLXGPUConnectChangedListener IADLXGPUConnectChangedListener;
|
|
376
|
+
typedef struct IADLXApplicationList IADLXApplicationList;
|
|
377
|
+
typedef struct IADLXGPU2Vtbl
|
|
378
|
+
{
|
|
379
|
+
//IADLXInterface
|
|
380
|
+
adlx_long(ADLX_STD_CALL* Acquire)(IADLXGPU2* pThis);
|
|
381
|
+
adlx_long(ADLX_STD_CALL* Release)(IADLXGPU2* pThis);
|
|
382
|
+
ADLX_RESULT(ADLX_STD_CALL* QueryInterface)(IADLXGPU2* pThis, const wchar_t* interfaceId, void** ppInterface);
|
|
383
|
+
//IADLXGPU
|
|
384
|
+
ADLX_RESULT(ADLX_STD_CALL* VendorId)(IADLXGPU2* pThis, const char** vendorId);
|
|
385
|
+
ADLX_RESULT(ADLX_STD_CALL* ASICFamilyType)(IADLXGPU2* pThis, ADLX_ASIC_FAMILY_TYPE* asicFamilyType);
|
|
386
|
+
ADLX_RESULT(ADLX_STD_CALL* Type)(IADLXGPU2* pThis, ADLX_GPU_TYPE* gpuType);
|
|
387
|
+
ADLX_RESULT(ADLX_STD_CALL* IsExternal)(IADLXGPU2* pThis, adlx_bool* isExternal);
|
|
388
|
+
ADLX_RESULT(ADLX_STD_CALL* Name)(IADLXGPU2* pThis, const char** gpuName);
|
|
389
|
+
ADLX_RESULT(ADLX_STD_CALL* DriverPath)(IADLXGPU2* pThis, const char** driverPath);
|
|
390
|
+
ADLX_RESULT(ADLX_STD_CALL* PNPString)(IADLXGPU2* pThis, const char** pnpString);
|
|
391
|
+
ADLX_RESULT(ADLX_STD_CALL* HasDesktops)(IADLXGPU2* pThis, adlx_bool* hasDesktops);
|
|
392
|
+
ADLX_RESULT(ADLX_STD_CALL* TotalVRAM)(IADLXGPU2* pThis, adlx_uint* vramMB);
|
|
393
|
+
ADLX_RESULT(ADLX_STD_CALL* VRAMType)(IADLXGPU2* pThis, const char** type);
|
|
394
|
+
ADLX_RESULT(ADLX_STD_CALL* BIOSInfo)(IADLXGPU2* pThis, const char** partNumber, const char** version, const char** date);
|
|
395
|
+
ADLX_RESULT(ADLX_STD_CALL* DeviceId)(IADLXGPU2* pThis, const char** deviceId);
|
|
396
|
+
ADLX_RESULT(ADLX_STD_CALL* RevisionId)(IADLXGPU2* pThis, const char** revisionId);
|
|
397
|
+
ADLX_RESULT(ADLX_STD_CALL* SubSystemId)(IADLXGPU2* pThis, const char** subSystemId);
|
|
398
|
+
ADLX_RESULT(ADLX_STD_CALL* SubSystemVendorId)(IADLXGPU2* pThis, const char** subSystemVendorId);
|
|
399
|
+
ADLX_RESULT(ADLX_STD_CALL* UniqueId)(IADLXGPU2* pThis, adlx_int* uniqueId);
|
|
400
|
+
//IADLXGPU1
|
|
401
|
+
ADLX_RESULT(ADLX_STD_CALL* PCIBusType)(IADLXGPU2* pThis, ADLX_PCI_BUS_TYPE* busType);
|
|
402
|
+
ADLX_RESULT(ADLX_STD_CALL* PCIBusLaneWidth)(IADLXGPU2* pThis, adlx_uint* laneWidth);
|
|
403
|
+
ADLX_RESULT(ADLX_STD_CALL* MultiGPUMode)(IADLXGPU2* pThis, ADLX_MGPU_MODE* mode);
|
|
404
|
+
ADLX_RESULT(ADLX_STD_CALL* ProductName)(IADLXGPU2* pThis, const char** productName);
|
|
405
|
+
//IADLXGPU2
|
|
406
|
+
ADLX_RESULT(ADLX_STD_CALL* IsPowerOff)(IADLXGPU2* pThis, adlx_bool* state);
|
|
407
|
+
ADLX_RESULT(ADLX_STD_CALL* PowerOn)(IADLXGPU2* pThis);
|
|
408
|
+
ADLX_RESULT(ADLX_STD_CALL* StartPowerOff)(IADLXGPU2* pThis, IADLXGPUConnectChangedListener* pGPUConnectChangedListener, adlx_int timeout);
|
|
409
|
+
ADLX_RESULT(ADLX_STD_CALL* AbortPowerOff)(IADLXGPU2* pThis);
|
|
410
|
+
ADLX_RESULT(ADLX_STD_CALL* IsSupportedApplicationList)(IADLXGPU2* pThis, adlx_bool* supported);
|
|
411
|
+
ADLX_RESULT(ADLX_STD_CALL* GetApplications)(IADLXGPU2* pThis, IADLXApplicationList** ppApplications);
|
|
412
|
+
ADLX_RESULT(ADLX_STD_CALL* AMDSoftwareReleaseDate)(IADLXGPU2* pThis, adlx_uint* year, adlx_uint* month, adlx_uint* day);
|
|
413
|
+
ADLX_RESULT(ADLX_STD_CALL* AMDSoftwareEdition)(IADLXGPU2* pThis, const char** edition);
|
|
414
|
+
ADLX_RESULT(ADLX_STD_CALL* AMDSoftwareVersion)(IADLXGPU2* pThis, const char** version);
|
|
415
|
+
ADLX_RESULT(ADLX_STD_CALL* DriverVersion)(IADLXGPU2* pThis, const char** version);
|
|
416
|
+
ADLX_RESULT(ADLX_STD_CALL* AMDWindowsDriverVersion)(IADLXGPU2* pThis, const char** version);
|
|
417
|
+
ADLX_RESULT(ADLX_STD_CALL* LUID)(IADLXGPU2* pThis, ADLX_LUID* luid);
|
|
418
|
+
} IADLXGPU2Vtbl;
|
|
419
|
+
|
|
420
|
+
struct IADLXGPU2 { const IADLXGPU2Vtbl* pVtbl; };
|
|
421
|
+
#endif
|
|
422
|
+
#pragma endregion IADLXGPU2 interface
|
|
423
|
+
|
|
424
|
+
#pragma region IADLXGPU2List interface
|
|
425
|
+
#if defined (__cplusplus)
|
|
426
|
+
namespace adlx
|
|
427
|
+
{
|
|
428
|
+
class ADLX_NO_VTABLE IADLXGPU2List : public IADLXList
|
|
429
|
+
{
|
|
430
|
+
public:
|
|
431
|
+
ADLX_DECLARE_IID (L"IADLXGPU2List")
|
|
432
|
+
//Lists must declare the type of items it holds - what was passed as ADLX_DECLARE_IID() in that interface
|
|
433
|
+
ADLX_DECLARE_ITEM_IID (IADLXGPU2::IID ())
|
|
434
|
+
|
|
435
|
+
/**
|
|
436
|
+
* @page DOX_IADLXGPU2List_At At
|
|
437
|
+
* @ENG_START_DOX
|
|
438
|
+
* @brief Returns the reference counted interface at the requested location.
|
|
439
|
+
* @ENG_END_DOX
|
|
440
|
+
* @syntax
|
|
441
|
+
* @codeStart
|
|
442
|
+
* @ref ADLX_RESULT At (const adlx_uint location, @ref DOX_IADLXGPU2** ppItem)
|
|
443
|
+
* @codeEnd
|
|
444
|
+
*
|
|
445
|
+
* @params
|
|
446
|
+
* @paramrow{1.,[in] ,location,const adlx_uint ,@ENG_START_DOX The location of the requested interface. @ENG_END_DOX}
|
|
447
|
+
* @paramrow{2.,[out] ,ppItem,@ref DOX_IADLXGPU2** ,@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}
|
|
448
|
+
*
|
|
449
|
+
* @retvalues
|
|
450
|
+
* @ENG_START_DOX
|
|
451
|
+
* If the location is within the list bounds, __ADLX_OK__ is returned.<br>
|
|
452
|
+
* If the location is not within the list bounds, an error code is returned.<br>
|
|
453
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes.<br>
|
|
454
|
+
* @ENG_END_DOX
|
|
455
|
+
*
|
|
456
|
+
* @detaileddesc
|
|
457
|
+
* @ENG_START_DOX
|
|
458
|
+
* @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed.
|
|
459
|
+
* @ENG_END_DOX
|
|
460
|
+
*
|
|
461
|
+
* @addinfo
|
|
462
|
+
* @ENG_START_DOX
|
|
463
|
+
* 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.
|
|
464
|
+
* @ENG_END_DOX
|
|
465
|
+
*
|
|
466
|
+
* @copydoc IADLXGPU2List_REQ_TABLE
|
|
467
|
+
*
|
|
468
|
+
*/
|
|
469
|
+
virtual ADLX_RESULT ADLX_STD_CALL At (const adlx_uint location, IADLXGPU2** ppItem) = 0;
|
|
470
|
+
/**
|
|
471
|
+
* @page DOX_IADLXGPU2List_Add_Back Add_Back
|
|
472
|
+
* @ENG_START_DOX
|
|
473
|
+
* @brief Adds an interface to the end of a list.
|
|
474
|
+
* @ENG_END_DOX
|
|
475
|
+
* @syntax
|
|
476
|
+
* @codeStart
|
|
477
|
+
* @ref ADLX_RESULT Add_Back (@ref DOX_IADLXGPU2* pItem)
|
|
478
|
+
* @codeEnd
|
|
479
|
+
*
|
|
480
|
+
* @params
|
|
481
|
+
* @paramrow{1.,[in] ,pItem,@ref DOX_IADLXGPU2* ,@ENG_START_DOX The pointer to the interface to be added to the list. @ENG_END_DOX}
|
|
482
|
+
*
|
|
483
|
+
* @retvalues
|
|
484
|
+
* @ENG_START_DOX
|
|
485
|
+
* If the interface is added successfully to the end of the list, __ADLX_OK__ is returned.<br>
|
|
486
|
+
* If the interface is not added to the end of the list, an error code is returned.<br>
|
|
487
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes.<br>
|
|
488
|
+
* @ENG_END_DOX
|
|
489
|
+
*
|
|
490
|
+
* @detaileddesc
|
|
491
|
+
* @ENG_START_DOX
|
|
492
|
+
* @details
|
|
493
|
+
* @ENG_END_DOX
|
|
494
|
+
*
|
|
495
|
+
*
|
|
496
|
+
* @copydoc IADLXGPU2List_REQ_TABLE
|
|
497
|
+
*
|
|
498
|
+
*/
|
|
499
|
+
virtual ADLX_RESULT ADLX_STD_CALL Add_Back (IADLXGPU2* pItem) = 0;
|
|
500
|
+
}; //IADLXGPU2List
|
|
501
|
+
//----------------------------------------------------------------------------------------------
|
|
502
|
+
typedef IADLXInterfacePtr_T<IADLXGPU2List> IADLXGPU2ListPtr;
|
|
503
|
+
} //namespace adlx
|
|
504
|
+
#else
|
|
505
|
+
ADLX_DECLARE_IID (IADLXGPU2List, L"IADLXGPU2List")
|
|
506
|
+
ADLX_DECLARE_ITEM_IID (IADLXGPU2, IID_IADLXGPU2 ())
|
|
507
|
+
|
|
508
|
+
typedef struct IADLXGPU2List IADLXGPU2List;
|
|
509
|
+
typedef struct IADLXGPU2ListVtbl
|
|
510
|
+
{
|
|
511
|
+
//IADLXInterface
|
|
512
|
+
adlx_long (ADLX_STD_CALL *Acquire)(IADLXGPU2List* pThis);
|
|
513
|
+
adlx_long (ADLX_STD_CALL *Release)(IADLXGPU2List* pThis);
|
|
514
|
+
ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLXGPU2List* pThis, const wchar_t* interfaceId, void** ppInterface);
|
|
515
|
+
|
|
516
|
+
//IADLXList
|
|
517
|
+
adlx_uint (ADLX_STD_CALL *Size)(IADLXGPU2List* pThis);
|
|
518
|
+
adlx_uint8 (ADLX_STD_CALL *Empty)(IADLXGPU2List* pThis);
|
|
519
|
+
adlx_uint (ADLX_STD_CALL *Begin)(IADLXGPU2List* pThis);
|
|
520
|
+
adlx_uint (ADLX_STD_CALL *End)(IADLXGPU2List* pThis);
|
|
521
|
+
ADLX_RESULT (ADLX_STD_CALL *At)(IADLXGPU2List* pThis, const adlx_uint location, IADLXInterface** ppItem);
|
|
522
|
+
ADLX_RESULT (ADLX_STD_CALL *Clear)(IADLXGPU2List* pThis);
|
|
523
|
+
ADLX_RESULT (ADLX_STD_CALL *Remove_Back)(IADLXGPU2List* pThis);
|
|
524
|
+
ADLX_RESULT (ADLX_STD_CALL *Add_Back)(IADLXGPU2List* pThis, IADLXInterface* pItem);
|
|
525
|
+
|
|
526
|
+
//IADLXGPU2List
|
|
527
|
+
ADLX_RESULT (ADLX_STD_CALL *At_GPU2List)(IADLXGPU2List* pThis, const adlx_uint location, IADLXGPU2** ppItem);
|
|
528
|
+
ADLX_RESULT (ADLX_STD_CALL *Add_Back_GPU2List)(IADLXGPU2List* pThis, IADLXGPU2* pItem);
|
|
529
|
+
|
|
530
|
+
} IADLXGPU2ListVtbl;
|
|
531
|
+
|
|
532
|
+
struct IADLXGPU2List { const IADLXGPU2ListVtbl *pVtbl; };
|
|
533
|
+
|
|
534
|
+
#endif
|
|
535
|
+
#pragma endregion IADLXGPU2List interface
|
|
536
|
+
|
|
537
|
+
#pragma region IADLXSystem2 interface
|
|
538
|
+
#if defined (__cplusplus)
|
|
539
|
+
namespace adlx
|
|
540
|
+
{
|
|
541
|
+
class ADLX_NO_VTABLE IADLXMultimediaServices;
|
|
542
|
+
class ADLX_NO_VTABLE IADLXGPUAppsListChangedHandling;
|
|
543
|
+
class ADLX_NO_VTABLE IADLXSystem2 : public IADLXSystem1
|
|
544
|
+
{
|
|
545
|
+
public:
|
|
546
|
+
ADLX_DECLARE_IID (L"IADLXSystem2")
|
|
547
|
+
|
|
548
|
+
/**
|
|
549
|
+
* @page DOX_IADLXSystem2_GetMultimediaServices GetMultimediaServices
|
|
550
|
+
* @ENG_START_DOX
|
|
551
|
+
* @brief Gets the reference counted main interface to the @ref DOX_IADLXMultimediaServices "Multimedia" domain.
|
|
552
|
+
* @ENG_END_DOX
|
|
553
|
+
*
|
|
554
|
+
* @syntax
|
|
555
|
+
* @codeStart
|
|
556
|
+
* @ref ADLX_RESULT GetMultimediaServices (@ref DOX_IADLXMultimediaServices** ppMultiMediaServices)
|
|
557
|
+
* @codeEnd
|
|
558
|
+
*
|
|
559
|
+
* @params
|
|
560
|
+
* @paramrow{1.,[out] ,ppMultiMediaServices,@ref DOX_IADLXMultimediaServices**,@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 __*ppMultiMediaServices__ to __nullptr__. @ENG_END_DOX}
|
|
561
|
+
*
|
|
562
|
+
* @retvalues
|
|
563
|
+
* @ENG_START_DOX
|
|
564
|
+
* If the interface is successfully returned, __ADLX_OK__ is returned.<br>
|
|
565
|
+
* If the interface is not successfully returned, an error code is returned.<br>
|
|
566
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes.<br>
|
|
567
|
+
* @ENG_END_DOX
|
|
568
|
+
*
|
|
569
|
+
* @detaileddesc
|
|
570
|
+
* @ENG_START_DOX
|
|
571
|
+
* @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed.
|
|
572
|
+
* @ENG_END_DOX
|
|
573
|
+
*
|
|
574
|
+
* @addinfo
|
|
575
|
+
* @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
|
|
576
|
+
*
|
|
577
|
+
* @copydoc IADLXSystem2_REQ_TABLE
|
|
578
|
+
*
|
|
579
|
+
*/
|
|
580
|
+
virtual ADLX_RESULT ADLX_STD_CALL GetMultimediaServices(IADLXMultimediaServices** ppMultiMediaServices) = 0;
|
|
581
|
+
|
|
582
|
+
/**
|
|
583
|
+
* @page DOX_IADLXSystem2_GetGPUAppsListChangedHandling GetGPUAppsListChangedHandling
|
|
584
|
+
* @ENG_START_DOX
|
|
585
|
+
* @brief Gets the reference counted interface that allows registering and unregistering for notifications when the list of applications running on a GPU changes.
|
|
586
|
+
* @ENG_END_DOX
|
|
587
|
+
*
|
|
588
|
+
* @syntax
|
|
589
|
+
* @codeStart
|
|
590
|
+
* @ref ADLX_RESULT GetGPUAppsListChangedHandling(@ref DOX_IADLXGPUAppsListChangedHandling** ppGPUAppsListChangedHandling)
|
|
591
|
+
* @codeEnd
|
|
592
|
+
*
|
|
593
|
+
* @params
|
|
594
|
+
* @paramrow{1.,[out] ,ppGPUAppsListChangedHandling,@ref DOX_IADLXGPUAppsListChangedHandling**,@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 __*ppGPUAppsListChangedHandling__ to __nullptr__. @ENG_END_DOX}
|
|
595
|
+
*
|
|
596
|
+
* @retvalues
|
|
597
|
+
* @ENG_START_DOX
|
|
598
|
+
* If the interface is successfully returned, __ADLX_OK__ is returned.<br>
|
|
599
|
+
* If the interface is not successfully returned, an error code is returned.<br>
|
|
600
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes.<br>
|
|
601
|
+
* @ENG_END_DOX
|
|
602
|
+
*
|
|
603
|
+
* @detaileddesc
|
|
604
|
+
* @ENG_START_DOX
|
|
605
|
+
* @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed.
|
|
606
|
+
* @ENG_END_DOX
|
|
607
|
+
*
|
|
608
|
+
* @addinfo
|
|
609
|
+
* @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
|
|
610
|
+
*
|
|
611
|
+
* @copydoc IADLXSystem2_REQ_TABLE
|
|
612
|
+
*
|
|
613
|
+
*/
|
|
614
|
+
virtual ADLX_RESULT ADLX_STD_CALL GetGPUAppsListChangedHandling(IADLXGPUAppsListChangedHandling** ppGPUAppsListChangedHandling) = 0;
|
|
615
|
+
}; //IADLXSystem2
|
|
616
|
+
typedef IADLXInterfacePtr_T<IADLXSystem2> IADLXSystem2Ptr;
|
|
617
|
+
} //namespace adlx
|
|
618
|
+
#else //__cplusplus
|
|
619
|
+
ADLX_DECLARE_IID (IADLXSystem2, L"IADLXSystem2")
|
|
620
|
+
|
|
621
|
+
typedef struct IADLXMultimediaServices IADLXMultimediaServices;
|
|
622
|
+
typedef struct IADLXGPUAppsListChangedHandling IADLXGPUAppsListChangedHandling;
|
|
623
|
+
typedef struct IADLXSystem2 IADLXSystem2;
|
|
624
|
+
typedef struct IADLXSystem2Vtbl
|
|
625
|
+
{
|
|
626
|
+
//IADLXInterface
|
|
627
|
+
adlx_long (ADLX_STD_CALL *Acquire)(IADLXSystem2* pThis);
|
|
628
|
+
adlx_long (ADLX_STD_CALL *Release)(IADLXSystem2* pThis);
|
|
629
|
+
ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLXSystem2* pThis, const wchar_t* interfaceId, void** ppInterface);
|
|
630
|
+
|
|
631
|
+
//IADLXSystem1
|
|
632
|
+
ADLX_RESULT (ADLX_STD_CALL *GetPowerTuningServices)(IADLXSystem2* pThis, IADLXPowerTuningServices** ppPowerTuningServices);
|
|
633
|
+
|
|
634
|
+
//IADLXSystem2
|
|
635
|
+
ADLX_RESULT (ADLX_STD_CALL *GetMultimediaServices)(IADLXSystem2* pThis, IADLXMultimediaServices** ppMultiMediaServices);
|
|
636
|
+
ADLX_RESULT (ADLX_STD_CALL *GetGPUAppsListChangedHandling)(IADLXSystem2* pThis, IADLXGPUAppsListChangedHandling** ppGPUAppsListChangedHandling);
|
|
637
|
+
} IADLXSystem2Vtbl;
|
|
638
|
+
|
|
639
|
+
struct IADLXSystem2 { const IADLXSystem2Vtbl*pVtbl; };
|
|
640
|
+
#endif //__cplusplus
|
|
641
|
+
#pragma endregion IADLXSystem2 interface
|
|
642
|
+
|
|
643
|
+
#endif //ADLX_ISYSTEM2_H
|