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)

Voir aussi

ExReleaseResourceForThreadLite