HTTP_FILTER_CONTEXT структура

HTTP_FILTER_CONTEXT структура має такий вигляд:

typedef struct _HTTP_FILTER_CONTEXT
{

DWORD    cbSize;                                  //IN
DWORD    Revision;                                //IN
PVOID    ServerContext;                           //IN
DWORD    ulReserved;                              //IN
BOOL     fIsSecurePort;                           //IN
PVOID    pFilterContext;                      //IN/OUT

BOOL    (WINAPI * GetServerVariable) (    
    struct _HTTP_FILTER_CONTEXT *    pfc,
    LPSTR      lpszVariableName,
    LPVOID     lpvBuffer,
    LPDWORD    lpdwSize
    );    

BOOL    (WINAPI * AddResponseHeaders) (    
    struct _HTTP_FILTER_CONTEXT *    pfc,
    LPSTR    lpszHeaders,
    DWORD    dwReserved
    );     

BOOL    (WINAPI * WriteClient)  (    
    struct _HTTP_FILTER_CONTEXT *    pfc,
    LPVOID     Buffer,
    LPDWORD    lpdwBytes,
    DWORD      dwReserved
    );     

VOID *     (WINAPI * AllocMem) (    
    struct _HTTP_FILTER_CONTEXT *    pfc,
    DWORD      cbSize,
    DWORD      dwReserved
    );    

BOOL    (WINAPI * ServerSupportFunction) (    
    struct _HTTP_FILTER_CONTEXT *    pfc,
    enum SF_REQ_TYPE    sfReq,
    PVOID       pData,
    DWORD       ul1,
    DWORD       ul2
    );     

} HTTP_FILTER_CONTEXT, *PHTTP_FILTER_CONTEXT;
 

Посилання В або IN/OUT над вказують, чи член застосовується лише для повідомлень на фільтр (IN) або обох до і з фільтр (IN/OUT).

Члени

cbSize

Розмір цієї структури, у байтах.

Редакція

nbsp;Перегляд рівня цієї структури. Менше або дорівнює версія HTTP_FILTER_REVISIO&N.

ServerContext

Зарезервовано для використання сервера.

ulReserved

Зарезервовано для використання сервера.

fIsSecurePort

Правда, показує, що ця подія відбувається через безпечне порт.

pFilterContext

Вказівник, щоб використовувати фільтр для будь-якої інформації контекст, який фільтр хоче спілкуватися з цього запиту. Будь-яку пам'ять, пов'язаних з цього запиту можна безпечно звільнений під час SF_NOTIFY_END_OF_NET_SESSION повідомлення.

GetServerVariable

Вказівник на функцію, щоб отримати відомості про сервер і це co&nnection.nbsp; Див CHttpServerContext::GetServerVariable деталі. GetServerVariable займає наступні параметри

AddResponseHeaders

Вказівник на функцію, яка додає заголовок HTTP відповіді. Перегляньте опис HSE_REQ_SEND_RESPONSE_HEADER в CHttpServerContext::ServerSupportFunction , для деталей. AddResponseHeaders займає наступні параметри

WriteClient

Вказівник на функцію, яка посилає необроблені дані клієнта. Див CHttpFilterContext::WriteClient деталі. WriteClient займає наступні параметри

AllocMem

Вказівник на функцію, використовуються виділити пам'ять. Будь-який пам'яті з ця функція автоматично бути звільнені, коли виконати запит. AllocMem займає наступні параметри:

ServerSupportFunction

Вказівник на функцію для розширення ISAPI фільтр API. Параметри, перераховані нижче, є специфічними для ISA, використовується.

Коментарі

Нижче наведені можливі значення параметрів ServerSupportFunction:

sfReq pData ul1, ul2
SF_REQ_SEND_RESPONSE_HEADER Нульовий рядок вказують на необов'язковий стану рядок (тобто, "401 доступ доступі») або NULL за замовчуванням реакція" 200 ОК ". Нульовий рядок вказують на додаткові дані, щоб бути включені і з верхнього колонтитула. Якщо значення NULL, заголовок завершується з пустого рядка.
SF_REQ_ADD_HEADERS_ON_DENIAL Нульовий рядок вказують на один або більше рядків заголовків з припинення '\r\n'.
SF_REQ_SET_NEXT_READ_SIZE Розмір у байтах за наступний читання.

Дивіться також CHttpFilter::HttpFilterProc, CHttpFilter::OnLog, CHttpServerContext, CHttpServerContext::GetServerVariable, CHttpServerContext::ServerSupportFunction, CHttpServerContext::WriteClient

Index