RxDereference 関数 (rxprocs.h)
RxDereference は、RDBSS で使用される複数の参照カウント データ構造について、構造体の 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 メンバーを逆参照 (1 ずつデクリメント) できます。
SRV_CALL
NET_ROOT
V_NET_ROOT
SRV_OPEN
FOBX
RxDereference が他の種類の RDBSS データ構造と共に呼び出された場合、ルーチンはチェックされたビルドでシステムを ASSERT します。
NodeReferenceCount メンバーが RxDereference によって逆参照 (デクリメント) された後に 0 未満の場合、RxDereference はチェックされたビルドでシステムを ASSERT します。
NodeReferenceCount メンバーが 1 にデクリメントされ、LockHoldingState パラメーターがLHS_ExclusiveLockHeldされた場合は、データ構造のインスタンスをすぐに終了できます。 それ以外の場合、データ構造のインスタンスは、後で清掃および最終処理されるようにタグ付けされます。
要件
要件 | 値 |
---|---|
対象プラットフォーム | デスクトップ |
Header | rxprocs.h (Rxprocs.h を含む) |
IRQL | <= APC_LEVEL |