// 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 =
0 x1052;
pub const DXGKDDI_INTERFACE_VERSION_VISTA_SP1: ULONG =
0 x1053;
pub const DXGKDDI_INTERFACE_VERSION_WIN7: ULONG =
0 x2005;
pub const DXGKDDI_INTERFACE_VERSION_WIN8: ULONG =
0 x300E;
pub const DXGKDDI_INTERFACE_VERSION_WDDM1_3: ULONG =
0 x4002;
pub const DXGKDDI_INTERFACE_VERSION_WDDM1_3_PATH_INDEPENDENT_ROTATION: ULONG =
0 x4003
;
pub const DXGKDDI_INTERFACE_VERSION_WDDM2_0: ULONG = 0 x5023;
pub const DXGKDDI_INTERFACE_VERSION_WDDM2_1: ULONG = 0 x6003;
pub const DXGKDDI_INTERFACE_VERSION_WDDM2_1_5: ULONG = 0 x6010;
pub const DXGKDDI_INTERFACE_VERSION_WDDM2_2: ULONG = 0 x700A;
pub const DXGKDDI_INTERFACE_VERSION_WDDM2_3: ULONG = 0 x8001;
pub const DXGKDDI_INTERFACE_VERSION_WDDM2_4: ULONG = 0 x9006;
pub const DXGKDDI_INTERFACE_VERSION_WDDM2_5: ULONG = 0 xA00B;
#[ 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 = 0 x000C;
pub const D3D_UMD_INTERFACE_VERSION_WIN7: ULONG = 0 x2003;
pub const D3D_UMD_INTERFACE_VERSION_WIN8_M3: ULONG = 0 x3001;
pub const D3D_UMD_INTERFACE_VERSION_WIN8_CP: ULONG = 0 x3002;
pub const D3D_UMD_INTERFACE_VERSION_WIN8_RC: ULONG = 0 x3003;
pub const D3D_UMD_INTERFACE_VERSION_WIN8: ULONG = 0 x3004;
pub const D3D_UMD_INTERFACE_VERSION_WDDM1_3: ULONG = 0 x4002;
pub const D3D_UMD_INTERFACE_VERSION_WDDM2_0_M1: ULONG = 0 x5000;
pub const D3D_UMD_INTERFACE_VERSION_WDDM2_0_M1_3: ULONG = 0 x5001;
pub const D3D_UMD_INTERFACE_VERSION_WDDM2_0_M2_2: ULONG = 0 x5002;
pub const D3D_UMD_INTERFACE_VERSION_WDDM2_0: ULONG = 0 x5002;
pub const D3D_UMD_INTERFACE_VERSION_WDDM2_1_1: ULONG = 0 x6000;
pub const D3D_UMD_INTERFACE_VERSION_WDDM2_1_2: ULONG = 0 x6001;
pub const D3D_UMD_INTERFACE_VERSION_WDDM2_1_3: ULONG = 0 x6002;
pub const D3D_UMD_INTERFACE_VERSION_WDDM2_1_4: ULONG = 0 x6003;
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 = 0 x7000;
pub const D3D_UMD_INTERFACE_VERSION_WDDM2_2_2: ULONG = 0 x7001;
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 = 0 x8000;
pub const D3D_UMD_INTERFACE_VERSION_WDDM2_3_2: ULONG = 0 x8001;
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 = 0 x9000;
pub const D3D_UMD_INTERFACE_VERSION_WDDM2_4_2: ULONG = 0 x9001;
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 = 0 xA000;
pub const D3D_UMD_INTERFACE_VERSION_WDDM2_5_2: ULONG = 0 xA001;
pub const D3D_UMD_INTERFACE_VERSION_WDDM2_5_3: ULONG = 0 xA002;
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 = 0 x8000000000000000;
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 = 0 xFFF;
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 ;
Messung V0.5 in Prozent C=85 H=100 G=92
¤ Dauer der Verarbeitung: 0.16 Sekunden
(vorverarbeitet am 2026-06-22)
¤
*© Formatika GbR, Deutschland