Export (0) Print
Expand All
Expand Minimize

D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS structure

Identifies attributes of a synchronization object.

Syntax


typedef struct _D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS {
  union {
    struct {
      UINT Shared  :1;
      UINT NtSecuritySharing  :1;
#if ((DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM1_3) || \
     (D3D_UMD_INTERFACE_VERSION >= D3D_UMD_INTERFACE_VERSION_WDDM1_3))
      UINT CrossAdapter  :1;
#if ((DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_0) || \
     (D3D_UMD_INTERFACE_VERSION >= D3D_UMD_INTERFACE_VERSION_WDDM2_0))
      UINT TopOfPipeline  :1;
      UINT NoSignal  :1;
      UINT NoWait  :1;
      UINT NoSignalMaxValueOnTdr  :1;
      UINT Reserved  :24;
#else 
      UINT Reserved  :28;
#endif 
#else 
      UINT Reserved  :29;
#endif 
      UINT D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS_RESERVED0  :1;
    };
    UINT Value;
  };
} D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS;

Members

Shared

A UINT value that specifies whether the synchronization object is shared.

If Shared is set to 1 (TRUE), the synchronization object is shared. If Shared is set to zero (FALSE), the synchronization object is not shared.

For more information, see the Remarks section.

NtSecuritySharing

A UINT value that specifies whether the synchronization object is shared with an NT handle, meaning that it does not have a global D3DKMT_HANDLE kernel-mode handle to the resource.

If NtSecuritySharing is set to 1 (TRUE), the synchronization object is shared but does not have a global D3DKMT_HANDLE handle to the resource.

Note  If NtSecuritySharing is set to 1, Shared must be set to 1.

For more information, see the Remarks section.

Supported starting with Windows 8.

CrossAdapter

A UINT value that specifies whether the synchronization object is a shared cross-adapter object on a hybrid system.

If CrossAdapter is set to 1 (TRUE), the synchronization object is a shared cross-adapter object. If CrossAdapter is set to zero (FALSE), the synchronization object is not a shared cross-adapter object.

For more information, see Using cross-adapter resources in a hybrid system.

TopOfPipeline
ValueMeaning
TRUE

Specifies whether the synchronization object is signaled as soon as the contents of command buffer preceding it is entirely copied to the GPU pipeline, but not necessarily completed execution. This behavior allows reusing command buffers as soon as possible.

FALSE

The synchronization object is signaled after the preceding command buffers completed execution.

 

This value can only be set to 1 (TRUE) for monitored fence synchronization objects, and it should be set to zero (FALSE) for all other synchronization object types.

Supported starting with Windows 10 Technical Preview.

NoSignal
ValueMeaning
TRUE

Specifies the device this sync object is created or opened on can only submit wait commands for it. An attempt to submit a signal operation when this flag is set will return STATUS_ACCESS_DENIED.

FALSE

The synchronization object can be signaled.

 

This value can only be set to 1 (TRUE) for monitored fence synchronization objects, and it should be set to zero (FALSE) for all other synchronization object types.

Supported starting with Windows 10 Technical Preview.

NoWait
ValueMeaning
TRUE

Specifies the device this sync object is created or opened on can only submit signal commands for it. An attempt to submit a wait operation when this flag is set will return STATUS_ACCESS_DENIED.

FALSE

The synchronization object can be waited on.

 

This value can only be set to 1 (TRUE) for monitored fence synchronization objects, and it should be set to zero (FALSE) for all other synchronization object types.

This flag cannot be set simultaneously with NoSignal flag.

Supported starting with Windows 10 Technical Preview.

NoSignalMaxValueOnTdr
ValueMeaning
TRUE

Instructs the GPU scheduler to bypass the aforementioned signaling of the monitored fence to the maximum value in TDR cases.

FALSE

The GPU scheduler will signal the monitored fence to the maximum value when a device that can potentially signal it is affected by the GPU reset (TDR).

 

Supported starting with Windows 10 Technical Preview.

Reserved

This member is reserved and should be set to zero.

Reserved

This member is reserved and should be set to zero.

Reserved

This member is reserved and should be set to zero.

D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS_RESERVED0

This member is reserved and should be set to zero.

Supported starting with Windows 8.

Value

[in] A member in the union that is contained in D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS that can hold one 32-bit value that identifies attributes of a synchronization object.

Remarks

Objects to be shared by using the D3DKMTShareObjects function must first be created with the NtSecuritySharing flag value set. This flag value is available in the D3DKMT_CREATEALLOCATIONFLAGS, D3DKMT_CREATEKEYEDMUTEX2_FLAGS, and D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS structures.

Drivers should follow these guidelines on D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS flags:

  • If the synchronization object is not shared, set both Shared and NtSecuritySharing to 0.
  • If the synchronization object is shared with a D3DKMT_HANDLE data type, set Shared = 1 and NtSecuritySharing = 0.
  • If the synchronization object is shared with an NT handle to the process (and without a global D3DKMT_HANDLE kernel-mode handle to the resource), set Shared = 1 and NtSecuritySharing = 1.

Requirements

Version

D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS is supported beginning with the Windows 7 operating system.

Header

D3dukmdt.h (include D3dumddi.h or D3dkmddi.h)

See also

D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS
D3DDDI_SYNCHRONIZATIONOBJECTINFO2
D3DKMT_CREATEALLOCATIONFLAGS
D3DKMT_CREATEKEYEDMUTEX2_FLAGS
D3DKMTShareObjects

 

 

Send comments about this topic to Microsoft

Show:
© 2015 Microsoft