Функция 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 , если:
|
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
Системные параметры