Funzione HttpCreateRequestQueue (http.h)

La funzione HttpCreateRequestQueue crea una nuova coda di richieste o apre una coda di richieste esistente.

Questa funzione sostituisce la funzione HTTP versione 1.0 HttpCreateHttpHandle .

Sintassi

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

Parametri

[in] Version

Struttura HTTPAPI_VERSION che indica la versione della coda delle richieste. Per la versione 2.0, dichiarare un'istanza della struttura e impostarla sul valore predefinito HTTPAPI_VERSION_2 prima di passarla a HttpCreateRequestQueue.

La versione deve essere 2.0; HttpCreateRequestQueue non supporta le code di richieste della versione 1.0.

[in, optional] Name

Nome della coda delle richieste. La lunghezza, in byte, non può superare MAX_PATH.

Il parametro facoltativo name consente ad altri processi di accedere alla coda delle richieste in base al nome.

[in, optional] SecurityAttributes

Puntatore alla struttura SECURITY_ATTRIBUTES che contiene le autorizzazioni di accesso per la coda di richieste.

Questo parametro deve essere NULL quando si apre una coda di richieste esistente.

[in, optional] Flags

Il parametro flags definisce l'ambito della coda di richieste. Questo parametro può essere uno o più dei seguenti:

Valore Significato
HTTP_CREATE_REQUEST_QUEUE_FLAG_CONTROLLER
L'handle per la coda di richieste creata con questo flag non può essere usato per eseguire operazioni di I/O. Questo flag può essere impostato solo quando viene creato l'handle della coda delle richieste.
HTTP_CREATE_REQUEST_QUEUE_FLAG_OPEN_EXISTING
Il flag HTTP_CREATE_REQUEST_QUEUE_FLAG_OPEN_EXISTING consente alle applicazioni di aprire una coda di richieste esistente in base al nome e recuperare l'handle della coda delle richieste. Il parametro pName deve contenere un nome di coda di richieste valido; non può essere NULL.

[out] RequestQueueHandle

Puntatore a una variabile che riceve un handle per la coda di richieste. Questo parametro deve contenere un puntatore valido; non può essere NULL.

Valore restituito

Se la funzione ha esito positivo, restituisce NO_ERROR

Se la funzione ha esito negativo, restituisce uno dei codici di errore seguenti.

Valore Significato
ERROR_REVISION_MISMATCH
Il parametro Version contiene una versione non valida.
ERROR_INVALID_PARAMETER
La lunghezza, in byte, del nome della coda della richiesta non può superare MAX_PATH.

Il parametro pSecurityAttributes deve essere NULL quando si apre una coda di richieste esistente.

La HTTP_CREATE_REQUEST_QUEUE_FLAG_CONTROLLER può essere impostata solo quando viene creata la coda di richieste.

Il HTTP_CREATE_REQUEST_QUEUE_FLAG_OPEN_EXISTING può essere impostato solo quando l'applicazione dispone dell'autorizzazione per aprire una coda di richieste esistente. In questo caso, il parametro pReqQueueHandle deve essere un puntatore valido e il parametro pName deve contenere un nome di coda di richieste valido; non può essere NULL.

Il parametro pReqQueueHandle restituito da HttpCreateRequestQueue è NULL.

ERROR_ALREADY_EXISTS
Il parametro pName è in conflitto con una coda di richieste esistente che contiene un nome identico.
ERROR_ACCESS_DENIED
Il processo chiamante non dispone dell'autorizzazione per aprire la coda delle richieste.
ERROR_DLL_INIT_FAILED
L'applicazione non ha chiamato HttpInitialize prima di chiamare HttpCreateRequestQueue.

Commenti

L'API server HTTP supporta le applicazioni esistenti che usano le code delle richieste della versione 1.0, ma il nuovo sviluppo con l'API server HTTP deve usare HttpCreateRequestQueue per creare code di richieste; HttpCreateHttpHandle non deve essere usato. L'API 2.0 versione 2.0 è compatibile solo con le code di richieste della versione 2.0 create da HttpCreateRequestQueue.

Le code di richieste HTTP versione 2 richiedono la configurazione manuale; L'applicazione deve creare i gruppi di URL e associare uno o più gruppi di URL alla coda di richieste chiamando HttpSetUrlGroupProperty con HttpServerBindingProperty. L'applicazione configura la coda delle richieste chiamando HttpSetRequestQueueProperty con la configurazione desiderata nel parametro Property . Per altre informazioni sulla creazione e la configurazione di gruppi URL, vedere HttpCreateUrlGroup e HttpSetUrlGroupProperty.

Gli attributi di sicurezza possono essere forniti nel parametro pSecurityAttributes solo quando viene creata la coda delle richieste. Solo l'applicazione che crea la coda delle richieste può impostare Controllo di accesso Elenchi (ACL) nell'handle della coda delle richieste per consentire ai processi (ad eccezione dell'applicazione creatore) di aprire, ricevere richieste e inviare risposte nell'handle della coda delle richieste. Per impostazione predefinita, le applicazioni non possono aprire una coda di richieste, a meno che non siano state concesse autorizzazioni nell'elenco di controllo di accesso.

Il processo di creazione può facoltativamente usare il flag HTTP_CREATE_REQUEST_QUEUE_FLAG_CONTROLLER per indicare che non vuole ricevere richieste HTTP.

HttpCreateRequestQueue consente alle applicazioni di aprire una coda di richieste esistente con il flag HTTP_CREATE_REQUEST_QUEUE_FLAG_OPEN_EXISTING e recuperare l'handle nella coda delle richieste. Le applicazioni non controller possono usare questo handle per eseguire operazioni di I/O HTTP. Solo l'applicazione che crea la coda di richieste può impostare le proprietà su di essa chiamando httpSetRequestQueueProperty.

L'handle per la coda di richieste creata da HttpCreateRequestQueue deve essere chiuso chiamando HttpCloseRequestQueue prima che l'applicazione termini o quando la sessione non è più necessaria.

Le applicazioni devono chiamare HttpInitialize prima di chiamare HttpCreateRequestQueue.

Requisiti

Requisito Valore
Client minimo supportato Windows Vista [solo app desktop]
Server minimo supportato Windows Server 2008 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione http.h
Libreria Httpapi.lib
DLL Httpapi.dll

Vedi anche

Funzioni dell'API server HTTP versione 2.0

HttpCloseRequestQueue

HttpCreateHttpHandle

HttpQueryRequestQueueProperty

HttpSetRequestQueueProperty

HttpShutdownRequestQueue