Функция JetGetSystemParameter

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

Функция JetGetSystemParameter

Функция JetGetSystemParameter считывает многочисленные параметры конфигурации ядра СУБД.

    JET_ERR JET_API JetGetSystemParameter(
      __in          JET_INSTANCE instance,
      __in          JET_SESID sesid,
      __in          unsigned long paramid,
      __in_out_opt  JET_API_PTR* plParam,
      __out_opt     JET_PSTR szParam,
      __in          unsigned long cbMax
    );

Параметры

Экземпляр

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

В Windows 2000 этот параметр игнорируется и всегда должен иметь значение NULL.

Для Windows XP и более поздних версий этот параметр несколько перегружен. Если подсистема работает в устаревшем режиме (режим совместимости с Windows 2000), где поддерживается только один экземпляр, этот параметр может иметь значение NULL или содержать фактический экземпляр, возвращенный JetInit. В любом случае все параметры системных параметров считываются из одного экземпляра. Если подсистема работает в режиме с несколькими экземплярами, этот параметр может иметь значение NULL или указатель на экземпляр, созданный с помощью JetInit или JetCreateInstance. Если этот параметр имеет значение NULL , считывается глобальный системный параметр (или значение по умолчанию). Если этот параметр является экземпляром, считывается параметр системы для этого экземпляра.

sesid

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

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

paramid

Идентификатор системного параметра, который будет считываться.

Полный список системных параметров и их свойств см. в разделе Системные параметры .

plParam

Выходной буфер, получающий значение выбранного системного параметра, если этот системный параметр имеет целочисленный тип.

szParam

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

cbMax

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

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

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

Код возврата

Описание

JET_errSuccess

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

JET_errClientRequestToStopJetService

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

JET_errInitInProgress

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

JET_errInstanceUnavailable

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

JET_errInvalidParameter

Один из предоставленных параметров содержал непредвиденное значение или значение, которое не имело смысла в сочетании со значением другого параметра.

Это может произойти для JetGetSystemParameter , если:

  • Указанный идентификатор системного параметра недопустим или не поддерживается.

  • Для указанного системного параметра требуется предоставить целочисленный выходной буфер, а указатель выходного буфера — NULL.

  • Для указанного системного параметра требуется предоставить строковый выходной буфер, а указатель выходного буфера — NULL.

    Windows Vista: Это может произойти только в Windows Vista и более поздних выпусках.

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

    Windows Vista: Это может произойти только в Windows Vista и более поздних выпусках.

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

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

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

JET_errNotInitialized

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

JET_errRestoreInProgress

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

JET_errTermInProgress

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

JET_errInvalidSesid

Дескриптор сеанса недопустим или относится к закрытому сеансу. Эта ошибка возвращается не при всех обстоятельствах. Дескрипторные данные проверяются только по мере усилий.

JET_errInvalidInstance

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

Windows Vista: Эта ошибка будет возвращена только в Windows Vista и более поздних выпусках.

JET_wrnBufferTruncated

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

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

Примечание Эта ошибка возвращается не всеми выпусками. Дополнительные сведения см. в разделе Примечания.

JET_errBufferTooSmall

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

Примечание Эта ошибка не возвращается в некоторых случаях для сохранения совместимости приложений. Дополнительные сведения см. в разделе Примечания.

Windows Vista: Эта ошибка будет возвращена только в Windows Vista и более поздних выпусках.

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

При сбое состояние выходных буферов будет неопределенным.

Комментарии

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

Требования

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

Клиент

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

Сервер

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

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

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

Библиотека

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

DLL

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

Юникод

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

См. также:

JET_API_PTR
JET_ERR
JET_INSTANCE
JET_SESID
JetCreateInstance
JetInit
JetSetSystemParameter
JetStopService
Системные параметры