Fonction HttpWaitForDemandStart (http.h)
La fonction HttpWaitForDemandStart attend l’arrivée d’une nouvelle requête qui peut être traitée par un nouveau processus de file d’attente de requêtes.
Syntaxe
HTTPAPI_LINKAGE ULONG HttpWaitForDemandStart(
[in] HANDLE RequestQueueHandle,
[in, optional] LPOVERLAPPED Overlapped
);
Paramètres
[in] RequestQueueHandle
Handle de la file d’attente de demandes sur laquelle le début de la demande est inscrit. Une file d’attente de requêtes est créée et son handle est retourné par un appel à la fonction HttpCreateRequestQueue .
[in, optional] Overlapped
Pour les appels asynchrones, définissez pOverlapped pour qu’il pointe vers une structure CHEVAUCHEMENT ; pour les appels synchrones, définissez-le sur NULL.
Un appel synchrone se bloque jusqu’à ce qu’une requête soit arrivée dans la file d’attente spécifiée, tandis qu’un appel asynchrone retourne immédiatement ERROR_IO_PENDING et que l’application appelante utilise alors les ports getOverlappedResult ou d’achèvement d’E/S pour déterminer quand l’opération est terminée. Pour plus d’informations sur l’utilisation des structures OVERLAPPED pour la synchronisation, consultez
Synchronisation et entrées et sorties qui se chevauchent.
Valeur retournée
Si la fonction réussit, elle retourne NO_ERROR.
Si la fonction échoue, elle retourne l’un des codes d’erreur suivants.
Valeur | Signification |
---|---|
|
Le paramètre ReqQueueHandle ne contient pas de file d’attente de requêtes valide. |
|
Le processus appelant n’est pas le processus du contrôleur pour cette file d’attente de requête. |
|
Le processus d’appel a déjà lancé un arrêt sur la file d’attente de demandes ou a fermé le handle de file d’attente des demandes. |
|
Une inscription de début de demande existe déjà pour la file d’attente des demandes. |
Notes
Seul le processus du contrôleur peut appeler HttpWaitForDemandStart pour inscrire une notification de début de demande. Le processus de contrôleur est le processus qui a créé la file d’attente de requêtes et indiqué qu’il s’agit d’un processus de contrôleur en passant l’indicateur HTTP_CREATE_REQUEST_QUEUE_FLAG_CONTROLLER . Si un processus autre que le processus de contrôle appelle HttpWaitForDemandStart, l’API serveur HTTP retourne ERROR_INVALID_ID_AUTHORITY.
HttpWaitForDemandStart se termine lorsqu’une nouvelle requête arrive pour la file d’attente de requêtes spécifiée. À ce stade, un processus de contrôleur peut utiliser cette API pour démarrer un nouveau processus de travail vers le serveur des requêtes en attente. Le démarrage différé du processus de travail permet aux applications d’éviter de consommer des ressources jusqu’à ce qu’elles soient nécessaires.
L’API de serveur HTTP n’autorise qu’une seule notification en attente inscrite dans une file d’attente de requêtes à tout moment. L’API serveur HTTP n’applique pas de limitations au nombre de fois où HttpWaitForDemandStart peut être appelé dans la même file d’attente de requêtes consécutivement. Il n’existe aucune limite quant au nombre de processus en attente qui fonctionnent sur la même file d’attente de requêtes.
L’API de serveur HTTP prend en charge l’annulation des appels HttpWaitForDemandStart asynchrones. Les applications peuvent utiliser CancelIoEx avec la structure superposée fournie dans le paramètre pOverlapped , pour annuler un appel HttpWaitForDemandStart en cours.
Spécifications
Client minimal pris en charge | Windows Vista [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows Server 2008 [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | http.h |
Bibliothèque | Httpapi.lib |
DLL | Httpapi.dll |