estrutura D3DKMT_OPENSYNCOBJECTFROMNTHANDLE2 (d3dkmthk.h)
D3DKMT_OPENSYNCOBJECTFROMNTHANDLE2 é usado com D3DKMTOpenSyncObjectFromNtHandle2 para abrir um objeto de cerca monitorado.
Sintaxe
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;
Membros
[in] hNtHandle
Identificador NT para o objeto de sincronização a ser aberto.
[in] hDevice
Identificador de dispositivo no qual usar esse objeto de sincronização.
[in] Flags
Especifica o comportamento de objeto de sincronização desejado para este dispositivo, como espera e semântica de sinal e manipulação de TDR.
[out] hSyncObject
Manipule para o objeto de sincronização que pode ser usado nesse processo.
MonitoredFence
Contém endereços virtuais de objeto de sincronização que podem ser usados nesse processo.
[out] MonitoredFence.FenceValueCPUVirtualAddress
Um mapeamento somente leitura do valor da cerca para a CPU. Esse é um endereço de modo de usuário legível do processo que criou o objeto de cerca monitorado. Para plataformas de 32 bits que dão suporte a leituras atômicas de 64 bits por meio de métodos como InterlockedCompareExchange64(pointer,0,0)
, o mapeamento será feito leitura-gravação em vez de somente leitura para evitar uma violação de acesso durante a operação intertravada. Dependendo do valor de limite de No64BitAtomics, esse endereço aponta para um valor subjacente de 32 bits ou 64 bits.
[out] MonitoredFence.FenceValueGPUVirtualAddress
Um mapeamento de leitura/gravação do valor da cerca para a GPU. Um driver pode sinalizar um novo valor de cerca inserindo um comando de gravação de GPU para esse endereço em um buffer de comando, e o kernel de elementos gráficos DirectX desbloqueará garçons para esse valor de objeto de cerca. Esse endereço virtual de GPU é mapeado de forma assíncrona e o driver deve aguardar o dispositivo que abriu ou criou o objeto de sincronização de cerca monitorado para alcançar PagingFenceValue em seu objeto de cerca de paginação antes de acessar esse endereço virtual de GPU. Dependendo do valor de limite de No64BitAtomics, esse endereço aponta para um valor subjacente de 32 bits ou 64 bits.
[in] MonitoredFence.EngineAffinity
Um campo de bits, em que cada posição de bit (a partir de zero) define um índice de adaptador físico em um link do adaptador de exibição vinculado em que o endereço virtual da GPU será confirmado. Zero significa que o endereço virtual de GPU será confirmado para todos os adaptadores físicos.
Reserved[8]
O valor consolidado da estrutura de
Requisitos
Requisito | Valor |
---|---|
de cliente com suporte mínimo | Windows 10 |
servidor com suporte mínimo | Windows Server 2016 |
cabeçalho | d3dkmthk.h (inclua D3dkmthk.h) |