D3DDDI_SYNCHRONIZATIONOBJECTINFO2 structure (d3dukmdt.h)

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

Syntax

typedef struct _D3DDDI_SYNCHRONIZATIONOBJECTINFO2 {
  [in]  D3DDDI_SYNCHRONIZATIONOBJECT_TYPE  Type;
  [in]  D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS Flags;
  union {
    struct {
      BOOL InitialState;
    } SynchronizationMutex;
    struct {
      UINT MaxCount;
      UINT InitialCount;
    } Semaphore;
    struct {
      D3DKMT_ALIGN64 UINT64 FenceValue;
    } Fence;
    struct {
      void D3DKMT_PTR(
    HANDLE unnamedParam1,
    Event  unnamedParam2
  );
    } CPUNotification;
    struct {
      D3DKMT_ALIGN64 UINT64                 InitialFenceValue;
      void                                  D3DKMT_PTR(
    VOID                        *unnamedParam1,
    FenceValueCPUVirtualAddress unnamedParam2
  );
      D3DKMT_ALIGN64 D3DGPU_VIRTUAL_ADDRESS FenceValueGPUVirtualAddress;
      UINT                                  EngineAffinity;
      UINT                                  Padding;
    } MonitoredFence;
    struct {
      D3DKMT_HANDLE                         hAdapter;
      D3DDDI_VIDEO_PRESENT_TARGET_ID        VidPnTargetId;
      D3DKMT_ALIGN64 UINT64                 Time;
      void                                  D3DKMT_PTR(
    VOID                        *unnamedParam1,
    FenceValueCPUVirtualAddress unnamedParam2
  );
      D3DKMT_ALIGN64 D3DGPU_VIRTUAL_ADDRESS FenceValueGPUVirtualAddress;
      UINT                                  EngineAffinity;
      UINT                                  Padding;
    } PeriodicMonitoredFence;
    struct {
      D3DKMT_ALIGN64 UINT64 Reserved[8];
    } Reserved;
  };
  [out] D3DKMT_HANDLE                      SharedHandle;
} D3DDDI_SYNCHRONIZATIONOBJECTINFO2;

Members

[in] Type

A value of type D3DDDI_SYNCHRONIZATIONOBJECT_TYPE that indicates the type of synchronization object.

[in] Flags

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

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, which contains the following member:

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.

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, which contains the following members:

Semaphore.MaxCount

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

Semaphore.InitialCount

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

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, which contains the following member:

Fence.FenceValue

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

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, which contains the following member:

void D3DKMT_PTR( HANDLE unnamedParam1, Event unnamedParam2)

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.

Supported starting with Windows 10.

[in] MonitoredFence.InitialFenceValue

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

Supported starting with Windows 10.

void D3DKMT_PTR( VOID *unnamedParam1, FenceValueCPUVirtualAddress unnamedParam2)

[out] MonitoredFence.FenceValueGPUVirtualAddress

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 the DirectX graphics kernel 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.

Supported starting with Windows 10.

[in] MonitoredFence.EngineAffinity

A bit field, where each bit position (starting from zero) defines a physical adapter index in an 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.

MonitoredFence.Padding

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.

[in] PeriodicMonitoredFence.hAdapter

A handle to the adapter associated with VidPnSourceID

PeriodicMonitoredFence.VidPnTargetId

[out] PeriodicMonitoredFence.Time

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.

[in] PeriodicMonitoredFence.FenceValueGPUVirtualAddress

Read-only mapping of the fence value for the GPU

[in] PeriodicMonitoredFence.EngineAffinity

Defines physical adapters where the GPU VA will be mapped

PeriodicMonitoredFence.Padding

Reserved

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

Reserved.Reserved[8]

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

[out] SharedHandle

A handle to the shared synchronization object if a shared handle currently exists. The shared handle is returned from the call to the D3DKMTCreateSynchronizationObject2 function.

Requirements

   
Minimum supported client D3DDDI_SYNCHRONIZATIONOBJECTINFO2 is supported beginning with the Windows 7 operating system.
Header d3dukmdt.h (include D3dumddi.h, D3dkmddi.h)

See also

D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS

D3DDDI_SYNCHRONIZATIONOBJECT_TYPE

D3DKMTCreateSynchronizationObject2

D3DKMT_CREATESYNCHRONIZATIONOBJECT2