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 |
---|---|
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. |
|
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 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. |
|
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. |