EXTENSION_CONTROL_BLOCK - ISAPI extension request information.
typedef struct { DWORD cbSize; /* Size of this struct. */ DWORD dwVersion; /* Version info of this spec */ HCONN ConnID; /* Context number: not to be modified! */ DWORD dwHttpStatusCode; /* HTTP Status code */
/* null terminated log info specific to this Extension DLL */ CHAR lpszLogData[HSE_LOG_BUFFER_LEN];
/* strings giving equivalents of CGI spec's environment: */ LPCSTR lpszMethod; /* REQUEST_METHOD */ LPCSTR lpszQueryString; /* QUERY_STRING */ LPCSTR lpszPathInfo; /* PATH_INFO */ LPCSTR lpszPathTranslated;/* PATH_TRANSLATED */
/* description of data from the client: */ DWORD cbTotalBytes; /* Total bytes indicated from client */ DWORD cbAvailable; /* Available number of bytes */ LPBYTE lpbData; /* Pointer to cbAvailable bytes */ LPCSTR lpszContentType; /* Content type of client data */
BOOL (WINAPI * GetServerVariable) ( HCONN hConn, LPSTR lpszVariableName, LPVOID lpvBuffer, LPDWORD lpdwSizeofBuffer );
BOOL (WINAPI * WriteClient) ( HCONN ConnID, LPVOID Buffer, LPDWORD lpdwBytes, DWORD dwReserved );
BOOL (WINAPI * ReadClient) ( HCONN ConnID, LPVOID lpvBuffer, LPDWORD lpdwSize );
BOOL (WINAPI * ServerSupportFunction)( HCONN hConn, DWORD dwHSERRequest, LPVOID lpvBuffer, LPDWORD lpdwSize, LPDWORD lpdwDataType ); } EXTENSION_CONTROL_BLOCK;
When an ISAPI-enabled web server delegates processing to the HttpExtensionProc of an extension library, it communicates the request being processed, and the stage of its processing being handled, in an EXTENSION_CONTROL_BLOCK. This provides data describing the request along with functions by which the extension 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 if they were library functions. The EXTENSION_CONTROL_BLOCK's ConnID field should be used as first argument to these functions.
isapi(7),
HttpExtensionProc(3),
GetServerVariable(3),
WriteClient(3)
ReadClient(3),
ServerSupportFunction(3).
$ZEUSHOME/web/include/httpext.h $ZEUSHOME/web/include/wintypes.h $ZEUSHOME/webadmin/docroot/docs/modules/isapi/*.html
Copyright (C) 2000-2001 Zeus Technology Limited. All rights reserved.