Поделиться через


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

Функция KeRcuReadUnlock завершает критически важный раздел RCU (read-Copy-Update) в домене RCU по умолчанию, введенном ранее в KeRcuReadLock.

Синтаксис

VOID KeRcuReadUnlock();

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

None

Замечания

Эта функция открепает вызывающий поток от процессора, восстанавливает исходный IRQL при необходимости и выполняет все необходимые отчеты о льготном периоде для ускорения синхронизации RCU.

KeRcuReadUnlock должен вызываться для выхода из каждого критического раздела RCU, введенного с помощью KeRcuReadLock. Вызовы должны быть правильно вложены (порядок LIFO) при использовании вложенных критических разделов RCU на стороне чтения.

После вызова KeRcuReadUnlock:

  • Вызывающий поток больше не защищен от льготных периодов RCU.
  • Структуры данных, защищенные RCU, доступные во время критического раздела, могут стать допустимыми для восстановления.
  • Поток не должен продолжать получать доступ к данным, защищенным RCU, с помощью указателей, полученных во время критического раздела.
  • Поток больше не закреплен на процессоре и может быть запланирован на разных процессорах.

Эту функцию можно вызвать из любого IRQL. Функция автоматически обрабатывает восстановление IRQL; то есть, если исходный IRQL до соответствующего keRcuReadLock был ниже DISPATCH_LEVEL, он будет восстановлен на этом уровне.

Эта функция использует домен RCU по умолчанию, что подходит для простых вариантов использования RCU. Для более сложных сценариев, требующих пользовательских доменов синхронизации, используйте KeSrcuReadUnlock с явным разделом SRCU.

Требования

Требование Ценность
Минимальный поддерживаемый клиент Windows 11 версии 24H2
минимальный поддерживаемый сервер Windows Server 2025 г.
целевая платформа Всеобщий
Header wdm.h (include Wdm.h)
Library NtosKrnl.lib
IRQL <= DISPATCH_LEVEL

См. также

KeRcuReadLock

KeRcuSynchronize

KeSrcuReadLock

KeSrcuReadUnlock

KeSrcuSynchronize