Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Структура KE_SRCU_LOCK представляет контекст блокировки, используемый в критически важных разделах SRCU (спящий режим чтенияCopy-Update).
Синтаксис
typedef struct _KE_SRCU_LOCK {
ULONG_PTR Placeholder[2];
} *PKE_SRCU_LOCK, KE_SRCU_LOCK;
Members
Placeholder[2]
Массив двух ULONG_PTR значений, которые служат непрозрачным хранилищем для контекста блокировки SRCU. Содержимое этого поля зависит от реализации и не должно быть доступом или изменено драйверами.
Замечания
Эта структура возвращается функциями KeSrcuReadLock и KeRcuReadLock и должна передаваться соответствующим функциям разблокировки.
Эта структура непрозрачна для драйверов. Драйверы никогда не должны:
- Доступ или изменение поля напрямую
Placeholder. - Сделайте предположения о внутреннем макете структуры.
- Скопируйте или сериализируйте содержимое структуры.
- Используйте структуру в разных секциях SRCU.
Структура обычно используется в следующем шаблоне:
PSRCU_PARTITION SrcuPartition = KeSrcuAllocate();
KE_SRCU_LOCK LockContext;
// Enter read-side critical section
LockContext = KeSrcuReadLock(SrcuPartition);
// Access RCU-protected data safely
// ...
// Exit read-side critical section
KeSrcuReadUnlock(SrcuPartition, LockContext);
Контекст блокировки, возвращаемый функцией блокировки чтения, должен быть передан соответствующей функции разблокировки, чтобы правильно выйти из критического раздела. Использование неправильного или неинициализированного контекста блокировки может привести к нестабильности системы.
Требования
| Требование | Ценность |
|---|---|
| Минимальный поддерживаемый клиент | Windows 11 версии 24H2 |
| минимальный поддерживаемый сервер | Windows Server 2025 г. |
| Header | wdm.h (include Wdm.h) |