Função HttpWaitForDemandStart (http.h)
A função HttpWaitForDemandStart aguarda a chegada de uma nova solicitação que pode ser atendida por um novo processo de fila de solicitação.
Sintaxe
HTTPAPI_LINKAGE ULONG HttpWaitForDemandStart(
[in] HANDLE RequestQueueHandle,
[in, optional] LPOVERLAPPED Overlapped
);
Parâmetros
[in] RequestQueueHandle
Um identificador para a fila de solicitações na qual o início da demanda é registrado. Uma fila de solicitação é criada e seu identificador retornado por uma chamada para a função HttpCreateRequestQueue .
[in, optional] Overlapped
Para chamadas assíncronas, defina pOverlapped para apontar para uma estrutura OVERLAPPED ; para chamadas síncronas, defina-a como NULL.
Uma chamada síncrona é bloqueada até que uma solicitação chegue à fila especificada, enquanto uma chamada assíncrona retorna imediatamente ERROR_IO_PENDING e o aplicativo de chamada usa as portas de conclusão GetOverlappedResult ou E/S para determinar quando a operação é concluída. Para obter mais informações sobre como usar estruturas OVERLAPPED para sincronização, consulte
Sincronização e entrada e saída sobrepostas.
Valor retornado
Se a função for bem-sucedida, ela retornará NO_ERROR.
Se a função falhar, ela retornará um dos seguintes códigos de erro.
Valor | Significado |
---|---|
|
O parâmetro ReqQueueHandle não contém uma fila de solicitação válida. |
|
O processo de chamada não é o processo do controlador para essa fila de solicitação. |
|
O processo de chamada já iniciou um desligamento na fila de solicitações ou fechou o identificador da fila de solicitações. |
|
Já existe um registro de início de demanda para a fila de solicitações. |
Comentários
Somente o processo do controlador pode chamar HttpWaitForDemandStart para registrar uma notificação de início da demanda. O processo do controlador é o processo que criou a fila de solicitações e indicou que é um processo de controlador passando o sinalizador HTTP_CREATE_REQUEST_QUEUE_FLAG_CONTROLLER . Se um processo diferente do processo de controle chamar HttpWaitForDemandStart, a API do Servidor HTTP retornará ERROR_INVALID_ID_AUTHORITY.
HttpWaitForDemandStart é concluído quando uma nova solicitação chega para a fila de solicitações especificada. Neste momento, um processo de controlador pode usar essa API para iniciar um novo processo de trabalho para solicitações pendentes do servidor. O início atrasado do processo de trabalho permite que os aplicativos evitem consumir recursos até que sejam necessários.
A API do Servidor HTTP permite apenas uma notificação pendente registrada em uma fila de solicitações a qualquer momento. A API do Servidor HTTP não impõe limitações no número de vezes que HttpWaitForDemandStart pode ser chamado na mesma fila de solicitações consecutivamente. Não há limite para o número de processos pendentes que estão funcionando na mesma fila de solicitações.
A API do Servidor HTTP dá suporte ao cancelamento de chamadas HttpWaitForDemandStart assíncronas. Os aplicativos podem usar CancelIoEx com a estrutura sobreposta fornecida no parâmetro pOverlapped para cancelar uma chamada HttpWaitForDemandStart pendente.
Requisitos
Cliente mínimo com suporte | Windows Vista [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2008 [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | http.h |
Biblioteca | Httpapi.lib |
DLL | Httpapi.dll |