Freigeben über


ClfsWriteRestartArea-Funktion (wdm.h)

Die ClfsWriteRestartArea-Routine fügt einen neuen Neustartdatensatz atomar an einen CLFS-Stream an, löscht den Neustartdatensatz in stabilen Speicher und aktualisiert optional die Basis-LSN des Streams.

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 von ClfsCreateMarshallingArea abgerufen.

[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 pvRestartBuffer verweist. Dies ist die Größe der Neustartdaten.

[in, optional] plsnBase

Ein Zeiger auf eine CLFS_LSN-Struktur , die eine neue Basis-LSN für den Stream angibt. Wenn dieser Parameter NULL ist, wird die 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 im neu zugewiesenen Bereich platziert. Die Anzahl der reservierten Datensätze im Marshallingbereich wird nicht geändert.
CLFS_FLAG_USE_RESERVATION Der Neustartdatensatz befindet sich in einem E/A-Block in einem zuvor reservierten Bereich. Die Anzahl der reservierten Datensätze im Marshallingbereich wird um 1 reduziert.

[out, optional] pcbWritten

Ein Zeiger auf eine Variable vom Typ "ULONG", die die Anzahl der Bytes empfängt, die tatsächlich zum stabilen Speicher erzwungen wurden. Dieser Parameter kann NULL sein.

[out, optional] plsnNext

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

Rückgabewert

ClfsWriteRestartArea gibt bei Erfolg STATUS_SUCCESS zurück. Andernfalls wird einer der in "Ntstatus.h" definierten Fehlercodes zurückgegeben.

Hinweise

In der Regel wird ClfsWriteRestartArea als letzte Aktion eines Clientprüfpunkts aufgerufen.

ClfsWriteRestartArea ist ein relativ teurer Vorgang, da er eine Leerung aller Datensätze verursacht, die sich derzeit im Marshallingbereich befinden, zusammen mit einer Leerung von Datenstrom- und Protokollmetadaten.

Es sollte jeweils nur ein Marshallingbereich verwendet werden, um Daten in einen Stream zu schreiben. Wenn zwei Marshallingbereiche in den Stream geschrieben werden, kann dies zu einer Streambeschädigung führen.

Wenn Sie nur die 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( Common Log File System).

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Verfügbar in Windows Server 2003 R2, Windows Vista und höheren Versionen von Windows.
Zielplattform Desktop
Kopfzeile wdm.h (wdm.h einschließen)
Bibliothek Clfs.lib
DLL Clfs.sys
IRQL <= APC_LEVEL

Weitere Informationen

CLFS_LSN

ClfsAdvanceLogBase

ClfsCreateMarshallingArea

ClfsReadPreviousRestartArea

ClfsReadRestartArea