Поделиться через


Диагностика и отладка

RDBSS предоставляет ряд подпрограмм для диагностики и отладки. Эти подпрограммы делятся на две категории:

  • Подпрограммы утверждения и отладки

  • Процедуры отслеживания ссылок и разыменования

Эти подпрограммы включают элементы в следующей таблице.

Подпрограмма Описание

RxAssert

Эта подпрограмма отправляет строку утверждения в проверенных сборках RDBSS в отладчик ядра, если она установлена. При использовании включаемого файла rxAssert.h вызовы RtlAssert ядра Windows также будут переопределяться для вызова этой процедуры RxAssert .

Для розничных сборок вызовы этой подпрограммы будут проверка ошибок.

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. Эта подпрограмма не выполняет операцию ссылки.

Для розничных сборок эта подпрограмма ничего не делает.

В дополнение к подпрограммам, перечисленным в предыдущей таблице, для отладки определяется ряд макросов, вызывающих эти подпрограммы. Эти макросы, перечисленные в следующей таблице, предоставляют оболочку для подпрограмм 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)

Этот макрос используется для отслеживания ссылочных операций в SRV_CALL структурах, которые не находятся на уровне DPC.

RxReferenceSrvCallAtDpc (SrvCall)

Этот макрос используется для отслеживания ссылочных операций в SRV_CALL структурах на уровне DPC.

RxReferenceSrvOpen (SrvOpen)

Этот макрос используется для отслеживания ссылочных операций в SRV_OPEN структурах.

RxReferenceVNetRoot (VNetRoot)

Этот макрос используется для отслеживания ссылочных операций в V_NET_ROOT структурах.