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
ERROR_INVALID_PARAMETER
O parâmetro ReqQueueHandle não contém uma fila de solicitação válida.
ERROR_INVALID_ID_AUTHORITY
O processo de chamada não é o processo do controlador para essa fila de solicitação.
ERROR_INVALID_HANDLE
O processo de chamada já iniciou um desligamento na fila de solicitações ou fechou o identificador da fila de solicitações.
ERROR_ALREADY_EXISTS
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

Confira também

Funções da API do Servidor HTTP versão 2.0

HttpCloseRequestQueue

HttpCreateRequestQueue

HttpQueryRequestQueueProperty

HttpSetRequestQueueProperty

HttpShutdownRequestQueue