Compartir a través de


estructura D3DKMT_OPENSYNCOBJECTFROMNTHANDLE2 (d3dkmthk.h)

D3DKMT_OPENSYNCOBJECTFROMNTHANDLE2 se usa con D3DKMTOpenSyncObjectFromNtHandle2 para abrir un objeto de barrera supervisado.

Sintaxis

typedef struct _D3DKMT_OPENSYNCOBJECTFROMNTHANDLE2 {
  [in]  HANDLE                             hNtHandle;
  [in]  D3DKMT_HANDLE                      hDevice;
  [in]  D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS Flags;
  [out] D3DKMT_HANDLE                      hSyncObject;
  union {
    struct {
      VOID                                  *FenceValueCPUVirtualAddress;
      D3DKMT_ALIGN64 D3DGPU_VIRTUAL_ADDRESS FenceValueGPUVirtualAddress;
      UINT                                  EngineAffinity;
    } MonitoredFence;
          D3DKMT_ALIGN64 UINT64 Reserved[8];
  };
} D3DKMT_OPENSYNCOBJECTFROMNTHANDLE2;

Miembros

[in] hNtHandle

Identificador NT para el objeto de sincronización que se va a abrir.

[in] hDevice

Identificador de dispositivo para usar este objeto de sincronización activado.

[in] Flags

Especifica el comportamiento del objeto de sincronización deseado para este dispositivo, como la semántica de espera y señal y el control de TDR.

[out] hSyncObject

Controle el objeto de sincronización que se puede usar en este proceso.

MonitoredFence

Contiene direcciones virtuales de objetos de sincronización que se pueden usar en este proceso.

[out] MonitoredFence.FenceValueCPUVirtualAddress

Asignación de solo lectura del valor de barrera para la CPU. Se trata de una dirección de modo de usuario legible del proceso que creó el objeto de barrera supervisada. Para las plataformas de 32 bits que admiten lecturas atómicas de 64 bits a través de métodos como InterlockedCompareExchange64(pointer,0,0), la asignación se realizará de lectura y escritura en lugar de solo lectura para evitar una infracción de acceso durante la operación interbloqueada. Dependiendo del valor de límite no64BitAtomics, esta dirección apunta a un valor subyacente de 32 o 64 bits.

[out] MonitoredFence.FenceValueGPUVirtualAddress

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 el kernel de gráficos directX desbloqueará a los esperadores para este valor de objeto de barrera. Esta dirección virtual de GPU se asigna de forma asincrónica y el controlador debe esperar a que el dispositivo que abrió o creó el objeto de sincronización de barrera supervisada llegue a PagingFenceValue en su objeto de barrera de paginación antes de acceder a esta dirección virtual de GPU. Dependiendo del valor de límite no64BitAtomics, esta dirección apunta a un valor subyacente de 32 o 64 bits.

[in] MonitoredFence.EngineAffinity

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 vinculado 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.

Reserved[8]

Valor consolidado de la estructura monitoredFence de .

Requisitos

Requisito Valor
cliente mínimo admitido Windows 10
servidor mínimo admitido Windows Server 2016
encabezado de d3dkmthk.h (incluya D3dkmthk.h)

Consulte también

D3DKMTOpenSyncObjectFromNtHandle2