HttpCreateRequestQueue-Funktion (http.h)

Die HttpCreateRequestQueue-Funktion erstellt eine neue Anforderungswarteschlange oder öffnet eine vorhandene Anforderungswarteschlange.

Diese Funktion ersetzt die HttpCreateHttpHandle-Funktion der HTTP-Version 1.0.

Syntax

HTTPAPI_LINKAGE ULONG HttpCreateRequestQueue(
  [in]           HTTPAPI_VERSION      Version,
  [in, optional] PCWSTR               Name,
  [in, optional] PSECURITY_ATTRIBUTES SecurityAttributes,
  [in, optional] ULONG                Flags,
  [out]          PHANDLE              RequestQueueHandle
);

Parameter

[in] Version

Eine HTTPAPI_VERSION-Struktur, die die Anforderungswarteschlangenversion angibt. Deklarieren Sie für Version 2.0 eine instance der Struktur, und legen Sie sie auf den vordefinierten Wert HTTPAPI_VERSION_2 fest, bevor Sie ihn an HttpCreateRequestQueue übergeben.

Die Version muss 2.0 sein. HttpCreateRequestQueue unterstützt keine Anforderungswarteschlangen der Version 1.0.

[in, optional] Name

Der Name der Anforderungswarteschlange. Die Länge in Bytes darf MAX_PATH nicht überschreiten.

Der optionale Name-Parameter ermöglicht anderen Prozessen den Zugriff auf die Anforderungswarteschlange nach Name.

[in, optional] SecurityAttributes

Ein Zeiger auf die SECURITY_ATTRIBUTES Struktur, die die Zugriffsberechtigungen für die Anforderungswarteschlange enthält.

Dieser Parameter muss NULL sein, wenn eine vorhandene Anforderungswarteschlange geöffnet wird.

[in, optional] Flags

Der Flags-Parameter definiert den Bereich der Anforderungswarteschlange. Dieser Parameter kann mindestens einer der folgenden Parameter sein:

Wert Bedeutung
HTTP_CREATE_REQUEST_QUEUE_FLAG_CONTROLLER
Das Mit diesem Flag erstellte Handle für die Anforderungswarteschlange kann nicht zum Ausführen von E/A-Vorgängen verwendet werden. Dieses Flag kann nur festgelegt werden, wenn das Anforderungswarteschlangenhandle erstellt wird.
HTTP_CREATE_REQUEST_QUEUE_FLAG_OPEN_EXISTING
Das HTTP_CREATE_REQUEST_QUEUE_FLAG_OPEN_EXISTING-Flag ermöglicht Es Anwendungen, eine vorhandene Anforderungswarteschlange anhand des Namens zu öffnen und das Anforderungswarteschlangenhandle abzurufen. Der pName-Parameter muss einen gültigen Anforderungswarteschlangennamen enthalten. Es darf nicht NULL sein.

[out] RequestQueueHandle

Ein Zeiger auf eine Variable, die ein Handle an die Anforderungswarteschlange empfängt. Dieser Parameter muss einen gültigen Zeiger enthalten. Es darf nicht NULL sein.

Rückgabewert

Wenn die Funktion erfolgreich ist, gibt sie NO_ERROR zurück.

Wenn die Funktion fehlschlägt, gibt sie einen der folgenden Fehlercodes zurück.

Wert Bedeutung
ERROR_REVISION_MISMATCH
Der Parameter Version enthält eine ungültige Version.
ERROR_INVALID_PARAMETER
Die Länge des Anforderungswarteschlangennamens in Bytes darf MAX_PATH nicht überschreiten.

Der pSecurityAttributes-Parameter muss NULL sein, wenn eine vorhandene Anforderungswarteschlange geöffnet wird.

Die HTTP_CREATE_REQUEST_QUEUE_FLAG_CONTROLLER kann nur festgelegt werden, wenn die Anforderungswarteschlange erstellt wird.

Die HTTP_CREATE_REQUEST_QUEUE_FLAG_OPEN_EXISTING kann nur festgelegt werden, wenn die Anwendung über die Berechtigung zum Öffnen einer vorhandenen Anforderungswarteschlange verfügt. In diesem Fall muss der pReqQueueHandle-Parameter ein gültiger Zeiger sein, und der pName-Parameter muss einen gültigen Anforderungswarteschlangennamen enthalten. Es darf nicht NULL sein.

