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


структура KE_SRCU_LOCK (wdm.h)

Структура 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)

См. также

KeSrcuReadLock

KeSrcuReadUnlock

KeRcuReadLock

KeRcuReadUnlock

KeSrcuAllocate

KeSrcuSynchronize