ID3D11Device1 ::OpenSharedResourceByName, méthode (d3d11_1.h)
Donne à un appareil l’accès à une ressource partagée référencée par son nom et qui a été créée sur un autre appareil. Vous devez avoir précédemment créé la ressource comme partagée et spécifié qu’elle utilise des handles NT (autrement dit, vous avez défini l’indicateur D3D11_RESOURCE_MISC_SHARED_NTHANDLE ).
Syntaxe
HRESULT OpenSharedResourceByName(
[in] LPCWSTR lpName,
[in] DWORD dwDesiredAccess,
[in] REFIID returnedInterface,
[out] void **ppResource
);
Paramètres
[in] lpName
Nom de la ressource à ouvrir. Ce paramètre ne peut pas avoir la valeur NULL.
[in] dwDesiredAccess
Droits d’accès demandés à la ressource. En plus des droits d’accès génériques, DXGI définit les valeurs suivantes :
- DXGI_SHARED_RESOURCE_READ ( 0x80000000L ) : spécifie l’accès en lecture à la ressource.
- DXGI_SHARED_RESOURCE_WRITE ( 1 ) : spécifie l’accès en écriture à la ressource.
[in] returnedInterface
Identificateur global unique (GUID) pour l’interface de ressource. Pour plus d’informations, consultez Remarques.
[out] ppResource
Pointeur vers une variable qui reçoit un pointeur vers l’interface à laquelle l’objet de ressource partagé doit accéder.
Valeur retournée
Cette méthode retourne l’un des codes de retour Direct3D 11. Cette méthode retourne également E_ACCESSDENIED si les autorisations d’accès à la ressource ne sont pas valides.
Mise à jour de la plateforme pour Windows 7 : Sur Windows 7 ou Windows Server 2008 R2 sur lequel la mise à jour de la plateforme pour Windows 7 est installée, OpenSharedResourceByName échoue avec E_NOTIMPL car NTHANDLES sont utilisés. Pour plus d’informations sur la mise à jour de plateforme pour Windows 7, consultez Mise à jour de plateforme pour Windows 7.
Remarques
Le comportement d’OpenSharedResourceByName est similaire au comportement de la méthode ID3D11Device1 ::OpenSharedResource1 ; chaque appel à OpenSharedResourceByName pour accéder à une ressource crée un objet de ressource. En d’autres termes, si vous appelez OpenSharedResourceByName deux fois et passez le même nom de ressource à lpName, vous recevez deux objets de ressource avec des pointeurs IUnknown différents.
Pour partager une ressource entre deux appareils
- Créez la ressource en tant que partagée et spécifiez qu’elle utilise des handles NT, en définissant l’indicateur D3D11_RESOURCE_MISC_SHARED_NTHANDLE .
- Obtenez le REFIID, ou GUID, de l’interface de la ressource à l’aide de la macro __uuidof(). Par exemple, __uuidof(ID3D11Texture2D) récupère le GUID de l’interface sur une texture 2D.
- Interrogez la ressource pour l’interface IDXGIResource1 .
- Appelez la méthode IDXGIResource1 ::CreateSharedHandle pour obtenir le handle unique de la ressource. Dans cet appel IDXGIResource1 ::CreateSharedHandle , vous devez passer un nom pour la ressource si vous souhaitez appeler par la suite OpenSharedResourceByName pour accéder à la ressource par son nom.
Exemples
ID3D11Device1* pDevice;
ID3D11Texture2D* pTexture2D;
pDevice->OpenSharedResourceByName(
"MySurface",
DXGI_SHARED_RESOURCE_READ,
__uuidof(ID3D11Texture2D),
(void**)&pTexture2D);
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 8 et mise à jour de plateforme pour Windows 7 [applications de bureau | Applications UWP] |
Serveur minimal pris en charge | Windows Server 2012 et mise à jour de plateforme pour Windows Server 2008 R2 [applications de bureau | Applications UWP] |
Plateforme cible | Windows |
En-tête | d3d11_1.h |
Bibliothèque | D3D11.lib |
Voir aussi
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour