Routine di registrazione e macro
RDBSS offre una serie di routine per la registrazione. Queste strutture di registrazione sono sempre presenti. Quando viene definita la macro RDBSSLOG, è abilitata una generazione delle chiamate di registrazione alle build controllate. Quando NO_RDBSSLOG è impostato, le chiamate di registrazione sono disabilitate.
Le routine di registrazione creano record di log archiviati in un buffer circolare. Ogni record viene associato su entrambi i lati da un descrittore di record. Questo descrittore di record è di quattro byte.
La tabella seguente include routine di registrazione.
Routine | Descrizione |
---|---|
Questa routine viene chiamata per registrare un errore nel log degli errori di I/O. È consigliabile usare la macro RxLogFailure o RxLogEvent anziché chiamare direttamente questa routine. |
|
Questa routine alloca un record di log degli errori di I/O, compila il record di log e scrive questo record nel log degli errori di I/O. |
|
Questa routine alloca un record di log degli errori di I/O, compila il record di log e scrive questo record nel log degli errori di I/O. Questa routine codifica il numero di riga e lo stato nel buffer di dati non elaborato archiviato nel record di log degli errori di I/O. È consigliabile usare la macro RxLogFailureWithBuffer anziché chiamare direttamente questa routine. |
|
Questa routine accetta una stringa di formato e un numero variabile di parametri e formatta una stringa di output per la registrazione come voce del log degli errori di I/O se la registrazione è abilitata. È consigliabile usare la macro RxLog anziché chiamare direttamente questa routine. Questa routine è disponibile solo nelle build controllate di RDBSS in Windows Server 2003, Windows XP e Windows 2000. |
Le macro seguenti sono definite nei file di intestazione rxlog.h e rxprocs.h che chiamano le routine elencate nella tabella precedente. Queste macro vengono normalmente usate anziché chiamare direttamente queste routine.
Macro | Descrizione |
---|---|
RxLog(Args) |
Nelle compilazioni controllate, questa macro chiama la routine _RxLog . Nelle build di vendita al dettaglio, questa macro non fa nulla. Si noti che gli argomenti di RxLog devono essere racchiusi con una coppia aggiuntiva di parentesi per abilitare la traduzione in una chiamata Null quando la registrazione deve essere disattivata. |
RxLogEvent (_DeviceObject, _OriginatorId, _EventId, _Status) |
Questa macro chiama la routine RxLogEventDirect . |
RxLogFailure (_DeviceObject, _OriginatorId, _EventId, _Status) |
Questa macro chiama la routine RxLogEventDirect . |
RxLogFailureWithBuffer (_DeviceObject, _OriginatorId, _EventId, _Status, _Buffer, _Length) |
Questa macro chiama la routine RxLogEventWithBufferDirect . |
RxLogRetail(Args) |
Nelle compilazioni controllate, questa macro chiama la routine _RxLog . Nelle build di vendita al dettaglio, questa macro non fa nulla. Si noti che gli argomenti di RxLogRetail devono essere racchiusi con una coppia aggiuntiva di parentesi per abilitare la conversione in una chiamata Null quando la registrazione deve essere disattivata. |