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

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)

Consulte também

D3DKMTOpenSyncObjectFromNtHandle2