HTTP_FILTER_CONTEXT - ISAPI filter request information.
typedef struct _HTTP_FILTER_CONTEXT HTTP_FILTER_CONTEXT, *PHTTP_FILTER_CONTEXT;
struct _HTTP_FILTER_CONTEXT { DWORD cbSize; /* the size of this structure */ DWORD Revision; /* the revision number of this structure */ PVOID ServerContext; /* reserved for server use */ DWORD ulReserved; /* reserved for server use */ BOOL fIsSecurePort; /* TRUE if the connection is on a secure port */ PVOID pFilterContext; /* a pointer to information the filter has associated with the request */
/* Utility functions: */ BOOL (*GetServerVariable) (HTTP_FILTER_CONTEXT * pfc, LPSTR lpszVariableName, LPVOID lpvBuffer, LPDWORD lpdwSize); BOOL (*AddResponseHeaders) (HTTP_FILTER_CONTEXT * pfc, LPSTR lpszHeaders, DWORD dwReserved); BOOL (*WriteClient) (HTTP_FILTER_CONTEXT * pfc, LPVOID Buffer, LPDWORD lpdwBytes, DWORD dwReserved); LPVOID (*AllocMem) (HTTP_FILTER_CONTEXT * pfc, DWORD cbSize, DWORD dwReserved); BOOL (*ServerSupportFunction)(HTTP_FILTER_CONTEXT * pfc, DWORD sfReq, LPVOID pData, LPDWORD ul1, LPDWORD ul2); };
When an ISAPI-enabled web server delegates processing to the HttpFilterProc of a filter, it communicates the request being processed, and the stage of its processing being handled, in an HTTP_FILTER_CONTEXT. This provides data describing the request along with functions by which the filter can obtain support from the server and communicate with the client who made the request.
The functions (methods or callbacks, as you will) in the structure are
documented separately as manual pages, as if they were library functions.
This saves duplication of the description where there is a like-named field
of an EXTENSION_CONTROL_BLOCK(5),
although there are minor
differences even in those cases. Each expects, as first argument, a pointer
to the HTTP_FILTER_CONTEXT from which the function was obtained.
isapi(7),
HttpFilterProc(3),
GetServerVariable(3),
WriteClient(3),
ServerSupportFunction(3),
AddResponseHeaders(3),
AllocMem(3),
EXTENSION_CONTROL_BLOCK(5).
$ZEUSHOME/web/include/httpfilt.h $ZEUSHOME/web/include/wintypes.h $ZEUSHOME/webadmin/docroot/docs/modules/isapi/*.html
Copyright (C) 2000-2001 Zeus Technology Limited. All rights reserved.