Поделиться через


Функция 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

Флаги, определяющие поведение этой функции.

Можно объединить одно или несколько из следующих значений.

Значение Значение
CLFS_FLAG_NO_FLAGS
Не назначает флаги.
CLFS_FLAG_USE_RESERVATION
Добавляет текущую запись с использованием пространства, зарезервированного в области маршалинга.

[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

См. также раздел

CLFS_LSN

Общие функции файловой системы журнала

ПЕРЕКРЫВАЮЩИХСЯ