Funzione DumpLogRecords (clfsw32.h)
Analizza un log specificato; filtra i record di log in base al tipo di record; e inserisce i record in un flusso di file di output aperto dal chiamante.
Sintassi
CLFSUSER_API BOOL DumpLogRecords(
[in] PWSTR pwszLogFileName,
[in] CLFS_RECORD_TYPE fRecordType,
[in, optional] PCLFS_LSN plsnStart,
[in, optional] PCLFS_LSN plsnEnd,
[in, optional] PFILE pstrmOut,
[in, optional] CLFS_PRINT_RECORD_ROUTINE pfnPrintRecord,
[in, optional] CLFS_BLOCK_ALLOCATION pfnAllocBlock,
[in, optional] CLFS_BLOCK_DEALLOCATION pfnFreeBlock,
[in, optional] PVOID pvBlockAllocContext,
[in] ULONG cbBlock,
[in] ULONG cMaxBlocks
);
Parametri
[in] pwszLogFileName
Nome del flusso di log.
Questo nome viene specificato quando si crea il log usando CreateLogFile. L'esempio seguente identifica il formato da usare:
Registro:<log name>[::<log stream name>]
<>nome del log corrisponde a un percorso di file valido nel file system.
<nome >del flusso di log è il nome univoco di un flusso di log nel log.
Per altre informazioni, vedere Tipi di log.
[in] fRecordType
Tipo di record da leggere.
Questo parametro può essere una o più delle costanti seguenti CLFS_RECORD_TYPE.
[in, optional] plsnStart
Puntatore a un CLFS_LSN che specifica il numero di sequenza del log iniziale (LSN) per la sequenza di dump del log.
Se questo parametro viene specificato, l'LSN deve essere l'indirizzo di un record di log valido nella parte attiva del log; in caso contrario, la chiamata ha esito negativo con stato ERROR_INVALID_PARAMETER.
Se questo parametro non viene specificato, l'inizio della sequenza di dump corrisponde all'inizio del log attivo.
[in, optional] plsnEnd
Puntatore a un CLFS_LSN che specifica l'LSN in cui deve terminare la sequenza di dump.
Se l'LSN supera la fine dell'intervallo LSN, la funzione restituisce ERROR_HANDLE_EOF.
A differenza di plsnStart, questo valore non deve essere l'LSN di un record valido nel log attivo, ma può essere qualsiasi LSN valido. Solo i record con un valore LSN minore o uguale a plsnEnd vengono inseriti nel flusso di output.
Se questo parametro è NULL, la funzione dump usa l'ultimo LSN nel log attivo (all'inizio del log).
[in, optional] pstrmOut
Puntatore a un flusso di output aperto in cui vengono inseriti i record di log.
Se questo parametro non viene specificato, viene usato "stdout" come impostazione predefinita.
[in, optional] pfnPrintRecord
Routine di callback definita dall'utente che formatta i buffer definiti dall'utente e li stampa nel flusso di output pstrmOut.
La funzione DumpLogRecords restituisce in modo nativo le relative intestazioni di record interne a pstrmOut, ma dipende dal callback definito dall'utente per formattare i buffer utente.
Se questo parametro è NULL, DumpLogRecords inserisce i dati dei record utente nel flusso di output come cifre esadecimali.
[in, optional] pfnAllocBlock
Funzione di callback che alloca la memoria per i blocchi di log.
Se questo parametro è NULL, Common Log File System (CLFS) fornisce una funzione di allocazione dei blocchi predefinita. Questo parametro non può essere NULL se viene specificato un callback senza blocchi usando il parametro pfnFreeBuffer .
Nell'esempio seguente viene identificata la sintassi della funzione di callback di allocazione dei blocchi:
typedef PVOID (* CLFS_BLOCK_ALLOCATION) (voidULONG cbBufferSize, PVOID pvUserContext);
[in, optional] pfnFreeBlock
Funzione di callback che libera i blocchi di log allocati da pfnAllocBuffer.
Se questo parametro è NULL, CLFS fornisce una funzione di deallocazione dei blocchi predefinita. Questo parametro non può essere NULL se viene specificato un callback di allocazione di blocchi usando il parametro pfnAllocBuffer .
Nell'esempio seguente viene identificata la sintassi della funzione di callback senza blocchi:
typedef void (* CLFS_BLOCK_DEALLOCATION) (PVOID pvBuffer, PVOID pvUserContext);
Il parametro buffer di "ClfsBlockDeallocProc" deve puntare a un blocco allocato usando il callback a cui punta pfnAllocBuffer.
[in, optional] pvBlockAllocContext
Puntatore a un buffer passato come contesto utente alle routine di allocazione e deallocazione dei blocchi, se viene specificato un buffer.
Se pfnAllocBuffer è NULL, questo parametro viene ignorato.
[in] cbBlock
Dimensioni del buffer in cui i record vengono sottoposto a marshalling, in byte.
I record non possono essere accodati o letti se sono più lunghi di questo valore.
[in] cMaxBlocks
Numero massimo di blocchi che possono essere allocati in qualsiasi momento per le operazioni di lettura.
I contesti di lettura usano almeno un blocco di lettura.
Valore restituito
Se la funzione ha esito positivo, il valore restituito è diverso da zero.
Se la funzione ha esito negativo, il valore restituito è zero (0). Per informazioni dettagliate sull'errore, chiamare GetLastError. L'elenco seguente identifica i possibili codici di errore:
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows Vista [solo app desktop] |
Server minimo supportato | Windows Server 2003 R2 [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | clfsw32.h |
Libreria | Clfsw32.lib |
DLL | Clfsw32.dll |