诊断和调试
RDBSS 提供了许多用于诊断和调试的例程。 这些例程分为两类:
断言和调试例程
引用和取消引用跟踪例程
这些例程包括下表中的项。
例程所返回的值 | 说明 |
---|---|
此例程将 RDBSS 的检查版本中的断言字符串发送到内核调试器(如果已安装)。 使用 rxAssert.h 包含文件时,将重新定义 Windows 内核 RtlAssert 调用,以调用此 RxAssert 例程。 对于零售版本,调用此例程将 bug 检查。 |
|
如果安装了内核调试程序,此例程将引发由内核调试器处理的异常;否则,由调试系统处理。 |
|
此例程用于跟踪在已检查的生成中引用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 例程提供了包装器。 这些宏首先调用相应的 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结构上的引用操作。 |