Fonction ExSetResourceOwnerPointer (wdm.h)
La routine ExSetResourceOwnerPointer définit le pointeur de thread propriétaire pour une ressource exécutive.
Syntaxe
void ExSetResourceOwnerPointer(
[in, out] PERESOURCE Resource,
[in] PVOID OwnerPointer
);
Paramètres
[in, out] Resource
Pointeur vers une ressource exécutive appartenant au thread actuel.
[in] OwnerPointer
Pointeur vers un pointeur de thread propriétaire de type ERESOURCE_THREAD (pour connaître les exigences supplémentaires, consultez la section Remarques suivante).
Valeur de retour
None
Remarques
ExSetResourceOwnerPointer, utilisé conjointement avec ExReleaseResourceForThreadLite, fournit un moyen pour un thread (agissant en tant que thread de gestionnaire de ressources) d’acquérir et de libérer des ressources à utiliser par un autre thread (agissant en tant que thread utilisateur de ressource).
Après avoir appelé ExSetResourceOwnerPointer pour une ressource spécifique, la seule autre routine qui peut être appelée pour cette ressource est ExReleaseResourceForThreadLite.
Le thread resource manager acquiert la propriété de la ressource et transmet la propriété au thread utilisateur en appelant ExSetResourceOwnerPointer. L’appelant doit allouer la mémoire pour la valeur ERESOURCE_THREAD pointée par OwnerPointer dans la mémoire système, et cette mémoire doit rester allouée jusqu’à ce que ExReleaseResourceForThreadLite retourne. L’appelant doit également définir les deux bits d’ordre inférieur de la valeur de ERESOURCE_THREAD pointée par OwnerPointer sur un. Cet encodage est utilisé en interne par les services de ressources pour faire la distinction entre les adresses de propriétaire et de thread.
Lorsque le thread utilisateur a terminé avec la ressource, le thread resource manager libère la propriété du thread utilisateur de la ressource en appelant ExReleaseResourceForThreadLite. Le paramètre d’entrée ResourceThreadId est défini sur la valeur du paramètre OwnerPointer utilisé dans l’appel précédent à ExSetResourceOwnerPointer qui a donné au thread de travail la propriété de la ressource.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Disponible à partir de Windows 2000. |
Plateforme cible | Universal |
En-tête | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
Bibliothèque | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= DISPATCH_LEVEL |
Règles de conformité DDI | HwStorPortProhibitedDDIs(storport) |