EXTENSION_CONTROL_BLOCK yapısı

EXTENSION_CONTROL_BLOCK yapısı aşağıdaki biçime sahiptir:

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;

Sunucu ISA EXTENSION_CONTROL_BLOCK üzerinden iletişim kurar.

Üye iletilerini uzantısı (In) veya (dışarı) uzantısı geçerli olup olmadığını gösterir ve dışarı yukarıdaki başvuruları.

Üyeler

EXTENSION_CONTROL_BLOCK yapısı aşağıdaki alanları içerir.:

cbSize

Bu yapısı.

dwVersion

Sürüm bilgilerini ofnbsp; HTTP_FILTER_REVISIO&N. HIWORD ana sürüm numarası ve loword alt sürüm numarası.

RequestId'yi

 http sunucusu tarafından atanan benzersiz bir numara. O değiştirilmemelidir.

dwHttpStatusCode

İstek yapıldığında geçerli hareketin durumu. Aşağıdakilerden biri olabilir:

lpszLogData

Arabellek boyutu hse_log_buffer_len. Geçerli hareketin ISA için belirli bir günlük biten bilgi dize içerir. Bu günlük bilgileri http sunucusu günlüğüne girilir. http sunucusu hem ISA hareketleri ile tek bir günlük dosyasında muhafaza yönetim açısından çok yararlı.

lpszMethod

İsteği ile yapıldığı yöntemi. Bu CGI değişkenine istek_yöntemi eşdeğerdir.

lpszQueryString

nbsp;Sorgu bilgileri içeren boş sonlandırılmış dize. Bu CGI değişkenine QUERY_STRI&NG eşdeğerdir.

lpszPathInfo

İstemci tarafından verilen ilave yol bilgilerini içeren boş sonlandırılmış dize. Bu CGI değişkenine PATH_INFO eşdeğerdir.

lpszPathTranslated

Tercüme yolunu içeren boş sonlandırılmış dize. Bu CGI değişkenine path_translated eşdeğerdir.

cbTotalBytes

İstemcide&n alınan bayt sayısı. Bu CGI değişkenine content_lengtheşdeğerdir. Bu değer olarak 0xffffffff kullanılır, sonra orada dört gigabayt veya daha fazla kullanılabilir data.nbsp; Daha fazla veri döndürülünceye kadar CHttpServerContext::ReadClient bu durumda çağrılmalıdır.

cbAvailable

LpbDatatarafından kullanılabilir bayt sayısı (dışarı cbTotalBytestoplamı) arabellek işaret etti. CbTotalBytes cbAvailable değişken aynı ise lpbData istemci tarafından gönderilen tüm verileri içeren bir arabellek işaret eder. Aksi halde cbTotalBytes , alınan veri baytları sayısı içerecektir. ISA sonra ( cbAvailablezamanyna başlayarak) verileri geri kalanını okumak için CHttpServerContext::ReadClient işlev kullanmanız gerekir.

lpbData

İstemci tarafından gönderilen verileri içeren boyutu cbAvailable bir ara noktaları.

lpszContentType

İstemci tarafından gönderilen verileri içerik türünü içeren boş sonlandırılmış dize. Bu CGI değişkenine içerik_türü eşdeğerdir.

GetServerVariable

Bu işlev, bir http bağlantısı veya sunucunun kendisi, içine bir arabellek (CGI değişkenleri dahil) bilgileri ilgili kopyalar. GetServerVariable aşağıdaki parametreleri alır:

WriteClient

Bilgileri, belirtilen arabellek için istemciye gönderir. WriteClient aşağıdaki parametreleri alır:

ReadClient

Bilgileri Web istemci http isteğinin gövdesinden içine çağıran tarafından sağlanan arabelleği okur. ReadClient aşağıdaki parametreleri alır:

ServerSupportFunction

Dia bazı genel amaçlı işlevlerinin yanı sıra http sunucusu uygulaması için belirli işlevleri sağlar. ServerSupportFunction aşağıdaki parametreleri alır:

Yorumlar

Bir su&nucu dosyaları extensionsnbsp ile tanımlar;.exe ve.CGI (Common Gateway Interface) yürütülebilir bat. Ayrıca, bir sunucu bir dosya dll uzantısı ile çalıştırmak üzere bir komut dosyası tanımlayacak.

Sunucu dll dosyasını yüklediğinde, dll Giriş noktasında thenbsp sürüm numarasını almak için CHttpServer::GetExtensionVersion çağırır; ISA temel HTTP_FILTER_REVISIO&N ve sunucu yöneticileri için kısa bir metin açıklaması. Her istemci isteği için CHttpServer::HttpExtensionProc giriş noktası denir. Sorgu dizesi, yol bilgi, yöntem adı ve tercüme yolu gibi sık ihtiyaç duyulan bilgileri uzantısı alır.

Ayrıca bkz: CHttpServerContext::ReadClient, CHttpServer::GetExtensionVersion, CHttpServer::HttpExtensionProc

Index