NAME

HTTP_FILTER_CONTEXT - ISAPI filter request information.


SYNOPSIS

 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);     
 };


DESCRIPTION

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.


SEE ALSO

isapi(7), HttpFilterProc(3), GetServerVariable(3), WriteClient(3), ServerSupportFunction(3), AddResponseHeaders(3), AllocMem(3), EXTENSION_CONTROL_BLOCK(5).


FILES

$ZEUSHOME/web/include/httpfilt.h $ZEUSHOME/web/include/wintypes.h $ZEUSHOME/webadmin/docroot/docs/modules/isapi/*.html


COPYRIGHT

Copyright (C) 2000-2001 Zeus Technology Limited. All rights reserved.