Partager via


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
ERROR_INVALID_PARAMETER
Le paramètre ReqQueueHandle ne contient pas de file d’attente de requêtes valide.
ERROR_INVALID_ID_AUTHORITY
Le processus appelant n’est pas le processus du contrôleur pour cette file d’attente de requête.
ERROR_INVALID_HANDLE
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.
ERROR_ALREADY_EXISTS
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

Voir aussi

Fonctions DE l’API serveur HTTP version 2.0

HttpCloseRequestQueue

HttpCreateRequestQueue

HttpQueryRequestQueueProperty

HttpSetRequestQueueProperty

HttpShutdownRequestQueue