1 // Licensed under the Apache License, Version 2.0
2 // <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
3 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
4 // All files in the project carrying such notice may not be copied, modified, or distributed
5 // except according to those terms.
6 //! Longhorn Display Driver Model (LDDM) user/kernel mode shared data type definitions.
7 use shared
::basetsd
::{UINT64, ULONG_PTR}
;
8 use shared
::guiddef
::GUID
;
9 use shared
::minwindef
::{BOOL, UINT, ULONG}
;
10 use shared
::ntdef
::{HANDLE, LUID, ULONGLONG, VOID}
;
11 pub const DXGKDDI_INTERFACE_VERSION_VISTA
: ULONG
= 0x1052;
12 pub const DXGKDDI_INTERFACE_VERSION_VISTA_SP1
: ULONG
= 0x1053;
13 pub const DXGKDDI_INTERFACE_VERSION_WIN7
: ULONG
= 0x2005;
14 pub const DXGKDDI_INTERFACE_VERSION_WIN8
: ULONG
= 0x300E;
15 pub const DXGKDDI_INTERFACE_VERSION_WDDM1_3
: ULONG
= 0x4002;
16 pub const DXGKDDI_INTERFACE_VERSION_WDDM1_3_PATH_INDEPENDENT_ROTATION
: ULONG
= 0x4003;
17 pub const DXGKDDI_INTERFACE_VERSION_WDDM2_0
: ULONG
= 0x5023;
18 pub const DXGKDDI_INTERFACE_VERSION_WDDM2_1
: ULONG
= 0x6003;
19 pub const DXGKDDI_INTERFACE_VERSION_WDDM2_1_5
: ULONG
= 0x6010;
20 pub const DXGKDDI_INTERFACE_VERSION_WDDM2_2
: ULONG
= 0x700A;
21 pub const DXGKDDI_INTERFACE_VERSION_WDDM2_3
: ULONG
= 0x8001;
22 pub const DXGKDDI_INTERFACE_VERSION_WDDM2_4
: ULONG
= 0x9006;
23 pub const DXGKDDI_INTERFACE_VERSION_WDDM2_5
: ULONG
= 0xA00B;
25 pub fn IS_OFFICIAL_DDI_INTERFACE_VERSION(version
: ULONG
) -> bool
{
26 (version
== DXGKDDI_INTERFACE_VERSION_VISTA
) ||
27 (version
== DXGKDDI_INTERFACE_VERSION_VISTA_SP1
) ||
28 (version
== DXGKDDI_INTERFACE_VERSION_WIN7
) ||
29 (version
== DXGKDDI_INTERFACE_VERSION_WIN8
) ||
30 (version
== DXGKDDI_INTERFACE_VERSION_WDDM1_3
) ||
31 (version
== DXGKDDI_INTERFACE_VERSION_WDDM1_3_PATH_INDEPENDENT_ROTATION
) ||
32 (version
== DXGKDDI_INTERFACE_VERSION_WDDM2_0
) ||
33 (version
== DXGKDDI_INTERFACE_VERSION_WDDM2_1
) ||
34 (version
== DXGKDDI_INTERFACE_VERSION_WDDM2_1_5
) ||
35 (version
== DXGKDDI_INTERFACE_VERSION_WDDM2_2
) ||
36 (version
== DXGKDDI_INTERFACE_VERSION_WDDM2_3
) ||
37 (version
== DXGKDDI_INTERFACE_VERSION_WDDM2_4
) ||
38 (version
== DXGKDDI_INTERFACE_VERSION_WDDM2_5
)
40 pub const DXGKDDI_INTERFACE_VERSION
: ULONG
= DXGKDDI_INTERFACE_VERSION_WDDM2_5
;
41 pub const D3D_UMD_INTERFACE_VERSION_VISTA
: ULONG
= 0x000C;
42 pub const D3D_UMD_INTERFACE_VERSION_WIN7
: ULONG
= 0x2003;
43 pub const D3D_UMD_INTERFACE_VERSION_WIN8_M3
: ULONG
= 0x3001;
44 pub const D3D_UMD_INTERFACE_VERSION_WIN8_CP
: ULONG
= 0x3002;
45 pub const D3D_UMD_INTERFACE_VERSION_WIN8_RC
: ULONG
= 0x3003;
46 pub const D3D_UMD_INTERFACE_VERSION_WIN8
: ULONG
= 0x3004;
47 pub const D3D_UMD_INTERFACE_VERSION_WDDM1_3
: ULONG
= 0x4002;
48 pub const D3D_UMD_INTERFACE_VERSION_WDDM2_0_M1
: ULONG
= 0x5000;
49 pub const D3D_UMD_INTERFACE_VERSION_WDDM2_0_M1_3
: ULONG
= 0x5001;
50 pub const D3D_UMD_INTERFACE_VERSION_WDDM2_0_M2_2
: ULONG
= 0x5002;
51 pub const D3D_UMD_INTERFACE_VERSION_WDDM2_0
: ULONG
= 0x5002;
52 pub const D3D_UMD_INTERFACE_VERSION_WDDM2_1_1
: ULONG
= 0x6000;
53 pub const D3D_UMD_INTERFACE_VERSION_WDDM2_1_2
: ULONG
= 0x6001;
54 pub const D3D_UMD_INTERFACE_VERSION_WDDM2_1_3
: ULONG
= 0x6002;
55 pub const D3D_UMD_INTERFACE_VERSION_WDDM2_1_4
: ULONG
= 0x6003;
56 pub const D3D_UMD_INTERFACE_VERSION_WDDM2_1
: ULONG
= D3D_UMD_INTERFACE_VERSION_WDDM2_1_4
;
57 pub const D3D_UMD_INTERFACE_VERSION_WDDM2_2_1
: ULONG
= 0x7000;
58 pub const D3D_UMD_INTERFACE_VERSION_WDDM2_2_2
: ULONG
= 0x7001;
59 pub const D3D_UMD_INTERFACE_VERSION_WDDM2_2
: ULONG
= D3D_UMD_INTERFACE_VERSION_WDDM2_2_2
;
60 pub const D3D_UMD_INTERFACE_VERSION_WDDM2_3_1
: ULONG
= 0x8000;
61 pub const D3D_UMD_INTERFACE_VERSION_WDDM2_3_2
: ULONG
= 0x8001;
62 pub const D3D_UMD_INTERFACE_VERSION_WDDM2_3
: ULONG
= D3D_UMD_INTERFACE_VERSION_WDDM2_3_2
;
63 pub const D3D_UMD_INTERFACE_VERSION_WDDM2_4_1
: ULONG
= 0x9000;
64 pub const D3D_UMD_INTERFACE_VERSION_WDDM2_4_2
: ULONG
= 0x9001;
65 pub const D3D_UMD_INTERFACE_VERSION_WDDM2_4
: ULONG
= D3D_UMD_INTERFACE_VERSION_WDDM2_4_2
;
66 pub const D3D_UMD_INTERFACE_VERSION_WDDM2_5_1
: ULONG
= 0xA000;
67 pub const D3D_UMD_INTERFACE_VERSION_WDDM2_5_2
: ULONG
= 0xA001;
68 pub const D3D_UMD_INTERFACE_VERSION_WDDM2_5_3
: ULONG
= 0xA002;
69 pub const D3D_UMD_INTERFACE_VERSION_WDDM2_5
: ULONG
= D3D_UMD_INTERFACE_VERSION_WDDM2_5_3
;
70 pub const D3D_UMD_INTERFACE_VERSION
: ULONG
= D3D_UMD_INTERFACE_VERSION_WDDM2_5
;
71 pub type D3DGPU_VIRTUAL_ADDRESS
= ULONGLONG
;
72 pub type D3DGPU_SIZE_T
= ULONGLONG
;
73 pub const D3DGPU_UNIQUE_DRIVER_PROTECTION
: ULONGLONG
= 0x8000000000000000;
74 pub const DXGK_MAX_PAGE_TABLE_LEVEL_COUNT
: UINT
= 6;
75 pub const DXGK_MIN_PAGE_TABLE_LEVEL_COUNT
: UINT
= 2;
76 STRUCT
!{struct GPUP_DRIVER_ESCAPE_INPUT
{
79 pub type PGPUP_DRIVER_ESCAPE_INPUT
= *mut GPUP_DRIVER_ESCAPE_INPUT
;
80 ENUM
!{enum DXGKVGPU_ESCAPE_TYPE
{
81 DXGKVGPU_ESCAPE_TYPE_READ_PCI_CONFIG
= 0,
82 DXGKVGPU_ESCAPE_TYPE_WRITE_PCI_CONFIG
= 1,
83 DXGKVGPU_ESCAPE_TYPE_INITIALIZE
= 2,
84 DXGKVGPU_ESCAPE_TYPE_RELEASE
= 3,
85 DXGKVGPU_ESCAPE_TYPE_GET_VGPU_TYPE
= 4,
86 DXGKVGPU_ESCAPE_TYPE_POWERTRANSITIONCOMPLETE
= 5,
88 STRUCT
!{struct DXGKVGPU_ESCAPE_HEAD
{
89 Luid
: GPUP_DRIVER_ESCAPE_INPUT
,
90 Type
: DXGKVGPU_ESCAPE_TYPE
,
92 STRUCT
!{struct DXGKVGPU_ESCAPE_READ_PCI_CONFIG
{
93 Header
: DXGKVGPU_ESCAPE_HEAD
,
97 STRUCT
!{struct DXGKVGPU_ESCAPE_WRITE_PCI_CONFIG
{
98 Header
: DXGKVGPU_ESCAPE_HEAD
,
102 STRUCT
!{struct DXGKVGPU_ESCAPE_READ_VGPU_TYPE
{
103 Header
: DXGKVGPU_ESCAPE_HEAD
,
105 STRUCT
!{struct DXGKVGPU_ESCAPE_POWERTRANSITIONCOMPLETE
{
106 Header
: DXGKVGPU_ESCAPE_HEAD
,
109 STRUCT
!{struct DXGKVGPU_ESCAPE_INITIALIZE
{
110 Header
: DXGKVGPU_ESCAPE_HEAD
,
113 STRUCT
!{struct DXGKVGPU_ESCAPE_RELEASE
{
114 Header
: DXGKVGPU_ESCAPE_HEAD
,
116 ENUM
!{enum DXGK_PTE_PAGE_SIZE
{
117 DXGK_PTE_PAGE_TABLE_PAGE_4KB
= 0,
118 DXGK_PTE_PAGE_TABLE_PAGE_64KB
= 1,
120 UNION
!{union DXGK_PTE_u
{
122 PageAddress PageAddress_mut
: ULONGLONG
,
123 PageTableAddress PageTableAddress_mut
: ULONGLONG
,
125 STRUCT
!{struct DXGK_PTE
{
129 BITFIELD
!{DXGK_PTE Flags
: ULONGLONG
[
130 Valid set_Valid
[0..1],
132 CacheCoherent set_CacheCoherent
[2..3],
133 ReadOnly set_ReadOnly
[3..4],
134 NoExecute set_NoExecute
[4..5],
135 Segment set_Segment
[5..10],
136 LargePage set_LargePage
[10..11],
137 PhysicalAdapterIndex set_PhysicalAdapterIndex
[11..17],
138 PageTablePageSize set_PageTablePageSize
[17..19],
139 SystemReserved0 set_SystemReserved0
[19..20],
140 Reserved set_Reserved
[20..64],
142 pub const D3DGPU_NULL
: D3DGPU_VIRTUAL_ADDRESS
= 0;
143 pub const D3DDDI_MAX_WRITTEN_PRIMARIES
: usize = 16;
144 pub const D3DDDI_MAX_MPO_PRESENT_DIRTY_RECTS
: usize = 0xFFF;
145 STRUCT
!{struct D3DGPU_PHYSICAL_ADDRESS
{
147 SegmentOffset
: UINT64
,
149 pub type D3DDDI_VIDEO_PRESENT_SOURCE_ID
= UINT
;
150 pub type D3DDDI_VIDEO_PRESENT_TARGET_ID
= UINT
;
151 pub type D3DKMT_HANDLE
= UINT
;
152 STRUCT
!{struct D3DDDI_RATIONAL
{
156 STRUCT
!{struct D3DDDI_ALLOCATIONINFO
{
157 hAllocation
: D3DKMT_HANDLE
,
158 pSystemMem
: *const VOID
,
159 pPrivateDriverData
: *mut VOID
,
160 PrivateDriverDataSize
: UINT
,
161 VidPnSourceId
: D3DDDI_VIDEO_PRESENT_SOURCE_ID
,
164 BITFIELD
!{D3DDDI_ALLOCATIONINFO Flags
: UINT
[
165 Primary set_Primary
[0..1],
166 Stereo set_Stereo
[1..2],
167 Reserved set_Reserved
[2..32],
169 UNION
!{union D3DDDI_ALLOCATIONINFO2_u1
{
171 hSection hSection_mut
: HANDLE
,
172 pSystemMem pSystemMem_mut
: *const VOID
,
174 UNION
!{union D3DDDI_ALLOCATIONINFO2_u2
{
176 Priority Priority_mut
: UINT
,
177 Unused Unused_mut
: ULONG_PTR
,
179 STRUCT
!{struct D3DDDI_ALLOCATIONINFO2
{
180 hAllocation
: D3DKMT_HANDLE
,
181 u1
: D3DDDI_ALLOCATIONINFO2_u1
,
182 pPrivateDriverData
: *mut VOID
,
183 PrivateDriverDataSize
: UINT
,
184 VidPnSourceId
: D3DDDI_VIDEO_PRESENT_SOURCE_ID
,
186 GpuVirtualAddress
: D3DGPU_VIRTUAL_ADDRESS
,
187 u2
: D3DDDI_ALLOCATIONINFO2_u2
,
188 Reserved
: [ULONG_PTR
; 5],
190 BITFIELD
!{D3DDDI_ALLOCATIONINFO2 Flags
: UINT
[
191 Primary set_Primary
[0..1],
192 Stereo set_Stereo
[1..2],
193 OverridePriority set_OverridePriority
[2..3],
194 Reserved set_Reserved
[3..32],
196 STRUCT
!{struct D3DDDI_OPENALLOCATIONINFO
{
197 hAllocation
: D3DKMT_HANDLE
,
198 pPrivateDriverData
: *const VOID
,
199 PrivateDriverDataSize
: UINT
,
201 STRUCT
!{struct D3DDDI_OPENALLOCATIONINFO2
{
202 hAllocation
: D3DKMT_HANDLE
,
203 pPrivateDriverData
: *const VOID
,
204 PrivateDriverDataSize
: UINT
,
205 GpuVirtualAddress
: D3DGPU_VIRTUAL_ADDRESS
,
206 Reserved
: [ULONG_PTR
; 6],
208 ENUM
!{enum D3DDDI_OFFER_PRIORITY
{
209 D3DDDI_OFFER_PRIORITY_NONE
= 0,
210 D3DDDI_OFFER_PRIORITY_LOW
= 1,
211 D3DDDI_OFFER_PRIORITY_NORMAL
,
212 D3DDDI_OFFER_PRIORITY_HIGH
,
213 D3DDDI_OFFER_PRIORITY_AUTO
,
215 STRUCT
!{struct D3DDDI_ALLOCATIONLIST
{
216 hAllocation
: D3DKMT_HANDLE
,
219 BITFIELD
!{D3DDDI_ALLOCATIONLIST Value
: UINT
[
220 WriteOperation set_WriteOperation
[0..1],
221 DoNotRetireInstance set_DoNotRetireInstance
[1..2],
222 OfferPriority set_OfferPriority
[2..5],
223 Reserved set_Reserved
[5..32],
225 STRUCT
!{struct D3DDDI_PATCHLOCATIONLIST
{
226 AllocationIndex
: UINT
,
229 AllocationOffset
: UINT
,
233 BITFIELD
!{D3DDDI_PATCHLOCATIONLIST Value
: UINT
[
234 SlotId set_SlotId
[0..24],
235 Reserved set_Reserved
[24..32],
237 STRUCT
!{struct D3DDDICB_LOCKFLAGS
{
240 BITFIELD
!{D3DDDICB_LOCKFLAGS Value
: UINT
[
241 ReadOnly set_ReadOnly
[0..1],
242 WriteOnly set_WriteOnly
[1..2],
243 DonotWait set_DonotWait
[2..3],
244 IgnoreSync set_IgnoreSync
[3..4],
245 LockEntire set_LockEntire
[4..5],
246 DonotEvict set_DonotEvict
[5..6],
247 AcquireAperture set_AcquireAperture
[6..7],
248 Discard set_Discard
[7..8],
249 NoExistingReference set_NoExistingReference
[8..9],
250 UseAlternateVA set_UseAlternateVA
[9..10],
251 IgnoreReadSync set_IgnoreReadSync
[10..11],
252 Reserved set_Reserved
[11..32],
254 STRUCT
!{struct D3DDDICB_LOCK2FLAGS
{
257 BITFIELD
!{D3DDDICB_LOCK2FLAGS Value
: UINT
[
258 Reserved set_Reserved
[0..32],
260 STRUCT
!{struct D3DDDICB_DESTROYALLOCATION2FLAGS
{
263 BITFIELD
!{D3DDDICB_DESTROYALLOCATION2FLAGS Value
: UINT
[
264 AssumeNotInUse set_AssumeNotInUse
[0..1],
265 SynchronousDestroy set_SynchronousDestroy
[1..2],
266 Reserved set_Reserved
[2..31],
267 SystemUseOnly set_SystemUseOnly
[31..32],
269 STRUCT
!{struct D3DDDI_ESCAPEFLAGS
{
272 BITFIELD
!{D3DDDI_ESCAPEFLAGS Value
: UINT
[
273 HardwareAccess set_HardwareAccess
[0..1],
274 DeviceStatusQuery set_DeviceStatusQuery
[1..2],
275 ChangeFrameLatency set_ChangeFrameLatency
[2..3],
276 NoAdapterSynchronization set_NoAdapterSynchronization
[3..4],
277 Reserved set_Reserved
[4..5],
278 VirtualMachineData set_VirtualMachineData
[5..6],
279 DriverKnownEscape set_DriverKnownEscape
[6..7],
280 DriverCommonEscape set_DriverCommonEscape
[7..8],
281 Reserved2 set_Reserved2
[8..24],
283 ENUM
!{enum D3DDDI_DRIVERESCAPETYPE
{
284 D3DDDI_DRIVERESCAPETYPE_TRANSLATEALLOCATIONHANDLE
= 0,
285 D3DDDI_DRIVERESCAPETYPE_TRANSLATERESOURCEHANDLE
= 1,
286 D3DDDI_DRIVERESCAPETYPE_MAX
,
288 STRUCT
!{struct D3DDDI_DRIVERESCAPE_TRANSLATEALLOCATIONEHANDLE
{
289 EscapeType
: D3DDDI_DRIVERESCAPETYPE
,
290 hAllocation
: D3DKMT_HANDLE
,
292 STRUCT
!{struct D3DDDI_DRIVERESCAPE_TRANSLATERESOURCEHANDLE
{
293 EscapeType
: D3DDDI_DRIVERESCAPETYPE
,
294 hResource
: D3DKMT_HANDLE
,
296 STRUCT
!{struct D3DDDI_CREATECONTEXTFLAGS
{
299 BITFIELD
!{D3DDDI_CREATECONTEXTFLAGS Value
: UINT
[
300 NullRendering set_NullRendering
[0..1],
301 InitialData set_InitialData
[1..2],
302 DisableGpuTimeout set_DisableGpuTimeout
[2..3],
303 SynchronizationOnly set_SynchronizationOnly
[3..4],
304 HwQueueSupported set_HwQueueSupported
[4..5],
305 Reserved set_Reserved
[5..32],
308 STRUCT
!{struct D3DDDICB_SIGNALFLAGS
{
311 BITFIELD
!{D3DDDICB_SIGNALFLAGS Value
: UINT
[
312 SignalAtSubmission set_SignalAtSubmission
[0..1],
313 EnqueueCpuEvent set_EnqueueCpuEvent
[1..2],
314 AllowFenceRewind set_AllowFenceRewind
[2..3],
315 Reserved set_Reserved
[3..31],
316 DXGK_SIGNAL_FLAG_INTERNAL0 set_DXGK_SIGNAL_FLAG_INTERNAL0
[31..32],
318 pub const D3DDDI_MAX_OBJECT_WAITED_ON
: usize = 32;
319 pub const D3DDDI_MAX_OBJECT_SIGNALED
: usize = 32;
320 ENUM
!{enum D3DDDI_SYNCHRONIZATIONOBJECT_TYPE
{
321 D3DDDI_SYNCHRONIZATION_MUTEX
= 1,
322 D3DDDI_SEMAPHORE
= 2,
324 D3DDDI_CPU_NOTIFICATION
= 4,
325 D3DDDI_MONITORED_FENCE
= 5,
326 D3DDDI_PERIODIC_MONITORED_FENCE
= 6,
327 D3DDDI_SYNCHRONIZATION_TYPE_LIMIT
,
330 STRUCT
!{struct D3DDDI_SYNCHRONIZATIONOBJECTINFO_u_SynchronizationMutex
{
333 STRUCT
!{struct D3DDDI_SYNCHRONIZATIONOBJECTINFO_u_Semaphore
{
337 STRUCT
!{struct D3DDDI_SYNCHRONIZATIONOBJECTINFO_u_Reserved
{
338 Reserved
: [UINT
; 16],
340 UNION
!{union D3DDDI_SYNCHRONIZATIONOBJECTINFO_u
{
342 SynchronizationMutex SynchronizationMutex_mut
:
343 D3DDDI_SYNCHRONIZATIONOBJECTINFO_u_SynchronizationMutex
,
344 Semaphore Semaphore_mut
: D3DDDI_SYNCHRONIZATIONOBJECTINFO_u_Semaphore
,
345 Reserved Reserved_mut
: D3DDDI_SYNCHRONIZATIONOBJECTINFO_u_Reserved
,
347 STRUCT
!{struct D3DDDI_SYNCHRONIZATIONOBJECTINFO
{
348 Type
: D3DDDI_SYNCHRONIZATIONOBJECT_TYPE
,
349 u
: D3DDDI_SYNCHRONIZATIONOBJECTINFO_u
,
351 STRUCT
!{struct D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS
{
354 BITFIELD
!{D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS Value
: UINT
[
355 Shared set_Shared
[0..1],
356 NtSecuritySharing set_NtSecuritySharing
[1..2],
357 CrossAdapter set_CrossAdapter
[2..3],
358 TopOfPipeline set_TopOfPipeline
[3..4],
359 NoSignal set_NoSignal
[4..5],
360 NoWait set_NoWait
[5..6],
361 NoSignalMaxValueOnTdr set_NoSignalMaxValueOnTdr
[6..7],
362 NoGPUAccess set_NoGPUAccess
[7..8],
363 Reserved set_Reserved
[8..31],
364 D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS_RESERVED0
365 set_D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS_RESERVED0
[31..32],
367 STRUCT
!{struct D3DDDI_SYNCHRONIZATIONOBJECTINFO2_u_SynchronizationMutex
{
370 STRUCT
!{struct D3DDDI_SYNCHRONIZATIONOBJECTINFO2_u_Semaphore
{
374 STRUCT
!{struct D3DDDI_SYNCHRONIZATIONOBJECTINFO2_u_Fence
{
377 STRUCT
!{struct D3DDDI_SYNCHRONIZATIONOBJECTINFO2_u_CPUNotification
{
380 STRUCT
!{struct D3DDDI_SYNCHRONIZATIONOBJECTINFO2_u_MonitoredFence
{
381 InitialFenceValue
: UINT64
,
382 FenceValueCPUVirtualAddress
: *mut VOID
,
383 FenceValueGPUVirtualAddress
: D3DGPU_VIRTUAL_ADDRESS
,
384 EngineAffinity
: UINT
,
386 STRUCT
!{struct D3DDDI_SYNCHRONIZATIONOBJECTINFO2_u_PeriodicMonitoredFence
{
387 hAdapter
: D3DKMT_HANDLE
,
388 VidPnTargetId
: D3DDDI_VIDEO_PRESENT_TARGET_ID
,
390 FenceValueCPUVirtualAddress
: *mut VOID
,
391 FenceValueGPUVirtualAddress
: D3DGPU_VIRTUAL_ADDRESS
,
392 EngineAffinity
: UINT
,
394 STRUCT
!{struct D3DDDI_SYNCHRONIZATIONOBJECTINFO2_u_Reserved
{
395 Reserved
: [UINT64
; 8],
397 UNION
!{union D3DDDI_SYNCHRONIZATIONOBJECTINFO2_u
{
399 SynchronizationMutex SynchronizationMutex_mut
:
400 D3DDDI_SYNCHRONIZATIONOBJECTINFO2_u_SynchronizationMutex
,
401 Semaphore Semaphore_mut
: D3DDDI_SYNCHRONIZATIONOBJECTINFO2_u_Semaphore
,
402 Fence Fence_mut
: D3DDDI_SYNCHRONIZATIONOBJECTINFO2_u_Fence
,
403 CPUNotification CPUNotification_mut
: D3DDDI_SYNCHRONIZATIONOBJECTINFO2_u_CPUNotification
,
404 MonitoredFence MonitoredFence_mut
: D3DDDI_SYNCHRONIZATIONOBJECTINFO2_u_MonitoredFence
,
405 PeriodicMonitoredFence PeriodicMonitoredFence_mut
:
406 D3DDDI_SYNCHRONIZATIONOBJECTINFO2_u_PeriodicMonitoredFence
,
407 Reserved Reserved_mut
: D3DDDI_SYNCHRONIZATIONOBJECTINFO2_u_Reserved
,
409 STRUCT
!{struct D3DDDI_SYNCHRONIZATIONOBJECTINFO2
{
410 Type
: D3DDDI_SYNCHRONIZATIONOBJECT_TYPE
,
411 Flags
: D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS
,
412 u
: D3DDDI_SYNCHRONIZATIONOBJECTINFO2_u
,
413 SharedHandle
: D3DKMT_HANDLE
,
416 pub const D3DDDI_MAX_BROADCAST_CONTEXT
: usize = 64;