ClfsReadLogRecord-Funktion (wdm.h)
Die ClfsReadLogRecord Routine liest einen Zieldatensatz in einem CLFS-Datenstrom und gibt einen Lesekontext zurück, den der Aufrufer verwenden kann, um die datensätze vor oder nach dem Datenstrom zu lesen.
Syntax
CLFSUSER_API NTSTATUS ClfsReadLogRecord(
[in] PVOID pvMarshalContext,
[in, out] PCLFS_LSN plsnFirst,
[in] CLFS_CONTEXT_MODE peContextMode,
[out] PVOID *ppvReadBuffer,
[out] PULONG pcbReadBuffer,
[out] PCLFS_RECORD_TYPE peRecordType,
[out] PCLFS_LSN plsnUndoNext,
[out] PCLFS_LSN plsnPrevious,
[out] PVOID *ppvReadContext
);
Parameter
[in] pvMarshalContext
Ein Zeiger auf einen undurchsichtigen Kontext, der einen Marshallbereich darstellt. Der Aufrufer hat diesen Zeiger zuvor durch Aufrufen ClfsCreateMarshallingAreaabgerufen.
[in, out] plsnFirst
Ein Zeiger auf eine CLFS_LSN Struktur, die den LSN des Zieldatensatzes im Protokoll bereitstellt.
[in] peContextMode
Ein Wert aus der CLFS_CONTEXT_MODE Enumeration, der den Anfangsmodus (ClfsContextUndoNext, ClfsContextPrevious oder ClfsContextForward) des lesekontexts angibt, der in ppvReadContext-zurückgegeben wird.
[out] ppvReadBuffer
Ein Zeiger auf eine Variable, die einen Zeiger auf den Datenpuffer des Zieldatensatzes empfängt.
[out] pcbReadBuffer
Ein Zeiger auf eine ULONG-Typvariable, die die Größe des Puffers in Bytes empfängt, auf den *ppvReadBufferverweist. Dies ist die Länge des Datenpuffers des Zieldatensatzes.
[out] peRecordType
Ein Zeiger auf eine Variable vom Typ CLFS_RECORD_TYPE, die einen der folgenden Werte empfängt.
Wert | Bedeutung |
---|---|
ClfsDataRecord- | Der Zieldatensatz ist ein Datensatz. |
ClfsRestartRecord- | Der Zieldatensatz ist ein Neustartdatensatz. |
[out] plsnUndoNext
Ein Zeiger auf eine CLFS_LSN Struktur, die den rückgängig-nächsten LSN des Zieldatensatzes empfängt.
[out] plsnPrevious
Ein Zeiger auf eine CLFS_LSN-Struktur, die den vorherigen LSN des Zieldatensatzes empfängt.
[out] ppvReadContext
Ein Zeiger auf eine Variable, die einen Zeiger auf einen undurchsichtigen Lesekontext empfängt. Der Client übergibt diesen Kontext wiederholt an ClfsReadNextLogRecord, um die verbleibenden Datensätze in einer Sequenz zu lesen. Nachdem der Client alle Datensätze in der Sequenz gelesen hat, ruft er ClfsTerminateReadLog- auf, um den Lesekontext freizugeben.
Rückgabewert
ClfsReadLogRecord gibt STATUS_SUCCESS zurück, wenn sie erfolgreich ist; andernfalls wird eine der fehlercodes zurückgegeben, die in Ntstatus.h definiert sind.
Bemerkungen
Sie müssen ClfsTerminateReadLog- aufrufen, wenn Sie den Lesekontext abgeschlossen haben, um einen Speicherverlust zu vermeiden.
Eine Erläuterung der CLFS-Konzepte und -Terminologie finden Sie unter Common Log File System.
Informationen zum Lesen von Datensätzen aus CLFS-Streams finden Sie unter Lesen von Datensätzen aus einem CLFS Stream- und Lesen von Neustartdatensätzen aus einem CLFS-Stream-.
Lesekontexte sind nicht threadsicher. Clients sind für die Serialisierung des Zugriffs auf Lesekontexte verantwortlich.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Verfügbar in Windows Server 2003 R2, Windows Vista und höheren Versionen von Windows. |
Zielplattform- | Desktop |
Header- | wdm.h (include Wdm.h) |
Library | Clfs.lib |
DLL- | Clfs.sys |
IRQL- | <= APC_LEVEL |