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

另请参阅

RxReference

FOBX 结构

NET_ROOT结构

SRV_CALL结构

SRV_OPEN 结构

V_NET_ROOT 结构