WriteLogRestartArea-Funktion (clfsw32.h)

Fügt einen neuen Clientneustartbereich an ein Protokoll an und erhöht optional die Basisprotokollsequenznummer (Base Log Sequence Number, LSN) des Protokolls.

Nachdem es erfolgreich auf einen Datenträger geschrieben wurde, wird der letzte LSN des Protokolls in den LSN des angefügten Neustartdatensatzes geändert. In der Regel wird WriteLogRestartArea von Anwendungen verwendet, die regelmäßig einen bekannten guten Zustand speichern, und der Neustartbereich enthält die LSNs für vorhandene Protokolldatensatzketten.

Syntax

CLFSUSER_API BOOL WriteLogRestartArea(
  [in, out]           PVOID        pvMarshal,
  [in]                PVOID        pvRestartBuffer,
  [in]                ULONG        cbRestartBuffer,
  [in, optional]      PCLFS_LSN    plsnBase,
  [in]                ULONG        fFlags,
  [out, optional]     PULONG       pcbWritten,
  [out, optional]     PCLFS_LSN    plsnNext,
  [in, out, optional] LPOVERLAPPED pOverlapped
);

Parameter

[in, out] pvMarshal

Ein Zeiger auf den Marshallkontext, der mithilfe der CreateLogMarshallingArea-Funktion zugeordnet wird.

[in] pvRestartBuffer

Ein Zeiger auf einen Puffer, der Neustartdaten enthält.

[in] cbRestartBuffer

Die Größe von pvRestartBuffer in Bytes.

[in, optional] plsnBase

Ein Zeiger auf eine CLFS_LSN-Struktur , die den neuen Basis-LSN des Protokolls angibt, nachdem der Neustartbereich erfolgreich geschrieben wurde.

Dieser Wert darf nicht außerhalb des Bereichs des aktiven Protokolls liegen. Es muss mindestens der Wert des aktuellen Basis-LSN sein und darf nicht größer als der LSN sein, der im lastLSN-Parameter aus dem letzten Aufruf von ReserveAndAppendLog zurückgegeben wurde. Wenn Sie diesen optionalen Parameter weglassen, ändert sich der Basis-LSN nicht.

[in] fFlags

Die Flags, die das Verhalten dieser Funktion angeben.

Ein oder mehrere der folgenden Werte können kombiniert werden.

Wert Bedeutung
CLFS_FLAG_NO_FLAGS
Weist keine Flags zu.
CLFS_FLAG_USE_RESERVATION
Fügt den aktuellen Datensatz unter Verwendung des reservierten Speicherplatzes im Marshallbereich an.

[out, optional] pcbWritten

Ein Zeiger auf eine Variable, die die Anzahl der Bytes empfängt, die geschrieben werden, wenn ein Vorgang abgeschlossen ist.

[out, optional] plsnNext

Ein Zeiger auf eine CLFS_LSN-Struktur , die den LSN des geschriebenen Neustartbereichs angibt.

[in, out, optional] pOverlapped

Ein Zeiger auf eine Struktur OVERLAPPED.

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.

In der folgenden Liste werden die möglichen Fehlercodes identifiziert:

Hinweise

WriteLogRestartArea bewirkt sowohl eine Leerung aller aktuellen gepufferten Protokolldatensätze als auch eine Leerung der Protokollmetadaten.

Wenn ein Client WriteLogRestartArea für ein Protokoll aufruft, das zur Unterstützung asynchroner Vorgänge erstellt wird (z. B. wenn der fFlagsAndAttributes-Parameter von CreateLogFile beim Erstellen des Protokolls auf FILE_FLAG_OVERLAPPED festgelegt ist), muss der Client einen Zeiger auf eine gültige OVERLAPPED-Struktur im pOverlapped-Parameter von WriteLogRestartArea bereitstellen.

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

Um den Aufruf abzuschließen, sollte der Client seine Ausführung mit verzögertem 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.

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 Protokolldateisystemfunktionen

OVERLAPPED