Freigeben über


HttpCreateRequestQueue-Funktion (http.h)

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

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

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 Instanz der Struktur, und legen Sie sie auf den vordefinierten Wert HTTPAPI_VERSION_2 fest, bevor Sie sie 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 anhand des Namens.

[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 Parameter "flags" definiert den Bereich der Anforderungswarteschlange. Dieser Parameter kann eine oder mehrere der folgenden Werte sein:

Wert Bedeutung
HTTP_CREATE_REQUEST_QUEUE_FLAG_CONTROLLER
Das Handle für die mit diesem Flag erstellte Anforderungswarteschlange kann nicht zum Ausführen von E/A-Vorgängen verwendet werden. Dieses Kennzeichen kann nur festgelegt werden, wenn der Anforderungswarteschlangenhandle erstellt wird.
HTTP_CREATE_REQUEST_QUEUE_FLAG_OPEN_EXISTING
Mit der HTTP_CREATE_REQUEST_QUEUE_FLAG_OPEN_EXISTING-Kennzeichnung können Anwendungen eine vorhandene Anforderungswarteschlange anhand des Namens öffnen und den Anforderungswarteschlangenhandle abrufen. Der parameter pName muss einen gültigen Anforderungswarteschlangennamen enthalten; es kann nicht NULL-sein.

[out] RequestQueueHandle

Ein Zeiger auf eine Variable, die ein Handle für die Anforderungswarteschlange empfängt. Dieser Parameter muss einen gültigen Zeiger enthalten; es kann nicht NULL-sein.

Rückgabewert

Wenn die Funktion erfolgreich ist, wird NO_ERROR

Wenn die Funktion fehlschlägt, wird eine der folgenden Fehlercodes zurückgegeben.

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 beim Öffnen einer vorhandenen Anforderungswarteschlange NULL- sein.

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 kann nicht NULL-sein.

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

ERROR_ALREADY_EXISTS
Der pName Parameter in Konflikt mit einer vorhandenen Anforderungswarteschlange, die einen identischen Namen enthält.
ERROR_ACCESS_DENIED
Der Aufrufvorgang verfügt nicht über die Berechtigung zum Öffnen der Anforderungswarteschlange.
ERROR_DLL_INIT_FAILED
Die Anwendung hat HttpInitialize- nicht aufgerufen, bevor HttpCreateRequestQueueaufgerufen wird.

Bemerkungen

Die HTTP-Server-API unterstützt vorhandene Anwendungen mithilfe der Anforderungswarteschlangen der Version 1.0. Neue Entwicklung mit der HTTP-Server-API sollte jedoch HttpCreateRequestQueue zum Erstellen von Anforderungswarteschlangen verwenden; HttpCreateHttpHandle- sollte nicht verwendet werden. Die Version 2.0-API ist nur mit den Anforderungswarteschlangen der Version 2.0 kompatibel, die von HttpCreateRequestQueueerstellt wurden.

Für die HTTP Version 2-Anforderungswarteschlangen ist eine manuelle Konfiguration erforderlich; die Anwendung muss die URL-Gruppen erstellen und eine oder mehrere URL-Gruppen der Anforderungswarteschlange zuordnen, indem sie HttpSetUrlGroupProperty- mit der HttpServerBindingProperty-aufrufen. Die Anwendung konfiguriert die Anforderungswarteschlange durch Aufrufen HttpSetRequestQueueProperty- mit der gewünschten Konfiguration im parameter Property. Weitere Informationen zum Erstellen und Konfigurieren von URL-Gruppen finden Sie unter HttpCreateUrlGroup und HttpSetUrlGroupProperty.

Sicherheitsattribute können in pSecurityAttributes Parameter nur angegeben werden, wenn die Anforderungswarteschlange erstellt wird. Nur die Anwendung, die die Anforderungswarteschlange erstellt, kann Zugriffssteuerungslisten (ACLs) im Anforderungswarteschlangenhandle festlegen, um Prozessen (außer der Erstelleranwendung) die Berechtigung zum Öffnen, Empfangen von Anforderungen und Senden von Antworten auf den Anforderungswarteschlangenhandle zu ermöglichen. Standardmäßig dürfen Anwendungen keine Anforderungswarteschlange öffnen, es sei denn, sie wurden in der ACL berechtigung erteilt.

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 Anwendungen das Öffnen einer vorhandenen Anforderungswarteschlange mit dem HTTP_CREATE_REQUEST_QUEUE_FLAG_OPEN_EXISTING Flag und abrufen des Handles in die Anforderungswarteschlange. Nicht controllerbasierte Anwendungen können dieses Handle verwenden, um HTTP-E/A-Vorgänge auszuführen. Nur die Anwendung, die die Anforderungswarteschlange erstellt, kann Eigenschaften darauf festlegen, indem die HttpSetRequestQueuePropertyaufgerufen wird.

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

Anwendungen müssen HttpInitialize- aufrufen, bevor HttpCreateRequestQueueaufgerufen wird.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows Vista [nur Desktop-Apps]
mindestens unterstützte Server- Windows Server 2008 [Nur Desktop-Apps]
Zielplattform- Fenster
Header- http.h
Library Httpapi.lib
DLL- Httpapi.dll

Siehe auch

HTTP Server API Version 2.0 Funktionen

HttpCloseRequestQueue

HttpCreateHttpHandle-

HttpQueryRequestQueueProperty

HttpSetRequestQueueProperty

HttpShutdownRequestQueue