Compartir a través de


Función HttpCreateRequestQueue (http.h)

La función HttpCreateRequestQueue crea una nueva cola de solicitudes o abre una cola de solicitudes existente.

Esta función reemplaza la función HTTP versión 1.0 HttpCreateHttpHandle .

Sintaxis

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

Parámetros

[in] Version

Estructura HTTPAPI_VERSION que indica la versión de la cola de solicitudes. Para la versión 2.0, declare una instancia de la estructura y establézcala en el valor predefinido HTTPAPI_VERSION_2 antes de pasarla a HttpCreateRequestQueue.

La versión debe ser 2.0; HttpCreateRequestQueue no admite colas de solicitudes de la versión 1.0.

[in, optional] Name

Nombre de la cola de solicitudes. La longitud, en bytes, no puede superar MAX_PATH.

El parámetro de nombre opcional permite que otros procesos accedan a la cola de solicitudes por nombre.

[in, optional] SecurityAttributes

Puntero a la estructura SECURITY_ATTRIBUTES que contiene los permisos de acceso para la cola de solicitudes.

Este parámetro debe ser NULL al abrir una cola de solicitudes existente.

[in, optional] Flags

El parámetro flags define el ámbito de la cola de solicitudes. Este parámetro puede ser uno o varios de los siguientes:

Valor Significado
HTTP_CREATE_REQUEST_QUEUE_FLAG_CONTROLLER
El identificador de la cola de solicitudes creada con esta marca no se puede usar para realizar operaciones de E/S. Esta marca solo se puede establecer cuando se crea el identificador de cola de solicitudes.
HTTP_CREATE_REQUEST_QUEUE_FLAG_OPEN_EXISTING
La marca HTTP_CREATE_REQUEST_QUEUE_FLAG_OPEN_EXISTING permite a las aplicaciones abrir una cola de solicitudes existente por nombre y recuperar el identificador de cola de solicitudes. El parámetro pName debe contener un nombre de cola de solicitudes válido; no puede ser NULL.

[out] RequestQueueHandle

Puntero a una variable que recibe un identificador para la cola de solicitudes. Este parámetro debe contener un puntero válido; no puede ser NULL.

Valor devuelto

Si la función se ejecuta correctamente, devuelve NO_ERROR

Si se produce un error en la función, devuelve uno de los siguientes códigos de error.

Valor Significado
ERROR_REVISION_MISMATCH
El parámetro Version contiene una versión no válida.
ERROR_INVALID_PARAMETER
La longitud, en bytes, del nombre de la cola de solicitudes no puede superar MAX_PATH.

El parámetro pSecurityAttributes debe ser NULL al abrir una cola de solicitudes existente.

El HTTP_CREATE_REQUEST_QUEUE_FLAG_CONTROLLER solo se puede establecer cuando se crea la cola de solicitudes.

El HTTP_CREATE_REQUEST_QUEUE_FLAG_OPEN_EXISTING solo se puede establecer cuando la aplicación tiene permiso para abrir una cola de solicitudes existente. En este caso, el parámetro pReqQueueHandle debe ser un puntero válido y el parámetro pName debe contener un nombre de cola de solicitud válido; no puede ser NULL.

El parámetro pReqQueueHandle devuelto por HttpCreateRequestQueue es NULL.

ERROR_ALREADY_EXISTS
El parámetro pName entra en conflicto con una cola de solicitudes existente que contiene un nombre idéntico.
ERROR_ACCESS_DENIED
El proceso de llamada no tiene permiso para abrir la cola de solicitudes.
ERROR_DLL_INIT_FAILED
La aplicación no ha llamado a HttpInitialize antes de llamar a HttpCreateRequestQueue.

Comentarios

La API del servidor HTTP admite aplicaciones existentes mediante las colas de solicitudes de la versión 1.0; sin embargo, el nuevo desarrollo con la API del servidor HTTP debe usar HttpCreateRequestQueue para crear colas de solicitudes; No se debe usar HttpCreateHttpHandle . La API de la versión 2.0 solo es compatible con las colas de solicitudes de la versión 2.0 creadas por HttpCreateRequestQueue.

Las colas de solicitudes http versión 2 requieren configuración manual; la aplicación debe crear los grupos de direcciones URL y asociar uno o varios grupos de direcciones URL a la cola de solicitudes llamando a HttpSetUrlGroupProperty con HttpServerBindingProperty. La aplicación configura la cola de solicitudes llamando a HttpSetRequestQueueProperty con la configuración deseada en el parámetro Property . Para obtener más información sobre cómo crear y configurar grupos de direcciones URL, vea HttpCreateUrlGroup y HttpSetUrlGroupProperty.

Los atributos de seguridad se pueden proporcionar en el parámetro pSecurityAttributes solo cuando se crea la cola de solicitudes. Solo la aplicación que crea la cola de solicitudes puede establecer Access Control Listas (ACL) en el identificador de cola de solicitudes para permitir que los procesos (que no sean la aplicación creador) puedan abrir, recibir solicitudes y enviar respuestas en el identificador de cola de solicitudes. De forma predeterminada, las aplicaciones no pueden abrir una cola de solicitudes a menos que se les haya concedido permiso en la ACL.

Opcionalmente, el proceso de creador puede usar la marca HTTP_CREATE_REQUEST_QUEUE_FLAG_CONTROLLER para indicar que no desea recibir solicitudes HTTP.

HttpCreateRequestQueue permite a las aplicaciones abrir una cola de solicitudes existente con la marca HTTP_CREATE_REQUEST_QUEUE_FLAG_OPEN_EXISTING y recuperar el identificador de la cola de solicitudes. Las aplicaciones que no son controladoras pueden usar este identificador para realizar operaciones de E/S HTTP. Solo la aplicación que crea la cola de solicitudes puede establecer propiedades en ella llamando a HttpSetRequestQueueProperty.

El identificador de la cola de solicitudes creada por HttpCreateRequestQueue debe cerrarse llamando a HttpCloseRequestQueue antes de que finalice la aplicación o cuando la sesión ya no sea necesaria.

Las aplicaciones deben llamar a HttpInitialize antes de llamar a HttpCreateRequestQueue.

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2008 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado http.h
Library Httpapi.lib
Archivo DLL Httpapi.dll

Consulte también

Funciones de la API de servidor HTTP versión 2.0

HttpCloseRequestQueue

HttpCreateHttpHandle

HttpQueryRequestQueueProperty

HttpSetRequestQueueProperty

HttpShutdownRequestQueue