Skip to content

Latest commit

 

History

History
180 lines (111 loc) · 7.8 KB

ns-d3dukmdt-_d3dddi_synchronizationobjectinfo2.md

File metadata and controls

180 lines (111 loc) · 7.8 KB
UID title description tech.root ms.date keywords req.header req.include-header req.target-type req.target-min-winverclnt req.target-min-winversvr req.kmdf-ver req.umdf-ver req.ddi-compliance req.unicode-ansi req.idl req.max-support req.namespace req.assembly req.type-library req.lib req.dll req.irql targetos req.typenames f1_keywords topic_type api_type api_location api_name
NS:d3dukmdt._D3DDDI_SYNCHRONIZATIONOBJECTINFO2
D3DDDI_SYNCHRONIZATIONOBJECTINFO2 (d3dukmdt.h)
Learn more about the D3DDDI_SYNCHRONIZATIONOBJECTINFO2 structure.
display
04/12/2024
D3DDDI_SYNCHRONIZATIONOBJECTINFO2 structure
d3dukmdt.h
D3dumddi.h, D3dkmddi.h
Windows
Windows 7
Windows
D3DDDI_SYNCHRONIZATIONOBJECTINFO2
_D3DDDI_SYNCHRONIZATIONOBJECTINFO2
d3dukmdt/_D3DDDI_SYNCHRONIZATIONOBJECTINFO2
D3DDDI_SYNCHRONIZATIONOBJECTINFO2
d3dukmdt/D3DDDI_SYNCHRONIZATIONOBJECTINFO2
APIRef
kbSyntax
HeaderDef
d3dukmdt.h
_D3DDDI_SYNCHRONIZATIONOBJECTINFO2
D3DDDI_SYNCHRONIZATIONOBJECTINFO2

D3DDDI_SYNCHRONIZATIONOBJECTINFO2 structure

-description

The D3DDDI_SYNCHRONIZATIONOBJECTINFO2 structure contains information about a second-generation synchronization object.

-struct-fields

-field Type

[in] A value of type D3DDDI_SYNCHRONIZATIONOBJECT_TYPE that indicates the type of synchronization object.

-field Flags

[in] A D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS structure that specifies, in bit-field flags, attributes of the synchronization object.

-field SynchronizationMutex

A structure that contains information about a synchronization mutex. If the Type member is equal to D3DDDI_SYNCHRONIZATION_MUTEX, the union in D3DDDI_SYNCHRONIZATIONOBJECTINFO2 holds a SynchronizationMutex structure.

-field SynchronizationMutex.InitialState

A Boolean value that indicates whether the synchronization mutex is initially owned by an object. A value of TRUE indicates that the mutex is owned; FALSE indicates that the mutex is not owned.

-field Semaphore

A structure that contains information about a semaphore. If the Type member is equal to D3DDDI_SEMAPHORE, the union in D3DDDI_SYNCHRONIZATIONOBJECTINFO2 holds a Semaphore structure.

-field Semaphore.MaxCount

The maximum number of events that an object can be waiting for.

-field Semaphore.InitialCount

The initial number of events that an object is waiting for.

-field Fence

A structure that contains information about a fence. If the Type member is equal to D3DDDI_FENCE, the union in D3DDDI_SYNCHRONIZATIONOBJECTINFO2 holds a Fence structure.

-field Fence.FenceValue

A 64-bit value that specifies the initial fence value.

-field CPUNotification

A structure that contains information about a CPU notification. If the Type member is equal to D3DDDI_CPU_NOTIFICATION, the union in D3DDDI_SYNCHRONIZATIONOBJECTINFO2 holds a CPUNotification structure.

-field CPUNotification.Event

The handle to the CPU notification event.

-field MonitoredFence

A structure that contains information about a monitored fence. If the Type member is equal to D3DDDI_MONITORED_FENCE, the union in D3DDDI_SYNCHRONIZATIONOBJECTINFO2 holds a MonitoredFence structure.

Monitored fences can be shared only by using NT handles for security reasons, so the NtSecuritySharing flag must be set when using a monitored fence.

Supported starting with Windows 10.

-field MonitoredFence.InitialFenceValue

[in] A 64-bit value that specifies the initial fence value.

Supported starting with Windows 10.

-field MonitoredFence.FenceValueCPUVirtualAddress

[out] A read-only mapping of the fence value for the CPU. This is a user mode address readable from the process that created the monitored fence object. For 32 bit platforms that support 64 bit atomic reads via methods such as InterlockedCompareExchange64(pointer,0,0), the mapping will be made read-write instead of read-only to avoid an access violation during the interlocked operation. Depending on the value of No64BitAtomics cap, this address points to either a 32 bit or a 64 bit underlying value.

Supported starting with Windows 10.

-field MonitoredFence.FenceValueGPUVirtualAddress

[out] A read-write mapping of the fence value for the GPU. A driver can signal a new fence value by inserting a GPU write command for this address into a command buffer, and Dxgkrnl will unblock waiters for this fence object value. Depending on the value of No64BitAtomics cap, this address points to either a 32 bit or a 64 bit underlying value. If the device doesn’t support cache coherency with the CPU, it shouldn't write to the fence value using the GPU virtual address. Access to the fence value should be done only by the CPU.

Supported starting with Windows 10.

-field MonitoredFence.EngineAffinity

[in] A bit field, where each bit position (starting from zero) defines a physical adapter index in a link display adapter (LDA) link where the GPU virtual address will be committed. Zero means that the GPU virtual address will be committed to all physical adapters.

Supported starting with Windows 10.

-field PeriodicMonitoredFence

A structure that contains information about a periodic monitored fence. If the Type member is equal to D3DDDI_PERIODIC_MONITORED_FENCE, the union in D3DDDI_SYNCHRONIZATIONOBJECTINFO2 holds a MonitoredFence structure.

Supported starting with Windows 10.

VidPnTargetID

[out] The output ID that the compositor wishes to receive notifications for.

-field PeriodicMonitoredFence.hAdapter

[in] A handle to the adapter associated with VidPnSourceID

-field PeriodicMonitoredFence.VidPnTargetId

-field PeriodicMonitoredFence.Time

[out] Represents an offset before the VSync (time of VSync – Time parameter). The Time value may not be longer than a VSync interval (1 / DisplayModeRefresh). Time is specified in units of 100ns.

-field PeriodicMonitoredFence.FenceValueCPUVirtualAddress

[in] Read-only mapping of the fence value for the CPU

-field PeriodicMonitoredFence.FenceValueGPUVirtualAddress

[in] Read-only mapping of the fence value for the GPU

-field PeriodicMonitoredFence.EngineAffinity

[in] Defines physical adapters where the GPU VA will be mapped

-field Reserved

A structure that is reserved for future use. This structure contains the following member:

-field Reserved.[8]

An array of 64-bit values that are reserved for future use.

-field SharedHandle

[out] A handle to the shared synchronization object if a shared handle currently exists. The driver should share synchronization objects using NT handles. It should set the D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS::NtSecuritySharing to indicate that the object will be shared using NT handles and call D3DKMTShareObjects to get an NT handle. Using global handles is not secure. Any process can guess a global handle and open a shared objects. Global handles are supported only for compatibility reasons with old D3D runtimes.

-see-also

D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS

D3DDDI_SYNCHRONIZATIONOBJECT_TYPE

D3DKMTCreateSynchronizationObject

D3DKMT_CREATESYNCHRONIZATIONOBJECT2