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

Crea un identificador compartido en un objeto de barrera.

Este método es equivalente al método Direct3D 12 ID3D12Device::CreateSharedHandle y se aplica en escenarios que implican interoperación entre Direct3D 11 y Direct3D 12. En DirecX 11, puede abrir el controlador de barrera compartida con el método ID3D11Device5::OpenSharedFence . En DirecX 12, puede abrir el controlador de barrera compartida con el método ID3D12Device::OpenSharedHandle .

Sintaxis

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*

Puntero a una estructura de SECURITY_ATTRIBUTES que contiene dos miembros de datos independientes pero relacionados: un descriptor de seguridad opcional y un valor booleano que determina si los procesos secundarios pueden heredar el identificador devuelto.

Establezca este parámetro en NULL si desea que los procesos secundarios que la aplicación cree no hereden el identificador devuelto por CreateSharedHandle y si desea que el recurso asociado al identificador devuelto obtenga un descriptor de seguridad predeterminado.

El miembro lpSecurityDescriptor de la estructura especifica un SECURITY_DESCRIPTOR para el recurso. Establezca este miembro en NULL si desea que el runtime asigne un descriptor de seguridad predeterminado al recurso asociado al identificador devuelto. Las ACL del descriptor de seguridad predeterminado para el recurso proceden del token principal o de suplantación del creador. Para obtener más información, consulte Seguridad de objetos de sincronización y derechos de acceso.

dwAccess

Tipo: DWORD

Actualmente, el único valor que acepta este parámetro es GENERIC_ALL.

[in, optional] lpName

Tipo: LPCWSTR

Cadena UNICODE terminada en NULL que contiene el nombre que se va a asociar al montón compartido. El nombre está limitado a MAX_PATH caracteres. La comparación de nombres distingue mayúsculas de minúsculas.

Si Name coincide con el nombre de un recurso existente, CreateSharedHandle produce un error con DXGI_ERROR_NAME_ALREADY_EXISTS. Esto ocurre porque estos objetos comparten el mismo espacio de nombres.

El nombre puede tener un prefijo "Global" o "Local" para crear explícitamente el objeto en el espacio de nombres global o de sesión. El resto del nombre puede contener cualquier carácter excepto el carácter de barra diagonal inversa (\). Para obtener más información, vea Espacios de nombres de objeto kernel. El cambio rápido de usuario se implementa mediante sesiones de Terminal Services. Los nombres de objeto de kernel deben seguir las directrices descritas para Terminal Services para que las aplicaciones puedan admitir varios usuarios.

El objeto se puede crear en un espacio de nombres privado. Para obtener más información, vea Espacios de nombres de objeto.

[out] pHandle

Tipo: HANDLE*

Puntero a una variable que recibe el valor NT HANDLE al recurso que se va a compartir. Puede usar este identificador en las llamadas para acceder al recurso.

Valor devuelto

Tipo: HRESULT

Devuelve S_OK si se ejecuta correctamente; de lo contrario, devuelve uno de los valores siguientes:

  • DXGI_ERROR_INVALID_CALL si uno de los parámetros no es válido.
  • DXGI_ERROR_NAME_ALREADY_EXISTS si el nombre proporcionado del recurso que se va a compartir ya está asociado a otro recurso.
  • E_ACCESSDENIED si el objeto se está creando en un espacio de nombres protegido.
  • E_OUTOFMEMORY si no hay suficiente memoria disponible para crear el identificador.
  • Posiblemente otros códigos de error que se describen en el tema Códigos de retorno de Direct3D 11 .

Comentarios

Para crear un identificador compartido para la valla especificada, la valla debe haberse creado con las marcas D3D11_FENCE_FLAG_SHARED o D3D11_FENCE_FLAG_SHARED_CROSS_ADAPTER . Para obtener más información, consulte la enumeración D3D11_FENCE_FLAG .

Requisitos

Requisito Value
Plataforma de destino Windows
Encabezado d3d11_3.h
Library D3D11.lib
Archivo DLL D3D11.dll

Consulte también

ID3D11Fence