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) 또는 확장 (밖)에서 메시지에 적용 되는지 여부를 나타냅니다.

회원

EXTENSION_CONTROL_BLOCK 구조체에는 다음 필드가 포함 되어 있습니다.:

cbSize

이 구조체의 크기。

dwVersion

버전 정보를 ofnbsp; HTTP_FILTER_REVISION. HIWORD 는 주 버전 번호가 고 LOWORD 는 부 버전 번호(&N)。

ConnID

nbsp;HTTP 서버에 의해 할당 된 고유 번호입니다. 수정할 수 있어야 합니다(&N).

dwHttpStatusCode

요청이 완료 되 면 현재 트랜잭션의 상태입니다. 다음 중 하나가 될 수 있습니다.:

lpszLogData

HSE_LOG_BUFFER_LEN크기의 버퍼입니다. 현재 트랜잭션이 ISA에 null 종료 로그 정보 문자열을 포함 되어 있습니다. 이 로그 정보는 HTTP 서버 로그에 입력 됩니다. 관리 목적을 위해 매우 유용 HTTP 서버와 ISA 트랜잭션이 단일 로그 파일을 유지。

lpszMethod

메서드는 요청 되었다입니다. 이것은 CGI 변수 REQUEST_METHOD 에 해당。

lpszQueryString

nbsp;Null로 끝나는 문자열 쿼리 정보를 포함 합니다. 이것은 CGI 변수 QUERY_STRING 에 해당(&N)。

lpszPathInfo

Null로 끝나는 문자열 클라이언트에 의해 주어진 추가 경로 정보를 포함 합니다. 이것은 CGI 변수 PATH_INFO 같습니다.

lpszPathTranslated

Null로 끝나는 문자열 변환 된 경로 포함 합니다. 이것은 CGI 변수 PATH_TRANSLATED 같습니다.

cbTotalBytes

클라이언트에서 받은 바이트의 총 수입니다. 이것은 CGI 변수 CONTENT_LENGTH같습니다. 이 값이 0xffffffff 이면는 경우 4gb 이상의 사용 가능한 data.nbsp; 더 많은 데이터가 반환 될 때까지 CHttpServerContext::ReadClient 를 호출 해야이 경우(&N)。

cbAvailable

사용할 수 있는 (총 cbTotalBytes)의 밖으로 lpbData가 가리키는 버퍼의 바이트 수입니다. CbTotalBytes 는 cbAvailable 변수 lpbData 클라이언트에서 전송한 모든 데이터를 포함 하는 버퍼에 가리킵니다. 그렇지 않으면 cbTotalBytes 총 받은 데이터의 바이트 수가 포함 됩니다. ISA CHttpServerContext::ReadClient 콜백 함수를 사용 하 여 데이터 ( cbAvailable오프셋에서 시작)의 나머지를 읽이 필요가 다음。

lpbData

클라이언트에서 보낸 데이터 크기 cbAvailable 의 버퍼를 포인트。

lpszContentType

클라이언트에서 보낸 데이터의 콘텐츠 형식을 포함 된 null로 끝나는 문자열. 이것은 CGI 변수 CONTENT_TYPE 같습니다.

GetServerVariable

이 함수는 (를 포함 하 여 CGI 변수) 정보 관련 HTTP 연결, 또는 서버 자체를 버퍼에 복사 합니다. 다음 매개 변수를 사용 하는 GetServerVariable:

WriteClient

지정 된 버퍼에서 클라이언트에 정보를 보냅니다. WriteClient 은 다음 매개 변수:

ReadClient

호출자가 제공한 버퍼에 웹 클라이언트의 HTTP 요청 본문에서 정보를 읽습니다. ReadClient 은 다음 매개 변수:

ServerSupportFunction

HTTP 서버 구현에 관련 된 기능 뿐만 아니라 몇 가지 범용 함수를 우주 과학 연구소를 제공 합니다. ServerSupportFunction 은 다음 매개 변수:

코멘트

Extensionsnbsp;와 파일을 식별 하는 서버.EXE와.CGI (Common Gateway Interface) 실행으로 전투. 또한, 서버 식별 파일 DLL 확장명을 가진 실행 스크립트(&N)。

서버 DLL을 로드 하는 경우에 DLL 진입점 thenbsp;의 버전 번호를 CHttpServer::GetExtensionVersion 에서 호출 HTTP_FILTER_REVISION ISA 기반으로 및 서버 관리자에 대 한 짧은 텍스트 설명. 모든 클라이언트 요청에 대 한 CHttpServer::HttpExtensionProc 진입점이 호출 됩니다. 확장 변환된 경로, 메서드 이름, 경로 정보, 쿼리 문자열 등 일반적으로 필요한 정보를 수신(&N)。

참고 항목nbsp;CHttpServerContext::ReadClient, CHttpServer::GetExtensionVersion, CHttpServer::HttpExtensionProc(&N)

Index