Partager via


Journalisation des routines et des macros

RDBSS fournit un certain nombre de routines pour la journalisation. Ces installations de journalisation sont toujours présentes. Lorsque la macro RDBSSLOG est définie, une génération des appels de journalisation sur les builds vérifiées est activée. Lorsque NO_RDBSSLOG est défini, les appels de journalisation sont désactivés.

Les routines de journalisation créent des enregistrements de journal stockés dans une mémoire tampon circulaire. Chaque enregistrement est limité de part et d’autre par un descripteur d’enregistrement. Ce descripteur d’enregistrement a une longueur de quatre octets.

Le tableau suivant inclut les routines de journalisation.

Routine Description

RxLogEventDirect

Cette routine est appelée pour enregistrer une erreur dans le journal des erreurs d’E/S.

Il est recommandé d’utiliser la macro RxLogFailure ou RxLogEvent au lieu d’appeler cette routine directement.

RxLogEventWithAnnotation

Cette routine alloue un enregistrement du journal des erreurs d’E/S, remplit l’enregistrement du journal et écrit cet enregistrement dans le journal des erreurs d’E/S.

RxLogEventWithBufferDirect

Cette routine alloue un enregistrement du journal des erreurs d’E/S, remplit l’enregistrement du journal et écrit cet enregistrement dans le journal des erreurs d’E/S. Cette routine encode le numéro de ligne et status dans la mémoire tampon de données brutes stockée dans l’enregistrement du journal des erreurs d’E/S.

Il est recommandé d’utiliser la macro RxLogFailureWithBuffer au lieu d’appeler cette routine directement.

_RxLog

Cette routine prend une chaîne de format et un nombre variable de paramètres et met en forme une chaîne de sortie pour l’enregistrement en tant qu’entrée de journal des erreurs d’E/S si la journalisation est activée.

Il est recommandé d’utiliser la macro RxLog au lieu d’appeler cette routine directement.

Cette routine est disponible uniquement sur les builds vérifiées de RDBSS sur Windows Server 2003, Windows XP et Windows 2000.

Les macros suivantes sont définies dans les fichiers d’en-tête rxlog.h et rxprocs.h qui appellent les routines répertoriées dans le tableau précédent. Ces macros sont normalement utilisées au lieu d’appeler ces routines directement.

Macro Description

RxLog(Args)

Sur les builds vérifiées, cette macro appelle la routine _RxLog .

Sur les builds de vente au détail, cette macro ne fait rien.

Notez que les arguments de RxLog doivent être entourés d’une paire de parenthèses supplémentaires pour permettre la traduction en appel null lorsque la journalisation doit être désactivée.

RxLogEvent (_DeviceObject, _OriginatorId, _EventId, _Status)

Cette macro appelle la routine RxLogEventDirect .

RxLogFailure (_DeviceObject, _OriginatorId, _EventId, _Status)

Cette macro appelle la routine RxLogEventDirect .

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

Cette macro appelle la routine RxLogEventWithBufferDirect .

RxLogRetail(Args)

Sur les builds vérifiées, cette macro appelle la routine _RxLog .

Sur les builds de vente au détail, cette macro ne fait rien.

Notez que les arguments de RxLogRetail doivent être entourés d’une paire de parenthèses supplémentaires pour permettre la traduction en appel null lorsque la journalisation doit être désactivée.