ExWaitForRundownProtectionReleaseCacheAware, fonction (wdm.h)
La routine ExWaitForRundownProtectionReleaseCacheAware attend que tous les pilotes qui ont déjà reçu une protection d’exécution prenant en charge le cache terminent leurs accès à l’objet partagé.
Syntaxe
void ExWaitForRundownProtectionReleaseCacheAware(
[in, out] PEX_RUNDOWN_REF_CACHE_AWARE RunRef
);
Paramètres
[in, out] RunRef
Pointeur vers une structure EX_RUNDOWN_REF_CACHE_AWARE qui a été initialisée par un appel précédent à ExAllocateCacheAwareRundownProtection ou ExInitializeRundownProtectionCacheAware. Les routines de protection d’exécution prenant en compte le cache 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
Aucun
Remarques
Cette routine est appelée par le pilote propriétaire d’un objet qui réside dans la mémoire partagée et accessible par d’autres pilotes. 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. Après ExWaitForRundownProtectionReleaseCacheAware retourne, le pilote propriétaire peut supprimer l’objet en toute sécurité.
Une fois ExWaitForRundownProtectionReleaseCacheAware est appelée, la routine ExAcquireRundownProtectionCacheAware n’accorde aucune autre demande de protection d’exécution prenant en charge le cache contre les pilotes qui tentent d’accéder à l’objet partagé.
La routine attend de retourner jusqu’à ce que tous les pilotes précédemment accordés à la protection d’exécution prenant en charge le cache finissent d’accéder à l’objet. À la fin de chaque pilote, il appelle l'ExReleaseRundownProtectionCacheAware routine pour libérer la protection d’exécution prenant en compte le cache précédemment acquise. Lorsque tous les accès en attente sont terminés, ExWaitForRundownProtectionReleaseCacheAware renvoie et l’objet peut être supprimé en toute sécurité.
Si ExWaitForRundownProtectionReleaseCacheAware est appelée lorsque tous les pilotes précédemment accordés à la protection d’exécution ont déjà terminé d’accéder à l’objet partagé, la routine modifie l’état de l’objet pour d’exécution et retourne immédiatement, sans attendre.
Si ExWaitForRundownProtectionReleaseCacheAware est appelé pour exécuter un objet partagé, mais 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 d’exécution prenant en charge le cache.
Exigences
Exigence | Valeur |
---|---|
serveur minimum pris en charge | Windows Server 2003, Service Pack 1 |
d’en-tête | wdm.h (include Wdm.h) |
règles de conformité DDI | HwStorPortProhibitedDDIs(storport), SpNoWait(storport) |
Voir aussi
ExAcquireRundownProtectionCacheAware
ExAcquireRundownProtectionCacheAwareEx
ExAllocateCacheAwareRundownProtection
ExFreeCacheAwareRundownProtection
ExInitializeRundownProtectionCacheAware
ExReInitializeRundownProtectionCacheAware
ExReleaseRundownProtectionCacheAware