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.

Valore Significato
ClfsNullRecord
Viene utilizzato il tipo di record predefinito ClfsDataRecord .
ClfsDataRecord
I record di dati utente vengono letti.
ClfsRestartRecord
I record di riavvio vengono letti.
ClfsClientRecord
I record di dati e di riavvio vengono letti.
ClfsClientRecord
Specifica una maschera per tutti i dati validi o riavviare i record.

[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

Vedi anche

CLFS_LSN

CLFS_RECORD_TYPE

Funzioni comuni del file system di log