Compartir a través de


Método ID3D12Device::CreateSharedHandle (d3d12.h)

Crea un identificador compartido en un montón, un recurso o un objeto de barrera.

Sintaxis

HRESULT CreateSharedHandle(
  [in]           ID3D12DeviceChild         *pObject,
  [in, optional] const SECURITY_ATTRIBUTES *pAttributes,
                 DWORD                     Access,
  [in, optional] LPCWSTR                   Name,
  [out]          HANDLE                    *pHandle
);

Parámetros

[in] pObject

Tipo: ID3D12DeviceChild*

Puntero a la interfaz ID3D12DeviceChild que representa el montón, el recurso o el objeto de barrera que se va a crear para el uso compartido. Se admiten las interfaces siguientes (derivadas de ID3D12DeviceChild):

[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 de 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 cree la aplicación no hereden el identificador devuelto por CreateSharedHandley 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 tiempo de ejecución 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, consulta Seguridad de objetos de sincronización y derechos de acceso.

Access

Tipo: DWORD de

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

[in, optional] Name

Tipo: LPCWSTR de

CadenaUNICODE terminada NULL cadena 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 Nombre 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 de

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 siguientes valores:

Observaciones

Se pueden compartir los montones y los recursos confirmados. Compartir un recurso confirmado comparte el montón implícito junto con la descripción del recurso confirmado, de modo que una descripción de recursos compatible se pueda asignar al montón desde otro dispositivo.

Para escenarios de interoperabilidad de Direct3D 11 y Direct3D 12, se abre una barrera compartida en DirectX 11 con el método ID3D11Device5::OpenSharedFence y se abre un recurso compartido con el método ID3D11Device::OpenSharedResource1.

Para Direct3D 12, se abre un identificador compartido con el método ID3D12Device::OpenSharedHandle o id3D12Device::OpenSharedHandleByName.

Requisitos

Requisito Valor
de la plataforma de destino de Windows
encabezado de d3d12.h
biblioteca de D3D12.lib
DLL de D3D12.dll

Consulte también

ID3D12Device