mirror of
				https://github.com/godotengine/godot.git
				synced 2025-11-04 15:41:25 +00:00 
			
		
		
		
	
		
			
	
	
		
			81 lines
		
	
	
	
		
			2.3 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
		
		
			
		
	
	
			81 lines
		
	
	
	
		
			2.3 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| 
								 | 
							
								/*
							 | 
						||
| 
								 | 
							
								* Copyright (c) 2019 The Khronos Group Inc.
							 | 
						||
| 
								 | 
							
								* Copyright (c) 2019 Valve Corporation
							 | 
						||
| 
								 | 
							
								* Copyright (c) 2019 LunarG, Inc.
							 | 
						||
| 
								 | 
							
								*
							 | 
						||
| 
								 | 
							
								* Licensed under the Apache License, Version 2.0 (the "License");
							 | 
						||
| 
								 | 
							
								* you may not use this file except in compliance with the License.
							 | 
						||
| 
								 | 
							
								* You may obtain a copy of the License at
							 | 
						||
| 
								 | 
							
								*
							 | 
						||
| 
								 | 
							
								*     http://www.apache.org/licenses/LICENSE-2.0
							 | 
						||
| 
								 | 
							
								*
							 | 
						||
| 
								 | 
							
								* Unless required by applicable law or agreed to in writing, software
							 | 
						||
| 
								 | 
							
								* distributed under the License is distributed on an "AS IS" BASIS,
							 | 
						||
| 
								 | 
							
								* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
							 | 
						||
| 
								 | 
							
								* See the License for the specific language governing permissions and
							 | 
						||
| 
								 | 
							
								* limitations under the License.
							 | 
						||
| 
								 | 
							
								*
							 | 
						||
| 
								 | 
							
								* Author: Lenny Komow <lenny@lunarg.com>
							 | 
						||
| 
								 | 
							
								*/
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								typedef struct LoaderEnumAdapters2 {
							 | 
						||
| 
								 | 
							
								    ULONG adapter_count;
							 | 
						||
| 
								 | 
							
								    struct {
							 | 
						||
| 
								 | 
							
								        UINT handle;
							 | 
						||
| 
								 | 
							
								        LUID luid;
							 | 
						||
| 
								 | 
							
								        ULONG source_count;
							 | 
						||
| 
								 | 
							
								        BOOL present_move_regions_preferred;
							 | 
						||
| 
								 | 
							
								    } * adapters;
							 | 
						||
| 
								 | 
							
								} LoaderEnumAdapters2;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								typedef _Check_return_ NTSTATUS(APIENTRY *PFN_LoaderEnumAdapters2)(const LoaderEnumAdapters2 *);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								typedef enum AdapterInfoType {
							 | 
						||
| 
								 | 
							
								    LOADER_QUERY_TYPE_REGISTRY = 48,
							 | 
						||
| 
								 | 
							
								} AdapterInfoType;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								typedef struct LoaderQueryAdapterInfo {
							 | 
						||
| 
								 | 
							
								    UINT handle;
							 | 
						||
| 
								 | 
							
								    AdapterInfoType type;
							 | 
						||
| 
								 | 
							
								    VOID *private_data;
							 | 
						||
| 
								 | 
							
								    UINT private_data_size;
							 | 
						||
| 
								 | 
							
								} LoaderQueryAdapterInfo;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								typedef _Check_return_ NTSTATUS(APIENTRY *PFN_LoaderQueryAdapterInfo)(const LoaderQueryAdapterInfo *);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								typedef enum LoaderQueryRegistryType {
							 | 
						||
| 
								 | 
							
								    LOADER_QUERY_REGISTRY_ADAPTER_KEY = 1,
							 | 
						||
| 
								 | 
							
								} LoaderQueryRegistryType;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								typedef enum LoaderQueryRegistryStatus {
							 | 
						||
| 
								 | 
							
								    LOADER_QUERY_REGISTRY_STATUS_SUCCESS = 0,
							 | 
						||
| 
								 | 
							
								    LOADER_QUERY_REGISTRY_STATUS_BUFFER_OVERFLOW = 1,
							 | 
						||
| 
								 | 
							
								} LoaderQueryRegistryStatus;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								typedef struct LoaderQueryRegistryFlags {
							 | 
						||
| 
								 | 
							
								    union {
							 | 
						||
| 
								 | 
							
								        struct {
							 | 
						||
| 
								 | 
							
								            UINT translate_path : 1;
							 | 
						||
| 
								 | 
							
								            UINT mutable_value : 1;
							 | 
						||
| 
								 | 
							
								            UINT reserved : 30;
							 | 
						||
| 
								 | 
							
								        };
							 | 
						||
| 
								 | 
							
								        UINT value;
							 | 
						||
| 
								 | 
							
								    };
							 | 
						||
| 
								 | 
							
								} LoaderQueryRegistryFlags;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								typedef struct LoaderQueryRegistryInfo {
							 | 
						||
| 
								 | 
							
								    LoaderQueryRegistryType query_type;
							 | 
						||
| 
								 | 
							
								    LoaderQueryRegistryFlags query_flags;
							 | 
						||
| 
								 | 
							
								    WCHAR value_name[MAX_PATH];
							 | 
						||
| 
								 | 
							
								    ULONG value_type;
							 | 
						||
| 
								 | 
							
								    ULONG physical_adapter_index;
							 | 
						||
| 
								 | 
							
								    ULONG output_value_size;
							 | 
						||
| 
								 | 
							
								    LoaderQueryRegistryStatus status;
							 | 
						||
| 
								 | 
							
								    union {
							 | 
						||
| 
								 | 
							
								        DWORD output_dword;
							 | 
						||
| 
								 | 
							
								        UINT64 output_qword;
							 | 
						||
| 
								 | 
							
								        WCHAR output_string[1];
							 | 
						||
| 
								 | 
							
								        BYTE output_binary[1];
							 | 
						||
| 
								 | 
							
								    };
							 | 
						||
| 
								 | 
							
								} LoaderQueryRegistryInfo;
							 |