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) |