Función ClfsWriteRestartArea (wdm.h)

La rutina ClfsWriteRestartArea anexa de forma atómica un nuevo registro de reinicio a una secuencia CLFS, vacía el registro de reinicio en un almacenamiento estable y, opcionalmente, actualiza el LSN base de la secuencia.

Sintaxis

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
);

Parámetros

[in, out] pvMarshalContext

Puntero a un contexto opaco que representa un área de serialización asociada a una secuencia CLFS. El autor de la llamada obtuvo previamente este puntero llamando a ClfsCreateMarshallingArea.

[in] pvRestartBuffer

Puntero a un búfer que contiene los datos del registro de reinicio.

[in] cbRestartBuffer

Tamaño, en bytes, del búfer al que apunta pvRestartBuffer. Este es el tamaño de los datos de reinicio.

[in, optional] plsnBase

Puntero a una estructura CLFS_LSN que especifica un nuevo LSN base para la secuencia. Si este parámetro es NULL, no se cambia el LSN base.

[in] fFlags

Este parámetro puede ser uno de los siguientes valores.

Value Significado
0 El registro de reinicio se coloca en un espacio recién asignado en un bloque de E/S. No se cambia el número de registros reservados en el área de serialización.
CLFS_FLAG_USE_RESERVATION El registro de reinicio se coloca en un espacio reservado previamente en un bloque de E/S. El número de registros reservados en el área de serialización se reduce en uno.

[out, optional] pcbWritten

Puntero a una variable con tipo ULONG que recibe el número de bytes realmente forzados al almacenamiento estable. Este parámetro puede ser NULL.

[out, optional] plsnNext

Puntero a una estructura de CLFS_LSN que recibe el LSN del registro de reinicio recién escrito.

Valor devuelto

ClfsWriteRestartArea devuelve STATUS_SUCCESS si se realiza correctamente; de lo contrario, devuelve uno de los códigos de error definidos en Ntstatus.h.

Comentarios

Normalmente, se llama a ClfsWriteRestartArea como último acto de un punto de control de cliente.

ClfsWriteRestartArea es una operación relativamente costosa porque provoca un vaciado de todos los registros actualmente en el área de serialización junto con un vaciado de metadatos de flujo y registro.

En cualquier momento, solo se debe usar un área de serialización para escribir datos en una secuencia. Tener dos áreas de serialización escribiendo en la secuencia podría provocar daños en la secuencia.

Si solo desea establecer el LSN base de una secuencia, use ClfsAdvanceLogBase, que no necesariamente vacía ningún dato en un almacenamiento estable.

Para obtener una explicación de los conceptos y la terminología de CLFS, consulte Common Log File System.

Requisitos

Requisito Value
Cliente mínimo compatible Disponible en Windows Server 2003 R2, Windows Vista y versiones posteriores de Windows.
Plataforma de destino Escritorio
Encabezado wdm.h (incluya Wdm.h)
Library Clfs.lib
Archivo DLL Clfs.sys
IRQL <= APC_LEVEL

Consulte también

CLFS_LSN

ClfsAdvanceLogBase

ClfsCreateMarshallingArea

ClfsReadPreviousRestartArea

ClfsReadRestartArea