Функция JetGetLogInfoInstance2

Применимо к: Windows | Windows Server

Функция JetGetLogInfoInstance2

Функция JetGetLogInfoInstance2 используется во время резервного копирования, инициированного JetBeginExternalBackup , для запроса экземпляра имен файлов исправлений базы данных и файлов журнала транзакций, которые должны стать частью набора файлов резервной копии. Эти файлы могут быть впоследствии открыты с помощью JetOpenFile и прочитаны с помощью JetReadFile.

Windows XP: JetGetLogInfoInstance2 представлен в Windows XP.

    JET_ERR JET_API JetGetLogInfoInstance2(
      __in          JET_INSTANCE instance,
      __out_opt     tchar* szz,
      __in          unsigned long cbMax,
      __out_opt     unsigned long* pcbActual,
      __in_out_opt  JET_LOGINFO* pLogInfo
    );

Параметры

Экземпляр

Экземпляр, используемый для этого вызова.

Для Windows 2000 вариант API, который принимает этот параметр, недоступен, так как поддерживается только один экземпляр. В данном случае подразумевается использование этого одного глобального экземпляра.

Для Windows XP и более поздних версий вариант API, который не принимает этот параметр, может вызываться только в том случае, если подсистема находится в устаревшем режиме (режим совместимости Windows 2000), где поддерживается только один экземпляр. В противном случае операция завершится сбоем с JET_errRunningInMultiInstanceMode.

szz

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

Список строк, возвращаемых в этом буфере, имеет тот же формат, что и многостроковый, используемый реестром. Каждая строка, завершающаяся нулевым значением, возвращается последовательно, за которой следует окончательный признак конца null.

cbMax

Максимальный размер выходного буфера в байтах.

pcbActual

Получает фактический объем строковых данных, полученных в выходном буфере.

pLogInfo

Получает структурированные сведения о файлах журнала транзакций, которые должны быть частью резервного набора файлов.

Если этот параметр отсутствует, предполагается, что его значение равно NULL.

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

Эта функция возвращает тип данных JET_ERR с одним из следующих кодов возврата. Дополнительные сведения о возможных ошибках ESE см. в разделах Ошибки подсистемы расширяемого хранилища и Параметры обработки ошибок.

Код возврата

Описание

JET_errSuccess

Операция выполнена успешно.

JET_errBackupAbortByServer

Операция завершилась сбоем, так как текущая внешняя резервная копия была прервана вызовом JetStopBackup. Эта ошибка будет возвращена только в Windows XP и более поздних выпусках.

JET_errClientRequestToStopJetService

Невозможно выполнить операцию, так как все действия экземпляра, связанного с сеансом, прекратились в результате вызова JetStopService.

JET_errInstanceUnavailable

Невозможно выполнить операцию, так как экземпляр, связанный с сеансом, столкнулся с неустранимой ошибкой, требующей отмены доступа ко всем данным для защиты целостности этих данных. Эта ошибка будет возвращена только в Windows XP и более поздних выпусках.

JET_errInvalidBackupSequence

Операция резервного копирования завершилась сбоем, так как она была вызвана из последовательности. JetGetLogInfo возвратит эту ошибку, если для экземпляра есть какие-либо необработанные дескрипторы файлов, созданные с помощью JetOpenFile .

JET_errInvalidParameter

Один из предоставленных параметров содержал непредвиденное значение или значение, которое не имело смысла в сочетании со значением другого параметра. Это может произойти для JetGetLogInfo , если указанный дескриптор экземпляра недопустим (Windows XP и более поздние выпуски).

JET_errNoBackup

Операция завершилась сбоем, так как внешнее резервное копирование не выполняется.

JET_errNotInitialized

Невозможно выполнить операцию, так как экземпляр, связанный с сеансом, еще не инициализирован.

JET_errRestoreInProgress

Невозможно выполнить операцию, так как операция восстановления выполняется в экземпляре, связанном с сеансом.

JET_errRunningInMultiInstanceMode

Операция завершилась сбоем, так как была предпринята попытка использовать подсистему в устаревшем режиме (режим совместимости с Windows 2000), где поддерживается только один экземпляр, если на самом деле уже существует несколько экземпляров.

JET_errTermInProgress

Невозможно выполнить операцию, так как экземпляр, связанный с сеансом, завершает работу.

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

При сбое состояние выходных буферов не определено. Сбой приведет к отмене всего процесса резервного копирования экземпляра.

Комментарии

Важно отметить, что этот API не возвращает ошибку или предупреждение, если выходной буфер слишком мал, чтобы принять полный список файлов, которые должны быть частью резервного набора файлов. Приложение всегда должно предоставлять буфер для получения фактического размера этого списка и использовать эти сведения, чтобы определить, был ли список усечен.

Требования

Требование Значение

Клиент

Требуется Windows Vista или Windows XP.

Сервер

Требуется Windows Server 2008 или Windows Server 2003.

Верхняя часть

Объявлено в Esent.h.

Библиотека

Используйте ESENT.lib.

DLL

Требуется ESENT.dll.

Юникод

Реализовано как JetGetLogInfoInstance2W (Юникод) и JetGetLogInfoInstance2A (ANSI).

См. также:

JET_ERR
JET_INSTANCE
JET_LOGINFO
JetBeginExternalBackup
JetOpenFile
JetReadFile
JetStopBackup