Шаг 5 - HttpFilterProc

Следующей важной функцией для создания фильтра является HttpFilterProc. Вы можете добавить эту функцию используя Add Virtual Function для класса потомка от CHttpFilter.

5_1.gif (4256 b)

HttpFilterProc и GetFilterVersion являются функциями взаимодействия с сервером. Посмотрите DEF файл там экспортируется всего две функции.

; MYFILTER.def : declares the module parameters for the DLL.

LIBRARY	     "MYFILTER"

EXPORTS
	HttpFilterProc
	GetFilterVersion

Так как же организуется взаимодействие с сервером, если всего две функции и то одна для регистрации фильтра ??? Давайте посмотрим описание HttpFilterProc.

DWORD WINAPI HttpFilterProc
(
	PHTTP_FILTER_CONTEXT pfc,	// структура для информации запроса и
				//указатель на функции сервера
  DWORD notificationType,		// типа уведомления
  LPVOID pvNotification		// указатель на структуре для данного уведомления
);

Структура PHTTP_FILTER_CONTEXT для каждого запроса уникальна. Вот в этом вся и соль. Для каждого запроса она разная. Но в ней еще и передаются указатели на функции сервера. Ими можно воспользоваться для того, чтобы вызвать функции сервера.

При передаче работы в функцию HttpFilterProc фильтра IIS будет ждать когда фильтр вернет функцию назад. Возвратить можно следующие параметры:


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем.