Fonction ExWaitForRundownProtectionRelease (wdm.h)
La routine ExWaitForRundownProtectionRelease attend que tous les pilotes qui ont déjà bénéficié d’une protection d’exécution terminent leurs accès à l’objet partagé.
Syntaxe
void ExWaitForRundownProtectionRelease(
[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 de retour
None
Remarques
Cette routine est appelée par le pilote qui possède un objet qui réside dans la mémoire partagée et auquel d’autres pilotes accèdent. Avant de supprimer cet objet, le pilote propriétaire doit appeler cette routine pour attendre que les accès en suspens de l’objet se terminent. Une fois ExWaitForRundownProtectionRelease retourné, le pilote propriétaire peut supprimer l’objet en toute sécurité.
Une fois ExWaitForRundownProtectionRelease appelé, la routine ExAcquireRundownProtection n’accorde aucune autre demande de protection contre l’exécution des pilotes qui tentent d’accéder à l’objet partagé. La routine attend de revenir jusqu’à ce que tous les pilotes qui ont reçu une protection contre l’exécution aient terminé d’accéder à l’objet. À la fin de chaque pilote, il appelle la routine ExReleaseRundownProtection pour libérer la protection d’exécution précédemment acquise. Une fois tous les accès en suspens terminés, ExWaitForRundownProtectionRelease retourne et l’objet peut être supprimé en toute sécurité.
Si ExWaitForRundownProtectionRelease est appelé lorsque tous les pilotes précédemment protégés par l’exécution ont déjà terminé d’accéder à l’objet partagé, la routine modifie l’objet status de s’exécuter et retourne immédiatement, sans attendre.
Si ExWaitForRundownProtectionRelease est appelé pour exécuter un objet partagé, mais que le paramètre RunRef indique que cet objet est déjà exécuté, l’appel n’a aucun effet, mais n’est pas traité comme une erreur.
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 | <= APC_LEVEL |
Règles de conformité DDI | HwStorPortProhibitedDDIs(storport), SpNoWait(storport) |