Функция WriteLogRestartArea (clfsw32.h)
Добавляет новую область перезапуска клиента в журнал и при необходимости перемещает номер LSN журнала.
После успешной записи на диск последний номер LSN журнала изменяется на номер LSN добавленной записи перезапуска. Как правило, WriteLogRestartArea используется приложениями, которые регулярно сохраняют известное состояние работоспособности, а область перезапуска содержит номера LSN для существующих цепочек записей журналов.
Синтаксис
CLFSUSER_API BOOL WriteLogRestartArea(
[in, out] PVOID pvMarshal,
[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, optional] LPOVERLAPPED pOverlapped
);
Параметры
[in, out] pvMarshal
Указатель на контекст маршалинга, выделенный с помощью функции CreateLogMarshallingArea .
[in] pvRestartBuffer
Указатель на буфер, содержащий данные перезапуска.
[in] cbRestartBuffer
Размер pvRestartBuffer в байтах.
[in, optional] plsnBase
Указатель на структуру CLFS_LSN , указывающую новый базовый номер LSN журнала после успешной записи области перезапуска.
Это значение не может находиться за пределами диапазона активного журнала. Оно должно быть по крайней мере значение текущего базового номера LSN, а не больше LSN, возвращенного в параметре lastLSN из последнего вызова ReserveAndAppendLog. Если опустить этот необязательный параметр, базовый номер LSN не изменится.
[in] fFlags
Флаги, определяющие поведение этой функции.
Можно объединить одно или несколько из следующих значений.
Значение | Значение |
---|---|
|
Не назначает флаги. |
|
Добавляет текущую запись с использованием пространства, зарезервированного в области маршалинга. |
[out, optional] pcbWritten
Указатель на переменную, получающую количество байтов, записываемых по завершении операции.
[out, optional] plsnNext
Указатель на структуру CLFS_LSN , указывающую номер LSN записанной области перезапуска.
[in, out, optional] pOverlapped
Указатель на структуру OVERLAPPED .
Если асинхронная операция не используется, этот параметр может иметь значение NULL .
Возвращаемое значение
Если функция выполняется успешно, возвращается ненулевое значение.
Если функция выполняется неудачно, возвращается нулевое значение. Дополнительные сведения об ошибке можно получить, вызвав GetLastError.
В следующем списке указаны возможные коды ошибок:
Комментарии
WriteLogRestartArea вызывает как очистку всех текущих буферизируемых записей журнала, так и очистку метаданных журнала.
Если клиент вызывает WriteLogRestartArea в журнале, созданном для поддержки асинхронных операций (например, если параметру fFlagsAndAttributesэлемента CreateLogFile присвоено значение FILE_FLAG_OVERLAPPED при создании журнала), клиент должен указать указатель на допустимую структуру OVERLAPPED в параметре pOverlappedwriteLogRestartArea.
Затем, если writeLogRestartArea завершается с ошибкой ERROR_IO_PENDING, указатель на допустимый контекст чтения помещается в переменную, на которую указывает параметр ppvReadContext .
Чтобы завершить вызов, клиент должен синхронизировать его выполнение с отложенным завершением перекрывающейся операции ввода-вывода с помощью GetOverlappedResult или одной из функций ожидания синхронизации. Дополнительные сведения см. в разделе Синхронизация и перекрытие входных и выходных данных.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows Vista [только классические приложения] |
Минимальная версия сервера | Windows Server 2003 R2 [только классические приложения] |
Целевая платформа | Windows |
Header | clfsw32.h |
Библиотека | Clfsw32.lib |
DLL | Clfsw32.dll |