诊断和调试

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

  • 断言和调试例程

  • 引用和取消引用跟踪例程

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

例程所返回的值 说明

RxAssert

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

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

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

说明

RxDereferenceAndFinalizeNetFcb (Fcb,RxContextRecursiveFinalizeForceFinalize)

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

请注意,此宏操作引用计数,还返回完成调用的状态。

RxDereferenceNetFcb (Fcb)

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

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

RxDereferenceNetFobx (Fobx,LockHoldingState)

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

RxDereferenceNetRoot (NetRootLockHoldingState)

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

RxDereferenceSrvCall (SrvCallLockHoldingState)

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

RxDereferenceSrvOpen ( SrvOpenLockHoldingState)

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

RxDereferenceVNetRoot ( VNetRootLockHoldingState)

此宏用于跟踪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结构上的引用操作。