Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Liest den nächsten Datensatz in einer Sequenz, die durch einen Aufruf von ReadLogRecord oder ReadLogRestartAreainitiiert wird. Mithilfe von ReadNextLogRecord iterativ kann ein Client alle Datensätze eines angegebenen Typs in einem Protokoll lesen. Die Richtung der Aufzählung wird durch Angeben des Kontextmodus beim Starten der Lesesequenz bestimmt.
Syntax
CLFSUSER_API BOOL ReadNextLogRecord(
[in, out] PVOID pvReadContext,
[out] PVOID *ppvBuffer,
[out] PULONG pcbBuffer,
[in, out] PCLFS_RECORD_TYPE peRecordType,
[in, optional] PCLFS_LSN plsnUser,
[out] PCLFS_LSN plsnUndoNext,
[out] PCLFS_LSN plsnPrevious,
[out] PCLFS_LSN plsnRecord,
[in, out, optional] LPOVERLAPPED pOverlapped
);
Parameter
[in, out] pvReadContext
Ein Zeiger auf einen Lesekontext, den das System während eines erfolgreichen Aufrufs von ReadLogRecord oder ReadLogRestartAreazuweist und erstellt.
Wenn die Funktion den Abschluss eines Vorgangs zurückgibt, gibt sie einen Zeiger auf einen gültigen Lesekontext und einen Fehlerstatus von ERROR_IO_PENDINGzurück. Informationen zum Behandeln des asynchronen Abschlusses finden Sie im Abschnitt "Hinweise" dieses Themas.
[out] ppvBuffer
Ein Zeiger auf eine Variable, die einen Zeiger auf die Lesedaten empfängt.
[out] pcbBuffer
Ein Zeiger auf eine Variable, die die Größe der lesedaten empfängt, die in ppvReadBuffer-in Byte zurückgegeben werden.
[in, out] peRecordType
Ein Zeiger, der bei Eingaben den Datensatztypfilter des nächsten Datensatzlesevorgangs angibt, und in der Ausgabe wird der zurückgegebene Datensatztyp angegeben.
Clients können einen der folgenden Datensatztypen angeben.
| Wert | Bedeutung |
|---|---|
|
Nur Benutzerdatensätze werden gelesen. |
|
Nur Neustartdatensätze werden gelesen. |
|
Alle Neustarts und Datensätze werden gelesen. |
[in, optional] plsnUser
Ein Zeiger auf eine CLFS_LSN-Struktur, die den Protokollclient angibt, um diese Protokollsequenznummer (LSN) als nächstes LSN zu lesen, anstatt vorwärts zum nächsten Datensatz zu lesen, den vorherigen LSN zu lesen oder den nächsten Rückgängig-LSN zu lesen.
Dieser Parameter bietet Protokollclients die Möglichkeit, über benutzerdefinierte LSN-Ketten in Clientpuffern cursorn zu können. Die Beziehung dieses Parameters zum aktuellen LSN des Lesekontexts muss mit dem Kontextmodus konsistent sein, ecxMode, der in der ReadLogRecord Einstiegspunkte angegeben ist; andernfalls wird ein Fehlercode von ERROR_INVALID_PARAMETER zurückgegeben.
[out] plsnUndoNext
Ein Zeiger auf eine CLFS_LSN-Struktur, die den LSN des nächsten Datensatzes in einer Rückgängig-Datensatzkette empfängt.
[out] plsnPrevious
Ein Zeiger auf eine CLFS_LSN Struktur, die den LSN des nächsten Datensatzes in der vorherigen Datensatzkette empfängt.
[out] plsnRecord
Ein Zeiger auf eine CLFS_LSN Struktur, die den LSN des aktuellen Datensatzes empfängt, der in den Lesekontext gelesen wird.
[in, out, optional] pOverlapped
Ein Zeiger auf eine ÜBERLAPPENDE Struktur, die für asynchronen Vorgang erforderlich ist.
Dieser Parameter kann NULL- werden, wenn kein asynchroner Vorgang verwendet wird.
Rückgabewert
Wenn die Funktion erfolgreich ist, ist der Rückgabewert ungleich Null.
Wenn die Funktion fehlschlägt, ist der Rückgabewert null. Rufen Sie GetLastErrorauf, um erweiterte Fehlerinformationen zu erhalten.
Die folgende Liste identifiziert die möglichen Fehlercodes:
Bemerkungen
Wenn ReadNextLogRecord mit einem Statuscode von ERROR_IO_PENDINGzurückgibt, sollte der Client seine Ausführung mit verzögertem Abschluss des überlappenden E/A-Vorgangs mithilfe GetOverlappedResult-oder einer der Synchronisierung Wait Functionssynchronisieren. Weitere Informationen finden Sie unter Synchronisierung und überlappende Eingabe- und Ausgabe-.
Nachdem ReadNextLogRecord asynchron abgeschlossen wurde, wird der angeforderte Datensatz vom Datenträger gelesen, aber nicht in einen Zeiger in *ppvReadBufferaufgelöst. Um einen gültigen Zeiger auf den Datensatz abzurufen, muss der Client ReadNextLogRecord ein zweites Mal aufrufen.
CLFS-Lesekontexte sollten nicht gleichzeitig an mehrere asynchrone Lesevorgänge übergeben werden, oder die Funktion schlägt mit ERROR_READ fehl.
Anforderungen
| Anforderung | Wert |
|---|---|
| mindestens unterstützte Client- | Windows Vista [nur Desktop-Apps] |
| mindestens unterstützte Server- | Windows Server 2003 R2 [nur Desktop-Apps] |
| Zielplattform- | Fenster |
| Header- | clfsw32.h |
| Library | Clfsw32.lib |
| DLL- | Clfsw32.dll |