D3DKMTShareObjects, fonction (d3dkmthk.h)
D3DKMTShareObjects partage des objets de ressources créés avec les D3KMTCreateAllocation, D3KMTCreateAllocation2D3DKMTCreateKeyedMutex2et fonctions 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 en mode noyau local 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é ou l’objet est 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 tant que 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é ou l’objet est 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 tout 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 d’indicateur NtSecuritySharing n’est pas définie. Pour plus d’informations, consultez Remarques.
Valeur de retour
La méthode retourne STATUS_SUCCESS si l’opération réussit. Sinon, cette méthode peut retourner un code d’erreur NTSTATUSapproprié.
Remarques
Les objets à partager à l’aide de D3DKMTShareObjects doivent d’abord être créés avec le jeu de valeurs d’indicateur NtSecuritySharing. Cette valeur d’indicateur est disponible dans les structures D3DKMT_CREATEALLOCATIONFLAGS, D3DKMT_CREATEKEYEDMUTEX2_FLAGSet D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS.
Cette fonction doit spécifier des handles via le paramètre hObjects uniquement aux combinaisons suivantes de types de tableaux d’objets d’entrée :
- une allocation
- une allocation, un mutex à clé et un objet de synchronisation
- objet de synchronisation
Le système d’exploitation rejette toutes les autres combinaisons de handle d’entrée.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Windows 8 |
serveur minimum pris en charge | Windows Server 2012 |
plateforme cible | Universel |
d’en-tête | d3dkmthk.h (include D3dkmthk.h) |
bibliothèque | Gdi32.lib |
DLL | Gdi32.dll |
Voir aussi
D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS