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