EXTENSION_CONTROL_BLOCK 構造

EXTENSION_CONTROL_BLOCK構造は次の形式をが:

typedef struct _EXTENSION_CONTROL_BLOCK {

    DWORD     cbSize;                              //IN
    DWORD     dwVersion                            //IN
    HCONN     ConnID;                              //IN
    DWORD     dwHttpStatusCode;                   //OUT
    CHAR      lpszLogData[HSE_LOG_BUFFER_LEN];    //OUT
    LPSTR     lpszMethod;                          //IN
    LPSTR     lpszQueryString;                     //IN
    LPSTR     lpszPathInfo;                        //IN
    LPSTR     lpszPathTranslated;                  //IN
    DWORD     cbTotalBytes;                        //IN
    DWORD     cbAvailable;                         //IN
    LPBYTE    lpbData;                             //IN
    LPSTR     lpszContentType;                     //IN

    BOOL ( WINAPI * GetServerVariable )
       ( HCONN       hConn,
        LPSTR       lpszVariableName,
        LPVOID      lpvBuffer,
        LPDWORD     lpdwSize );

    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, *LPEXTENSION_CONTROL_BLOCK;

EXTENSION_CONTROL_BLOCKを介して ISA サーバーと通信します。

上記への参照を示しますメンバー メッセージ拡張 (IN) または (OUT) 拡張対象かどうか。

メンバー

EXTENSION_CONTROL_BLOCK構造に次のフィールドが含まれています:

cbSize

この構造体のサイズ。

dwVersion

バージョン情報 ofnbsp;HTTP_FILTER_REVISIONHIWORDメジャー バージョン番号と、 LOWORDマイナー バージョン番号(&N)。

ConnID

特価;HTTP サーバーによって割り当てられる一意の番号。変更する必要があります。(&N)。

dwHttpStatusCode

要求が完了すると、現在のトランザクションのステータス。次のいずれかをすることができます。:

lpszLogData

バッファーのサイズHSE_LOG_BUFFER_LEN。現在のトランザクションの ISA には、特定のログの null で終わる情報文字列を格納します。このログ情報は、HTTP サーバー ログに入力されます。HTTP サーバーと ISA トランザクションの両方が、単一のログ ファイルを維持管理のために非常に便利です。

lpszMethod

要求されたメソッド。これは CGI 変数REQUEST_METHODに相当します。

lpszQueryString

特価;クエリ情報を含む null で終わる文字列。これは CGI 変数QUERY_STRINGに相当します。(&N)。

lpszPathInfo

クライアントによって指定された追加のパス情報を含む null で終わる文字列。これは CGI 変数PATH_INFOと同じです。

lpszPathTranslated

変換されたパスを含む null で終わる文字列。これは CGI 変数PATH_TRANSLATEDに相当します。

cbTotalBytes

クライアントから受信されるバイトの合計数。これは CGI 変数CONTENT_LENGTHに相当します。この値が 0 xffffffff の場合は、その後は 4 gb 以上の利用可能な data.nbsp;ないより多くのデータが返されるまで、 CHttpServerContext::ReadClientがこのケースでは、呼び出す必要があります。(&N)。

cbAvailable

使用可能なlpbDataが指すバッファー (のcbTotalBytesの合計バイト数。場合はcbTotalBytes cbAvailable変数と同じですlpbDataは、クライアントによって送信されるすべてのデータを含むバッファーをポイントします。それ以外の場合cbTotalBytesは、受信したデータのバイトの合計数が含まれます。ISA は、( cbAvailableのオフセットから開始)、データの残りの部分を読むにコールバック関数CHttpServerContext::ReadClientを使用する必要があります。

lpbData

クライアントによって送信されるデータがサイズcbAvailableのバッファーへのポインター。

lpszContentType

クライアントによって送信されたデータのコンテンツ タイプを含む null で終わる文字列。これは CGI 変数CONTENT_TYPEに相当します。

GetServerVariable

この関数は、(CGI 変数を含む) の情報を HTTP 接続、または、サーバー自体のバッファーに関連をコピーします。GetServerVariableには次のパラメーターをが:

WriteClient

情報をクライアントに、指定されたバッファーから送信します。WriteClientには次のパラメーターをが:

ReadClient

情報は、Web クライアントの HTTP 要求の本体から、呼び出し元によって指定されたバッファーに読み取ります。ReadClientには次のパラメーターをが:

ServerSupportFunction

Isa は、HTTP サーバー実装に固有な機能だけではなく汎用の機能の一部を提供します。ServerSupportFunctionには次のパラメーターをが:

コメント

サーバー ファイルと extensionsnbsp 識別;。EXE と。CGI (共通ゲートウェイ インターフェイス) 実行可能ファイルとしてバットします。さらに、サーバー ファイル、DLL 拡張子を実行するスクリプトとして識別します。(&N)。

サーバー DLL を読み込む場合は、thenbsp のバージョン番号を取得するには、 CHttpServer::GetExtensionVersionのエントリ ポイントで、DLL を呼び出す;ISA に基づいていますHTTP_FILTER_REVISIONとサーバー管理者を説明する短いテキスト。すべてのクライアント要求には、 CHttpServer::HttpExtensionProcエントリ ポイントと呼ばれます。一般的に必要な情報、クエリ文字列、パス情報、メソッド名、および翻訳のパスなど、拡張機能を受け取る(&N)。

参照特価;CHttpServerContext::ReadClientCHttpServer::GetExtensionVersionCHttpServer::HttpExtensionProc(&N)

Index