次の方法で共有


診断とデバッグ

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

  • アサートおよびデバッグのルーチン

  • 参照および逆参照追跡ルーチン

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

ルーチンによって返される値 説明

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 ルーチンのラッパーが提供されます。 これらのマクロは、まず対応する RxpTrackReference または RxpTrackDereference ルーチンを呼び出して診断情報をログに記録した後で、対応する RxReference または RxDeference ルーチンを呼び出します。 参照要求と逆参照要求のログには、RDBSS ログ システムと WMI からアクセスできます。

マクロ 説明

RxDereferenceAndFinalizeNetFcb (Fcb ,RxContext, RecursiveFinalize, ForceFinalize)

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

このマクロが参照カウントを操作し、ファイナライズ呼び出しの状態も返すことに注意してください。

RxDereferenceNetFcb (Fcb)

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

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

RxDereferenceNetFobx (Fobx,LockHoldingState)

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

RxDereferenceNetRoot (NetRoot, LockHoldingState)

このマクロは、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 構造体の参照操作を追跡するために使用されます。