Compartilhar via


Método ID3D11Fence::CreateSharedHandle (d3d11_3.h)

Cria um identificador compartilhado para um objeto de cerca.

Esse método é equivalente ao método Direct3D 12 ID3D12Device::CreateSharedHandle e se aplica a cenários que envolvem interoperação entre Direct3D 11 e Direct3D 12. No DirecX 11, você pode abrir a alça de cerca compartilhada com o método ID3D11Device5::OpenSharedFence. No DirecX 12, você pode abrir a alça de cerca compartilhada com o método ID3D12Device::OpenSharedHandle.

Sintaxe

HRESULT CreateSharedHandle(
  [in, optional] const SECURITY_ATTRIBUTES *pAttributes,
                 DWORD                     dwAccess,
  [in, optional] LPCWSTR                   lpName,
  [out]          HANDLE                    *pHandle
);

Parâmetros

[in, optional] pAttributes

Tipo: const SECURITY_ATTRIBUTES*

Um ponteiro para uma estrutura SECURITY_ATTRIBUTES que contém dois membros de dados separados, mas relacionados: um descritor de segurança opcional e um valor booliano que determina se os processos filho podem herdar o identificador retornado.

Defina esse parâmetro para NULL se você quiser processos filho que o aplicativo possa criar para não herdar o identificador retornado por CreateSharedHandlee se você quiser que o recurso associado ao identificador retornado obtenha um descritor de segurança padrão.

O lpSecurityDescriptor membro da estrutura especifica um SECURITY_DESCRIPTOR para o recurso. Defina esse membro como NULL se desejar que o runtime atribua um descritor de segurança padrão ao recurso associado ao identificador retornado. As ACLs no descritor de segurança padrão para o recurso vêm do token primário ou de representação do criador. Para obter mais informações, consulte direitos de acesso e segurança do objeto de sincronização.

dwAccess

Tipo: DWORD

Atualmente, o único valor que esse parâmetro aceita é GENERIC_ALL.

[in, optional] lpName

Tipo: LPCWSTR

Um cadeia de caracteresNULL unicode que contém o nome a ser associado ao heap compartilhado. O nome é limitado a MAX_PATH caracteres. A comparação de nomes diferencia maiúsculas de minúsculas.

Se Name corresponder ao nome de um recurso existente, CreateSharedHandle falhar com DXGI_ERROR_NAME_ALREADY_EXISTS. Isso ocorre porque esses objetos compartilham o mesmo namespace.

O nome pode ter um prefixo "Global" ou "Local" para criar explicitamente o objeto no namespace global ou de sessão. O restante do nome pode conter qualquer caractere, exceto o caractere de barra invertida (\). Para obter mais informações, consulte namespaces de objeto kernel. A alternância rápida de usuário é implementada usando sessões dos Serviços de Terminal. Os nomes de objeto kernel devem seguir as diretrizes descritas para os Serviços de Terminal para que os aplicativos possam dar suporte a vários usuários.

O objeto pode ser criado em um namespace privado. Para obter mais informações, consulte namespaces de objeto.

[out] pHandle

Tipo: HANDLE*

Um ponteiro para uma variável que recebe o valor NT HANDLE para o recurso a ser compartilhado. Você pode usar esse identificador em chamadas para acessar o recurso.

Valor de retorno

Tipo: HRESULT

Retorna S_OK se tiver êxito; caso contrário, retorna um dos seguintes valores:

  • DXGI_ERROR_INVALID_CALL se um dos parâmetros for inválido.
  • DXGI_ERROR_NAME_ALREADY_EXISTS se o nome fornecido do recurso a ser compartilhado já estiver associado a outro recurso.
  • E_ACCESSDENIED se o objeto estiver sendo criado em um namespace protegido.
  • E_OUTOFMEMORY se a memória suficiente não estiver disponível para criar o identificador.
  • Possivelmente outros códigos de erro descritos no tópico códigos de retorno do Direct3D 11.

Observações

Para criar uma alça compartilhada para a cerca especificada, a cerca deve ter sido criada com os sinalizadores D3D11_FENCE_FLAG_SHARED ou D3D11_FENCE_FLAG_SHARED_CROSS_ADAPTER. Para obter mais informações, consulte a enumeração D3D11_FENCE_FLAG.

Requisitos

Requisito Valor
da Plataforma de Destino Windows
cabeçalho d3d11_3.h
biblioteca D3D11.lib
de DLL D3D11.dll

Consulte também

ID3D11Fence