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 |