#pragma once
#include"nvapi_lite_salstart.h"
#pragma pack(push,8)
#ifdef __cplusplus
extern "C" {
#endif
#if (defined(WIN32) || defined(_WIN32)) && defined(_MSC_VER) && (_MSC_VER > 1399) && !defined(NVAPI_INTERNAL) && !defined(NVAPI_DEPRECATED_OLD)
#ifndef __nvapi_deprecated_function
#define __nvapi_deprecated_function(message) __declspec(deprecated(message))
#endif
#ifndef __nvapi_deprecated_datatype
#define __nvapi_deprecated_datatype(FirstRelease) __declspec(deprecated("Do not use this data type - it is deprecated in release " #FirstRelease "."))
#endif
#else
#ifndef __nvapi_deprecated_function
#define __nvapi_deprecated_function(message)
#endif
#ifndef __nvapi_deprecated_datatype
#define __nvapi_deprecated_datatype(FirstRelease)
#endif
#endif
#if defined(__GNUC__) || defined(__arm) || defined(__IAR_SYSTEMS_ICC__) || defined(__ghs__) || defined(_WIN64)
typedef unsigned long long NvU64;
typedef long long NvS64;
#else
typedef unsigned __int64 NvU64;
typedef __int64 NvS64;
#endif
#if (defined(macintosh) || defined(__APPLE__)) && !defined(__LP64__)
typedef signed long NvS32;
#else
typedef signed int NvS32;
#endif
#ifndef __unix
#if ( (defined(macintosh) && defined(__LP64__) && (__NVAPI_RESERVED0__)) || \
(!defined(macintosh) && defined(__NVAPI_RESERVED0__)) )
typedef unsigned int NvU32;
#else
typedef unsigned long NvU32;
#endif
#else
typedef unsigned int NvU32;
#endif
typedef unsigned long temp_NvU32;
typedef signed short NvS16;
typedef unsigned short NvU16;
typedef unsigned char NvU8;
typedef signed char NvS8;
typedef float NvF32;
typedef double NvF64;
#define NvU32TONvF32(_pData) *(NvF32 *)(_pData)
#define NvF32TONvU32(_pData) *(NvU32 *)(_pData)
typedef NvU8 NvBool;
#define NV_TRUE ((NvBool)(0 == 0))
#define NV_FALSE ((NvBool)(0 != 0))
typedef struct _NV_RECT
{
NvU32 left;
NvU32 top;
NvU32 right;
NvU32 bottom;
} NV_RECT;
#define NV_DECLARE_HANDLE(name) struct name##__ { int unused; }; typedef struct name##__ *name
NV_DECLARE_HANDLE(NvLogicalGpuHandle);
NV_DECLARE_HANDLE(NvPhysicalGpuHandle); NV_DECLARE_HANDLE(NvDisplayHandle); NV_DECLARE_HANDLE(NvMonitorHandle); NV_DECLARE_HANDLE(NvUnAttachedDisplayHandle); NV_DECLARE_HANDLE(NvVisualComputingDeviceHandle); NV_DECLARE_HANDLE(NvEventHandle);
NV_DECLARE_HANDLE(NvHICHandle); NV_DECLARE_HANDLE(NvGSyncDeviceHandle); NV_DECLARE_HANDLE(NvVioHandle); NV_DECLARE_HANDLE(NvTransitionHandle); NV_DECLARE_HANDLE(NvAudioHandle); NV_DECLARE_HANDLE(Nv3DVPContextHandle); NV_DECLARE_HANDLE(Nv3DVPTransceiverHandle); NV_DECLARE_HANDLE(Nv3DVPGlassesHandle); NV_DECLARE_HANDLE(NvPcfClientHandle);
typedef void* StereoHandle;
NV_DECLARE_HANDLE(NvSourceHandle); NV_DECLARE_HANDLE(NvTargetHandle); NV_DECLARE_HANDLE(NVDX_SwapChainHandle); static const NVDX_SwapChainHandle NVDX_SWAPCHAIN_NONE = 0;
NV_DECLARE_HANDLE(NvPresentBarrierClientHandle);
#define NVAPI_DEFAULT_HANDLE 0
#define NV_BIT(x) (1 << (x))
#define NVAPI_GENERIC_STRING_MAX 4096
#define NVAPI_LONG_STRING_MAX 256
#define NVAPI_SHORT_STRING_MAX 64
typedef struct
{
NvS32 sX;
NvS32 sY;
NvS32 sWidth;
NvS32 sHeight;
} NvSBox;
#ifndef NvGUID_Defined
#define NvGUID_Defined
typedef struct
{
NvU32 data1;
NvU16 data2;
NvU16 data3;
NvU8 data4[8];
} NvGUID, NvLUID;
#endif #define NVAPI_MAX_PHYSICAL_GPUS 64
#define NVAPI_MAX_PHYSICAL_BRIDGES 100
#define NVAPI_PHYSICAL_GPUS 32
#define NVAPI_MAX_LOGICAL_GPUS 64
#define NVAPI_MAX_AVAILABLE_GPU_TOPOLOGIES 256
#define NVAPI_MAX_AVAILABLE_SLI_GROUPS 256
#define NVAPI_MAX_GPU_TOPOLOGIES NVAPI_MAX_PHYSICAL_GPUS
#define NVAPI_MAX_GPU_PER_TOPOLOGY 8
#define NVAPI_MAX_DISPLAY_HEADS 2
#define NVAPI_ADVANCED_DISPLAY_HEADS 4
#define NVAPI_MAX_DISPLAYS NVAPI_PHYSICAL_GPUS * NVAPI_ADVANCED_DISPLAY_HEADS
#define NVAPI_MAX_ACPI_IDS 16
#define NVAPI_MAX_VIEW_MODES 8
#define NVAPI_SYSTEM_MAX_HWBCS 128
#define NVAPI_SYSTEM_HWBC_INVALID_ID 0xffffffff
#define NVAPI_SYSTEM_MAX_DISPLAYS NVAPI_MAX_PHYSICAL_GPUS * NV_MAX_HEADS
#define NV_MAX_HEADS 4
#define NVAPI_MAX_HEADS_PER_GPU 32
#define NV_MAX_VID_STREAMS 4
#define NV_MAX_VID_STREAMS_EX 20
#define NV_MAX_VID_PROFILES 4
#define NVAPI_MAX_AUDIO_DEVICES 16
typedef char NvAPI_String[NVAPI_GENERIC_STRING_MAX];
typedef char NvAPI_LongString[NVAPI_LONG_STRING_MAX];
typedef char NvAPI_ShortString[NVAPI_SHORT_STRING_MAX];
typedef NvU16 NvAPI_UnicodeShortString[NVAPI_SHORT_STRING_MAX];
#define MAKE_NVAPI_VERSION(typeName,ver) (NvU32)(sizeof(typeName) | ((ver)<<16))
#define GET_NVAPI_VERSION(ver) (NvU32)((ver)>>16)
#define GET_NVAPI_SIZE(ver) (NvU32)((ver) & 0xffff)
typedef enum _NvAPI_Status
{
NVAPI_OK = 0, NVAPI_ERROR = -1, NVAPI_LIBRARY_NOT_FOUND = -2, NVAPI_NO_IMPLEMENTATION = -3, NVAPI_API_NOT_INITIALIZED = -4, NVAPI_INVALID_ARGUMENT = -5, NVAPI_NVIDIA_DEVICE_NOT_FOUND = -6, NVAPI_END_ENUMERATION = -7, NVAPI_INVALID_HANDLE = -8, NVAPI_INCOMPATIBLE_STRUCT_VERSION = -9, NVAPI_HANDLE_INVALIDATED = -10, NVAPI_OPENGL_CONTEXT_NOT_CURRENT = -11, NVAPI_INVALID_POINTER = -14, NVAPI_NO_GL_EXPERT = -12, NVAPI_INSTRUMENTATION_DISABLED = -13, NVAPI_NO_GL_NSIGHT = -15,
NVAPI_EXPECTED_LOGICAL_GPU_HANDLE = -100, NVAPI_EXPECTED_PHYSICAL_GPU_HANDLE = -101, NVAPI_EXPECTED_DISPLAY_HANDLE = -102, NVAPI_INVALID_COMBINATION = -103, NVAPI_NOT_SUPPORTED = -104, NVAPI_PORTID_NOT_FOUND = -105, NVAPI_EXPECTED_UNATTACHED_DISPLAY_HANDLE = -106, NVAPI_INVALID_PERF_LEVEL = -107, NVAPI_DEVICE_BUSY = -108, NVAPI_NV_PERSIST_FILE_NOT_FOUND = -109, NVAPI_PERSIST_DATA_NOT_FOUND = -110, NVAPI_EXPECTED_TV_DISPLAY = -111, NVAPI_EXPECTED_TV_DISPLAY_ON_DCONNECTOR = -112, NVAPI_NO_ACTIVE_SLI_TOPOLOGY = -113, NVAPI_SLI_RENDERING_MODE_NOTALLOWED = -114, NVAPI_EXPECTED_DIGITAL_FLAT_PANEL = -115, NVAPI_ARGUMENT_EXCEED_MAX_SIZE = -116, NVAPI_DEVICE_SWITCHING_NOT_ALLOWED = -117, NVAPI_TESTING_CLOCKS_NOT_SUPPORTED = -118, NVAPI_UNKNOWN_UNDERSCAN_CONFIG = -119, NVAPI_TIMEOUT_RECONFIGURING_GPU_TOPO = -120, NVAPI_DATA_NOT_FOUND = -121, NVAPI_EXPECTED_ANALOG_DISPLAY = -122, NVAPI_NO_VIDLINK = -123, NVAPI_REQUIRES_REBOOT = -124, NVAPI_INVALID_HYBRID_MODE = -125, NVAPI_MIXED_TARGET_TYPES = -126, NVAPI_SYSWOW64_NOT_SUPPORTED = -127, NVAPI_IMPLICIT_SET_GPU_TOPOLOGY_CHANGE_NOT_ALLOWED = -128, NVAPI_REQUEST_USER_TO_CLOSE_NON_MIGRATABLE_APPS = -129, NVAPI_OUT_OF_MEMORY = -130, NVAPI_WAS_STILL_DRAWING = -131, NVAPI_FILE_NOT_FOUND = -132, NVAPI_TOO_MANY_UNIQUE_STATE_OBJECTS = -133, NVAPI_INVALID_CALL = -134, NVAPI_D3D10_1_LIBRARY_NOT_FOUND = -135, NVAPI_FUNCTION_NOT_FOUND = -136, NVAPI_INVALID_USER_PRIVILEGE = -137, NVAPI_EXPECTED_NON_PRIMARY_DISPLAY_HANDLE = -138, NVAPI_EXPECTED_COMPUTE_GPU_HANDLE = -139, NVAPI_STEREO_NOT_INITIALIZED = -140, NVAPI_STEREO_REGISTRY_ACCESS_FAILED = -141, NVAPI_STEREO_REGISTRY_PROFILE_TYPE_NOT_SUPPORTED = -142, NVAPI_STEREO_REGISTRY_VALUE_NOT_SUPPORTED = -143, NVAPI_STEREO_NOT_ENABLED = -144, NVAPI_STEREO_NOT_TURNED_ON = -145, NVAPI_STEREO_INVALID_DEVICE_INTERFACE = -146, NVAPI_STEREO_PARAMETER_OUT_OF_RANGE = -147, NVAPI_STEREO_FRUSTUM_ADJUST_MODE_NOT_SUPPORTED = -148, NVAPI_TOPO_NOT_POSSIBLE = -149, NVAPI_MODE_CHANGE_FAILED = -150, NVAPI_D3D11_LIBRARY_NOT_FOUND = -151, NVAPI_INVALID_ADDRESS = -152, NVAPI_STRING_TOO_SMALL = -153, NVAPI_MATCHING_DEVICE_NOT_FOUND = -154, NVAPI_DRIVER_RUNNING = -155, NVAPI_DRIVER_NOTRUNNING = -156, NVAPI_ERROR_DRIVER_RELOAD_REQUIRED = -157, NVAPI_SET_NOT_ALLOWED = -158, NVAPI_ADVANCED_DISPLAY_TOPOLOGY_REQUIRED = -159, NVAPI_SETTING_NOT_FOUND = -160, NVAPI_SETTING_SIZE_TOO_LARGE = -161, NVAPI_TOO_MANY_SETTINGS_IN_PROFILE = -162, NVAPI_PROFILE_NOT_FOUND = -163, NVAPI_PROFILE_NAME_IN_USE = -164, NVAPI_PROFILE_NAME_EMPTY = -165, NVAPI_EXECUTABLE_NOT_FOUND = -166, NVAPI_EXECUTABLE_ALREADY_IN_USE = -167, NVAPI_DATATYPE_MISMATCH = -168, NVAPI_PROFILE_REMOVED = -169, NVAPI_UNREGISTERED_RESOURCE = -170, NVAPI_ID_OUT_OF_RANGE = -171, NVAPI_DISPLAYCONFIG_VALIDATION_FAILED = -172, NVAPI_DPMST_CHANGED = -173, NVAPI_INSUFFICIENT_BUFFER = -174, NVAPI_ACCESS_DENIED = -175, NVAPI_MOSAIC_NOT_ACTIVE = -176, NVAPI_SHARE_RESOURCE_RELOCATED = -177, NVAPI_REQUEST_USER_TO_DISABLE_DWM = -178, NVAPI_D3D_DEVICE_LOST = -179, NVAPI_INVALID_CONFIGURATION = -180, NVAPI_STEREO_HANDSHAKE_NOT_DONE = -181, NVAPI_EXECUTABLE_PATH_IS_AMBIGUOUS = -182, NVAPI_DEFAULT_STEREO_PROFILE_IS_NOT_DEFINED = -183, NVAPI_DEFAULT_STEREO_PROFILE_DOES_NOT_EXIST = -184, NVAPI_CLUSTER_ALREADY_EXISTS = -185, NVAPI_DPMST_DISPLAY_ID_EXPECTED = -186, NVAPI_INVALID_DISPLAY_ID = -187, NVAPI_STREAM_IS_OUT_OF_SYNC = -188, NVAPI_INCOMPATIBLE_AUDIO_DRIVER = -189, NVAPI_VALUE_ALREADY_SET = -190, NVAPI_TIMEOUT = -191, NVAPI_GPU_WORKSTATION_FEATURE_INCOMPLETE = -192, NVAPI_STEREO_INIT_ACTIVATION_NOT_DONE = -193, NVAPI_SYNC_NOT_ACTIVE = -194, NVAPI_SYNC_MASTER_NOT_FOUND = -195, NVAPI_INVALID_SYNC_TOPOLOGY = -196, NVAPI_ECID_SIGN_ALGO_UNSUPPORTED = -197, NVAPI_ECID_KEY_VERIFICATION_FAILED = -198, NVAPI_FIRMWARE_OUT_OF_DATE = -199, NVAPI_FIRMWARE_REVISION_NOT_SUPPORTED = -200, NVAPI_LICENSE_CALLER_AUTHENTICATION_FAILED = -201, NVAPI_D3D_DEVICE_NOT_REGISTERED = -202, NVAPI_RESOURCE_NOT_ACQUIRED = -203, NVAPI_TIMING_NOT_SUPPORTED = -204, NVAPI_HDCP_ENCRYPTION_FAILED = -205, NVAPI_PCLK_LIMITATION_FAILED = -206, NVAPI_NO_CONNECTOR_FOUND = -207, NVAPI_HDCP_DISABLED = -208, NVAPI_API_IN_USE = -209, NVAPI_NVIDIA_DISPLAY_NOT_FOUND = -210, NVAPI_PRIV_SEC_VIOLATION = -211, NVAPI_INCORRECT_VENDOR = -212, NVAPI_DISPLAY_IN_USE = -213, NVAPI_UNSUPPORTED_CONFIG_NON_HDCP_HMD = -214, NVAPI_MAX_DISPLAY_LIMIT_REACHED = -215, NVAPI_INVALID_DIRECT_MODE_DISPLAY = -216, NVAPI_GPU_IN_DEBUG_MODE = -217, NVAPI_D3D_CONTEXT_NOT_FOUND = -218, NVAPI_STEREO_VERSION_MISMATCH = -219, NVAPI_GPU_NOT_POWERED = -220, NVAPI_ERROR_DRIVER_RELOAD_IN_PROGRESS = -221, NVAPI_WAIT_FOR_HW_RESOURCE = -222, NVAPI_REQUIRE_FURTHER_HDCP_ACTION = -223, NVAPI_DISPLAY_MUX_TRANSITION_FAILED = -224, NVAPI_INVALID_DSC_VERSION = -225, NVAPI_INVALID_DSC_SLICECOUNT = -226, NVAPI_INVALID_DSC_OUTPUT_BPP = -227, NVAPI_FAILED_TO_LOAD_FROM_DRIVER_STORE = -228, NVAPI_NO_VULKAN = -229, NVAPI_REQUEST_PENDING = -230, NVAPI_RESOURCE_IN_USE = -231, NVAPI_INVALID_IMAGE = -232, NVAPI_INVALID_PTX = -233, NVAPI_NVLINK_UNCORRECTABLE = -234, NVAPI_JIT_COMPILER_NOT_FOUND = -235, NVAPI_INVALID_SOURCE = -236, NVAPI_ILLEGAL_INSTRUCTION = -237, NVAPI_INVALID_PC = -238, NVAPI_LAUNCH_FAILED = -239, NVAPI_NOT_PERMITTED = -240, NVAPI_CALLBACK_ALREADY_REGISTERED = -241, NVAPI_CALLBACK_NOT_FOUND = -242, } NvAPI_Status;
NVAPI_INTERFACE NvAPI_SYS_GetDriverAndBranchVersion(NvU32* pDriverVersion, NvAPI_ShortString szBuildBranchString);
typedef struct
{
NvU32 version; NvU32 dedicatedVideoMemory; NvU32 availableDedicatedVideoMemory; NvU32 systemVideoMemory; NvU32 sharedSystemMemory;
} NV_DISPLAY_DRIVER_MEMORY_INFO_V1;
typedef struct
{
NvU32 version; NvU32 dedicatedVideoMemory; NvU32 availableDedicatedVideoMemory; NvU32 systemVideoMemory; NvU32 sharedSystemMemory; NvU32 curAvailableDedicatedVideoMemory;
} NV_DISPLAY_DRIVER_MEMORY_INFO_V2;
typedef struct
{
NvU32 version; NvU32 dedicatedVideoMemory; NvU32 availableDedicatedVideoMemory; NvU32 systemVideoMemory; NvU32 sharedSystemMemory; NvU32 curAvailableDedicatedVideoMemory; NvU32 dedicatedVideoMemoryEvictionsSize; NvU32 dedicatedVideoMemoryEvictionCount; } NV_DISPLAY_DRIVER_MEMORY_INFO_V3;
typedef NV_DISPLAY_DRIVER_MEMORY_INFO_V3 NV_DISPLAY_DRIVER_MEMORY_INFO;
#define NV_DISPLAY_DRIVER_MEMORY_INFO_VER_1 MAKE_NVAPI_VERSION(NV_DISPLAY_DRIVER_MEMORY_INFO_V1,1)
#define NV_DISPLAY_DRIVER_MEMORY_INFO_VER_2 MAKE_NVAPI_VERSION(NV_DISPLAY_DRIVER_MEMORY_INFO_V2,2)
#define NV_DISPLAY_DRIVER_MEMORY_INFO_VER_3 MAKE_NVAPI_VERSION(NV_DISPLAY_DRIVER_MEMORY_INFO_V3,3)
#define NV_DISPLAY_DRIVER_MEMORY_INFO_VER NV_DISPLAY_DRIVER_MEMORY_INFO_VER_3
__nvapi_deprecated_function("Do not use this function - it is deprecated in release 520. Instead, use NvAPI_GPU_GetMemoryInfoEx.")
NVAPI_INTERFACE NvAPI_GPU_GetMemoryInfo(NvPhysicalGpuHandle hPhysicalGpu, NV_DISPLAY_DRIVER_MEMORY_INFO *pMemoryInfo);
typedef struct
{
NvU32 version; NvU64 dedicatedVideoMemory; NvU64 availableDedicatedVideoMemory; NvU64 systemVideoMemory; NvU64 sharedSystemMemory; NvU64 curAvailableDedicatedVideoMemory; NvU64 dedicatedVideoMemoryEvictionsSize; NvU64 dedicatedVideoMemoryEvictionCount; NvU64 dedicatedVideoMemoryPromotionsSize; NvU64 dedicatedVideoMemoryPromotionCount; } NV_GPU_MEMORY_INFO_EX_V1;
typedef NV_GPU_MEMORY_INFO_EX_V1 NV_GPU_MEMORY_INFO_EX;
#define NV_GPU_MEMORY_INFO_EX_VER_1 MAKE_NVAPI_VERSION(NV_GPU_MEMORY_INFO_EX_V1,1)
#define NV_GPU_MEMORY_INFO_EX_VER NV_GPU_MEMORY_INFO_EX_VER_1
NVAPI_INTERFACE NvAPI_GPU_GetMemoryInfoEx(NvPhysicalGpuHandle hPhysicalGpu, NV_GPU_MEMORY_INFO_EX *pMemoryInfo);
NVAPI_INTERFACE NvAPI_EnumPhysicalGPUs(NvPhysicalGpuHandle nvGPUHandle[NVAPI_MAX_PHYSICAL_GPUS], NvU32 *pGpuCount);
#if defined(_D3D9_H_) || defined(__d3d10_h__) || defined(__d3d11_h__) || defined(__d3d12_h__)
NV_DECLARE_HANDLE(NVDX_ObjectHandle); static const NVDX_ObjectHandle NVDX_OBJECT_NONE = 0;
#endif #if defined(_D3D9_H_) || defined(__d3d10_h__) || defined(__d3d11_h__) || defined(__d3d12_h__)
NVAPI_INTERFACE NvAPI_D3D_GetObjectHandleForResource(
IUnknown *pDevice,
IUnknown *pResource,
NVDX_ObjectHandle *pHandle);
#endif
#include"nvapi_lite_salend.h"
#ifdef __cplusplus
}
#endif
#pragma pack(pop)