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 a la versión 1.0 de HTTP función 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 la cola de solicitudes. El parámetro pName debe contener un nombre de cola de solicitudes válido; no se puede null.

[out] RequestQueueHandle

Puntero a una variable que recibe un identificador de la cola de solicitudes. Este parámetro debe contener un puntero válido; no se puede 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 solicitudes válido; no puede ser null.

El parámetro de 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
No se ha llamado a la aplicación httpInitialize antes de llamar a HttpCreateRequestQueue.

Observaciones

La API del servidor HTTP admite aplicaciones existentes que usan 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 la 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 el 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 parámetro pSecurityAttributes solo cuando se crea la cola de solicitudes. Solo la aplicación que crea la cola de solicitudes puede establecer listas de control de acceso (ACL) en el identificador de cola de solicitudes para permitir que los procesos (excepto la aplicación creador) abran, reciban solicitudes y envíen 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.

El proceso de creador puede usar opcionalmente 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 de controlador 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 al 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 Valor
cliente mínimo admitido Windows Vista [solo aplicaciones de escritorio]
servidor mínimo admitido Windows Server 2008 [solo aplicaciones de escritorio]
de la plataforma de destino de Windows
encabezado de http.h
biblioteca de Httpapi.lib
DLL de Httpapi.dll

Consulte también

api de SERVIDOR HTTP versión 2.0

HttpCloseRequestQueue

httpCreateHttpHandle

HttpQueryRequestQueueProperty

HttpSetRequestQueueProperty

HttpShutdownRequestQueue