Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  d3dukmdt.rs   Sprache: unbekannt

 
// 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;

[ Dauer der Verarbeitung: 0.2 Sekunden  (vorverarbeitet)  ]

                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge