KE_SRCU_LOCK结构 (wdm.h)

KE_SRCU_LOCK结构表示 SRCU(可睡眠读Copy-Update)读取端关键节中使用的锁上下文。

Syntax

typedef struct _KE_SRCU_LOCK {
  ULONG_PTR Placeholder[2];
} *PKE_SRCU_LOCK, KE_SRCU_LOCK;

Members

Placeholder[2]

ULONG_PTR 个值数组,用作 SRCU 锁上下文的不透明存储。 此字段的内容特定于实现,不应由驱动程序访问或修改。

注解

此结构由 KeSrcuReadLockKeRcuReadLock 函数返回,必须传递给相应的解锁函数。

此结构对驱动程序不透明。 驱动程序绝不应:

  • 直接访问或修改 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);

读取锁函数返回的锁上下文必须传递给相应的解锁函数才能正确退出关键节。 使用不正确的或未初始化的锁上下文可能会导致系统不稳定。

要求

Requirement 价值
最低支持的客户端 Windows 11,版本 24H2
支持的最低服务器 Windows Server 2025
Header wdm.h (包括 Wdm.h)

另请参阅

KeSrcuReadLock

KeSrcuReadUnlock

KeRcuReadLock

KeRcuReadUnlock

KeSrcuAllocate

KeSrcuSynchronize