Функция ExWaitForRundownProtectionRelease (wdm.h)

Подпрограмма ExWaitForRundownProtectionRelease ожидает, пока все драйверы, которым уже была предоставлена защита, завершат доступ к общему объекту.

Синтаксис

void ExWaitForRundownProtectionRelease(
  [in, out] PEX_RUNDOWN_REF RunRef
);

Параметры

[in, out] RunRef

Указатель на структуру EX_RUNDOWN_REF , которая была инициализирована предыдущим вызовом подпрограммы ExInitializeRundownProtection . Подпрограммы защиты от запуска используют эту структуру для отслеживания состояния запуска связанного общего объекта. Эта структура непрозрачна для драйверов.

Возвращаемое значение

None

Remarks

Эта подпрограмма вызывается драйвером, которому принадлежит объект, который находится в общей памяти и к которому обращаются другие драйверы. Перед удалением этого объекта драйвер-владеющий должен вызвать эту подпрограмму, чтобы дождаться завершения всех незавершенных обращений к объекту. После возврата ExWaitForRundownProtectionRelease драйвер-владельцев может безопасно удалить объект .

После вызова ExWaitForRundownProtectionReleaseподпрограмма ExAcquireRundownProtection не предоставляет дополнительных запросов на защиту от запуска от драйверов, которые пытаются получить доступ к общему объекту. Подпрограмма ожидает возврата, пока все драйверы, которым ранее была предоставлена защита от запуска, завершат доступ к объекту. По завершении работы каждый драйвер вызывает подпрограмму ExReleaseRundownProtection , чтобы освободить ранее полученную защиту от запуска. После завершения всех незавершенных операций доступа exWaitForRundownProtectionRelease возвращается, и объект можно безопасно удалить.

Если метод ExWaitForRundownProtectionRelease вызывается, когда все драйверы, которым ранее была предоставлена защита от запуска, уже завершили доступ к общему объекту, подпрограмма изменяет состояние объекта на запущено и возвращается немедленно, без ожидания.

Если метод ExWaitForRundownProtectionRelease вызывается для запуска общего объекта, но параметр RunRef указывает, что этот объект уже запущен, вызов не оказывает никакого влияния, но не обрабатывается как ошибка.

Дополнительные сведения см. в разделе Защита от запуска.

Требования

Требование Значение
Минимальная версия клиента Доступно, начиная с Windows XP.
Целевая платформа Универсальное
Верхняя часть wdm.h (включая Wdm.h)
Библиотека NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL
Правила соответствия DDI HwStorPortProhibitedDIs(storport), SpNoWait(storport)

См. также раздел

EX_RUNDOWN_REF

ExAcquireRundownProtection

ExInitializeRundownProtection

ExReleaseRundownProtection