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


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

Функция KeRcuSynchronize ожидает истечения льготного периода в домене RCU по умолчанию (read-Copy-Update), обеспечивая завершение всех предварительно существующих критических разделов RCU на стороне чтения.

Синтаксис

VOID KeRcuSynchronize();

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

None

Замечания

KeRcuSynchronize — это блокирующая операция, которая ожидает льготный период с помощью объекта шлюза ядра. Он должен вызываться в IRQL < DISPATCH_LEVEL (обычно PASSIVE_LEVEL), так как это может привести к приостановке вызывающего потока.

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

KeRcuSynchronize гарантирует, что:

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

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

Функция не завершается ошибкой. Он всегда завершится успешно и не может вернуть ошибку.

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

Требования

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

См. также

KeRcuReadLock

KeRcuReadUnlock

KeSrcuSynchronize

KeSrcuAllocate

KeSrcuFree