estructura D3DDDI_SYNCHRONIZATIONOBJECTINFO2 (d3dukmdt.h)

La estructura D3DDDI_SYNCHRONIZATIONOBJECTINFO2 contiene información sobre un objeto de sincronización de segunda generación.

Sintaxis

typedef struct _D3DDDI_SYNCHRONIZATIONOBJECTINFO2 {
  D3DDDI_SYNCHRONIZATIONOBJECT_TYPE  Type;
  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;
  };
  D3DKMT_HANDLE                      SharedHandle;
} D3DDDI_SYNCHRONIZATIONOBJECTINFO2;

Miembros

Type

[in] Valor de tipo D3DDDI_SYNCHRONIZATIONOBJECT_TYPE que indica el tipo de objeto de sincronización.

Flags

[in] Estructura D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS que especifica, en marcas de campo de bits, atributos del objeto de sincronización.

SynchronizationMutex

Estructura que contiene información sobre una exclusión mutua de sincronización. Si el miembro Type es igual a D3DDDI_SYNCHRONIZATION_MUTEX, la unión de D3DDDI_SYNCHRONIZATIONOBJECTINFO2 contiene una estructura SynchronizationMutex .

SynchronizationMutex.InitialState

Valor booleano que indica si la exclusión mutua de sincronización es propiedad inicial de un objeto . Un valor de TRUE indica que la exclusión mutua es propiedad; FALSE indica que la exclusión mutua no es propiedad.

Semaphore

Estructura que contiene información sobre un semáforo. Si el miembro Type es igual a D3DDDI_SEMAPHORE, la unión de D3DDDI_SYNCHRONIZATIONOBJECTINFO2 contiene una estructura semáforo .

Semaphore.MaxCount

Número máximo de eventos que un objeto puede estar esperando.

Semaphore.InitialCount

Número inicial de eventos que un objeto está esperando.

Fence

Estructura que contiene información sobre una valla. Si el miembro Type es igual a D3DDDI_FENCE, la unión de D3DDDI_SYNCHRONIZATIONOBJECTINFO2 contiene una estructura Delimitación .

Fence.FenceValue

Valor de 64 bits que especifica el valor inicial de la barrera.

CPUNotification

Estructura que contiene información sobre una notificación de CPU. Si el miembro Type es igual a D3DDDI_CPU_NOTIFICATION, la unión de D3DDDI_SYNCHRONIZATIONOBJECTINFO2 contiene una estructura CPUNotification .

void D3DKMT_PTR( HANDLE unnamedParam1, Event unnamedParam2)

MonitoredFence

Estructura que contiene información sobre una valla supervisada. Si el miembro Type es igual a D3DDDI_MONITORED_FENCE, la unión de D3DDDI_SYNCHRONIZATIONOBJECTINFO2 contiene una estructura MonitoredFence .

Las vallas supervisadas solo se pueden compartir mediante identificadores NT por motivos de seguridad, por lo que la marca NtSecuritySharing debe establecerse al usar una valla supervisada.

Se admite a partir de Windows 10.

MonitoredFence.InitialFenceValue

[in] Valor de 64 bits que especifica el valor inicial de la barrera.

Se admite a partir de Windows 10.

void D3DKMT_PTR( VOID *unnamedParam1, FenceValueCPUVirtualAddress unnamedParam2)

MonitoredFence.FenceValueGPUVirtualAddress

[out] Una asignación de lectura y escritura del valor de barrera para la GPU. Un controlador puede indicar un nuevo valor de barrera insertando un comando de escritura de GPU para esta dirección en un búfer de comandos y Dxgkrnl desbloqueará a los esperadores para este valor de objeto de barrera. Dependiendo del valor de No64BitAtomics cap, esta dirección apunta a un valor subyacente de 32 o 64 bits. Si el dispositivo no admite la coherencia de caché con la CPU, no debe escribir en el valor de barrera mediante la dirección virtual de GPU. El acceso al valor de barrera solo debe realizarse mediante la CPU.

Se admite a partir de Windows 10.

MonitoredFence.EngineAffinity

[in] Un campo de bits, donde cada posición de bits (a partir de cero) define un índice de adaptador físico en un vínculo del adaptador de pantalla de vínculo (LDA) donde se confirmará la dirección virtual de GPU. Cero significa que la dirección virtual de GPU se confirmará en todos los adaptadores físicos.

Se admite a partir de Windows 10.

MonitoredFence.Padding

PeriodicMonitoredFence

Estructura que contiene información sobre una valla supervisada periódica. Si el miembro Type es igual a D3DDDI_PERIODIC_MONITORED_FENCE, la unión de D3DDDI_SYNCHRONIZATIONOBJECTINFO2 contiene una estructura MonitoredFence .

Se admite a partir de Windows 10.

VidPnTargetID

[out] Identificador de salida para el que el compositor desea recibir notificaciones.

PeriodicMonitoredFence.hAdapter

[in] Identificador del adaptador asociado a VidPnSourceID

PeriodicMonitoredFence.VidPnTargetId

PeriodicMonitoredFence.Time

[out] Representa un desplazamiento antes de la sincronización virtual (hora de VSync : parámetro Time). El valor time puede no ser mayor que un intervalo de VSync (1 / DisplayModeRefresh). El tiempo se especifica en unidades de 100ns.

PeriodicMonitoredFence.FenceValueGPUVirtualAddress

[in] Asignación de solo lectura del valor de barrera para la GPU

PeriodicMonitoredFence.EngineAffinity

[in] Define los adaptadores físicos en los que se asignará la VA de GPU.

PeriodicMonitoredFence.Padding

Reserved

Estructura reservada para uso futuro. Esta estructura contiene el siguiente miembro:

Reserved.Reserved[8]

SharedHandle

[out] Identificador del objeto de sincronización compartido si actualmente existe un identificador compartido. El controlador debe compartir objetos de sincronización mediante identificadores NT. Debe establecer el D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS::NtSecuritySharing para indicar que el objeto se compartirá mediante identificadores NT y llamará a D3DKMTShareObjects para obtener un identificador NT. El uso de identificadores globales no es seguro. Cualquier proceso puede adivinar un identificador global y abrir objetos compartidos. Los identificadores globales solo se admiten por motivos de compatibilidad con entornos de ejecución D3D antiguos.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 7
Encabezado d3dukmdt.h (incluya D3dumddi.h, D3dkmddi.h)

Consulte también

D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS

D3DDDI_SYNCHRONIZATIONOBJECT_TYPE

D3DKMTCreateSynchronizationObject

D3DKMT_CREATESYNCHRONIZATIONOBJECT2