Функция ExWaitForRundownProtectionReleaseCacheAware (wdm.h)
Подпрограмма ExWaitForRundownProtectionReleaseCacheAware ожидает, пока все драйверы, которым уже была предоставлена защита с учетом кэша, не завершат доступ к общему объекту.
Синтаксис
void ExWaitForRundownProtectionReleaseCacheAware(
[in, out] PEX_RUNDOWN_REF_CACHE_AWARE RunRef
);
Параметры
[in, out] RunRef
Указатель на структуру EX_RUNDOWN_REF_CACHE_AWARE , инициализированную предыдущим вызовом ExAllocateCacheAwareRundownProtection или ExInitializeRundownProtectionCacheAware. Подпрограммы защиты от запуска с учетом кэша используют эту структуру для отслеживания состояния запуска связанного общего объекта. Эта структура непрозрачна для драйверов.
Возвращаемое значение
None
Remarks
Эта подпрограмма вызывается драйвером, которому принадлежит объект, который находится в общей памяти и к которому обращаются другие драйверы. Перед удалением этого объекта драйвер-владеющий должен вызвать эту подпрограмму, чтобы дождаться завершения всех незавершенных обращений к объекту. После возврата ExWaitForRundownProtectionReleaseCacheAware драйвер-владельцев может безопасно удалить объект.
После вызова ExWaitForRundownProtectionReleaseCacheAwareподпрограмма ExAcquireRundownProtectionCacheAware не предоставляет дальнейших запросов на защиту от запуска с учетом кэша от драйверов, которые пытаются получить доступ к общему объекту.
Подпрограмма ожидает возврата, пока все драйверы, которым ранее была предоставлена защита от запуска с учетом кэша, не завершат доступ к объекту. По завершении работы каждый драйвер вызывает подпрограмму ExReleaseRundownProtectionCacheAware , чтобы освободить ранее полученную защиту от запуска с учетом кэша. После завершения всех незавершенных операций доступа ExWaitForRundownProtectionReleaseCacheAware возвращает и объект можно безопасно удалить.
Если метод ExWaitForRundownProtectionReleaseCacheAware вызывается, когда все драйверы, которым ранее была предоставлена защита от запуска, уже завершили доступ к общему объекту, подпрограмма изменяет состояние объекта на запущенное и возвращается немедленно, без ожидания.
Если метод ExWaitForRundownProtectionReleaseCacheAware вызывается для запуска общего объекта, но параметр RunRef указывает, что этот объект уже запущен, вызов не оказывает никакого влияния, но не обрабатывается как ошибка.
Дополнительные сведения см. в разделе Защита от запуска с учетом кэша.
Требования
Требование | Значение |
---|---|
Минимальная версия сервера | Windows Server 2003 с пакетом обновления 1 (SP1) |
Верхняя часть | wdm.h (включая Wdm.h) |
Правила соответствия DDI | HwStorPortProhibitedDIs(storport), SpNoWait(storport) |
См. также раздел
ExAcquireRundownProtectionCacheAware
ExAcquireRundownProtectionCacheAwareEx
ExAllocateCacheAwareRundownProtection
ExFreeCacheAwareRundownProtection
ExInitializeRundownProtectionCacheAware
ExReInitializeRundownProtectionCacheAware
ExReleaseRundownProtectionCacheAware