Función HttpWaitForDemandStart (http.h)
La función HttpWaitForDemandStart espera la llegada de una nueva solicitud que se puede atender mediante un nuevo proceso de cola de solicitudes.
Sintaxis
HTTPAPI_LINKAGE ULONG HttpWaitForDemandStart(
[in] HANDLE RequestQueueHandle,
[in, optional] LPOVERLAPPED Overlapped
);
Parámetros
[in] RequestQueueHandle
Identificador de la cola de solicitudes en la que se registra el inicio de la demanda. Se crea una cola de solicitudes y su identificador devuelto por una llamada a la función HttpCreateRequestQueue .
[in, optional] Overlapped
Para las llamadas asincrónicas, establezca pOverlapped para que apunte a una estructura SUPERPUESTA ; para llamadas sincrónicas, establéztelo en NULL.
Una llamada sincrónica se bloquea hasta que una solicitud ha llegado a la cola especificada, mientras que una llamada asincrónica devuelve inmediatamente ERROR_IO_PENDING y la aplicación que realiza la llamada usa puertos de finalización de E/S o GetOverlappedResult para determinar cuándo se completa la operación. Para obtener más información sobre el uso de estructuras SUPERPUESTAs para la sincronización, consulte
Sincronización y entrada y salida superpuestas.
Valor devuelto
Si la función se realiza correctamente, devuelve NO_ERROR.
Si se produce un error en la función, devuelve uno de los siguientes códigos de error.
Valor | Significado |
---|---|
|
El parámetro ReqQueueHandle no contiene una cola de solicitudes válida. |
|
El proceso de llamada no es el proceso de controlador para esta cola de solicitudes. |
|
El proceso de llamada ya ha iniciado un apagado en la cola de solicitudes o ha cerrado el identificador de cola de solicitudes. |
|
Ya existe un registro de inicio de demanda para la cola de solicitudes. |
Comentarios
Solo el proceso del controlador puede llamar a HttpWaitForDemandStart para registrar una notificación de inicio de demanda. El proceso del controlador es el proceso que creó la cola de solicitudes e indicó que es un proceso de controlador pasando la marca de HTTP_CREATE_REQUEST_QUEUE_FLAG_CONTROLLER . Si un proceso distinto del proceso de control llama a HttpWaitForDemandStart, la API del servidor HTTP devuelve ERROR_INVALID_ID_AUTHORITY.
HttpWaitForDemandStart se completa cuando llega una nueva solicitud para la cola de solicitudes especificada. En este momento, un proceso de controlador puede usar esta API para iniciar un nuevo proceso de trabajo en las solicitudes pendientes del servidor. El inicio retrasado del proceso de trabajo permite a las aplicaciones evitar consumir recursos hasta que sean necesarios.
La API del servidor HTTP solo permite una notificación pendiente registrada en una cola de solicitudes en cualquier momento. La API del servidor HTTP no aplica limitaciones en el número de veces que se puede llamar a HttpWaitForDemandStart en la misma cola de solicitudes consecutivamente. No hay ningún límite en el número de procesos pendientes que están trabajando en la misma cola de solicitudes.
La API del servidor HTTP admite la cancelación de llamadas HttpWaitForDemandStart asincrónicas. Las aplicaciones pueden usar CancelIoEx con la estructura superpuesta proporcionada en el parámetro pOverlapped , para cancelar una llamada HttpWaitForDemandStart pendiente.
Requisitos
Cliente mínimo compatible | Windows Vista [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2008 [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | http.h |
Library | Httpapi.lib |
Archivo DLL | Httpapi.dll |