BOOL ServerSupportFunction (DWORD dwHSERRequest, LPVOID lpvBuffer, LPDWORD lpdwSize, LPDWORD lpdwDataType );
Valor devuelto
Distinto de cero si es correcto, en caso contrario 0.
Parámetros
dwHSERRequest
Un valor de extensión de servidor HTTP. Vea la sección de comentarios para obtener una lista de los valores admitidos.
lpvBuffer
Cuando se utiliza con HSE_REQ_SEND_RESPONSE_HEADER, apunta a una cadena nula terminada Estado opcional (por ejemplo, "401 acceso denegado"). Si este buffer es null, una respuesta predeterminada de "200 OK" enviará esta función. Cuando se utiliza con HSE_REQ_DONE_WITH_SESSION, apunta a un DWORD que indica el código de estado de la solicitud.
lpdwSize
Cuando se utiliza con HSE_REQ_SEND_RESPONSE_HEADER, señala el tamaño de la memoria intermedia lpdwDataType.
lpdwDataType
Cuando se utiliza con HSE_REQ_SEND_RESPONSE_HEADER, esto es una cadena terminada en null señala a encabezados opcionales o de datos anexados y se enviarán con el encabezado. Si el valor es nulo, el encabezado se terminará por un par de "\r\n".
&Notanbsp; Funciones de propósito general deben tener un valor de dwHSERequest mayor de HSE_REQ_END_RESERVED. Valores hasta HSE_REQ_END_RESERVED están reservados para ServerSupportFunctions obligatorio y no deben utilizarse.
Observaciones
Llame a esta función miembro para proporcionar la ISA con algunas funciones de propósito general, así como las funciones que son específicas para la implementación del servidor HTTP.
El valor de extensión de servidor HTTP representado por dwHSERRequest puede ser uno de los siguientes:
HSE_REQ_SEND_URL_REDIRECT_RESP
Envía un 302 ( URL Redirec t) mensajes al cliente. Ningún otro procesamiento es necesario después de la llamada. Esta operación es similar a la especificación "URI: lt;URL > "en un encabezado de secuencia de comandos CGI. La variable lpvBuffer debe apuntar a una cadena URL terminada en nulo. Variable lpdwSize debe tener el tamaño de lpvBuffer. Se ignora la variable lpdwDataType.
HSE_REQ_SEND_URL
Envía los datos especificados por el URL al cliente como si el cliente había solicitado dicha URL. El Null terminated URL apuntado por lpvBuffer debe estar en el servidor y no se debe especificar la información de protocolo (es decir, debe comenzar con un '/'). Ningún otro procesamiento es necesario después de esta llamada. Variable lpdwSize apunta a una DWORD mantiene el tamaño de lpvBuffer. Se ignora la variable lpdwDataType.
HSE_REQ_SEND_RESPONSE_HEADER
Incluyendo la condición de versión del servidor, tiempo de mensaje y versión MIME el encabezado de respuesta de servidor envía un HTTP completo. La extensión de servidor o ISA debe anexar otros encabezados HTTP al final como el Content-Type, Content-Length y así sucesivamente, seguido por extra "\r\n".
HSE_REQ_DONE_WITH_SESSION
Si la extensión de servidor o ISA quiere aferrarse a la sesión porque ha extendido a los requisitos de procesamiento, debe indicar al servidor cuando termine el período de sesiones para que el servidor pueda cerrarlo y libre de las estructuras relacionadas. Variables lpvBuffer, lpdwSizey lpdwDataType se omiten.
HSE_REQ_END_RESERVED
Funciones superiores a este valor son servidor específico y pueden no estar disponibles en todos los servidores web que admiten ISAPI.
HSE_REQ_MAP_URL_TO_PATH
El parámetro lpvBuffer es un puntero a un búfer que contiene la ruta de acceso lógico a la entrada y la ruta de acceso física al salir. El parámetro lpdwSize es un puntero a la DWORD que contiene el tamaño del búfer pasado en lpvBuffer en la entrada y coloca el número de bytes en el búfer de salida. Se omite el parámetro lpdwDataType ). Una extensión específica de Microsoft.
HSE_REQ_GET_SSPI_INFO
El lpvBuffer se rellena con el identificador de contexto y * lpdwDataType se rellena con el identificador de credencial. Un identificador de contexto especifica un tipo de puntero o un identificador de tipo. Un identificador de credencial especifica la autenticación y autorización.
HSE_REQ_TRANSMIT_FILE
Consulte TransmitFile para un método más fácil de transmitir un archivo a un solicitante.
&Notanbsp; El servidor no garantiza que los búferes grandes suficientemente antes de rellenar los controles y el lpdwSize no se actualiza para reflejar la cantidad de datos que se copian en el búfer de lpvBuffer . Dado que estos son fijos estructuras de tamaño, se supone los punteros pasados son punteros a la estructura y deben ser al menos tan grandes como las estructuras de solicitud.
Visión General de CHttpServerContext |nbsp; Miembros de clase | Diagrama de jerarquía
Véase también
CHttpFilterContext::ServerSupportFunction, CHttpServerContext::TransmitFile