RDBSS には、診断とデバッグを目的としたさまざまなルーチンが用意されています。 これらのルーチンは、次の 2 つのカテゴリに分類されます。
アサートルーチンとデバッグルーチン
参照と逆参照の追跡ルーチン
これらのルーチンには、次の表の項目が含まれます。
| Routine | 説明 |
|---|---|
このルーチンは、RDBSS のチェック されたビルドのアサート文字列をカーネル デバッガーに送信します (インストールされている場合)。 rxAssert.h インクルード ファイルを使用すると、Windows カーネル の RtlAssert 呼び出しも再定義され、この RxAssert ルーチンも呼び出されます。 リテール ビルドの場合、このルーチンの呼び出しはバグ チェックを行います。 |
|
このルーチンは、カーネル デバッガーがインストールされている場合に処理される例外を発生させます。それ以外の場合は、デバッグ システムによって処理されます。 |
|
このルーチンは、チェック されたビルドのSRV_CALL、NET_ROOT、V_NET_ROOT、FOBX、FCB、およびSRV_OPEN構造体を参照する要求を追跡するために使用されます。 これらの参照要求のログには、ログ システムと WMI からアクセスできます。 このルーチンは逆参照操作を実行しません。 リテール ビルドの場合、このルーチンは何も行いません。 |
|
このルーチンは、チェック ビルド内の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、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構造体の参照操作を追跡するために使用されます。 |