診断とデバッグ

RDBSS には、診断とデバッグを目的としたさまざまなルーチンが用意されています。 これらのルーチンは、次の 2 つのカテゴリに分類されます。

  • アサートルーチンとデバッグルーチン

  • 参照と逆参照の追跡ルーチン

これらのルーチンには、次の表の項目が含まれます。

Routine 説明

RxAssert

このルーチンは、RDBSS のチェック されたビルドのアサート文字列をカーネル デバッガーに送信します (インストールされている場合)。 rxAssert.h インクルード ファイルを使用すると、Windows カーネル の RtlAssert 呼び出しも再定義され、この RxAssert ルーチンも呼び出されます。

リテール ビルドの場合、このルーチンの呼び出しはバグ チェックを行います。

RxDbgBreakPoint

このルーチンは、カーネル デバッガーがインストールされている場合に処理される例外を発生させます。それ以外の場合は、デバッグ システムによって処理されます。

RxpTrackDereference

このルーチンは、チェック されたビルドのSRV_CALL、NET_ROOT、V_NET_ROOT、FOBX、FCB、およびSRV_OPEN構造体を参照する要求を追跡するために使用されます。 これらの参照要求のログには、ログ システムと WMI からアクセスできます。 このルーチンは逆参照操作を実行しません。

リテール ビルドの場合、このルーチンは何も行いません。

RxpTrackReference

このルーチンは、チェック ビルド内のSRV_CALL、NET_ROOT、V_NET_ROOT、FOBX、FCB、およびSRV_OPEN構造体を逆参照する要求を追跡するために使用されます。 これらの逆参照要求のログには、ログ システムと WMI からアクセスできます。 このルーチンは参照操作を実行しません。

リテール ビルドの場合、このルーチンは何も行いません。

前の表に示したルーチンに加えて、これらのルーチンを呼び出す多くのマクロがデバッグ用に定義されています。 次の表に示すこれらのマクロは、SRV_CALL、NET_ROOT、V_NET_ROOT、FOBX、FCB、およびSRV_OPEN構造体に対するファイル構造管理操作に使用される RxReference ルーチンまたは RxDereference ルーチンのラッパーを提供します。 これらのマクロは、対応する RxReference ルーチンまたは RxpTrackDereference ルーチンを呼び出して診断情報をログに記録してから、対応する RxReference ルーチンまたは RxDeference ルーチンを呼び出します。 参照要求と逆参照要求のログには、RDBSS ログ システムと WMI からアクセスできます。

マクロ 説明

RxDereferenceAndFinalizeNetFcb (Fcb、RxContextRecursiveFinalizeForceFinalize)

このマクロは、FCB 構造体の逆参照操作を追跡するために使用されます。

このマクロは参照カウントを操作し、最終処理呼び出しの状態も返されることに注意してください。

RxDereferenceNetFcb (Fcb)

このマクロは、FCB 構造体の逆参照操作を追跡するために使用されます。

このマクロは参照カウントを操作し、最後の逆参照呼び出しの状態も返されることに注意してください。

RxDereferenceNetFobx (Fobx,LockHoldingState)

このマクロは、FOBX 構造体の逆参照操作を追跡するために使用されます。

RxDereferenceNetRoot (NetRootLockHoldingState)

このマクロは、NET_ROOT構造体に対する逆参照操作を追跡するために使用されます。

RxDereferenceSrvCall (SrvCall, LockHoldingState)

このマクロは、SRV_CALL構造体に対する逆参照操作を追跡するために使用されます。

RxDereferenceSrvOpen ( SrvOpen, LockHoldingState)

このマクロは、SRV_OPEN構造体に対する逆参照操作を追跡するために使用されます。

RxDereferenceVNetRoot ( VNetRoot, LockHoldingState)

このマクロは、NET_ROOT構造体に対する逆参照操作を追跡するために使用されます。

RxReferenceNetFcb (Fcb)

このマクロは、FCB 構造体の参照操作を追跡するために使用されます。

RxReferenceNetFobx (Fobx)

このマクロは、FOBX 構造体の参照操作を追跡するために使用されます。

RxReferenceNetRoot (NetRoot)

このマクロは、NET_ROOT構造体の参照操作を追跡するために使用されます。

RxReferenceSrvCall (SrvCall)

このマクロは、DPC レベルではないSRV_CALL構造体の参照操作を追跡するために使用されます。

RxReferenceSrvCallAtDpc (SrvCall)

このマクロは、DPC レベルでSRV_CALL構造体の参照操作を追跡するために使用されます。

RxReferenceSrvOpen (SrvOpen)

このマクロは、SRV_OPEN構造体の参照操作を追跡するために使用されます。

RxReferenceVNetRoot (VNetRoot)

このマクロは、V_NET_ROOT構造体の参照操作を追跡するために使用されます。