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:
[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 |
---|---|
|
El parámetro Version contiene una versión no válida. |
|
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. |
|
El parámetro pName entra en conflicto con una cola de solicitudes existente que contiene un nombre idéntico. |
|
El proceso de llamada no tiene permiso para abrir la cola de solicitudes. |
|
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 |