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 锁上下文的不透明存储。 此字段的内容特定于实现,不应由驱动程序访问或修改。
注解
此结构由 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);
读取锁函数返回的锁上下文必须传递给相应的解锁函数才能正确退出关键节。 使用不正确的或未初始化的锁上下文可能会导致系统不稳定。
要求
| Requirement | 价值 |
|---|---|
| 最低支持的客户端 | Windows 11,版本 24H2 |
| 支持的最低服务器 | Windows Server 2025 |
| Header | wdm.h (包括 Wdm.h) |