35#include"nvapi_lite_salstart.h"
40#if (defined(WIN32) || defined(_WIN32)) && defined(_MSC_VER) && (_MSC_VER > 1399) && !defined(NVAPI_INTERNAL) && !defined(NVAPI_DEPRECATED_OLD)
41#ifndef __nvapi_deprecated_function
42#define __nvapi_deprecated_function(message) __declspec(deprecated(message))
44#ifndef __nvapi_deprecated_datatype
45#define __nvapi_deprecated_datatype(FirstRelease) __declspec(deprecated("Do not use this data type - it is deprecated in release " #FirstRelease "."))
48#ifndef __nvapi_deprecated_function
49#define __nvapi_deprecated_function(message)
51#ifndef __nvapi_deprecated_datatype
52#define __nvapi_deprecated_datatype(FirstRelease)
58#if defined(__GNUC__) || defined(__arm) || defined(__IAR_SYSTEMS_ICC__) || defined(__ghs__) || defined(_WIN64)
59typedef unsigned long long NvU64;
60typedef long long NvS64;
62typedef unsigned __int64 NvU64;
67#if (defined(macintosh) || defined(__APPLE__)) && !defined(__LP64__)
68typedef signed long NvS32;
70typedef signed int NvS32;
73#if !(NVOS_IS_UNIX || (defined(__unix)))
75#if ( (defined(macintosh) && defined(__LP64__) && (__NVAPI_RESERVED0__)) || \
76 (!defined(macintosh) && defined(__NVAPI_RESERVED0__)) )
77typedef unsigned int NvU32;
79typedef unsigned long NvU32;
82typedef unsigned int NvU32;
85typedef unsigned long temp_NvU32;
86typedef signed short NvS16;
87typedef unsigned short NvU16;
88typedef unsigned char NvU8;
89typedef signed char NvS8;
96#define NvU32TONvF32(_pData) *(NvF32 *)(_pData)
100#define NvF32TONvU32(_pData) *(NvU32 *)(_pData)
104#define NV_TRUE ((NvBool)(0 == 0))
105#define NV_FALSE ((NvBool)(0 != 0))
116#define NV_DECLARE_HANDLE(name) struct name##__ { int unused; }; typedef struct name##__ *name
127NV_DECLARE_HANDLE(NvLogicalGpuHandle);
128NV_DECLARE_HANDLE(NvPhysicalGpuHandle);
129NV_DECLARE_HANDLE(NvDisplayHandle);
130NV_DECLARE_HANDLE(NvMonitorHandle);
131NV_DECLARE_HANDLE(NvUnAttachedDisplayHandle);
132NV_DECLARE_HANDLE(NvVisualComputingDeviceHandle);
133NV_DECLARE_HANDLE(NvEventHandle);
136NV_DECLARE_HANDLE(NvHICHandle);
137NV_DECLARE_HANDLE(NvGSyncDeviceHandle);
138NV_DECLARE_HANDLE(NvVioHandle);
139NV_DECLARE_HANDLE(NvTransitionHandle);
140NV_DECLARE_HANDLE(NvAudioHandle);
141NV_DECLARE_HANDLE(Nv3DVPContextHandle);
142NV_DECLARE_HANDLE(Nv3DVPTransceiverHandle);
143NV_DECLARE_HANDLE(Nv3DVPGlassesHandle);
144NV_DECLARE_HANDLE(NvPcfClientHandle);
148NV_DECLARE_HANDLE(NvSourceHandle);
149NV_DECLARE_HANDLE(NvTargetHandle);
150NV_DECLARE_HANDLE(NVDX_SwapChainHandle);
151static const NVDX_SwapChainHandle NVDX_SWAPCHAIN_NONE = 0;
152NV_DECLARE_HANDLE(NvPresentBarrierClientHandle);
157#define NVAPI_DEFAULT_HANDLE 0
158#define NV_BIT(x) (1 << (x))
165#define NVAPI_GENERIC_STRING_MAX 4096
166#define NVAPI_LONG_STRING_MAX 256
167#define NVAPI_SHORT_STRING_MAX 64
177#ifndef NvGUID_Defined
178#define NvGUID_Defined
190#define NVAPI_MAX_PHYSICAL_GPUS 64
193#define NVAPI_MAX_PHYSICAL_BRIDGES 100
194#define NVAPI_PHYSICAL_GPUS 32
195#define NVAPI_MAX_LOGICAL_GPUS 64
196#define NVAPI_MAX_AVAILABLE_GPU_TOPOLOGIES 256
197#define NVAPI_MAX_AVAILABLE_SLI_GROUPS 256
198#define NVAPI_MAX_GPU_TOPOLOGIES NVAPI_MAX_PHYSICAL_GPUS
199#define NVAPI_MAX_GPU_PER_TOPOLOGY 8
200#define NVAPI_MAX_DISPLAY_HEADS 2
201#define NVAPI_ADVANCED_DISPLAY_HEADS 4
202#define NVAPI_MAX_DISPLAYS NVAPI_PHYSICAL_GPUS * NVAPI_ADVANCED_DISPLAY_HEADS
203#define NVAPI_MAX_ACPI_IDS 16
204#define NVAPI_MAX_VIEW_MODES 8
207#define NVAPI_SYSTEM_MAX_HWBCS 128
208#define NVAPI_SYSTEM_HWBC_INVALID_ID 0xffffffff
210#define NVAPI_SYSTEM_MAX_DISPLAYS NVAPI_MAX_PHYSICAL_GPUS * NV_MAX_HEADS
211#define NV_MAX_HEADS 4
212#define NVAPI_MAX_HEADS_PER_GPU 32
213#define NV_MAX_VID_STREAMS 4
214#define NV_MAX_VID_STREAMS_EX 20
215#define NV_MAX_VID_PROFILES 4
217#define NVAPI_MAX_AUDIO_DEVICES 16
220typedef char NvAPI_String[NVAPI_GENERIC_STRING_MAX];
221typedef char NvAPI_LongString[NVAPI_LONG_STRING_MAX];
222typedef char NvAPI_ShortString[NVAPI_SHORT_STRING_MAX];
223typedef NvU16 NvAPI_UnicodeShortString[NVAPI_SHORT_STRING_MAX];
233#define MAKE_NVAPI_VERSION(typeName,ver) (NvU32)(sizeof(typeName) | ((ver)<<16))
236#define GET_NVAPI_VERSION(ver) (NvU32)((ver)>>16)
239#define GET_NVAPI_SIZE(ver) (NvU32)((ver) & 0xffff)
249typedef enum _NvAPI_Status
253 NVAPI_LIBRARY_NOT_FOUND = -2,
254 NVAPI_NO_IMPLEMENTATION = -3,
255 NVAPI_API_NOT_INITIALIZED = -4,
256 NVAPI_INVALID_ARGUMENT = -5,
257 NVAPI_NVIDIA_DEVICE_NOT_FOUND = -6,
258 NVAPI_END_ENUMERATION = -7,
259 NVAPI_INVALID_HANDLE = -8,
260 NVAPI_INCOMPATIBLE_STRUCT_VERSION = -9,
261 NVAPI_HANDLE_INVALIDATED = -10,
262 NVAPI_OPENGL_CONTEXT_NOT_CURRENT = -11,
263 NVAPI_INVALID_POINTER = -14,
264 NVAPI_NO_GL_EXPERT = -12,
265 NVAPI_INSTRUMENTATION_DISABLED = -13,
266 NVAPI_NO_GL_NSIGHT = -15,
268 NVAPI_EXPECTED_LOGICAL_GPU_HANDLE = -100,
269 NVAPI_EXPECTED_PHYSICAL_GPU_HANDLE = -101,
270 NVAPI_EXPECTED_DISPLAY_HANDLE = -102,
271 NVAPI_INVALID_COMBINATION = -103,
272 NVAPI_NOT_SUPPORTED = -104,
273 NVAPI_PORTID_NOT_FOUND = -105,
274 NVAPI_EXPECTED_UNATTACHED_DISPLAY_HANDLE = -106,
275 NVAPI_INVALID_PERF_LEVEL = -107,
276 NVAPI_DEVICE_BUSY = -108,
277 NVAPI_NV_PERSIST_FILE_NOT_FOUND = -109,
278 NVAPI_PERSIST_DATA_NOT_FOUND = -110,
279 NVAPI_EXPECTED_TV_DISPLAY = -111,
280 NVAPI_EXPECTED_TV_DISPLAY_ON_DCONNECTOR = -112,
281 NVAPI_NO_ACTIVE_SLI_TOPOLOGY = -113,
282 NVAPI_SLI_RENDERING_MODE_NOTALLOWED = -114,
283 NVAPI_EXPECTED_DIGITAL_FLAT_PANEL = -115,
284 NVAPI_ARGUMENT_EXCEED_MAX_SIZE = -116,
285 NVAPI_DEVICE_SWITCHING_NOT_ALLOWED = -117,
286 NVAPI_TESTING_CLOCKS_NOT_SUPPORTED = -118,
287 NVAPI_UNKNOWN_UNDERSCAN_CONFIG = -119,
288 NVAPI_TIMEOUT_RECONFIGURING_GPU_TOPO = -120,
289 NVAPI_DATA_NOT_FOUND = -121,
290 NVAPI_EXPECTED_ANALOG_DISPLAY = -122,
291 NVAPI_NO_VIDLINK = -123,
292 NVAPI_REQUIRES_REBOOT = -124,
293 NVAPI_INVALID_HYBRID_MODE = -125,
294 NVAPI_MIXED_TARGET_TYPES = -126,
295 NVAPI_SYSWOW64_NOT_SUPPORTED = -127,
296 NVAPI_IMPLICIT_SET_GPU_TOPOLOGY_CHANGE_NOT_ALLOWED = -128,
297 NVAPI_REQUEST_USER_TO_CLOSE_NON_MIGRATABLE_APPS = -129,
298 NVAPI_OUT_OF_MEMORY = -130,
299 NVAPI_WAS_STILL_DRAWING = -131,
300 NVAPI_FILE_NOT_FOUND = -132,
301 NVAPI_TOO_MANY_UNIQUE_STATE_OBJECTS = -133,
302 NVAPI_INVALID_CALL = -134,
303 NVAPI_D3D10_1_LIBRARY_NOT_FOUND = -135,
304 NVAPI_FUNCTION_NOT_FOUND = -136,
305 NVAPI_INVALID_USER_PRIVILEGE = -137,
307 NVAPI_EXPECTED_NON_PRIMARY_DISPLAY_HANDLE = -138,
308 NVAPI_EXPECTED_COMPUTE_GPU_HANDLE = -139,
309 NVAPI_STEREO_NOT_INITIALIZED = -140,
310 NVAPI_STEREO_REGISTRY_ACCESS_FAILED = -141,
311 NVAPI_STEREO_REGISTRY_PROFILE_TYPE_NOT_SUPPORTED = -142,
312 NVAPI_STEREO_REGISTRY_VALUE_NOT_SUPPORTED = -143,
313 NVAPI_STEREO_NOT_ENABLED = -144,
314 NVAPI_STEREO_NOT_TURNED_ON = -145,
315 NVAPI_STEREO_INVALID_DEVICE_INTERFACE = -146,
316 NVAPI_STEREO_PARAMETER_OUT_OF_RANGE = -147,
317 NVAPI_STEREO_FRUSTUM_ADJUST_MODE_NOT_SUPPORTED = -148,
318 NVAPI_TOPO_NOT_POSSIBLE = -149,
319 NVAPI_MODE_CHANGE_FAILED = -150,
320 NVAPI_D3D11_LIBRARY_NOT_FOUND = -151,
321 NVAPI_INVALID_ADDRESS = -152,
322 NVAPI_STRING_TOO_SMALL = -153,
323 NVAPI_MATCHING_DEVICE_NOT_FOUND = -154,
324 NVAPI_DRIVER_RUNNING = -155,
325 NVAPI_DRIVER_NOTRUNNING = -156,
326 NVAPI_ERROR_DRIVER_RELOAD_REQUIRED = -157,
327 NVAPI_SET_NOT_ALLOWED = -158,
328 NVAPI_ADVANCED_DISPLAY_TOPOLOGY_REQUIRED = -159,
329 NVAPI_SETTING_NOT_FOUND = -160,
330 NVAPI_SETTING_SIZE_TOO_LARGE = -161,
331 NVAPI_TOO_MANY_SETTINGS_IN_PROFILE = -162,
332 NVAPI_PROFILE_NOT_FOUND = -163,
333 NVAPI_PROFILE_NAME_IN_USE = -164,
334 NVAPI_PROFILE_NAME_EMPTY = -165,
335 NVAPI_EXECUTABLE_NOT_FOUND = -166,
336 NVAPI_EXECUTABLE_ALREADY_IN_USE = -167,
337 NVAPI_DATATYPE_MISMATCH = -168,
338 NVAPI_PROFILE_REMOVED = -169,
339 NVAPI_UNREGISTERED_RESOURCE = -170,
340 NVAPI_ID_OUT_OF_RANGE = -171,
341 NVAPI_DISPLAYCONFIG_VALIDATION_FAILED = -172,
342 NVAPI_DPMST_CHANGED = -173,
343 NVAPI_INSUFFICIENT_BUFFER = -174,
344 NVAPI_ACCESS_DENIED = -175,
345 NVAPI_MOSAIC_NOT_ACTIVE = -176,
346 NVAPI_SHARE_RESOURCE_RELOCATED = -177,
347 NVAPI_REQUEST_USER_TO_DISABLE_DWM = -178,
348 NVAPI_D3D_DEVICE_LOST = -179,
349 NVAPI_INVALID_CONFIGURATION = -180,
350 NVAPI_STEREO_HANDSHAKE_NOT_DONE = -181,
351 NVAPI_EXECUTABLE_PATH_IS_AMBIGUOUS = -182,
352 NVAPI_DEFAULT_STEREO_PROFILE_IS_NOT_DEFINED = -183,
353 NVAPI_DEFAULT_STEREO_PROFILE_DOES_NOT_EXIST = -184,
354 NVAPI_CLUSTER_ALREADY_EXISTS = -185,
355 NVAPI_DPMST_DISPLAY_ID_EXPECTED = -186,
356 NVAPI_INVALID_DISPLAY_ID = -187,
357 NVAPI_STREAM_IS_OUT_OF_SYNC = -188,
358 NVAPI_INCOMPATIBLE_AUDIO_DRIVER = -189,
359 NVAPI_VALUE_ALREADY_SET = -190,
360 NVAPI_TIMEOUT = -191,
361 NVAPI_GPU_WORKSTATION_FEATURE_INCOMPLETE = -192,
362 NVAPI_STEREO_INIT_ACTIVATION_NOT_DONE = -193,
363 NVAPI_SYNC_NOT_ACTIVE = -194,
364 NVAPI_SYNC_MASTER_NOT_FOUND = -195,
365 NVAPI_INVALID_SYNC_TOPOLOGY = -196,
366 NVAPI_ECID_SIGN_ALGO_UNSUPPORTED = -197,
367 NVAPI_ECID_KEY_VERIFICATION_FAILED = -198,
368 NVAPI_FIRMWARE_OUT_OF_DATE = -199,
369 NVAPI_FIRMWARE_REVISION_NOT_SUPPORTED = -200,
370 NVAPI_LICENSE_CALLER_AUTHENTICATION_FAILED = -201,
371 NVAPI_D3D_DEVICE_NOT_REGISTERED = -202,
372 NVAPI_RESOURCE_NOT_ACQUIRED = -203,
373 NVAPI_TIMING_NOT_SUPPORTED = -204,
374 NVAPI_HDCP_ENCRYPTION_FAILED = -205,
375 NVAPI_PCLK_LIMITATION_FAILED = -206,
376 NVAPI_NO_CONNECTOR_FOUND = -207,
377 NVAPI_HDCP_DISABLED = -208,
378 NVAPI_API_IN_USE = -209,
379 NVAPI_NVIDIA_DISPLAY_NOT_FOUND = -210,
380 NVAPI_PRIV_SEC_VIOLATION = -211,
381 NVAPI_INCORRECT_VENDOR = -212,
382 NVAPI_DISPLAY_IN_USE = -213,
383 NVAPI_UNSUPPORTED_CONFIG_NON_HDCP_HMD = -214,
384 NVAPI_MAX_DISPLAY_LIMIT_REACHED = -215,
385 NVAPI_INVALID_DIRECT_MODE_DISPLAY = -216,
386 NVAPI_GPU_IN_DEBUG_MODE = -217,
387 NVAPI_D3D_CONTEXT_NOT_FOUND = -218,
388 NVAPI_STEREO_VERSION_MISMATCH = -219,
389 NVAPI_GPU_NOT_POWERED = -220,
390 NVAPI_ERROR_DRIVER_RELOAD_IN_PROGRESS = -221,
391 NVAPI_WAIT_FOR_HW_RESOURCE = -222,
392 NVAPI_REQUIRE_FURTHER_HDCP_ACTION = -223,
393 NVAPI_DISPLAY_MUX_TRANSITION_FAILED = -224,
394 NVAPI_INVALID_DSC_VERSION = -225,
395 NVAPI_INVALID_DSC_SLICECOUNT = -226,
396 NVAPI_INVALID_DSC_OUTPUT_BPP = -227,
397 NVAPI_FAILED_TO_LOAD_FROM_DRIVER_STORE = -228,
398 NVAPI_NO_VULKAN = -229,
399 NVAPI_REQUEST_PENDING = -230,
400 NVAPI_RESOURCE_IN_USE = -231,
401 NVAPI_INVALID_IMAGE = -232,
402 NVAPI_INVALID_PTX = -233,
403 NVAPI_NVLINK_UNCORRECTABLE = -234,
404 NVAPI_JIT_COMPILER_NOT_FOUND = -235,
405 NVAPI_INVALID_SOURCE = -236,
406 NVAPI_ILLEGAL_INSTRUCTION = -237,
407 NVAPI_INVALID_PC = -238,
408 NVAPI_LAUNCH_FAILED = -239,
409 NVAPI_NOT_PERMITTED = -240,
410 NVAPI_CALLBACK_ALREADY_REGISTERED = -241,
411 NVAPI_CALLBACK_NOT_FOUND = -242,
433NVAPI_INTERFACE NvAPI_SYS_GetDriverAndBranchVersion(NvU32* pDriverVersion, NvAPI_ShortString szBuildBranchString);
480#define NV_DISPLAY_DRIVER_MEMORY_INFO_VER_1 MAKE_NVAPI_VERSION(NV_DISPLAY_DRIVER_MEMORY_INFO_V1,1)
484#define NV_DISPLAY_DRIVER_MEMORY_INFO_VER_2 MAKE_NVAPI_VERSION(NV_DISPLAY_DRIVER_MEMORY_INFO_V2,2)
488#define NV_DISPLAY_DRIVER_MEMORY_INFO_VER_3 MAKE_NVAPI_VERSION(NV_DISPLAY_DRIVER_MEMORY_INFO_V3,3)
491#define NV_DISPLAY_DRIVER_MEMORY_INFO_VER NV_DISPLAY_DRIVER_MEMORY_INFO_VER_3
521__nvapi_deprecated_function(
"Do not use this function - it is deprecated in release 520. Instead, use NvAPI_GPU_GetMemoryInfoEx.")
551#define NV_GPU_MEMORY_INFO_EX_VER_1 MAKE_NVAPI_VERSION(NV_GPU_MEMORY_INFO_EX_V1,1)
554#define NV_GPU_MEMORY_INFO_EX_VER NV_GPU_MEMORY_INFO_EX_VER_1
582NVAPI_INTERFACE NvAPI_GPU_GetMemoryInfoEx(NvPhysicalGpuHandle hPhysicalGpu,
NV_GPU_MEMORY_INFO_EX *pMemoryInfo);
616#if defined(_D3D9_H_) || defined(__d3d10_h__) || defined(__d3d11_h__) || defined(__d3d12_h__)
618NV_DECLARE_HANDLE(NVDX_ObjectHandle);
619static const NVDX_ObjectHandle NVDX_OBJECT_NONE = 0;
622#if defined(_D3D9_H_) || defined(__d3d10_h__) || defined(__d3d11_h__) || defined(__d3d12_h__)
644NVAPI_INTERFACE NvAPI_D3D_GetObjectHandleForResource(
647 NVDX_ObjectHandle *pHandle);
652#include"nvapi_lite_salend.h"
NVAPI_INTERFACE NvAPI_EnumPhysicalGPUs(NvPhysicalGpuHandle nvGPUHandle[NVAPI_MAX_PHYSICAL_GPUS], NvU32 *pGpuCount)
void * StereoHandle
A stereo handle, that corresponds to the device interface.
Definition nvapi_lite_common.h:146
Definition nvapi_lite_common.h:108
Definition nvapi_lite_common.h:437
NvU32 version
Version info.
Definition nvapi_lite_common.h:438
NvU32 dedicatedVideoMemory
Size(in kb) of the physical framebuffer.
Definition nvapi_lite_common.h:439
NvU32 availableDedicatedVideoMemory
Size(in kb) of the available physical framebuffer for allocating video memory surfaces.
Definition nvapi_lite_common.h:440
NvU32 systemVideoMemory
Size(in kb) of system memory the driver allocates at load time.
Definition nvapi_lite_common.h:441
NvU32 sharedSystemMemory
Size(in kb) of shared system memory that driver is allowed to commit for surfaces across all allocati...
Definition nvapi_lite_common.h:442
Definition nvapi_lite_common.h:450
NvU32 dedicatedVideoMemory
Size(in kb) of the physical framebuffer.
Definition nvapi_lite_common.h:452
NvU32 systemVideoMemory
Size(in kb) of system memory the driver allocates at load time.
Definition nvapi_lite_common.h:454
NvU32 version
Version info.
Definition nvapi_lite_common.h:451
NvU32 curAvailableDedicatedVideoMemory
Size(in kb) of the current available physical framebuffer for allocating video memory surfaces.
Definition nvapi_lite_common.h:456
NvU32 sharedSystemMemory
Size(in kb) of shared system memory that driver is allowed to commit for surfaces across all allocati...
Definition nvapi_lite_common.h:455
NvU32 availableDedicatedVideoMemory
Size(in kb) of the available physical framebuffer for allocating video memory surfaces.
Definition nvapi_lite_common.h:453
Definition nvapi_lite_common.h:463
NvU32 dedicatedVideoMemory
Size(in kb) of the physical framebuffer.
Definition nvapi_lite_common.h:465
NvU32 sharedSystemMemory
Size(in kb) of shared system memory that driver is allowed to commit for surfaces across all allocati...
Definition nvapi_lite_common.h:468
NvU32 version
Version info.
Definition nvapi_lite_common.h:464
NvU32 dedicatedVideoMemoryEvictionCount
Definition nvapi_lite_common.h:471
NvU32 dedicatedVideoMemoryEvictionsSize
Size(in kb) of the total size of memory released as a result of the evictions.
Definition nvapi_lite_common.h:470
NvU32 availableDedicatedVideoMemory
Size(in kb) of the available physical framebuffer for allocating video memory surfaces.
Definition nvapi_lite_common.h:466
NvU32 systemVideoMemory
Size(in kb) of system memory the driver allocates at load time.
Definition nvapi_lite_common.h:467
NvU32 curAvailableDedicatedVideoMemory
Size(in kb) of the current available physical framebuffer for allocating video memory surfaces.
Definition nvapi_lite_common.h:469
Definition nvapi_lite_common.h:528
NvU64 dedicatedVideoMemory
Definition nvapi_lite_common.h:530
NvU64 dedicatedVideoMemoryEvictionCount
Definition nvapi_lite_common.h:540
NvU64 dedicatedVideoMemoryEvictionsSize
Size(in bytes) of the total size of memory released as a result of the evictions.
Definition nvapi_lite_common.h:539
NvU64 sharedSystemMemory
Definition nvapi_lite_common.h:535
NvU64 systemVideoMemory
Definition nvapi_lite_common.h:533
NvU32 version
Structure version.
Definition nvapi_lite_common.h:529
NvU64 availableDedicatedVideoMemory
Size(in bytes) of the available physical framebuffer for allocating video memory surfaces.
Definition nvapi_lite_common.h:532
NvU64 dedicatedVideoMemoryPromotionsSize
Size(in bytes) of the total size of memory allocated as a result of the promotions.
Definition nvapi_lite_common.h:542
NvU64 curAvailableDedicatedVideoMemory
Size(in bytes) of the current available physical framebuffer for allocating video memory surfaces.
Definition nvapi_lite_common.h:538
NvU64 dedicatedVideoMemoryPromotionCount
Indicates the number of promotion events that caused an allocation to be promoted to dedicated video ...
Definition nvapi_lite_common.h:543
Definition nvapi_lite_common.h:181
Definition nvapi_lite_common.h:170