ReadLogRestartArea-Funktion (clfsw32.h)
Gibt den letzten Neustartbereich zurück, der erfolgreich in das Protokoll geschrieben wurde, das dem Marshallingbereich von WriteLogRestartArea zugeordnet ist. Die Funktion gibt auch einen Lesekontext zurück, der es dem Aufrufer ermöglicht, einen Cursor rückwärts oder vorwärts durch ein Protokoll aus dem Neustartdatensatz zu bewegen.
Dieser Lesekontext ist nützlich, wenn Sie vorherige Neustartbereiche vor dem aktuellen durch Aufrufen von ReadPreviousLogRestartArea durchsuchen.
Syntax
CLFSUSER_API BOOL ReadLogRestartArea(
[in] PVOID pvMarshal,
[out] PVOID *ppvRestartBuffer,
[out] PULONG pcbRestartBuffer,
[out] PCLFS_LSN plsn,
[out] PVOID *ppvContext,
[in, out, optional] LPOVERLAPPED pOverlapped
);
Parameter
[in] pvMarshal
Ein Zeiger auf einen Marshallingkontext, der mithilfe der CreateLogMarshallingArea-Funktion zugeordnet wird.
[out] ppvRestartBuffer
Ein Zeiger auf eine Variable, die einen Zeiger auf die Neustartdaten im Protokoll-E/A-Block empfängt.
[out] pcbRestartBuffer
Ein Zeiger auf eine Variable, die die Menge der Neustartdaten empfängt.
[out] plsn
Ein Zeiger auf eine CLFS_LSN Struktur, die die Protokollsequenznummer (Log Sequence Number, LSN) des Neustartbereichs empfängt.
[out] ppvContext
Ein Zeiger auf eine Variable, die einen Zeiger auf einen systemseitig zugeordneten Lesekontext empfängt, wenn ein Lesevorgang erfolgreich ist.
Wenn die Funktion den Abschluss eines Vorgangs zurücksetzt, gibt sie einen gültigen Lesekontextzeiger und einen Fehler status ERROR_IO_PENDING zurück. Bei allen anderen Fehlern ist der Lesekontextzeiger NULL. Weitere Informationen zur Behandlung der verzögerten Vervollständigung der Funktion finden Sie im Abschnitt Hinweise dieses Themas.
Nach dem Abrufen aller angeforderten Protokolldatensätze muss der Client den Lesekontext an TerminateReadLog übergeben, um den zugeordneten Arbeitsspeicher freizugeben. Andernfalls führt dies zu Speicherverlusten.
[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.
In der Regel wird ReadLogRestartArea nur während des Neustarts des Clients verwendet, entweder nach einem Absturz oder nach einem normalen Herunterfahren.
Wenn kein Neustartbereich im Protokoll vorhanden ist, schlägt ReadLogRestartArea mit dem Code ERROR_LOG_NO_RESTART fehl.
Wenn ReadLogRestartArea 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 zuerst seine Ausführung mit dem verzögerten Abschluss des überlappenden E/A-Vorgangs synchronisieren, indem GetOverlappedResult oder eine der Synchronisierungswartefunktionen aufgerufen wird. Weitere Informationen finden Sie unter Synchronisierung und überlappende Eingabe und Ausgabe.
Nachdem ReadLogRestartArea 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 aufrufen, der den von ReadLogRestartArea zurückgegebenen Lesekontextzeiger übergibt.
CLFS-Lesekontexte sollten nicht an mehrere asynchrone Lesevorgänge gleichzeitig übergeben werden, oder die Funktion schlägt mit ERROR_BUSY fehl.
Anforderungen
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
Allgemeine Protokolldateifunktionen