Funzione WinHttpConnectionSetPolicyEntries

Registra un set di voci dei criteri di routing delle connessioni con il servizio Proxy automatico WinHTTP. Le voci dei criteri definiscono le connessioni di rete da usare per combinazioni di host/applicazioni specifiche, abilitando il routing HTTP compatibile con la connessione.

Syntax

DWORD WINAPI WinHttpConnectionSetPolicyEntries(
    _In_ HINTERNET                              hSession,
    _In_ WINHTTP_CONNECTION_POLICY_TAG          PolicyEntryTag,
    _In_ WINHTTP_CONNECTION_POLICY_ENTRY_LIST  *pPolicyEntryList
);

Parameters

hSession [in]

Handle di sessione WinHTTP valido creato da WinHttpOpen. L'handle deve essere un handle a livello di sessione.

PolicyEntryTag [in]

Identifica il proprietario o l'origine delle voci dei criteri. Uno dei valori seguenti.

valore Meaning
TAG_WINHTTP_CONNECTION_POLICY_TAG_DEFAULT (0) Voci di criteri predefinite/senza tag.
TAG_WINHTTP_CONNECTION_POLICY_TAG_CONNECTION_MANAGER (1) Riservato per le voci gestite dalla gestione connessione di sistema. Le applicazioni di terze parti devono usare TAG_WINHTTP_CONNECTION_POLICY_TAG_WWWPT per evitare conflitti con le voci di sistema.
TAG_WINHTTP_CONNECTION_POLICY_TAG_WWWPT (2) Voci gestite dal componente WWWPT (Windows Web Platform Transport).

I tag consentono a più componenti di gestire in modo indipendente i propri set di criteri senza sovrascrivere l'uno l'altro.

pPolicyEntryList [in]

Puntatore a una struttura WINHTTP_CONNECTION_POLICY_ENTRY_LIST contenente una matrice di voci di criteri.

Ogni WINHTTP_CONNECTION_POLICY_ENTRY nell'elenco contiene:

  • pwszHost : modello nome host di destinazione a cui si applica questo criterio.
  • pwszAppId : identificatore dell'applicazione (nome della famiglia di pacchetti o "*" per tutte le app).
  • cbAppSid / pbAppSid : SID contenitore di app facoltativo per l'applicazione. Impostare cbAppSid su 0 e pbAppSid su NULL , se non applicabile.
  • nConnections : numero di nomi di connessione in ppwszConnections.
  • ppwszConnections : matrice di stringhe di nomi di connessione che possono trasportare traffico per questa combinazione di host/app.
  • dwPolicyEntryFlags : attualmente non sono supportati flag.

Valore restituito

Restituisce ERROR_SUCCESS (0) in caso di esito positivo. Restituisce un codice di errore di sistema in caso di errore, incluso quanto segue.

valore Description
ERROR_WINHTTP_INCORRECT_HANDLE_TYPE hSession non è un handle di sessione.
ERROR_WINHTTP_NOT_INITIALIZED Le globali WinHTTP non vengono inizializzate.
ERROR_ACCESS_DENIED Il chiamante non dispone dei privilegi necessari.

Remarks

Annotazioni

Questa API non è attualmente inclusa in un file di intestazione SDK. È necessario dichiarare manualmente la funzione nel codice.

Le voci dei criteri indicano a WinHTTP quali connessioni denominate sono idonee per trasportare il traffico destinato a host specifici o provenienti da applicazioni specifiche. Questa funzionalità è fondamentale per la rete con riconoscimento della connessione nei dispositivi con più connessioni di rete simultanee.

La chiamata a questa funzione sostituisce tutte le voci impostate in precedenza per lo stesso PolicyEntryTag. Il modello tipico è:

  1. Chiama WinHttpConnectionDeletePolicyEntries per cancellare le voci non aggiornate.
  2. Chiama WinHttpConnectionSetPolicyEntries con il set aggiornato completo.

Il Windows Gestione connessioni usa TAG_WINHTTP_CONNECTION_POLICY_TAG_CONNECTION_MANAGER per eseguire il push delle regole di routing da host a connessione derivate dalla logica di selezione della connessione.

Questa API richiede privilegi elevati (administrator/SYSTEM).

Example

Nell'esempio seguente vengono eliminate le voci dei criteri di gestione connessione esistenti e quindi viene registrato un nuovo criterio su richiesta per tutte le app che si connettono agli host corrispondenti *.contoso.coma .

// First delete existing connection manager policies
WinHttpConnectionDeletePolicyEntries(
    hSession,
    TAG_WINHTTP_CONNECTION_POLICY_TAG_WWWPT);

// Then set new policies
WINHTTP_CONNECTION_POLICY_ENTRY entry = {};
entry.pwszHost = L"*.contoso.com";
entry.pwszAppId = L"*";

PCWSTR connectionName = L"Contoso Cellular";
entry.nConnections = 1;
entry.ppwszConnections = &connectionName;

WINHTTP_CONNECTION_POLICY_ENTRY_LIST list = {};
list.pPolicyEntries = &entry;
list.nEntries = 1;

WinHttpConnectionSetPolicyEntries(
    hSession,
    TAG_WINHTTP_CONNECTION_POLICY_TAG_WWWPT,
    &list);

Requisiti

Requirement valore
Intestazione N/A
Libreria winhttp.lib
DLL winhttp.dll

Vedere anche