诊断和调试

RDBSS 提供了许多用于诊断和调试的例程。 这些例程分为两类:

  • 断言和调试例程

  • 引用和解除引用跟踪例程

这些例程包括下表中的项。

Routine DESCRIPTION

RxAssert

如果安装了 RDBSS,此例程会将检查的 RDBSS 生成中的断言字符串发送到内核调试器。 使用 rxAssert.h 包含文件时,还将重新定义 Windows 内核 RtlAssert 调用以调用此 RxAssert 例程。

对于零售版本,对此例程的调用将进行 bug 检查。

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 可以访问这些取消引用请求的日志。 此例程不执行引用操作。

对于零售版本,此例程不执行任何作。

除了上表中列出的例程外,还定义了许多调用这些例程的宏用于调试。 下表中列出的这些宏为 RxReferenceRxDereference 例程提供了一个包装器,用于在SRV_CALL、NET_ROOT、V_NET_ROOT、FOBX、FCB和SRV_OPEN结构上执行文件结构管理操作。 这些宏首先调用相应的 RxpTrackReferenceRxpTrackDereference 例程来记录诊断信息,然后再调用相应的 RxReferenceRxDeference 例程。 RDBSS 日志系统和 WMI 可以访问引用和取消引用请求日志。

DESCRIPTION

RxDereferenceAndFinalizeNetFcbFcb,RxContextRecursiveFinalizeForceFinalize

此宏用于跟踪 FCB 结构的取消引用作。

请注意,此宏会修改引用计数,并返回终结调用的状态。

RxDereferenceNetFcbFcb

此宏用于跟踪 FCB 结构的取消引用作。

请注意,此宏作引用计数,并返回最终取消引用调用的状态。

RxDereferenceNetFobxFobx,LockHoldingState

此宏用于跟踪对 FOBX 结构的取消引用作。

RxDereferenceNetRootNetRootLockHoldingState

此宏用于跟踪对NET_ROOT结构的取消引用作。

RxDereferenceSrvCallSrvCallLockHoldingState

此宏用于跟踪对SRV_CALL结构的取消引用作。

RxDereferenceSrvOpen (SrvOpen, LockHoldingState)

此宏用于跟踪对SRV_OPEN结构的取消引用作。

RxDereferenceVNetRootVNetRootLockHoldingState

此宏用于跟踪对NET_ROOT结构的取消引用作。

RxReferenceNetFcbFcb

此宏用于跟踪 FCB 结构的引用作。

RxReferenceNetFobxFobx

此宏用于跟踪 FOBX 结构的引用作。

RxReferenceNetRootNetRoot

此宏用于跟踪NET_ROOT结构的引用作。

RxReferenceSrvCallSrvCall

此宏用于跟踪非 DPC 级别的 SRV_CALL 结构的引用操作。

RxReferenceSrvCallAtDpcSrvCall

此宏用于跟踪 DPC 级别SRV_CALL结构的引用作。

RxReferenceSrvOpenSrvOpen

此宏用于跟踪SRV_OPEN结构的引用作。

RxReferenceVNetRootVNetRoot

此宏用于跟踪对V_NET_ROOT结构的引用作。