Partager via


ExAcquireRundownProtection, fonction (wdm.h)

La routine ExAcquireRundownProtection tente d’acquérir une protection d’exécution sur un objet partagé afin que l’appelant puisse accéder en toute sécurité à l’objet.

Syntaxe

BOOLEAN ExAcquireRundownProtection(
  [in, out] PEX_RUNDOWN_REF RunRef
);

Paramètres

[in, out] RunRef

Pointeur vers une structure EX_RUNDOWN_REF qui a été initialisée par un appel précédent à la routine ExInitializeRundownProtection. Les routines de protection de l’exécution utilisent cette structure pour suivre l’état d’exécution de l’objet partagé associé. Cette structure est opaque pour les pilotes.

Valeur de retour

ExAcquireRundownProtection retourne TRUE si la routine acquiert correctement la protection d’exécution pour l’appelant. Sinon, elle retourne FALSE. Une valeur de retour de FALSE indique que l’exécution de l’objet a démarré et que l’objet doit être traité comme non valide.

Remarques

Pour accéder en toute sécurité à un objet partagé, un pilote appelle ExAcquireRundownProtection pour acquérir une protection d’exécution sur l’objet. La routine retourne TRUE pour indiquer que la protection d’exécution est en vigueur. Lorsque la protection d’exécution est en vigueur, le pilote peut accéder en toute sécurité à l’objet sans risque que l’objet soit supprimé avant la fin de l’accès.

Tant que le bloc d’exécution lui-même n’est pas paginé, cette fonction peut être appelée à DISPATCH_LEVEL.

Une fois l’accès terminé, le pilote appelle ExReleaseRundownProtection pour libérer la protection d’exécution acquise précédemment.

Si ExAcquireRundownProtection retourne FALSE, l’objet n’est plus accessible. Par exemple, si l’objet doit être remplacé par un nouveau, l’appelant doit attendre que le propriétaire de l’objet crée le nouvel objet, puis négocie l’accès au nouvel objet.

Pour plus d’informations, consultez Run-Down Protection.

Exigences

Exigence Valeur
client minimum pris en charge Disponible à partir de Windows XP.
plateforme cible Universel
d’en-tête wdm.h (include Wdm.h)
bibliothèque NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL (voir Remarques)
règles de conformité DDI HwStorPortProhibitedDDIs(storport)

Voir aussi

EX_RUNDOWN_REF

ExInitializeRundownProtection

ExReleaseRundownProtection