Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Функция 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 |