Partager via


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

ExReleaseRundownProtectionCacheAwareEx

ExRundownCompletedCacheAware

ExSizeOfRundownProtectionCacheAware