CHttpServerContext::ServerSupportFunction

BOOL ServerSupportFunction (DWORD dwHSERRequest, LPVOID lpvBuffer, out lpdwSize, out lpdwDataType );

Valor de retorno

Diferente de zero se for bem-sucedida, caso contrário, 0.

Parâmetros

dwHSERRequest

Um valor de extensão do servidor HTTP. Consulte a seção Comentários para obter uma lista de valores com suporte.

lpvBuffer

Quando usado com o HSE_REQ_SEND_RESPONSE_HEADER, ele aponta para uma Cadeia de caracteres nula finalizada opcional status (por exemplo, "401 Acesso negado"). Se esta reserva for null, uma resposta padrão de "200 OK" serão enviadas por essa função. Quando usado com o HSE_REQ_DONE_WITH_SESSION, ele aponta para uma DWORD indicando o código de status do pedido.

lpdwSize

Quando usado com o HSE_REQ_SEND_RESPONSE_HEADER, ele aponta para o tamanho de buffer lpdwDataType.

lpdwDataType

Quando usado com o HSE_REQ_SEND_RESPONSE_HEADER, esta é uma seqüência de caracteres null-terminated apontando para dados a ser anexado e enviado com o cabeçalho ou cabeçalhos opcionais. Se for Nulo, o cabeçalho será encerrado por um par de "\r\n".

&Notanbsp;  Funções de propósito geral devem ter um valor dwHSERequest maior que HSE_REQ_END_RESERVED. Valores até HSE_REQ_END_RESERVED são reservados para ServerSupportFunctions obrigatória e não devem ser usados.

Observações

Chame essa função de membro para fornecer o ISA com algumas funções de propósito geral, bem como as funções que são específicas para implementação do servidor HTTP.

O valor de extensão do servidor HTTP representado por dwHSERRequest pode ser uma das seguintes:

HSE_REQ_SEND_URL_REDIRECT_RESP

Envia um 302 ( URL Redirec t) mensagem para o cliente. Sem processamento adicional é necessária após a chamada. Esta operação é semelhante à especificação "URI: lt;URL > "em um cabeçalho de script CGI. A variável lpvBuffer deve apontar para uma null finalizada seqüência de caracteres de URL. Variável lpdwSize deve ter o tamanho de lpvBuffer. Variável lpdwDataType é ignorado.

HSE_REQ_SEND_URL

Envia os dados especificados pelo URL para o cliente como se o cliente solicitou que o URL. A Null terminated URL apontada pelo lpvBuffer deve estar no servidor e não deve especificar informações de protocolo (ou seja, ele deve começar com um '/'). Sem processamento adicional é necessária após este chamar. Variável lpdwSize aponta para um DWORD mantendo o tamanho de lpvBuffer. Variável lpdwDataType é ignorado.

HSE_REQ_SEND_RESPONSE_HEADER

Cabeçalho de resposta de servidor envia um HTTP completa incluindo o status, versão do servidor, tempo mensagem e versão MIME. A extensão de ISA ou servidor deve acrescentar outros cabeçalhos HTTP no final como o Content-Type, Content-Length e assim por diante, seguiram de um extra "\r\n".

HSE_REQ_DONE_WITH_SESSION

Se a extensão de ISA ou servidor quer se apegar a sessão porque tem estendido requisitos de processamento, ele precisará informar o servidor quando a sessão terminar para que o servidor possa fechá-lo e livre as estruturas relacionadas. Variáveis lpvBuffer, lpdwSizee lpdwDataType são ignorados.

HSE_REQ_END_RESERVED

Funções mais elevadas do que esse valor são específico do servidor e podem não estar disponíveis em todos os servidores web que oferecem suporte a ISAPI.

HSE_REQ_MAP_URL_TO_PATH

O lpvBuffer parâmetro é um ponteiro para o buffer que contém o caminho lógico de entrada e o caminho físico em sair. O lpdwSize parâmetro é um ponteiro para o DWORD que contém o tamanho do buffer passado lpvBuffer na entrada e o número de bytes colocados no buffer de saída. O lpdwDataType parâmetro é ignorado). Uma extensão de Microsoft-specific.

HSE_REQ_GET_SSPI_INFO

O lpvBuffer é preenchido com o identificador de contexto e * lpdwDataType é preenchido com o identificador de credencial. Um identificador de contexto Especifica um tipo de ponteiro ou um identificador de tipo. Um identificador de credencial especifica autenticação e autorização.

HSE_REQ_TRANSMIT_FILE

Consulte TransmitFile para um método mais fácil de transmissão de um arquivo para um solicitante.

&Notanbsp;  O servidor não garante que os buffers são grandes bastante antes de preencher as alças e lpdwSize não é atualizado para refletir a quantidade de dados copiados para o buffer lpvBuffer . Uma vez que estes são fixados a estruturas de tamanho, é assumido que os ponteiros passados são ponteiros para a estrutura e devem ser pelo menos tão grandes como as estruturas de solicitação.

Visão geral de CHttpServerContext |nbsp; Membros de classe | Gráfico de hierarquia

Ver também

CHttpFilterContext::ServerSupportFunction, CHttpServerContext::TransmitFile

Index