Прототип функции GetServerVariable определен в структуре EXTENSION_CONTROL_BLOCK, описанной нами ранее:
BOOL (WINAPI * GetServerVariable)(HCONN hConn,
LPSTR lpszVariableName, LPVOID lpvBuffer, LPDWORD lpdwSize);
Через параметр hConn вы должны передать этой функции идентификатор канала, полученный через поле ConnID структуры EXTENSION_CONTROL_BLOCK.
Параметр lpszVariableName должен содержать указатель на строку имени переменной, содержимое которой необходимо получить. Это содержимое будет записано функцией в буфер, адрес которого передается через параметр lpvBuffer, а размер - через параметр lpdwSize.
Ниже мы перечислили возможные значения строк, передаваемых через параметр lpszVariableName:
Переменная среды AUTH_TYPE содержит тип идентификации, который применяется сервером.
В этой переменной перечислены типы данных MIME, которые могут быть приняты навигатором от сервера WWW.
Количество байт данных, которые расширение ISAPI должно получить от навигатора.
Тип данных, присланных навигатором.
Путь к виртуальному каталогу, в котором находится библиотека DLL расширения ISAPI.
Физический путь к библиотеки DLL расширения ISAPI.
Строка параметров, указанная в форме или операторе ссылки <A>. Эта строка указывается после адреса URL библиотеки DLL расширения ISAPI вслед за разделительным символом “?”.
Адрес IP узла, на котором работает навигатор удаленного пользователя.
Доменное имя узла, на котором работает навигатор удаленного пользователя. Если эта информация недоступна (например, для узла не определен доменный адрес), то вместо доменного имени указывается адрес IP, как в переменной REMOTE_ADDR.
Имя пользователя, которое используется навигатором для аутентификации.
Имя пользователя до обработки фильтром ISAPI, которое используется навигатором для аутентификации.
Метод доступа, который используется для передачи данных от навигатора серверу WWW.
|
Код ошибки |
Описание |
|
ERROR_INVALID_INDEX |
Неправильное имя переменной, передаваемой через параметр lpszVariableName |
|
ERROR_INVALID_PARAMETER |
Неправильное значение параметра hConn |
|
ERROR_INSUFFICIENT_BUFFER |
Буфер, адрес которого указан с помощью параметра lpvBuffer, слишком мал. Необходимый размер буфера записывается по адресу, который был передан функции через параметр lpdwSize |
|
ERROR_MORE_DATA |
Буфер, адрес которого указан с помощью параметра lpvBuffer, слишком мал. В результате данные были прочитаны частично, причем размер буфера, необходимый для чтения всех данных, неизвестен |
|
ERROR_NO_DATA |
Данные не были получены |