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) |