Freigeben über


ReadPreviousLogRestartArea-Funktion (clfsw32.h)

Liest den vorherigen Protokollneustartbereich, der relativ zum aktuellen Neustartdatensatz ist, der im Lesekontext pvReadContext angegeben ist. Dieser Lesekontext wurde zuvor durch einen Aufruf von ReadLogRestartArea erstellt.

Syntax

CLFSUSER_API BOOL ReadPreviousLogRestartArea(
  [in]                PVOID        pvReadContext,
  [out]               PVOID        *ppvRestartBuffer,
  [out]               PULONG       pcbRestartBuffer,
  [out]               PCLFS_LSN    plsnRestart,
  [in, out, optional] LPOVERLAPPED pOverlapped
);

Parameter

[in] pvReadContext

Ein Zeiger auf einen systemseitig zugeordneten Lesekontext, den ReadLogRestartArea zurückgibt.

Selbst wenn diese Funktionen ERROR_IO_PENDING zurückgeben, geben sie dennoch einen Zeiger auf einen gültigen Lesekontext zurück. Informationen zur asynchronen Vervollständigung finden Sie im Abschnitt Hinweise dieses Themas.

[out] ppvRestartBuffer

Ein Zeiger auf eine Variable, die einen Zeiger auf die Neustartdaten empfängt.

[out] pcbRestartBuffer

Ein Zeiger auf eine Variable, die die Größe der Neustartdaten bei *ppvRestartBuffer in Bytes empfängt.

[out] plsnRestart

Ein Zeiger auf eine CLFS_LSN-Struktur , die die Protokollsequenznummer (Log Sequence Number, LSN) des Von dieser Funktion zurückgegebenen Neustartbereichs empfängt.

[in, out, optional] pOverlapped

Ein Zeiger auf eine OVERLAPPED-Struktur , die für asynchrone Vorgänge erforderlich ist.

Dieser Parameter kann NULL sein, wenn kein asynchroner Vorgang verwendet wird.

Rückgabewert

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

Wenn die Funktion fehlerhaft ist, ist der Rückgabewert null. Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf.

Die folgende Liste identifiziert die möglichen Fehlercodes:

Hinweise

Die Fehlermeldung ERROR_LOG_BLOCK_INCOMPLETE wird zurückgegeben, wenn die von CreateLogMarshallingArea angegebene Protokollblockgröße nicht groß genug ist, um einen vollständigen Protokollblock zu speichern.

Wenn ReadPreviousLogRestartArea mit dem Fehlercode ERROR_IO_PENDING fehlschlägt, wird ein Zeiger auf einen gültigen Lesekontext in der Variablen platziert, auf die der ppvReadContext-Parameter verweist.

Um die Protokolldatensatzkopie abzuschließen, sollte der Client zunächst seine Ausführung mit dem verzögerten Abschluss des überlappenden E/A-Vorgangs mithilfe von GetOverlappedResult oder einer der Synchronisierungswartefunktionen synchronisieren. Weitere Informationen finden Sie unter Synchronisierung und überlappende Eingabe und Ausgabe.

Nachdem ReadPreviousLogRestartArea asynchron abgeschlossen wurde, wird der angeforderte Neustartbereich vom Datenträger gelesen, aber ein gültiger Zeiger darauf wird nicht in *ppvRestartBuffer platziert.

Um einen gültigen Zeiger zu erhalten, muss der Client ReadPreviousLogRestartArea ein zweites Mal aufrufen.

Hinweis Allgemeine CLFS-Lesekontexte (Log File System) sind nicht threadsicher. Sie sollten nicht von mehreren Threads gleichzeitig verwendet werden.

CLFS-Lesekontexte sollten nicht an mehrere asynchrone Lesevorgänge gleichzeitig übergeben werden, oder die Funktion schlägt mit ERROR_READ fehl.

 

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

Allgemeine Protokolldateifunktionen

CreateLogFile

OVERLAPPED

ReadLogRestartArea

Synchronisierung und überlappende Eingabe und Ausgabe