Microsoft Internet Security and Acceleration Server 2000

HttpFilterProc

Whenever a notification event for which the filter has registered (in GetFilterVersion) occurs, the ISA Web proxy service calls HttpFilterProc. The Web proxy service uses this function to pass information and control to the Web (ISAPI) filter. The declaration of HttpFilterProc is:

DWORD WINAPI HttpFilterProc(
  PHTTP_FILTER_CONTEXT pfc, 
  DWORD notificationType, 
  LPVOID pvNotification 
);

Parameters

pfc
Points to the HTTP_FILTER_CONTEXT data structure that is associated with the current, active HTTP transaction.
notificationType
Points to a bitmask that indicates the type of notification event that is being processed. See Event Notifications for a list of event-notification types.
pvNotification
The notification-specific structure that contains more information about the current context of the request.
Notification Type pvNotification Points To …
SF_NOTIFY_READ_RAW_DATA HTTP_FILTER_RAW_DATA
SF_NOTIFY_SEND_RAW_DATA HTTP_FILTER_RAW_DATA
SF_NOTIFY_PREPROC_HEADERS HTTP_FILTER_PREPROC_HEADERS
SF_NOTIFY_AUTHENTICATION HTTP_FILTER_AUTHENT
SF_NOTIFY_URL_MAP HTTP_FILTER_URL_MAP
SF_NOTIFY_LOG HTTP_FILTER_LOG
SF_NOTIFY_ACCESS_DENIED HTTP_FILTER_ACCESS_DENIED
SF_NOTIFY_SEND_RESPONSE HTTP_FILTER_SEND_RESPONSE
SF_NOTIFY_AUTH_COMPLETE HTTP_FILTER_AUTH_COMPLETE_INFO

Note  SF_NOTIFY_SEND_RESPONSE is not used when the ISA Web proxy service sends a response. However, it is called when a filter generates a response itself by using ServerSupportFunction (SF_REQ_SEND_RESPONSE_HEADERS).

Return Values

Returns one of the following values that indicate how the application handled the event.

SF_STATUS_REQ_FINISHED
The filter has handled the HTTP request. The server should disconnect the session.
SF_STATUS_REQ_FINISHED_KEEP_CONN
Treated the same as SF_STATUS_REQ_FINISHED. After this notification is received, the connection is closed.
SF_STATUS_REQ_NEXT_NOTIFICATION
The next filter in the notification chain should be called.
SF_STATUS_REQ_HANDLED_NOTIFICATION
This filter handled the notification. No other handlers should be called for this particular notification type.
SF_STATUS_REQ_ERROR
An error occurred. The server should call GetLastError and indicate the error to the client. The HTTP request will generally be aborted when this status is returned. The client should call SetLastError with the nature of the failure.
SF_STATUS_REQ_READ_NEXT
The filter is an opaque stream filter (encrypted/compressed HTTP requests) and the session parameters are being negotiated. This is valid only for raw-read notification. This value indicates that the full request has not yet been received; the Web server should issue another read and notify the filter with the additional data read.

Remarks

This function usually serves as the dispatch for a Web (ISAPI) filter. Separate functions are often created to serve as handlers for the separate notifications, especially if the handling code is complicated.