Freigeben über


ClfsReadLogRecord-Funktion (wdm.h)

Die ClfsReadLogRecord-Routine liest einen Zieldatensatz in einem CLFS-Stream und gibt einen Lesekontext zurück, den der Aufrufer verwenden kann, um die Datensätze zu lesen, die dem Datenstrom vorangehen oder folgen.

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 von ClfsCreateMarshallingArea abgerufen.

[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 in ppvReadContext zurückgegebenen Lesekontexts angibt.

[out] ppvReadBuffer

Ein Zeiger auf eine Variable, die einen Zeiger auf den Datenpuffer des Zieldatensatzes empfängt.

[out] pcbReadBuffer

Ein Zeiger auf eine ULONG-typisierte Variable, die die Größe des Puffers in Bytes empfängt, auf den *ppvReadBuffer verweist. 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 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 frei zu geben.

Rückgabewert

ClfsReadLogRecord gibt bei Erfolg STATUS_SUCCESS zurück. Andernfalls wird einer der in "Ntstatus.h" definierten Fehlercodes zurückgegeben.

Hinweise

Sie müssen ClfsTerminateReadLog aufrufen, wenn Sie mit der Verwendung des Lesekontexts fertig sind, um einen Speicherverlust zu vermeiden.

Eine Erläuterung der CLFS-Konzepte und -Terminologie finden Sie unter Allgemeines Protokolldateisystem.

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 einer CLFS-Stream.

Lesekontexte sind nicht threadsicher. Clients sind für die Serialisierung des Zugriffs auf Lesekontexte verantwortlich.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Verfügbar in Windows Server 2003 R2, Windows Vista und höheren Versionen von Windows.
Zielplattform Desktop
Kopfzeile wdm.h (einschließen von Wdm.h)
Bibliothek Clfs.lib
DLL Clfs.sys
IRQL <= APC_LEVEL

Weitere Informationen

ClfsReadNextLogRecord

ClfsTerminateReadLog