Partager via


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)

Voir aussi

EX_RUNDOWN_REF

ExAcquireRundownProtection

ExInitializeRundownProtection

ExReleaseRundownProtection