D3DKMTShareObjects, fonction (d3dkmthk.h)
D3DKMTShareObjects partage des objets de ressources créés avec les fonctions D3KMDTCreateAllocation, D3KMDTCreateAllocation2D3DKMTCreateKeyedMutex2 et D3DKMTCreateSynchronizationObject2 .
Syntaxe
NTSTATUS D3DKMTShareObjects(
[in] UINT cObjects,
[in] const D3DKMT_HANDLE *hObjects,
[in] POBJECT_ATTRIBUTES pObjectAttributes,
[in] DWORD dwDesiredAccess,
[out] HANDLE *phSharedNtHandle
);
Paramètres
[in] cObjects
Nombre d’objets de ressource fournis dans le paramètre hObjects . Cette valeur doit être inférieure ou égale à D3DKMT_MAX_OBJECTS_PER_HANDLE.
[in] hObjects
Pointeur vers un tableau de handles locaux en mode noyau qui spécifient les objets de ressource à partager. Pour plus d’informations, consultez Remarques.
[in] pObjectAttributes
Pointeur vers une structure OBJECT_ATTRIBUTES qui spécifie les attributs des objets de ressource.
[in] dwDesiredAccess
Spécifie l’accès en lecture et en écriture pour la ressource.
Pour les objets de synchronisation GPU, dwDesiredAccess peut être une combinaison des champs de bits suivants (définis dans d3dukmdt.h).
Valeur | Signification |
---|---|
STANDARD_RIGHTS_READ | Le processus qui ouvre l’objet de synchronisation peut lire l’état de l’objet de synchronisation. Cet indicateur doit être spécifié, sinon l’objet sera inaccessible. |
D3DDDI_SYNC_OBJECT_WAIT | Le processus qui ouvre l’objet de synchronisation peut émettre des opérations d’attente pour l’objet de synchronisation. |
D3DDDI_SYNC_OBJECT_SIGNAL | Le processus qui ouvre l’objet de synchronisation peut émettre des opérations de signal pour l’objet de synchronisation. |
D3DDDI_SYNC_OBJECT_ALL_ACCESS | Le processus qui ouvre l’objet de synchronisation peut émettre n’importe quelle opération pour l’objet de synchronisation. |
Pour les ressources partagées, l’accès souhaité peut être spécifié en combinaison des indicateurs suivants (définis dans d3dkmthk.h) :
Valeur | Signification |
---|---|
STANDARD_RIGHTS_READ | Le processus qui ouvre la ressource peut avoir un accès en lecture. Cet indicateur doit être spécifié, sinon l’objet sera inaccessible. |
SHARED_ALLOCATION_WRITE | Le processus qui ouvre la ressource peut avoir un accès en écriture. Si cet indicateur d’accès n’est pas spécifié, la ressource est ouverte en lecture seule. |
SHARED_ALLOCATION_ALL_ACCESS | Le processus qui ouvre la ressource peut avoir tous accès à l’objet . |
[out] phSharedNtHandle
Pointeur vers un handle NT partagé qui spécifie les objets de ressource.
Ce paramètre est NULL si la valeur de l’indicateur NtSecuritySharing n’est pas définie. Pour plus d’informations, consultez Remarques.
Valeur retournée
La méthode retourne STATUS_SUCCESS si l’opération réussit. Sinon, cette méthode peut retourner un code d’erreur NTSTATUS approprié.
Remarques
Les objets à partager à l’aide de D3DKMTShareObjects doivent d’abord être créés avec la valeur de l’indicateur NtSecuritySharing définie. Cette valeur d’indicateur est disponible dans les structures D3DKMT_CREATEALLOCATIONFLAGS, D3DKMT_CREATEKEYEDMUTEX2_FLAGS et D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS .
Cette fonction doit spécifier des handles via le paramètre hObjects uniquement pour les combinaisons suivantes de types de tableau d’objets d’entrée :
- une allocation
- une allocation, un mutex à clé et un objet de synchronisation
- un objet de synchronisation
Le système d’exploitation rejette toutes les autres combinaisons de handles d’entrée.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 8 |
Serveur minimal pris en charge | Windows Server 2012 |
Plateforme cible | Universal |
En-tête | d3dkmthk.h (include D3dkmthk.h) |
Bibliothèque | Gdi32.lib |
DLL | Gdi32.dll |
Voir aussi
D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS
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