Следующей важной функцией для создания фильтра является HttpFilterProc. Вы можете добавить эту функцию используя Add Virtual Function для класса потомка от CHttpFilter.
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 будет ждать когда фильтр вернет функцию назад. Возвратить можно следующие параметры: