Freigeben über


ClfsWriteRestartArea-Funktion (wdm.h)

Die ClfsWriteRestartArea routinemäßig fügt einen neuen Neustartdatensatz an einen CLFS-Stream an, löscht den Neustartdatensatz auf stabilen Speicher und aktualisiert optional den Basis-LSN des Datenstroms.

Syntax

CLFSUSER_API NTSTATUS ClfsWriteRestartArea(
  [in, out]       PVOID     pvMarshalContext,
  [in]            PVOID     pvRestartBuffer,
  [in]            ULONG     cbRestartBuffer,
  [in, optional]  PCLFS_LSN plsnBase,
  [in]            ULONG     fFlags,
  [out, optional] PULONG    pcbWritten,
  [out, optional] PCLFS_LSN plsnNext
);

Parameter

[in, out] pvMarshalContext

Ein Zeiger auf einen undurchsichtigen Kontext, der einen Marshallingbereich darstellt, der einem CLFS-Stream zugeordnet ist. Der Aufrufer hat diesen Zeiger zuvor durch Aufrufen ClfsCreateMarshallingAreaabgerufen.

[in] pvRestartBuffer

Ein Zeiger auf einen Puffer, der die Daten für den Neustartdatensatz enthält.

[in] cbRestartBuffer

Die Größe des Puffers in Bytes, auf den pvRestartBufferverweist. Dies ist die Größe der Neustartdaten.

[in, optional] plsnBase

Ein Zeiger auf eine CLFS_LSN-Struktur, die einen neuen Basis-LSN für den Datenstrom angibt. Wenn dieser Parameter NULL-ist, wird der Basis-LSN nicht geändert.

[in] fFlags

Dieser Parameter muss einen der folgenden Werte aufweisen.

Wert Bedeutung
0 Der Neustartdatensatz wird in einem E/A-Block in neu zugewiesenen Speicherplatz platziert. Die Anzahl der reservierten Datensätze im Marshallbereich wird nicht geändert.
CLFS_FLAG_USE_RESERVATION Der Neustartdatensatz wird in einem E/A-Block im zuvor reservierten Bereich platziert. Die Anzahl der reservierten Datensätze im Marshallbereich wird um eins reduziert.

[out, optional] pcbWritten

Ein Zeiger auf eine ULONG-Typvariable, die die Anzahl der Bytes empfängt, die tatsächlich zum stabilen Speicher gezwungen wurden. Dieser Parameter kann NULL-sein.

[out, optional] plsnNext

Ein Zeiger auf eine CLFS_LSN-Struktur, die den LSN des neu geschriebenen Neustartdatensatzes empfängt.

Rückgabewert

ClfsWriteRestartArea gibt STATUS_SUCCESS zurück, wenn dies erfolgreich ist; andernfalls wird eine der fehlercodes zurückgegeben, die in Ntstatus.h definiert sind.

Bemerkungen

In der Regel wird ClfsWriteRestartArea als letzter Akt eines Clientprüfpunkts aufgerufen.

ClfsWriteRestartArea ist ein relativ kostspieliger Vorgang, da es dazu führt, dass alle Datensätze, die sich derzeit im Marshalling-Bereich befinden, zusammen mit einer Leeren von Datenstrom- und Protokollmetadaten geleert werden.

Gleichzeitig sollte nur ein Marshallbereich verwendet werden, um Daten in einen Datenstrom zu schreiben. Wenn zwei Marshallingbereiche in den Datenstrom geschrieben werden, kann dies zu Einer Beschädigung des Datenstroms führen.

Wenn Sie nur den Basis-LSN eines Datenstroms festlegen möchten, verwenden Sie ClfsAdvanceLogBase, wodurch keine Daten in stabilen Speicher geleert werden.

Eine Erläuterung der CLFS-Konzepte und -Terminologie finden Sie unter Common Log File System.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Verfügbar in Windows Server 2003 R2, Windows Vista und höheren Versionen von Windows.
Zielplattform- Desktop
Header- wdm.h (include Wdm.h)
Library Clfs.lib
DLL- Clfs.sys
IRQL- <= APC_LEVEL

Siehe auch

CLFS_LSN

ClfsAdvanceLogBase-

ClfsCreateMarshallingArea

ClfsReadPreviousRestartArea

ClfsReadRestartArea