RxDereference 函数 (rxprocs.h)
对于 RDBSS 使用的多个引用计数数据结构,RxDereference 将结构的 NodeReferenceCount 成员递减 1。
语法
void RxDereference(
[in, out] IN OUT PVOID Instance,
[in] IN LOCK_HOLDING_STATE LockHoldingState
);
参数
[in, out] Instance
指向要取消引用的引用计数数据结构的指针。
[in] LockHoldingState
保留此数据结构的相应锁的模式。 此参数可以是LOCK_HOLDING_STATE枚举的下列值之一:
LHS_LockNotHeld
当前不持有锁。
LHS_SharedLockHeld
正在保留共享锁。
LHS_ExclusiveLockHeld
正在保留独占锁。
返回值
无
备注
RxDereference 可用于取消引用, (RDBSS 使用的以下数据结构上的 NodeReferenceCount 成员) 递减一个:
SRV_CALL
NET_ROOT
V_NET_ROOT
SRV_OPEN
FOBX
如果使用任何其他类型的 RDBSS 数据结构调用 RxDereference ,则例程会导致系统对已检查的生成执行 ASSERT。
如果 NodeReferenceCount 成员在取消引用 (RxDereference 递减) 后小于 0,则 RxDereference 会导致系统在检查的生成上出现 ASSERT。
如果 NodeReferenceCount 成员递减到 1,并且 已LHS_ExclusiveLockHeld LockHoldingState 参数,则可以立即完成数据结构的实例。 否则,将标记数据结构的实例,以便稍后清理和最终确定。
要求
要求 | 值 |
---|---|
目标平台 | 桌面 |
标头 | rxprocs.h (包括 Rxprocs.h) |
IRQL | <= APC_LEVEL |