Condividi tramite


Funzione HttpWaitForDemandStart (http.h)

La funzione HttpWaitForDemandStart attende l'arrivo di una nuova richiesta che può essere servita da un nuovo processo di coda di richieste.

Sintassi

HTTPAPI_LINKAGE ULONG HttpWaitForDemandStart(
  [in]           HANDLE       RequestQueueHandle,
  [in, optional] LPOVERLAPPED Overlapped
);

Parametri

[in] RequestQueueHandle

Handle per la coda di richieste in cui viene registrato l'avvio della richiesta. Viene creata una coda di richieste e il relativo handle restituito da una chiamata alla funzione HttpCreateRequestQueue .

[in, optional] Overlapped

Per le chiamate asincrone, impostare pOverlapped in modo che punti a una struttura OVERLAPPED ; per le chiamate sincrone, impostarlo su NULL.

Una chiamata sincrona si blocca finché una richiesta non è arrivata nella coda specificata, mentre una chiamata asincrona restituisce immediatamente ERROR_IO_PENDING e l'applicazione chiamante usa quindi le porte di completamento GetOverlappedResult o I/O per determinare quando l'operazione viene completata. Per altre informazioni sull'uso di strutture OVERLAPPED per la sincronizzazione, vedere
Sincronizzazione e input e output sovrapposti.

Valore restituito

Se la funzione ha esito positivo, restituisce NO_ERROR.

Se la funzione ha esito negativo, restituisce uno dei codici di errore seguenti.

Valore Significato
ERROR_INVALID_PARAMETER
Il parametro ReqQueueHandle non contiene una coda di richieste valida.
ERROR_INVALID_ID_AUTHORITY
Il processo chiamante non è il processo controller per questa coda di richieste.
ERROR_INVALID_HANDLE
Il processo chiamante ha già avviato un arresto nella coda delle richieste o ha chiuso l'handle della coda delle richieste.
ERROR_ALREADY_EXISTS
Esiste già una registrazione di avvio della richiesta per la coda delle richieste.

Commenti

Solo il processo controller può chiamare HttpWaitForDemandStart per registrare una notifica di avvio della richiesta. Il processo controller è il processo che ha creato la coda delle richieste e ha indicato che si tratta di un processo controller passando il flag HTTP_CREATE_REQUEST_QUEUE_FLAG_CONTROLLER . Se un processo diverso dal processo di controllo chiama HttpWaitForDemandStart, l'API del server HTTP restituisce ERROR_INVALID_ID_AUTHORITY.

HttpWaitForDemandStart viene completato quando arriva una nuova richiesta per la coda di richieste specificata. Al momento, un processo controller può usare questa API per avviare un nuovo processo di lavoro per le richieste in sospeso del server. L'avvio ritardato del processo di lavoro consente alle applicazioni di evitare l'utilizzo delle risorse fino a quando non sono necessarie.

L'API server HTTP consente una sola notifica in attesa registrata in una coda di richieste in qualsiasi momento. L'API server HTTP non applica limitazioni al numero di volte in cui HttpWaitForDemandStart può essere chiamato nella stessa coda di richieste consecutivamente. Non esiste alcun limite al numero di processi in sospeso che lavorano sulla stessa coda di richieste.

L'API server HTTP supporta l'annullamento delle chiamate HttpWaitForDemandStart asincrone. Le applicazioni possono usare CancelIoEx con la struttura sovrapposta fornita nel parametro pOverlapped per annullare una chiamata HttpWaitForDemandStart in sospeso.

Requisiti

   
Client minimo supportato Windows Vista [solo app desktop]
Server minimo supportato Windows Server 2008 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione http.h
Libreria Httpapi.lib
DLL Httpapi.dll

Vedi anche

Funzioni dell'API server HTTP versione 2.0

HttpCloseRequestQueue

HttpCreateRequestQueue

HttpQueryRequestQueueProperty

HttpSetRequestQueueProperty

HttpShutdownRequestQueue