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.
[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 |