Freigeben über


ExWaitForRundownProtectionReleaseCacheAware-Funktion (wdm.h)

Die ExWaitForRundownProtectionReleaseCacheAware Routine wartet, bis alle Treiber, denen bereits cachebasierter Run-down-Schutz gewährt wurde, ihre Zugriffe auf das freigegebene Objekt abgeschlossen haben.

Syntax

void ExWaitForRundownProtectionReleaseCacheAware(
  [in, out] PEX_RUNDOWN_REF_CACHE_AWARE RunRef
);

Parameter

[in, out] RunRef

Ein Zeiger auf eine EX_RUNDOWN_REF_CACHE_AWARE Struktur, die durch einen vorherigen Aufruf von ExAllocateCacheAwareRundownProtection oder ExInitializeRundownProtectionCacheAwareinitialisiert wurde. Die cachefähigen Ausführungsschutzroutinen verwenden diese Struktur, um den Ausführungsstatus des zugeordneten freigegebenen Objekts nachzuverfolgen. Diese Struktur ist für Treiber nicht transparent.

Rückgabewert

Nichts

Bemerkungen

Diese Routine wird vom Treiber aufgerufen, der ein Objekt besitzt, das sich im freigegebenen Speicher befindet und von anderen Treibern aufgerufen wird. Vor dem Löschen dieses Objekts muss der besitzereigene Treiber diese Routine aufrufen, um auf alle ausstehenden Zugriffe des Objekts zu warten. Nachdem ExWaitForRundownProtectionReleaseCacheAware zurückgegeben wurde, kann der besitzereigene Treiber das Objekt sicher löschen.

Nachdem ExWaitForRundownProtectionReleaseCacheAware aufgerufen wurde, gewährt die ExAcquireRundownProtectionCacheAware Routine keine weiteren Anforderungen für cachefähigen Run-down-Schutz von Treibern, die versuchen, auf das freigegebene Objekt zuzugreifen.

Die Routine wartet auf die Rückgabe, bis alle Treiber, die zuvor cachefähigen Run-down-Schutz gewährt wurden, den Zugriff auf das Objekt abgeschlossen haben. Sobald jeder Treiber abgeschlossen ist, ruft er die ExReleaseRundownProtectionCacheAware Routine auf, um den zuvor erworbenen Cache-fähigen Run-Down-Schutz freizugeben. Wenn alle ausstehenden Zugriffe abgeschlossen sind, ExWaitForRundownProtectionReleaseCacheAware zurückgegeben und das Objekt kann sicher gelöscht werden.

Wenn ExWaitForRundownProtectionReleaseCacheAware aufgerufen wird, wenn alle Zuvor gewährten Treiber den Zugriff auf das freigegebene Objekt bereits abgeschlossen haben, ändert die Routine den Objektstatus in ausführenausgeführt wird und sofort zurückgegeben wird, ohne warten zu müssen.

Wenn ExWaitForRundownProtectionReleaseCacheAware aufgerufen wird, um ein freigegebenes Objekt auszuführen, aber der RunRef Parameter gibt an, dass dieses Objekt bereits ausgeführt wird, hat der Aufruf keine Auswirkung, wird aber nicht als Fehler behandelt.

Weitere Informationen finden Sie unter cachefähigen Run-Down-Schutz.

Anforderungen

Anforderung Wert
mindestens unterstützte Server- Windows Server 2003, Service Pack 1
Header- wdm.h (include Wdm.h)
DDI-Complianceregeln HwStorPortProhibitedDIs(storport), SpNoWait(storport)

Siehe auch

ExAcquireRundownProtectionCacheAware-

ExAcquireRundownProtectionCacheAwareEx

ExAllocateCacheAwareRundownProtection

ExFreeCacheAwareRundownProtection

ExInitializeRundownProtectionCacheAware-

ExReInitializeRundownProtectionCacheAware

ExReleaseRundownProtectionCacheAware

ExReleaseRundownProtectionCacheAwareEx

ExRundownCompletedCacheAware-

ExSizeOfRundownProtectionCacheAware