Rotinas e macros de registro em log

O RDBSS fornece várias rotinas para registro em log. Essas instalações de registro em log estão sempre presentes. Quando a macro RDBSSLOG é definida, uma geração das chamadas de registro em log em builds verificados é habilitada. Quando NO_RDBSSLOG é definido, as chamadas de registro em log são desabilitadas.

As rotinas de log criam registros de log armazenados em um buffer circular. Cada registro é limitado em ambos os lados por um descritor de registro. Esse descritor de registro tem quatro bytes de comprimento.

A tabela a seguir inclui rotinas de registro em log.

Rotina Descrição

RxLogEventDirect

Essa rotina é chamada para registrar um erro no log de erros de E/S.

É recomendável que a macro RxLogFailure ou RxLogEvent seja usada em vez de chamar essa rotina diretamente.

RxLogEventWithAnnotation

Essa rotina aloca um registro de log de erros de E/S, preenche o registro de log e grava esse registro no log de erros de E/S.

RxLogEventWithBufferDirect

Essa rotina aloca um registro de log de erros de E/S, preenche o registro de log e grava esse registro no log de erros de E/S. Essa rotina codifica o número de linha e status no buffer de dados brutos armazenado no registro de log de erros de E/S.

É recomendável que a macro RxLogFailureWithBuffer seja usada em vez de chamar essa rotina diretamente.

_RxLog

Essa rotina usa uma cadeia de caracteres de formato e um número variável de parâmetros e formata uma cadeia de caracteres de saída para gravação como uma entrada de log de erros de E/S se o registro em log estiver habilitado.

É recomendável que a macro RxLog seja usada em vez de chamar essa rotina diretamente.

Essa rotina só está disponível em builds verificados do RDBSS no Windows Server 2003, Windows XP e Windows 2000.

As macros a seguir são definidas nos arquivos de cabeçalho rxlog.h e rxprocs.h que chamam as rotinas listadas na tabela anterior. Normalmente, essas macros são usadas em vez de chamar essas rotinas diretamente.

Macro Descrição

RxLog(Args)

Em builds verificados, essa macro chama a rotina de _RxLog .

Em builds de varejo, essa macro não faz nada.

Observe que os argumentos para RxLog devem ser colocados entre parênteses adicionais para habilitar a conversão em uma chamada nula quando o registro em log deve ser desativado.

RxLogEvent (_DeviceObject, _OriginatorId, _EventId, _Status)

Essa macro chama a rotina RxLogEventDirect .

RxLogFailure (_DeviceObject, _OriginatorId, _EventId, _Status)

Essa macro chama a rotina RxLogEventDirect .

RxLogFailureWithBuffer (_DeviceObject, _OriginatorId, _EventId, _Status, _Buffer, _Length)

Essa macro chama a rotina RxLogEventWithBufferDirect .

RxLogRetail(Args)

Em builds verificados, essa macro chama a rotina de _RxLog .

Em builds de varejo, essa macro não faz nada.

Observe que os argumentos para RxLogRetail devem ser colocados entre parênteses adicionais para habilitar a tradução em uma chamada nula quando o registro em log deve ser desativado.