Ведение журнала подпрограмм и макросов
RDBSS предоставляет ряд процедур для ведения журнала. Эти средства ведения журнала всегда присутствуют. При определении макроса RDBSSLOG включено создание вызовов ведения журнала для проверенных сборок. Если NO_RDBSSLOG задано, вызовы ведения журнала отключены.
Процедуры ведения журнала создают записи журнала, хранящиеся в круговом буфере. Каждая запись ограничена с обеих сторон дескриптором записи. Этот дескриптор записи имеет длину в четыре байта.
В следующей таблице содержатся процедуры ведения журнала.
Подпрограмма | Описание |
---|---|
Эта подпрограмма вызывается для записи ошибки в журнал ошибок ввода-вывода. Рекомендуется использовать макрос RxLogFailure или RxLogEvent вместо вызова этой подпрограммы напрямую. |
|
Эта подпрограмма выделяет запись журнала ошибок ввода-вывода, заполняет ее и записывает в журнал ошибок ввода-вывода. |
|
Эта подпрограмма выделяет запись журнала ошибок ввода-вывода, заполняет ее и записывает в журнал ошибок ввода-вывода. Эта подпрограмма кодирует номер строки и состояние в буфер необработанных данных, хранящийся в записи журнала ошибок ввода-вывода. Рекомендуется использовать макрос RxLogFailureWithBuffer вместо вызова этой подпрограммы напрямую. |
|
Эта подпрограмма принимает строку формата и переменное число параметров и форматирует выходную строку для записи в журнале ошибок ввода-вывода, если ведение журнала включено. Рекомендуется использовать макрос RxLog вместо вызова этой подпрограммы напрямую. Эта подпрограмма доступна только в проверенных сборках RDBSS в Windows Server 2003, Windows XP и Windows 2000. |
Следующие макросы определены в файлах заголовков rxlog.h и rxprocs.h, которые вызывают подпрограммы, перечисленные в предыдущей таблице. Обычно эти макросы используются вместо непосредственного вызова этих подпрограмм.
Макрос | Описание |
---|---|
RxLog(Args) |
В проверенных сборках этот макрос вызывает подпрограмму _RxLog . В розничных сборках этот макрос ничего не делает. Обратите внимание, что аргументы RxLog должны быть заключены в дополнительную пару круглых скобок, чтобы включить преобразование в вызов NULL, когда ведение журнала должно быть отключено. |
RxLogEvent (_DeviceObject, _OriginatorId, _EventId, _Status) |
Этот макрос вызывает подпрограмму RxLogEventDirect . |
RxLogFailure (_DeviceObject, _OriginatorId, _EventId, _Status) |
Этот макрос вызывает подпрограмму RxLogEventDirect . |
RxLogFailureWithBuffer (_DeviceObject, _OriginatorId, _EventId, _Status, _Buffer, _Length) |
Этот макрос вызывает подпрограмму RxLogEventWithBufferDirect . |
RxLogRetail(Args) |
В проверенных сборках этот макрос вызывает подпрограмму _RxLog . В розничных сборках этот макрос ничего не делает. Обратите внимание, что аргументы rxLogRetail должны быть заключены в дополнительную пару круглых скобок, чтобы включить преобразование в вызов NULL при отключении ведения журнала. |