HttpWaitForDemandStart-Funktion (http.h)
Die HttpWaitForDemandStart-Funktion wartet auf das Eintreffen einer neuen Anforderung, die von einem neuen Anforderungswarteschlangenprozess verarbeitet werden kann.
Syntax
HTTPAPI_LINKAGE ULONG HttpWaitForDemandStart(
[in] HANDLE RequestQueueHandle,
[in, optional] LPOVERLAPPED Overlapped
);
Parameter
[in] RequestQueueHandle
Ein Handle für die Anforderungswarteschlange, in der der Anforderungsstart registriert ist. Eine Anforderungswarteschlange wird erstellt, und ihr Handle wird durch einen Aufruf der HttpCreateRequestQueue-Funktion zurückgegeben.
[in, optional] Overlapped
Legen Sie für asynchrone Aufrufe pOverlapped so fest, dass er auf eine OVERLAPPED-Struktur verweist. Legen Sie für synchrone Aufrufe den Wert auf NULL fest.
Ein synchroner Aufruf blockiert, bis eine Anforderung in der angegebenen Warteschlange eingetroffen ist, während ein asynchroner Aufruf sofort ERROR_IO_PENDING zurückgibt und die aufrufende Anwendung dann GetOverlappedResult - oder E/A-Vervollständigungsports verwendet, um zu bestimmen, wann der Vorgang abgeschlossen ist. Weitere Informationen zur Verwendung von OVERLAPPED-Strukturen für die Synchronisierung finden Sie unter
Synchronisierung und überlappende Eingabe und Ausgabe.
Rückgabewert
Wenn die Funktion erfolgreich ist, wird NO_ERROR zurückgegeben.
Wenn die Funktion fehlschlägt, gibt sie einen der folgenden Fehlercodes zurück.
Wert | Bedeutung |
---|---|
|
Der ReqQueueHandle-Parameter enthält keine gültige Anforderungswarteschlange. |
|
Der aufrufende Prozess ist nicht der Controllerprozess für diese Anforderungswarteschlange. |
|
Der aufrufende Prozess hat bereits ein Herunterfahren der Anforderungswarteschlange initiiert oder das Anforderungswarteschlangenhandle geschlossen. |
|
Für die Anforderungswarteschlange ist bereits eine Anforderungsstartregistrierung vorhanden. |
Hinweise
Nur der Controllerprozess kann HttpWaitForDemandStart aufrufen, um eine Anforderungsstartbenachrichtigung zu registrieren. Der Controllerprozess ist der Prozess, der die Anforderungswarteschlange erstellt und durch Übergeben des HTTP_CREATE_REQUEST_QUEUE_FLAG_CONTROLLER-Flags angegeben hat, dass es sich um einen Controllerprozess handelt. Wenn ein anderer Prozess als der steuernde Prozess HttpWaitForDemandStart aufruft, gibt die HTTP-Server-API ERROR_INVALID_ID_AUTHORITY zurück.
HttpWaitForDemandStart wird abgeschlossen, wenn eine neue Anforderung für die angegebene Anforderungswarteschlange eingeht. Zu diesem Zeitpunkt kann ein Controllerprozess diese API verwenden, um einen neuen Arbeitsprozess für ausstehende Anforderungen auf dem Server zu starten. Durch einen verzögerten Start des Arbeitsprozesses können Anwendungen den Ressourcenverbrauch vermeiden, bis sie benötigt werden.
Die HTTP-Server-API lässt jederzeit nur eine ausstehende Benachrichtigung zu, die in einer Anforderungswarteschlange registriert ist. Die HTTP-Server-API erzwingt keine Einschränkungen hinsichtlich der Anzahl der Aufrufe von HttpWaitForDemandStart in derselben Anforderungswarteschlange. Die Anzahl der ausstehenden Prozesse, die in derselben Anforderungswarteschlange arbeiten, ist nicht begrenzt.
Die HTTP-Server-API unterstützt das Abbrechen asynchroner HttpWaitForDemandStart-Aufrufe . Anwendungen können CancelIoEx mit der im pOverlapped-Parameter angegebenen überlappenden Struktur verwenden, um einen ausstehenden HttpWaitForDemandStart-Aufruf abzubrechen.
Anforderungen
Unterstützte Mindestversion (Client) | Windows Vista [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2008 [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | http.h |
Bibliothek | Httpapi.lib |
DLL | Httpapi.dll |