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 |