Freigeben über


DumpLogRecords-Funktion (clfsw32.h)

Scannt ein angegebenes Protokoll; filtert Protokolldatensätze basierend auf dem Datensatztyp; und platziert die Datensätze in einem Ausgabedateidatenstrom, den der Aufrufer öffnet.

Syntax

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
);

Parameter

[in] pwszLogFileName

Der Name des Protokolldatenstroms.

Dieser Name wird angegeben, wenn Sie das Protokoll mit CreateLogFile erstellen. Im folgenden Beispiel wird das zu verwendende Format identifiziert:

Protokoll:<protokollname>[::<log stream name>]

<Protokollname> entspricht einem gültigen Dateipfad im Dateisystem.

<Protokolldatenstromname> ist der eindeutige Name eines Protokolldatenstroms im Protokoll.

Weitere Informationen finden Sie unter Protokolltypen.

[in] fRecordType

Der Typ der zu lesenden Datensätze.

Bei diesem Parameter kann es sich um eine oder mehrere der folgenden CLFS_RECORD_TYPE Konstanten handeln.

Wert Bedeutung
ClfsNullRecord
Der Standarddatensatztyp clfsDataRecord wird verwendet.
ClfsDataRecord
Benutzerdatensätze werden gelesen.
ClfsRestartRecord
Neustartdatensätze werden gelesen.
ClfsClientRecord
Sowohl Neustart als auch Datensätze werden gelesen.
ClfsClientRecord
Gibt eine Maske für alle gültigen Daten oder Neustartdatensätze an.

[in, optional] plsnStart

Ein Zeiger auf einen CLFS_LSN , der die Startprotokollsequenznummer (LSN) für die Protokollabbildsequenz angibt.

Wenn dieser Parameter angegeben ist, muss der LSN die Adresse eines gültigen Protokolldatensatzes im aktiven Teil des Protokolls sein. Andernfalls schlägt der Anruf mit status ERROR_INVALID_PARAMETER fehl.

Wenn dieser Parameter nicht angegeben wird, ist der Beginn der Dumpsequenz der Anfang des aktiven Protokolls.

[in, optional] plsnEnd

Ein Zeiger auf einen CLFS_LSN , der den LSN angibt, an dem die Dumpsequenz enden soll.

Wenn sich dieser LSN am Ende des LSN-Bereichs befindet, gibt die Funktion ERROR_HANDLE_EOF zurück.

Im Gegensatz zu plsnStart muss dieser Wert nicht der LSN eines gültigen Datensatzes im aktiven Protokoll sein, sondern kann ein beliebiger gültiger LSN sein. Nur Datensätze mit einem LSN-Wert, der kleiner oder gleich plsnEnd ist, werden im Ausgabestream platziert.

Wenn dieser Parameter NULL ist, verwendet die Dumpfunktion den letzten LSN im aktiven Protokoll (am Kopf des Protokolls).

[in, optional] pstrmOut

Ein Zeiger auf einen offenen Ausgabedatenstrom, in dem die Protokolldatensätze platziert werden.

Wenn dieser Parameter nicht angegeben wird, wird "stdout" als Standard verwendet.

[in, optional] pfnPrintRecord

Eine benutzerdefinierte Rückrufroutine, die benutzerdefinierte Puffer formatiert und in den Ausgabestream pstrmOut ausgibt.

Die DumpLogRecords-Funktion gibt ihre internen Datensatzheader nativ an pstrmOut aus, hängt jedoch vom benutzerdefinierten Rückruf ab, um die Benutzerpuffer zu formatieren.

Wenn dieser Parameter NULL ist, platziert DumpLogRecords Benutzerdaten als Hexadezimalstellen im Ausgabedatenstrom.

[in, optional] pfnAllocBlock

Eine Rückruffunktion, die Speicher für Protokollblöcke ordnet.

Wenn dieser Parameter NULL ist, stellt clfs (Common Log File System) eine Standardfunktion für die Blockzuordnung bereit. Dieser Parameter kann nicht NULL sein, wenn ein blockfreier Rückruf mithilfe des pfnFreeBuffer-Parameters angegeben wird.

Im folgenden Beispiel wird die Syntax der Rückruffunktion für die Blockzuordnung identifiziert:

typedef PVOID (* CLFS_BLOCK_ALLOCATION) (voidULONG cbBufferSize, PVOID pvUserContext);

[in, optional] pfnFreeBlock

Eine Rückruffunktion, die Protokollblöcke freigibt, die von pfnAllocBuffer zugewiesen wurden.

Wenn dieser Parameter NULL ist, stellt CLFS eine Standardmäßige Blockdeallocation-Funktion bereit. Dieser Parameter kann nicht NULL sein, wenn ein Blockzuordnungsrückruf mithilfe des pfnAllocBuffer-Parameters angegeben wird.

Im folgenden Beispiel wird die Syntax der Blockfreisetzungsfunktion identifiziert:

typedef void (* CLFS_BLOCK_DEALLOCATION) (PVOID pvBuffer, PVOID pvUserContext);

Der Pufferparameter von "ClfsBlockDeallocProc" muss auf einen Block verweisen, der mithilfe des Rückrufs von pfnAllocBuffer zugeordnet wird.

[in, optional] pvBlockAllocContext

Ein Zeiger auf einen Puffer, der als Benutzerkontext an die Blockzuordnungs- und Deallocationroutinen übergeben wird, wenn ein Puffer angegeben wird.

Wenn pfnAllocBufferNULL ist, wird dieser Parameter ignoriert.

[in] cbBlock

Die Größe des Puffers, in den Ihre Datensätze gemarst werden, in Bytes.

Datensätze können nicht angefügt oder gelesen werden, wenn sie länger als dieser Wert sind.

[in] cMaxBlocks

Die maximale Anzahl von Blöcken, die jederzeit für Lesevorgänge zugeordnet werden können.

Lesekontexte verwenden mindestens einen Leseblock.

Rückgabewert

Wenn die Funktion erfolgreich ist, ist der Rückgabewert ungleich Null.

Wenn die Funktion fehlschlägt, ist der Rückgabewert 0 (null). Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf. In der folgenden Liste werden die möglichen Fehlercodes identifiziert:

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 R2 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile clfsw32.h
Bibliothek Clfsw32.lib
DLL Clfsw32.dll

Weitere Informationen

CLFS_LSN

CLFS_RECORD_TYPE

Allgemeine Protokolldateisystemfunktionen