| // 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 (LDDM) user/kernel mode shared data type definitions. |
| use shared::basetsd::{UINT64, ULONG_PTR}; |
| use shared::guiddef::GUID; |
| use shared::minwindef::{BOOL, UINT, ULONG}; |
| use shared::ntdef::{HANDLE, LUID, ULONGLONG, VOID}; |
| pub const DXGKDDI_INTERFACE_VERSION_VISTA: ULONG = 0x1052; |
| pub const DXGKDDI_INTERFACE_VERSION_VISTA_SP1: ULONG = 0x1053; |
| pub const DXGKDDI_INTERFACE_VERSION_WIN7: ULONG = 0x2005; |
| pub const DXGKDDI_INTERFACE_VERSION_WIN8: ULONG = 0x300E; |
| pub const DXGKDDI_INTERFACE_VERSION_WDDM1_3: ULONG = 0x4002; |
| pub const DXGKDDI_INTERFACE_VERSION_WDDM1_3_PATH_INDEPENDENT_ROTATION: ULONG = 0x4003; |
| pub const DXGKDDI_INTERFACE_VERSION_WDDM2_0: ULONG = 0x5023; |
| pub const DXGKDDI_INTERFACE_VERSION_WDDM2_1: ULONG = 0x6003; |
| pub const DXGKDDI_INTERFACE_VERSION_WDDM2_1_5: ULONG = 0x6010; |
| pub const DXGKDDI_INTERFACE_VERSION_WDDM2_2: ULONG = 0x700A; |
| pub const DXGKDDI_INTERFACE_VERSION_WDDM2_3: ULONG = 0x8001; |
| pub const DXGKDDI_INTERFACE_VERSION_WDDM2_4: ULONG = 0x9006; |
| pub const DXGKDDI_INTERFACE_VERSION_WDDM2_5: ULONG = 0xA00B; |
| #[inline] |
| pub fn IS_OFFICIAL_DDI_INTERFACE_VERSION(version: ULONG) -> bool { |
| (version == DXGKDDI_INTERFACE_VERSION_VISTA) || |
| (version == DXGKDDI_INTERFACE_VERSION_VISTA_SP1) || |
| (version == DXGKDDI_INTERFACE_VERSION_WIN7) || |
| (version == DXGKDDI_INTERFACE_VERSION_WIN8) || |
| (version == DXGKDDI_INTERFACE_VERSION_WDDM1_3) || |
| (version == DXGKDDI_INTERFACE_VERSION_WDDM1_3_PATH_INDEPENDENT_ROTATION) || |
| (version == DXGKDDI_INTERFACE_VERSION_WDDM2_0) || |
| (version == DXGKDDI_INTERFACE_VERSION_WDDM2_1) || |
| (version == DXGKDDI_INTERFACE_VERSION_WDDM2_1_5) || |
| (version == DXGKDDI_INTERFACE_VERSION_WDDM2_2) || |
| (version == DXGKDDI_INTERFACE_VERSION_WDDM2_3) || |
| (version == DXGKDDI_INTERFACE_VERSION_WDDM2_4) || |
| (version == DXGKDDI_INTERFACE_VERSION_WDDM2_5) |
| } |
| pub const DXGKDDI_INTERFACE_VERSION: ULONG = DXGKDDI_INTERFACE_VERSION_WDDM2_5; |
| pub const D3D_UMD_INTERFACE_VERSION_VISTA: ULONG = 0x000C; |
| pub const D3D_UMD_INTERFACE_VERSION_WIN7: ULONG = 0x2003; |
| pub const D3D_UMD_INTERFACE_VERSION_WIN8_M3: ULONG = 0x3001; |
| pub const D3D_UMD_INTERFACE_VERSION_WIN8_CP: ULONG = 0x3002; |
| pub const D3D_UMD_INTERFACE_VERSION_WIN8_RC: ULONG = 0x3003; |
| pub const D3D_UMD_INTERFACE_VERSION_WIN8: ULONG = 0x3004; |
| pub const D3D_UMD_INTERFACE_VERSION_WDDM1_3: ULONG = 0x4002; |
| pub const D3D_UMD_INTERFACE_VERSION_WDDM2_0_M1: ULONG = 0x5000; |
| pub const D3D_UMD_INTERFACE_VERSION_WDDM2_0_M1_3: ULONG = 0x5001; |
| pub const D3D_UMD_INTERFACE_VERSION_WDDM2_0_M2_2: ULONG = 0x5002; |
| pub const D3D_UMD_INTERFACE_VERSION_WDDM2_0: ULONG = 0x5002; |
| pub const D3D_UMD_INTERFACE_VERSION_WDDM2_1_1: ULONG = 0x6000; |
| pub const D3D_UMD_INTERFACE_VERSION_WDDM2_1_2: ULONG = 0x6001; |
| pub const D3D_UMD_INTERFACE_VERSION_WDDM2_1_3: ULONG = 0x6002; |
| pub const D3D_UMD_INTERFACE_VERSION_WDDM2_1_4: ULONG = 0x6003; |
| pub const D3D_UMD_INTERFACE_VERSION_WDDM2_1: ULONG = D3D_UMD_INTERFACE_VERSION_WDDM2_1_4; |
| pub const D3D_UMD_INTERFACE_VERSION_WDDM2_2_1: ULONG = 0x7000; |
| pub const D3D_UMD_INTERFACE_VERSION_WDDM2_2_2: ULONG = 0x7001; |
| pub const D3D_UMD_INTERFACE_VERSION_WDDM2_2: ULONG = D3D_UMD_INTERFACE_VERSION_WDDM2_2_2; |
| pub const D3D_UMD_INTERFACE_VERSION_WDDM2_3_1: ULONG = 0x8000; |
| pub const D3D_UMD_INTERFACE_VERSION_WDDM2_3_2: ULONG = 0x8001; |
| pub const D3D_UMD_INTERFACE_VERSION_WDDM2_3: ULONG = D3D_UMD_INTERFACE_VERSION_WDDM2_3_2; |
| pub const D3D_UMD_INTERFACE_VERSION_WDDM2_4_1: ULONG = 0x9000; |
| pub const D3D_UMD_INTERFACE_VERSION_WDDM2_4_2: ULONG = 0x9001; |
| pub const D3D_UMD_INTERFACE_VERSION_WDDM2_4: ULONG = D3D_UMD_INTERFACE_VERSION_WDDM2_4_2; |
| pub const D3D_UMD_INTERFACE_VERSION_WDDM2_5_1: ULONG = 0xA000; |
| pub const D3D_UMD_INTERFACE_VERSION_WDDM2_5_2: ULONG = 0xA001; |
| pub const D3D_UMD_INTERFACE_VERSION_WDDM2_5_3: ULONG = 0xA002; |
| pub const D3D_UMD_INTERFACE_VERSION_WDDM2_5: ULONG = D3D_UMD_INTERFACE_VERSION_WDDM2_5_3; |
| pub const D3D_UMD_INTERFACE_VERSION: ULONG = D3D_UMD_INTERFACE_VERSION_WDDM2_5; |
| pub type D3DGPU_VIRTUAL_ADDRESS = ULONGLONG; |
| pub type D3DGPU_SIZE_T = ULONGLONG; |
| pub const D3DGPU_UNIQUE_DRIVER_PROTECTION: ULONGLONG = 0x8000000000000000; |
| pub const DXGK_MAX_PAGE_TABLE_LEVEL_COUNT: UINT = 6; |
| pub const DXGK_MIN_PAGE_TABLE_LEVEL_COUNT: UINT = 2; |
| STRUCT!{struct GPUP_DRIVER_ESCAPE_INPUT { |
| vfLUID: LUID, |
| }} |
| pub type PGPUP_DRIVER_ESCAPE_INPUT = *mut GPUP_DRIVER_ESCAPE_INPUT; |
| ENUM!{enum DXGKVGPU_ESCAPE_TYPE { |
| DXGKVGPU_ESCAPE_TYPE_READ_PCI_CONFIG = 0, |
| DXGKVGPU_ESCAPE_TYPE_WRITE_PCI_CONFIG = 1, |
| DXGKVGPU_ESCAPE_TYPE_INITIALIZE = 2, |
| DXGKVGPU_ESCAPE_TYPE_RELEASE = 3, |
| DXGKVGPU_ESCAPE_TYPE_GET_VGPU_TYPE = 4, |
| DXGKVGPU_ESCAPE_TYPE_POWERTRANSITIONCOMPLETE = 5, |
| }} |
| STRUCT!{struct DXGKVGPU_ESCAPE_HEAD { |
| Luid: GPUP_DRIVER_ESCAPE_INPUT, |
| Type: DXGKVGPU_ESCAPE_TYPE, |
| }} |
| STRUCT!{struct DXGKVGPU_ESCAPE_READ_PCI_CONFIG { |
| Header: DXGKVGPU_ESCAPE_HEAD, |
| Offset: UINT, |
| Size: UINT, |
| }} |
| STRUCT!{struct DXGKVGPU_ESCAPE_WRITE_PCI_CONFIG { |
| Header: DXGKVGPU_ESCAPE_HEAD, |
| Offset: UINT, |
| Size: UINT, |
| }} |
| STRUCT!{struct DXGKVGPU_ESCAPE_READ_VGPU_TYPE { |
| Header: DXGKVGPU_ESCAPE_HEAD, |
| }} |
| STRUCT!{struct DXGKVGPU_ESCAPE_POWERTRANSITIONCOMPLETE { |
| Header: DXGKVGPU_ESCAPE_HEAD, |
| PowerState: UINT, |
| }} |
| STRUCT!{struct DXGKVGPU_ESCAPE_INITIALIZE { |
| Header: DXGKVGPU_ESCAPE_HEAD, |
| VmGuid: GUID, |
| }} |
| STRUCT!{struct DXGKVGPU_ESCAPE_RELEASE { |
| Header: DXGKVGPU_ESCAPE_HEAD, |
| }} |
| ENUM!{enum DXGK_PTE_PAGE_SIZE { |
| DXGK_PTE_PAGE_TABLE_PAGE_4KB = 0, |
| DXGK_PTE_PAGE_TABLE_PAGE_64KB = 1, |
| }} |
| UNION!{union DXGK_PTE_u { |
| [u64; 1], |
| PageAddress PageAddress_mut: ULONGLONG, |
| PageTableAddress PageTableAddress_mut: ULONGLONG, |
| }} |
| STRUCT!{struct DXGK_PTE { |
| Flags: ULONGLONG, |
| u: DXGK_PTE_u, |
| }} |
| BITFIELD!{DXGK_PTE Flags: ULONGLONG [ |
| Valid set_Valid[0..1], |
| Zero set_Zero[1..2], |
| CacheCoherent set_CacheCoherent[2..3], |
| ReadOnly set_ReadOnly[3..4], |
| NoExecute set_NoExecute[4..5], |
| Segment set_Segment[5..10], |
| LargePage set_LargePage[10..11], |
| PhysicalAdapterIndex set_PhysicalAdapterIndex[11..17], |
| PageTablePageSize set_PageTablePageSize[17..19], |
| SystemReserved0 set_SystemReserved0[19..20], |
| Reserved set_Reserved[20..64], |
| ]} |
| pub const D3DGPU_NULL: D3DGPU_VIRTUAL_ADDRESS = 0; |
| pub const D3DDDI_MAX_WRITTEN_PRIMARIES: usize = 16; |
| pub const D3DDDI_MAX_MPO_PRESENT_DIRTY_RECTS: usize = 0xFFF; |
| STRUCT!{struct D3DGPU_PHYSICAL_ADDRESS { |
| SegmentId: UINT, |
| SegmentOffset: UINT64, |
| }} |
| pub type D3DDDI_VIDEO_PRESENT_SOURCE_ID = UINT; |
| pub type D3DDDI_VIDEO_PRESENT_TARGET_ID = UINT; |
| pub type D3DKMT_HANDLE = UINT; |
| STRUCT!{struct D3DDDI_RATIONAL { |
| Numerator: UINT, |
| Denominator: UINT, |
| }} |
| STRUCT!{struct D3DDDI_ALLOCATIONINFO { |
| hAllocation: D3DKMT_HANDLE, |
| pSystemMem: *const VOID, |
| pPrivateDriverData: *mut VOID, |
| PrivateDriverDataSize: UINT, |
| VidPnSourceId: D3DDDI_VIDEO_PRESENT_SOURCE_ID, |
| Flags: UINT, |
| }} |
| BITFIELD!{D3DDDI_ALLOCATIONINFO Flags: UINT [ |
| Primary set_Primary[0..1], |
| Stereo set_Stereo[1..2], |
| Reserved set_Reserved[2..32], |
| ]} |
| UNION!{union D3DDDI_ALLOCATIONINFO2_u1 { |
| [usize; 1], |
| hSection hSection_mut: HANDLE, |
| pSystemMem pSystemMem_mut: *const VOID, |
| }} |
| UNION!{union D3DDDI_ALLOCATIONINFO2_u2 { |
| [usize; 1], |
| Priority Priority_mut: UINT, |
| Unused Unused_mut: ULONG_PTR, |
| }} |
| STRUCT!{struct D3DDDI_ALLOCATIONINFO2 { |
| hAllocation: D3DKMT_HANDLE, |
| u1: D3DDDI_ALLOCATIONINFO2_u1, |
| pPrivateDriverData: *mut VOID, |
| PrivateDriverDataSize: UINT, |
| VidPnSourceId: D3DDDI_VIDEO_PRESENT_SOURCE_ID, |
| Flags: UINT, |
| GpuVirtualAddress: D3DGPU_VIRTUAL_ADDRESS, |
| u2: D3DDDI_ALLOCATIONINFO2_u2, |
| Reserved: [ULONG_PTR; 5], |
| }} |
| BITFIELD!{D3DDDI_ALLOCATIONINFO2 Flags: UINT [ |
| Primary set_Primary[0..1], |
| Stereo set_Stereo[1..2], |
| OverridePriority set_OverridePriority[2..3], |
| Reserved set_Reserved[3..32], |
| ]} |
| STRUCT!{struct D3DDDI_OPENALLOCATIONINFO { |
| hAllocation: D3DKMT_HANDLE, |
| pPrivateDriverData: *const VOID, |
| PrivateDriverDataSize: UINT, |
| }} |
| STRUCT!{struct D3DDDI_OPENALLOCATIONINFO2 { |
| hAllocation: D3DKMT_HANDLE, |
| pPrivateDriverData: *const VOID, |
| PrivateDriverDataSize: UINT, |
| GpuVirtualAddress: D3DGPU_VIRTUAL_ADDRESS, |
| Reserved: [ULONG_PTR; 6], |
| }} |
| ENUM!{enum D3DDDI_OFFER_PRIORITY { |
| D3DDDI_OFFER_PRIORITY_NONE = 0, |
| D3DDDI_OFFER_PRIORITY_LOW = 1, |
| D3DDDI_OFFER_PRIORITY_NORMAL, |
| D3DDDI_OFFER_PRIORITY_HIGH, |
| D3DDDI_OFFER_PRIORITY_AUTO, |
| }} |
| STRUCT!{struct D3DDDI_ALLOCATIONLIST { |
| hAllocation: D3DKMT_HANDLE, |
| Value: UINT, |
| }} |
| BITFIELD!{D3DDDI_ALLOCATIONLIST Value: UINT [ |
| WriteOperation set_WriteOperation[0..1], |
| DoNotRetireInstance set_DoNotRetireInstance[1..2], |
| OfferPriority set_OfferPriority[2..5], |
| Reserved set_Reserved[5..32], |
| ]} |
| STRUCT!{struct D3DDDI_PATCHLOCATIONLIST { |
| AllocationIndex: UINT, |
| Value: UINT, |
| DriverId: UINT, |
| AllocationOffset: UINT, |
| PatchOffset: UINT, |
| SplitOffset: UINT, |
| }} |
| BITFIELD!{D3DDDI_PATCHLOCATIONLIST Value: UINT [ |
| SlotId set_SlotId[0..24], |
| Reserved set_Reserved[24..32], |
| ]} |
| STRUCT!{struct D3DDDICB_LOCKFLAGS { |
| Value: UINT, |
| }} |
| BITFIELD!{D3DDDICB_LOCKFLAGS Value: UINT [ |
| ReadOnly set_ReadOnly[0..1], |
| WriteOnly set_WriteOnly[1..2], |
| DonotWait set_DonotWait[2..3], |
| IgnoreSync set_IgnoreSync[3..4], |
| LockEntire set_LockEntire[4..5], |
| DonotEvict set_DonotEvict[5..6], |
| AcquireAperture set_AcquireAperture[6..7], |
| Discard set_Discard[7..8], |
| NoExistingReference set_NoExistingReference[8..9], |
| UseAlternateVA set_UseAlternateVA[9..10], |
| IgnoreReadSync set_IgnoreReadSync[10..11], |
| Reserved set_Reserved[11..32], |
| ]} |
| STRUCT!{struct D3DDDICB_LOCK2FLAGS { |
| Value: UINT, |
| }} |
| STRUCT!{struct D3DDDICB_DESTROYALLOCATION2FLAGS { |
| Value: UINT, |
| }} |
| BITFIELD!{D3DDDICB_DESTROYALLOCATION2FLAGS Value: UINT [ |
| AssumeNotInUse set_AssumeNotInUse[0..1], |
| SynchronousDestroy set_SynchronousDestroy[1..2], |
| Reserved set_Reserved[2..31], |
| SystemUseOnly set_SystemUseOnly[31..32], |
| ]} |
| STRUCT!{struct D3DDDI_ESCAPEFLAGS { |
| Value: UINT, |
| }} |
| BITFIELD!{D3DDDI_ESCAPEFLAGS Value: UINT [ |
| HardwareAccess set_HardwareAccess[0..1], |
| DeviceStatusQuery set_DeviceStatusQuery[1..2], |
| ChangeFrameLatency set_ChangeFrameLatency[2..3], |
| NoAdapterSynchronization set_NoAdapterSynchronization[3..4], |
| Reserved set_Reserved[4..5], |
| VirtualMachineData set_VirtualMachineData[5..6], |
| DriverKnownEscape set_DriverKnownEscape[6..7], |
| DriverCommonEscape set_DriverCommonEscape[7..8], |
| Reserved2 set_Reserved2[8..24], |
| ]} |
| ENUM!{enum D3DDDI_DRIVERESCAPETYPE { |
| D3DDDI_DRIVERESCAPETYPE_TRANSLATEALLOCATIONHANDLE = 0, |
| D3DDDI_DRIVERESCAPETYPE_TRANSLATERESOURCEHANDLE = 1, |
| D3DDDI_DRIVERESCAPETYPE_MAX, |
| }} |
| STRUCT!{struct D3DDDI_DRIVERESCAPE_TRANSLATEALLOCATIONEHANDLE { |
| EscapeType: D3DDDI_DRIVERESCAPETYPE, |
| hAllocation: D3DKMT_HANDLE, |
| }} |
| STRUCT!{struct D3DDDI_DRIVERESCAPE_TRANSLATERESOURCEHANDLE { |
| EscapeType: D3DDDI_DRIVERESCAPETYPE, |
| hResource: D3DKMT_HANDLE, |
| }} |
| STRUCT!{struct D3DDDI_CREATECONTEXTFLAGS { |
| Value: UINT, |
| }} |
| BITFIELD!{D3DDDI_CREATECONTEXTFLAGS Value: UINT [ |
| NullRendering set_NullRendering[0..1], |
| InitialData set_InitialData[1..2], |
| DisableGpuTimeout set_DisableGpuTimeout[2..3], |
| SynchronizationOnly set_SynchronizationOnly[3..4], |
| HwQueueSupported set_HwQueueSupported[4..5], |
| Reserved set_Reserved[5..32], |
| ]} |
| //1188 |
| STRUCT!{struct D3DDDICB_SIGNALFLAGS { |
| Value: UINT, |
| }} |
| BITFIELD!{D3DDDICB_SIGNALFLAGS Value: UINT [ |
| SignalAtSubmission set_SignalAtSubmission[0..1], |
| EnqueueCpuEvent set_EnqueueCpuEvent[1..2], |
| AllowFenceRewind set_AllowFenceRewind[2..3], |
| Reserved set_Reserved[3..31], |
| DXGK_SIGNAL_FLAG_INTERNAL0 set_DXGK_SIGNAL_FLAG_INTERNAL0[31..32], |
| ]} |
| pub const D3DDDI_MAX_OBJECT_WAITED_ON: usize = 32; |
| pub const D3DDDI_MAX_OBJECT_SIGNALED: usize = 32; |
| ENUM!{enum D3DDDI_SYNCHRONIZATIONOBJECT_TYPE { |
| D3DDDI_SYNCHRONIZATION_MUTEX = 1, |
| D3DDDI_SEMAPHORE = 2, |
| D3DDDI_FENCE = 3, |
| D3DDDI_CPU_NOTIFICATION = 4, |
| D3DDDI_MONITORED_FENCE = 5, |
| D3DDDI_PERIODIC_MONITORED_FENCE = 6, |
| D3DDDI_SYNCHRONIZATION_TYPE_LIMIT, |
| }} |
| //1553 |
| STRUCT!{struct D3DDDI_SYNCHRONIZATIONOBJECTINFO_u_SynchronizationMutex { |
| InitialState: BOOL, |
| }} |
| STRUCT!{struct D3DDDI_SYNCHRONIZATIONOBJECTINFO_u_Semaphore { |
| MaxCount: UINT, |
| InitialCount: UINT, |
| }} |
| STRUCT!{struct D3DDDI_SYNCHRONIZATIONOBJECTINFO_u_Reserved { |
| Reserved: [UINT; 16], |
| }} |
| UNION!{union D3DDDI_SYNCHRONIZATIONOBJECTINFO_u { |
| [u32; 16], |
| SynchronizationMutex SynchronizationMutex_mut: |
| D3DDDI_SYNCHRONIZATIONOBJECTINFO_u_SynchronizationMutex, |
| Semaphore Semaphore_mut: D3DDDI_SYNCHRONIZATIONOBJECTINFO_u_Semaphore, |
| Reserved Reserved_mut: D3DDDI_SYNCHRONIZATIONOBJECTINFO_u_Reserved, |
| }} |
| STRUCT!{struct D3DDDI_SYNCHRONIZATIONOBJECTINFO { |
| Type: D3DDDI_SYNCHRONIZATIONOBJECT_TYPE, |
| u: D3DDDI_SYNCHRONIZATIONOBJECTINFO_u, |
| }} |
| STRUCT!{struct D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS { |
| Value: UINT, |
| }} |
| BITFIELD!{D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS Value: UINT [ |
| Shared set_Shared[0..1], |
| NtSecuritySharing set_NtSecuritySharing[1..2], |
| CrossAdapter set_CrossAdapter[2..3], |
| TopOfPipeline set_TopOfPipeline[3..4], |
| NoSignal set_NoSignal[4..5], |
| NoWait set_NoWait[5..6], |
| NoSignalMaxValueOnTdr set_NoSignalMaxValueOnTdr[6..7], |
| NoGPUAccess set_NoGPUAccess[7..8], |
| Reserved set_Reserved[8..31], |
| D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS_RESERVED0 |
| set_D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS_RESERVED0[31..32], |
| ]} |
| STRUCT!{struct D3DDDI_SYNCHRONIZATIONOBJECTINFO2_u_SynchronizationMutex { |
| InitialState: BOOL, |
| }} |
| STRUCT!{struct D3DDDI_SYNCHRONIZATIONOBJECTINFO2_u_Semaphore { |
| MaxCount: UINT, |
| InitialCount: UINT, |
| }} |
| STRUCT!{struct D3DDDI_SYNCHRONIZATIONOBJECTINFO2_u_Fence { |
| FenceValue: UINT64, |
| }} |
| STRUCT!{struct D3DDDI_SYNCHRONIZATIONOBJECTINFO2_u_CPUNotification { |
| Event: HANDLE, |
| }} |
| STRUCT!{struct D3DDDI_SYNCHRONIZATIONOBJECTINFO2_u_MonitoredFence { |
| InitialFenceValue: UINT64, |
| FenceValueCPUVirtualAddress: *mut VOID, |
| FenceValueGPUVirtualAddress: D3DGPU_VIRTUAL_ADDRESS, |
| EngineAffinity: UINT, |
| }} |
| STRUCT!{struct D3DDDI_SYNCHRONIZATIONOBJECTINFO2_u_PeriodicMonitoredFence { |
| hAdapter: D3DKMT_HANDLE, |
| VidPnTargetId: D3DDDI_VIDEO_PRESENT_TARGET_ID, |
| Time: UINT64, |
| FenceValueCPUVirtualAddress: *mut VOID, |
| FenceValueGPUVirtualAddress: D3DGPU_VIRTUAL_ADDRESS, |
| EngineAffinity: UINT, |
| }} |
| STRUCT!{struct D3DDDI_SYNCHRONIZATIONOBJECTINFO2_u_Reserved { |
| Reserved: [UINT64; 8], |
| }} |
| UNION!{union D3DDDI_SYNCHRONIZATIONOBJECTINFO2_u { |
| [u64; 8], |
| SynchronizationMutex SynchronizationMutex_mut: |
| D3DDDI_SYNCHRONIZATIONOBJECTINFO2_u_SynchronizationMutex, |
| Semaphore Semaphore_mut: D3DDDI_SYNCHRONIZATIONOBJECTINFO2_u_Semaphore, |
| Fence Fence_mut: D3DDDI_SYNCHRONIZATIONOBJECTINFO2_u_Fence, |
| CPUNotification CPUNotification_mut: D3DDDI_SYNCHRONIZATIONOBJECTINFO2_u_CPUNotification, |
| MonitoredFence MonitoredFence_mut: D3DDDI_SYNCHRONIZATIONOBJECTINFO2_u_MonitoredFence, |
| PeriodicMonitoredFence PeriodicMonitoredFence_mut: |
| D3DDDI_SYNCHRONIZATIONOBJECTINFO2_u_PeriodicMonitoredFence, |
| Reserved Reserved_mut: D3DDDI_SYNCHRONIZATIONOBJECTINFO2_u_Reserved, |
| }} |
| STRUCT!{struct D3DDDI_SYNCHRONIZATIONOBJECTINFO2 { |
| Type: D3DDDI_SYNCHRONIZATIONOBJECT_TYPE, |
| Flags: D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS, |
| u: D3DDDI_SYNCHRONIZATIONOBJECTINFO2_u, |
| SharedHandle: D3DKMT_HANDLE, |
| }} |
| //1778 |
| pub const D3DDDI_MAX_BROADCAST_CONTEXT: usize = 64; |