Der pReqQueueHandle-Parameter , der von HttpCreateRequestQueue zurückgegeben wird, ist NULL.

ERROR_ALREADY_EXISTS
Der pName-Parameter stellt einen Konflikt mit einer vorhandenen Anforderungswarteschlange dar, die einen identischen Namen enthält.
ERROR_ACCESS_DENIED
Der aufrufende Prozess verfügt nicht über die Berechtigung zum Öffnen der Anforderungswarteschlange.
ERROR_DLL_INIT_FAILED
Die Anwendung hat httpInitialize vor dem Aufrufen von HttpCreateRequestQueue nicht aufgerufen.

Hinweise

Die HTTP-Server-API unterstützt vorhandene Anwendungen unter Verwendung der Anforderungswarteschlangen der Version 1.0. Neuentwicklung mit der HTTP-Server-API sollte jedoch HttpCreateRequestQueue verwenden, um Anforderungswarteschlangen zu erstellen. HttpCreateHttpHandle sollte nicht verwendet werden. Die API der Version 2.0 ist nur mit den Anforderungswarteschlangen der Version 2.0 kompatibel, die von HttpCreateRequestQueue erstellt wurden.

Die HTTP-Anforderungswarteschlangen der Version 2 erfordern eine manuelle Konfiguration. Die Anwendung muss die URL-Gruppen erstellen und eine oder mehrere URL-Gruppen der Anforderungswarteschlange zuordnen, indem httpSetUrlGroupProperty mit httpServerBindingProperty aufgerufen wird. Die Anwendung konfiguriert die Anforderungswarteschlange, indem httpSetRequestQueueProperty mit der gewünschten Konfiguration im Parameter Property aufgerufen wird. Weitere Informationen zum Erstellen und Konfigurieren von URL-Gruppen finden Sie unter HttpCreateUrlGroup und HttpSetUrlGroupProperty.

Sicherheitsattribute können im pSecurityAttributes-Parameter nur angegeben werden, wenn die Anforderungswarteschlange erstellt wird. Nur die Anwendung, die die Anforderungswarteschlange erstellt, kann Access Control Listen (ACLs) für das Anforderungswarteschlangenhandle festlegen, um Prozessen (mit Ausnahme der Erstelleranwendung) die Berechtigung zum Öffnen, Empfangen von Anforderungen und Senden von Antworten für das Anforderungswarteschlangenhandle zu gestatten. Anwendungen dürfen eine Anforderungswarteschlange standardmäßig nur öffnen, wenn ihnen die Berechtigung in der ACL erteilt wurde.

Der Erstellerprozess kann optional das HTTP_CREATE_REQUEST_QUEUE_FLAG_CONTROLLER-Flag verwenden, um anzugeben, dass er keine HTTP-Anforderungen empfangen möchte.

HttpCreateRequestQueue ermöglicht Es Anwendungen, eine vorhandene Anforderungswarteschlange mit dem flag HTTP_CREATE_REQUEST_QUEUE_FLAG_OPEN_EXISTING zu öffnen und das Handle in die Anforderungswarteschlange abzurufen. Anwendungen, die keine Controller sind, können dieses Handle verwenden, um HTTP-E/A-Vorgänge auszuführen. Nur die Anwendung, die die Anforderungswarteschlange erstellt, kann Eigenschaften dafür festlegen, indem sie httpSetRequestQueueProperty aufruft.

Das Handle für die von HttpCreateRequestQueue erstellte Anforderungswarteschlange muss geschlossen werden, indem HttpCloseRequestQueue aufgerufen wird, bevor die Anwendung beendet wird oder wenn die Sitzung nicht mehr erforderlich ist.

Anwendungen müssen HttpInitialize aufrufen, bevor httpCreateRequestQueue aufgerufen wird.

Anforderungen

Anforderung Wert
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

Weitere Informationen

FUNKTIONEN DER HTTP-Server-API, Version 2.0

HttpCloseRequestQueue

HttpCreateHttpHandle

HttpQueryRequestQueueProperty

HttpSetRequestQueueProperty

HttpShutdownRequestQueue