Partager via


Fonction ExAcquireRundownProtection (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 d’exécution utilisent cette structure pour suivre les status d’exécution de l’objet partagé associé. Cette structure est opaque pour les pilotes.

Valeur retournée

ExAcquireRundownProtection retourne TRUE si la routine acquiert une protection contre l’exécution de l’appelant. Sinon, il retourne FALSE. Une valeur de retour 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 contre l’exécution de 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 précédemment acquise.

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

Pour plus d’informations, consultez Protection contre les pannes.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Disponible à partir de Windows XP.
Plateforme cible Universal
En-tête wdm.h (inclure 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