RDBSS 提供許多常式用於診斷和偵錯目的。 這些例程分為兩類:
斷言和偵錯常式
參照和取消參照追蹤常式
這些常式包含下表中的項目。
| 常規 | 說明 |
|---|---|
此常式會在已安裝核心偵錯工具的情況下,將 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 可以存取這些取值要求的記錄檔。 此常式不會執行參照作業。 對於零售構建,此例程沒有任何作用。 |
除了上表中列出的常式之外,還定義了呼叫這些常式的許多巨集以進行偵錯。 下表所列的這些宏會提供 RxReference 或 RxDereference 常式的包裝函式,用於 SRV_CALL、NET_ROOT、V_NET_ROOT、FOBX、FCB 和 SRV_OPEN 結構上的檔案結構管理作業。 這些宏會先呼叫對應的 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結構上的參考作業。 |