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
ERROR_INVALID_PARAMETER
El parámetro ReqQueueHandle no contiene una cola de solicitudes válida.
ERROR_INVALID_ID_AUTHORITY
El proceso de llamada no es el proceso de controlador para esta cola de solicitudes.
ERROR_INVALID_HANDLE
El proceso de llamada ya ha iniciado un apagado en la cola de solicitudes o ha cerrado el identificador de cola de solicitudes.
ERROR_ALREADY_EXISTS
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

Consulte también

Funciones de la API de servidor HTTP versión 2.0

HttpCloseRequestQueue

HttpCreateRequestQueue

HttpQueryRequestQueueProperty

HttpSetRequestQueueProperty

HttpShutdownRequestQueue