Функция ClfsWriteRestartArea (wdm.h)
Подпрограмма ClfsWriteRestartArea атомарно добавляет новую запись перезапуска в поток CLFS, записывает запись перезапуска в стабильное хранилище и при необходимости обновляет базовый номер LSN потока.
Синтаксис
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
);
Параметры
[in, out] pvMarshalContext
Указатель на непрозрачный контекст, представляющий область маршалинга, связанную с потоком CLFS. Вызывающий объект ранее получил этот указатель, вызвав ClfsCreateMarshallingArea.
[in] pvRestartBuffer
Указатель на буфер, содержащий данные для записи перезапуска.
[in] cbRestartBuffer
Размер (в байтах) буфера, на который указывает pvRestartBuffer. Это размер данных перезапуска.
[in, optional] plsnBase
Указатель на структуру CLFS_LSN , указывающую новый базовый номер LSN для потока. Если этот параметр имеет значение NULL, базовый номер LSN не изменяется.
[in] fFlags
Этот параметр должен иметь одно из следующих значений.
Значение | Значение |
---|---|
0 | Запись перезапуска помещается в только что выделенное пространство в блоке ввода-вывода. Количество зарезервированных записей в области маршалинга не изменяется. |
CLFS_FLAG_USE_RESERVATION | Запись перезапуска помещается в ранее зарезервированное пространство в блоке ввода-вывода. Количество зарезервированных записей в области маршалинга уменьшается на единицу. |
[out, optional] pcbWritten
Указатель на переменную типа ULONG, которая получает количество байтов, фактически вынужденных к стабильному хранению. Этот параметр может принимать значение NULL.
[out, optional] plsnNext
Указатель на структуру CLFS_LSN , которая получает номер LSN записываемой записи перезапуска.
Возвращаемое значение
ClfsWriteRestartArea возвращает STATUS_SUCCESS в случае успешного выполнения; в противном случае возвращается один из кодов ошибок, определенных в ntstatus.h.
Комментарии
Как правило, ClfsWriteRestartArea называется последним действием контрольной точки клиента.
ClfsWriteRestartArea является относительно дорогостоящей операцией, так как она приводит к очистке всех записей, которые в настоящее время находятся в области маршалинга, а также сбросу метаданных потока и журнала.
В любой момент времени для записи данных в поток следует использовать только одну область маршалинга. Наличие двух областей маршалинга, записываемых в поток, может привести к повреждению потока.
Если вы просто хотите задать базовый номер LSN потока, используйте ClfsAdvanceLogBase, который не обязательно сбрасывает данные в стабильное хранилище.
Описание концепций и терминологии CLFS см. в разделе Common Log File System.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Доступно в Windows Server 2003 R2, Windows Vista и более поздних версиях Windows. |
Целевая платформа | Персональный компьютер |
Верхняя часть | wdm.h (включая Wdm.h) |
Библиотека | Clfs.lib |
DLL | Clfs.sys |
IRQL | <= APC_LEVEL |