Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Подпрограмма KeSrcuAllocate выделяет и инициализирует спящий разделCopy-Update (SRCU) для синхронизации.
Синтаксис
PKE_SRCU KeSrcuAllocate(
[in] ULONG Tag
);
Параметры
[in] Tag
Значение тега с четырьмя символами, используемое для идентификации этого экземпляра SRCU.
Возвращаемое значение
KeSrcuAllocate возвращает указатель на выделенный экземпляр SRCU при успешном выполнении или NULL, если выделение завершается ошибкой.
Замечания
KeSrcuAllocate создает новый домен синхронизации SRCU, который позволяет нескольким читателям одновременно получать доступ к общим данным, обеспечивая безопасные обновления. SRCU отличается от обычного RCU в том, что читатели могут спать при удержании блокировки чтения.
Раздел SRCU, возвращаемый этой функцией, должен быть освобожден с помощью KeSrcuFree , если он больше не нужен.
Каждая секция SRCU является независимой и поддерживает собственные льготные периоды. SRCU предназначен для сценариев, когда читателям может потребоваться спящий режим или выполнять блокирующие операции.
Параметр тега должен быть уникальным для идентификации экземпляра во время отладки.
Типичный шаблон использования
- Вызовите KeSrcuAllocate , чтобы создать секцию SRCU.
- Для синхронизации чтения используйте KeSrcuReadLock и KeSrcuReadUnlock .
- Используйте KeSrcuSynchronize , чтобы ожидать завершения чтения до обновления.
- Вызовите KeSrcuFree, чтобы очистить после завершения.
Требования
| Требование | Ценность |
|---|---|
| целевая платформа | Всеобщий |
| Header | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
| Library | NtosKrnl.lib |
| DLL | NtosKrnl.exe |
| IRQL | < DISPATCH_LEVEL |