summaryrefslogtreecommitdiff
path: root/vendor/winapi/src/km/d3dkmthk.rs
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/winapi/src/km/d3dkmthk.rs')
-rw-r--r--vendor/winapi/src/km/d3dkmthk.rs312
1 files changed, 312 insertions, 0 deletions
diff --git a/vendor/winapi/src/km/d3dkmthk.rs b/vendor/winapi/src/km/d3dkmthk.rs
new file mode 100644
index 0000000..9ac551c
--- /dev/null
+++ b/vendor/winapi/src/km/d3dkmthk.rs
@@ -0,0 +1,312 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! longhorn display driver model kernel mode thunk interfaces
+use shared::basetsd::{UINT32, UINT64};
+use shared::d3dukmdt::{
+ D3DDDICB_SIGNALFLAGS, D3DDDI_ALLOCATIONLIST, D3DDDI_CREATECONTEXTFLAGS,
+ D3DDDI_MAX_BROADCAST_CONTEXT, D3DDDI_MAX_OBJECT_SIGNALED, D3DDDI_MAX_OBJECT_WAITED_ON,
+ D3DDDI_PATCHLOCATIONLIST, D3DDDI_SYNCHRONIZATIONOBJECTINFO,
+ D3DDDI_SYNCHRONIZATIONOBJECTINFO2, D3DDDI_VIDEO_PRESENT_SOURCE_ID, D3DGPU_VIRTUAL_ADDRESS,
+ D3DKMT_HANDLE,
+};
+use shared::minwindef::{BOOL, UCHAR, UINT, ULONG};
+use shared::ntdef::{HANDLE, LUID, PCWSTR, ULONGLONG, VOID, WCHAR};
+use shared::windef::HDC;
+STRUCT!{struct D3DKMT_CREATEDEVICEFLAGS {
+ bitfield: UINT,
+}}
+BITFIELD!{D3DKMT_CREATEDEVICEFLAGS bitfield: UINT [
+ LegacyMode set_LegacyMode[0..1],
+ RequestVSync set_RequestVSync[1..2],
+ DisableGpuTimeout set_DisableGpuTimeout[2..3],
+ Reserved set_Reserved[3..32],
+]}
+UNION!{union D3DKMT_CREATEDEVICE_u {
+ [usize; 1],
+ hAdapter hAdapter_mut: D3DKMT_HANDLE,
+ pAdapter pAdapter_mut: *mut VOID,
+}}
+STRUCT!{struct D3DKMT_CREATEDEVICE {
+ u: D3DKMT_CREATEDEVICE_u,
+ Flags: D3DKMT_CREATEDEVICEFLAGS,
+ hDevice: D3DKMT_HANDLE,
+ pCommandBuffer: *mut VOID,
+ CommandBufferSize: UINT,
+ pAllocationList: *mut D3DDDI_ALLOCATIONLIST,
+ AllocationListSize: UINT,
+ pPatchLocationList: *mut D3DDDI_PATCHLOCATIONLIST,
+ PatchLocationListSize: UINT,
+}}
+STRUCT!{struct D3DKMT_DESTROYDEVICE {
+ hDevice: D3DKMT_HANDLE,
+}}
+ENUM!{enum D3DKMT_CLIENTHINT {
+ D3DKMT_CLIENTHINT_UNKNOWN = 0,
+ D3DKMT_CLIENTHINT_OPENGL = 1,
+ D3DKMT_CLIENTHINT_CDD = 2,
+ D3DKMT_CLIENTHINT_DX7 = 7,
+ D3DKMT_CLIENTHINT_DX8 = 8,
+ D3DKMT_CLIENTHINT_DX9 = 9,
+ D3DKMT_CLIENTHINT_DX10 = 10,
+}}
+STRUCT!{struct D3DKMT_CREATECONTEXT {
+ hDevice: D3DKMT_HANDLE,
+ NodeOrdinal: UINT,
+ EngineAffinity: UINT,
+ Flags: D3DDDI_CREATECONTEXTFLAGS,
+ pPrivateDriverData: *mut VOID,
+ PrivateDriverDataSize: UINT,
+ ClientHint: D3DKMT_CLIENTHINT,
+ hContext: D3DKMT_HANDLE,
+ pCommandBuffer: *mut VOID,
+ CommandBufferSize: UINT,
+ pAllocationList: *mut D3DDDI_ALLOCATIONLIST,
+ AllocationListSize: UINT,
+ pPatchLocationList: *mut D3DDDI_PATCHLOCATIONLIST,
+ PatchLocationListSize: UINT,
+ CommandBuffer: D3DGPU_VIRTUAL_ADDRESS,
+}}
+STRUCT!{struct D3DKMT_DESTROYCONTEXT {
+ hContext: D3DKMT_HANDLE,
+}}
+STRUCT!{struct D3DKMT_CREATESYNCHRONIZATIONOBJECT {
+ hDevice: D3DKMT_HANDLE,
+ Info: D3DDDI_SYNCHRONIZATIONOBJECTINFO,
+ hSyncObject: D3DKMT_HANDLE,
+}}
+STRUCT!{struct D3DKMT_CREATESYNCHRONIZATIONOBJECT2 {
+ hDevice: D3DKMT_HANDLE,
+ Info: D3DDDI_SYNCHRONIZATIONOBJECTINFO2,
+ hSyncObject: D3DKMT_HANDLE,
+}}
+STRUCT!{struct D3DKMT_DESTROYSYNCHRONIZATIONOBJECT {
+ hSyncObject: D3DKMT_HANDLE,
+}}
+STRUCT!{struct D3DKMT_OPENSYNCHRONIZATIONOBJECT {
+ hSharedHandle: D3DKMT_HANDLE,
+ hSyncObject: D3DKMT_HANDLE,
+ Reserved: [UINT64; 8],
+}}
+STRUCT!{struct D3DKMT_WAITFORSYNCHRONIZATIONOBJECT {
+ hContext: D3DKMT_HANDLE,
+ ObjectCount: UINT,
+ ObjectHandleArray: [D3DKMT_HANDLE; D3DDDI_MAX_OBJECT_WAITED_ON],
+}}
+STRUCT!{struct D3DKMT_WAITFORSYNCHRONIZATIONOBJECT2_Fence {
+ FenceValue: UINT64,
+}}
+UNION!{union D3DKMT_WAITFORSYNCHRONIZATIONOBJECT2_u {
+ [u64; 8],
+ Fence Fence_mut: D3DKMT_WAITFORSYNCHRONIZATIONOBJECT2_Fence,
+ Reserved Reserved_mut: [UINT64; 8],
+}}
+STRUCT!{struct D3DKMT_WAITFORSYNCHRONIZATIONOBJECT2 {
+ hContext: D3DKMT_HANDLE,
+ ObjectCount: UINT,
+ ObjectHandleArray: [D3DKMT_HANDLE; D3DDDI_MAX_OBJECT_WAITED_ON],
+ u: D3DKMT_WAITFORSYNCHRONIZATIONOBJECT2_u,
+}}
+STRUCT!{struct D3DKMT_SIGNALSYNCHRONIZATIONOBJECT {
+ hContext: D3DKMT_HANDLE,
+ ObjectCount: UINT,
+ ObjectHandleArray: [D3DKMT_HANDLE; D3DDDI_MAX_OBJECT_SIGNALED],
+ Flags: D3DDDICB_SIGNALFLAGS,
+}}
+STRUCT!{struct D3DKMT_SIGNALSYNCHRONIZATIONOBJECT2_Fence {
+ FenceValue: UINT64,
+}}
+UNION!{union D3DKMT_SIGNALSYNCHRONIZATIONOBJECT2_u {
+ [u64; 8],
+ Fence Fence_mut: D3DKMT_SIGNALSYNCHRONIZATIONOBJECT2_Fence,
+ CpuEventHandle CpuEventHandle_mut: HANDLE,
+ Reserved Reserved_mut: [UINT64; 8],
+}}
+STRUCT!{struct D3DKMT_SIGNALSYNCHRONIZATIONOBJECT2 {
+ hContext: D3DKMT_HANDLE,
+ ObjectCount: UINT,
+ ObjectHandleArray: [D3DKMT_HANDLE; D3DDDI_MAX_OBJECT_SIGNALED],
+ Flags: D3DDDICB_SIGNALFLAGS,
+ BroadcastContextCount: ULONG,
+ BroadcastContext: [D3DKMT_HANDLE; D3DDDI_MAX_BROADCAST_CONTEXT],
+ u: D3DKMT_SIGNALSYNCHRONIZATIONOBJECT2_u,
+}}
+//1512
+STRUCT!{struct D3DKMT_SEGMENTSIZEINFO {
+ DedicatedVideoMemorySize: ULONGLONG,
+ DedicatedSystemMemorySize: ULONGLONG,
+ SharedSystemMemorySize: ULONGLONG,
+}}
+//1617
+STRUCT!{struct D3DKMT_ADAPTERTYPE {
+ Value: UINT,
+}}
+BITFIELD!{D3DKMT_ADAPTERTYPE Value: UINT [
+ RenderSupported set_RenderSupported[0..1],
+ DisplaySupported set_DisplaySupported[1..2],
+ SoftwareDevice set_SoftwareDevice[2..3],
+ PostDevice set_PostDevice[3..4],
+ HybridDiscrete set_HybridDiscrete[4..5],
+ HybridIntegrated set_HybridIntegrated[5..6],
+ IndirectDisplayDevice set_IndirectDisplayDevice[6..7],
+ Paravirtualized set_Paravirtualized[7..8],
+ ACGSupported set_ACGSupported[8..9],
+ SupportSetTimingsFromVidPn set_SupportSetTimingsFromVidPn[9..10],
+ Detachable set_Detachable[10..11],
+ Reserved set_Reserved[11..32],
+]}
+//1852
+STRUCT!{struct D3DKMT_NODE_PERFDATA {
+ NodeOrdinal: UINT32,
+ PhysicalAdapterIndex: UINT32,
+ Frequency: ULONGLONG,
+ MaxFrequency: ULONGLONG,
+ MaxFrequencyOC: ULONGLONG,
+ Voltage: ULONG,
+ VoltageMax: ULONG,
+ VoltageMaxOC: ULONG,
+ MaxTransitionLatency: ULONGLONG,
+}}
+STRUCT!{struct D3DKMT_ADAPTER_PERFDATA {
+ PhysicalAdapterIndex: UINT32,
+ MemoryFrequency: ULONGLONG,
+ MaxMemoryFrequency: ULONGLONG,
+ MaxMemoryFrequencyOC: ULONGLONG,
+ MemoryBandwidth: ULONGLONG,
+ PCIEBandwidth: ULONGLONG,
+ FanRPM: ULONG,
+ Power: ULONG,
+ Temperature: ULONG,
+ PowerStateOverride: UCHAR,
+}}
+STRUCT!{struct D3DKMT_ADAPTER_PERFDATACAPS {
+ PhysicalAdapterIndex: UINT32,
+ MaxMemoryBandwidth: ULONGLONG,
+ MaxPCIEBandwidth: ULONGLONG,
+ MaxFanRPM: ULONG,
+ TemperatureMax: ULONG,
+ TemperatureWarning: ULONG,
+}}
+pub const DXGK_MAX_GPUVERSION_NAME_LENGTH: usize = 32;
+STRUCT!{struct D3DKMT_GPUVERSION {
+ PhysicalAdapterIndex: UINT32,
+ BiosVersion: [WCHAR; DXGK_MAX_GPUVERSION_NAME_LENGTH],
+ GpuArchitecture: [WCHAR; DXGK_MAX_GPUVERSION_NAME_LENGTH],
+}}
+ENUM!{enum KMTQUERYADAPTERINFOTYPE {
+ KMTQAITYPE_UMDRIVERPRIVATE = 0,
+ KMTQAITYPE_UMDRIVERNAME = 1,
+ KMTQAITYPE_UMOPENGLINFO = 2,
+ KMTQAITYPE_GETSEGMENTSIZE = 3,
+ KMTQAITYPE_ADAPTERGUID = 4,
+ KMTQAITYPE_FLIPQUEUEINFO = 5,
+ KMTQAITYPE_ADAPTERADDRESS = 6,
+ KMTQAITYPE_SETWORKINGSETINFO = 7,
+ KMTQAITYPE_ADAPTERREGISTRYINFO = 8,
+ KMTQAITYPE_CURRENTDISPLAYMODE = 9,
+ KMTQAITYPE_MODELIST = 10,
+ KMTQAITYPE_CHECKDRIVERUPDATESTATUS = 11,
+ KMTQAITYPE_VIRTUALADDRESSINFO = 12,
+ KMTQAITYPE_DRIVERVERSION = 13,
+ KMTQAITYPE_ADAPTERTYPE = 15,
+ KMTQAITYPE_OUTPUTDUPLCONTEXTSCOUNT = 16,
+ KMTQAITYPE_WDDM_1_2_CAPS = 17,
+ KMTQAITYPE_UMD_DRIVER_VERSION = 18,
+ KMTQAITYPE_DIRECTFLIP_SUPPORT = 19,
+ KMTQAITYPE_MULTIPLANEOVERLAY_SUPPORT = 20,
+ KMTQAITYPE_DLIST_DRIVER_NAME = 21,
+ KMTQAITYPE_WDDM_1_3_CAPS = 22,
+ KMTQAITYPE_MULTIPLANEOVERLAY_HUD_SUPPORT = 23,
+ KMTQAITYPE_WDDM_2_0_CAPS = 24,
+ KMTQAITYPE_NODEMETADATA = 25,
+ KMTQAITYPE_CPDRIVERNAME = 26,
+ KMTQAITYPE_XBOX = 27,
+ KMTQAITYPE_INDEPENDENTFLIP_SUPPORT = 28,
+ KMTQAITYPE_MIRACASTCOMPANIONDRIVERNAME = 29,
+ KMTQAITYPE_PHYSICALADAPTERCOUNT = 30,
+ KMTQAITYPE_PHYSICALADAPTERDEVICEIDS = 31,
+ KMTQAITYPE_DRIVERCAPS_EXT = 32,
+ KMTQAITYPE_QUERY_MIRACAST_DRIVER_TYPE = 33,
+ KMTQAITYPE_QUERY_GPUMMU_CAPS = 34,
+ KMTQAITYPE_QUERY_MULTIPLANEOVERLAY_DECODE_SUPPORT = 35,
+ KMTQAITYPE_QUERY_HW_PROTECTION_TEARDOWN_COUNT = 36,
+ KMTQAITYPE_QUERY_ISBADDRIVERFORHWPROTECTIONDISABLED = 37,
+ KMTQAITYPE_MULTIPLANEOVERLAY_SECONDARY_SUPPORT = 38,
+ KMTQAITYPE_INDEPENDENTFLIP_SECONDARY_SUPPORT = 39,
+ KMTQAITYPE_PANELFITTER_SUPPORT = 40,
+ KMTQAITYPE_PHYSICALADAPTERPNPKEY = 41,
+ KMTQAITYPE_GETSEGMENTGROUPSIZE = 42,
+ KMTQAITYPE_MPO3DDI_SUPPORT = 43,
+ KMTQAITYPE_HWDRM_SUPPORT = 44,
+ KMTQAITYPE_MPOKERNELCAPS_SUPPORT = 45,
+ KMTQAITYPE_MULTIPLANEOVERLAY_STRETCH_SUPPORT = 46,
+ KMTQAITYPE_GET_DEVICE_VIDPN_OWNERSHIP_INFO = 47,
+ KMTQAITYPE_QUERYREGISTRY = 48,
+ KMTQAITYPE_KMD_DRIVER_VERSION = 49,
+ KMTQAITYPE_BLOCKLIST_KERNEL = 50,
+ KMTQAITYPE_BLOCKLIST_RUNTIME = 51,
+ KMTQAITYPE_ADAPTERGUID_RENDER = 52,
+ KMTQAITYPE_ADAPTERADDRESS_RENDER = 53,
+ KMTQAITYPE_ADAPTERREGISTRYINFO_RENDER = 54,
+ KMTQAITYPE_CHECKDRIVERUPDATESTATUS_RENDER = 55,
+ KMTQAITYPE_DRIVERVERSION_RENDER = 56,
+ KMTQAITYPE_ADAPTERTYPE_RENDER = 57,
+ KMTQAITYPE_WDDM_1_2_CAPS_RENDER = 58,
+ KMTQAITYPE_WDDM_1_3_CAPS_RENDER = 59,
+ KMTQAITYPE_QUERY_ADAPTER_UNIQUE_GUID = 60,
+ KMTQAITYPE_NODEPERFDATA = 61,
+ KMTQAITYPE_ADAPTERPERFDATA = 62,
+ KMTQAITYPE_ADAPTERPERFDATA_CAPS = 63,
+ KMTQUITYPE_GPUVERSION = 64,
+}}
+STRUCT!{struct D3DKMT_QUERYADAPTERINFO {
+ hAdapter: D3DKMT_HANDLE,
+ Type: KMTQUERYADAPTERINFOTYPE,
+ pPrivateDriverData: *mut VOID,
+ PrivateDriverDataSize: UINT,
+}}
+STRUCT!{struct D3DKMT_OPENADAPTERFROMHDC {
+ hDc: HDC,
+ hAdapter: D3DKMT_HANDLE,
+ AdapterLuid: LUID,
+ VidPnSourceId: D3DDDI_VIDEO_PRESENT_SOURCE_ID,
+}}
+STRUCT!{struct D3DKMT_OPENADAPTERFROMGDIDISPLAYNAME {
+ DeviceName: [WCHAR; 32],
+ hAdapter: D3DKMT_HANDLE,
+ AdapterLuid: LUID,
+ VidPnSourceId: D3DDDI_VIDEO_PRESENT_SOURCE_ID,
+}}
+STRUCT!{struct D3DKMT_OPENADAPTERFROMDEVICENAME {
+ pDeviceName: PCWSTR,
+ hAdapter: D3DKMT_HANDLE,
+ AdapterLuid: LUID,
+}}
+pub const MAX_ENUM_ADAPTERS: usize = 16;
+STRUCT!{struct D3DKMT_ADAPTERINFO {
+ hAdapter: D3DKMT_HANDLE,
+ AdapterLuid: LUID,
+ NumOfSources: ULONG,
+ bPresentMoveRegionsPreferred: BOOL,
+}}
+STRUCT!{struct D3DKMT_ENUMADAPTERS {
+ NumAdapters: ULONG,
+ Adapters: [D3DKMT_ADAPTERINFO; MAX_ENUM_ADAPTERS],
+}}
+STRUCT!{struct D3DKMT_ENUMADAPTERS2 {
+ NumAdapters: ULONG,
+ pAdapters: *mut D3DKMT_ADAPTERINFO,
+}}
+STRUCT!{struct D3DKMT_OPENADAPTERFROMLUID {
+ AdapterLuid: LUID,
+ hAdapter: D3DKMT_HANDLE,
+}}
+STRUCT!{struct D3DKMT_QUERYREMOTEVIDPNSOURCEFROMGDIDISPLAYNAME {
+ DeviceName: [WCHAR; 32],
+ VidPnSourceId: D3DDDI_VIDEO_PRESENT_SOURCE_ID,
+}}
+STRUCT!{struct D3DKMT_CLOSEADAPTER {
+ hAdapter: D3DKMT_HANDLE,
+}}