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


Функция PrepareLogArchive (clfsw32.h)

Подготавливает физический журнал для архивации. Функция принимает snapshot текущего активного журнала, создает упорядоченный набор дескрипторов архива журнала для активных экстентов журнала и возвращает контекст архива журнала.

Передав этот контекст архива журнала в GetNextLogArchiveExtent, клиент может выполнить итерацию по набору экстентов архива журнала для архивации журнала. Можно также указать диапазон записей для архивации.

Синтаксис

CLFSUSER_API BOOL PrepareLogArchive(
  [in]            HANDLE                    hLog,
  [in, out]       PWSTR                     pszBaseLogFileName,
  [in]            ULONG                     cLen,
  [in, optional]  const PCLFS_LSN           plsnLow,
  [in, optional]  const PCLFS_LSN           plsnHigh,
  [out, optional] PULONG                    pcActualLength,
  [out]           PULONGLONG                poffBaseLogFileData,
  [out]           PULONGLONG                pcbBaseLogFileLength,
  [out]           PCLFS_LSN                 plsnBase,
  [out]           PCLFS_LSN                 plsnLast,
  [out]           PCLFS_LSN                 plsnCurrentArchiveTail,
  [out]           PCLFS_LOG_ARCHIVE_CONTEXT ppvArchiveContext
);

Параметры

[in] hLog

Дескриптор журнала, полученный при успешном вызове CreateLogFile.

Этот дескриптор может быть дескриптором выделенного или мультиплексированного журнала.

[in, out] pszBaseLogFileName

Указатель на буфер, выделенный пользователем, для получения полного пути к базовому журналу.

Если буфер недостаточно велик, он содержит усеченный путь к файлу при выходе, и функция завершается сбоем с кодом состояния ERROR_BUFFER_OVERFLOW .

Длина пути к файлу возвращается в переменной, на которую указывает pcActualLength. Клиент может повторно попытаться выполнить сбойный вызов с достаточно большим буфером имен.

[in] cLen

Размер буфера pszBaseLogFileName в расширенных символах.

[in, optional] plsnLow

Указатель на структуру CLFS_LSN , указывающую номер LSN нижнего конца диапазона активного журнала, в котором клиенту журнала требуется архивная информация журнала.

Если этот параметр не указан, в нижнем конце диапазона по умолчанию используется номер LSN заключительного фрагмента архива журнала.

[in, optional] plsnHigh

Указатель на структуру CLFS_LSN , указывающую номер LSN верхнего конца диапазона активного журнала, в котором клиенту журнала требуется архивная информация журнала.

Если этот параметр опущен, в верхней части диапазона по умолчанию будет указан следующий номер LSN, который будет записан в журнал.

[out, optional] pcActualLength

Указатель на переменную, которая получает фактическую длину имени базового пути к журналу в символах.

Если это значение больше cLen, функция возвращает состояние ERROR_BUFFER_OVERFLOW с усеченным путем, который хранится в буфере pszBaseLogFileName , и все остальные параметры, для которых не заданы значимые значения.

[out] poffBaseLogFileData

Указатель на переменную, получающую смещение, с которого метаданные начинаются в базовом журнале.

Непрерывный экстент в базовом журнале pszBaseLogFileName представляет полное содержимое метаданных журнала, то есть от poffBaseLogFileData до pcbBaseLogFileLength.

[out] pcbBaseLogFileLength

Указатель на переменную, указывающую точную длину базового журнала в байтах.

[out] plsnBase

Указатель на структуру CLFS_LSN для получения номера LSN активного журнала.

[out] plsnLast

Указатель на структуру CLFS_LSN для получения максимального допустимого номера LSN в активном журнале.

[out] plsnCurrentArchiveTail

Указатель на структуру CLFS_LSN для получения текущего номера LSN архивного хвоста журнала.

[out] ppvArchiveContext

Указатель на переменную, которая получает указатель на архивный контекст, выделенный системой.

Контекст архива поддерживает состояние курсора архивного итератора и контекста дескриптора журнала. Клиент архивации отвечает за освобождение контекста путем вызова TerminateLogArchive.

Возвращаемое значение

Если функция выполняется успешно, возвращается ненулевое значение.

Если функция выполняется неудачно, возвращается нулевое значение. Дополнительные сведения об ошибке можно получить, вызвав GetLastError. В следующем списке указаны возможные коды ошибок:

Комментарии

Необходимо вызвать TerminateLogArchive , чтобы освободить контекст архива, иначе могут возникнуть утечки памяти.

Пока вы не вызовете TerminateLogArchive, контейнеры, которые архивируются, нельзя будет перезапустить.

За каждый дескриптор, возвращаемого CreateLogFile , можно выполнять только одну операцию архивации.

Требования

Требование Значение
Минимальная версия клиента Windows Vista [только классические приложения]
Минимальная версия сервера Windows Server 2003 R2 [только классические приложения]
Целевая платформа Windows
Header clfsw32.h
Библиотека Clfsw32.lib
DLL Clfsw32.dll

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

CLFS_LSN

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

GetNextLogArchiveExtent

ReadLogArchiveMetadata

TerminateLogArchive