Funzione WinHttpConnectionUpdateIfIndexTable

Aggiorna la tabella di mapping interna WinHTTP che associa le connessioni di rete denominate agli indici dell'interfaccia di rete attiva. Ciò consente a WinHTTP di instradare le richieste HTTP tramite l'interfaccia di rete corretta in base alle decisioni relative ai criteri in grado di supportare la connessione.

Syntax

DWORD WINAPI WinHttpConnectionUpdateIfIndexTable(
    _In_ HINTERNET                          hSession,
    _In_ WINHTTP_CONNECTION_IFINDEX_LIST   *pConnectionIfIndexEntries
);

Parameters

hSession [in]

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

pConnectionIfIndexEntries [in]

Puntatore a una struttura WINHTTP_CONNECTION_IFINDEX_LIST contenente una matrice di mapping di indice da connessione a interfaccia.

La struttura WINHTTP_CONNECTION_IFINDEX_LIST contiene:

  • nEntries : numero di voci nella matrice. Può essere 0 per cancellare la tabella.
  • pConnectionIfIndexEntries - Matrice di strutture WINHTTP_CONNECTION_IFINDEX_ENTRY , ognuna contenente:
    • pwszConnectionName - Nome della connessione (ad esempio, "Cellulare").
    • dwIfIndex - Indice dell'interfaccia di rete attiva (IF_INDEX).

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 Descrizione
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.

Questa funzione comunica con il servizio proxy automatico WinHTTP per aggiornare la tabella di mapping da connessione a interfaccia.

La tabella consente a WinHTTP di associare connessioni HTTP a interfacce di rete specifiche, che è fondamentale per i dispositivi multi-homed(ad esempio, i dispositivi con connessioni sia Wi-Fi che cellulare sono attive contemporaneamente).

In genere chiamato dai componenti di rete di sistema, ad esempio Windows Gestione connessioni, ogni volta che gli stati di connessione cambiano (eventi di connessione/disconnessione) per mantenere la tabella di routing di WinHTTP sincronizzata con lo stato di rete corrente.

Il passaggio di un elenco vuoto (nEntries = 0, pConnectionIfIndexEntries = nullptr) cancella in modo efficace tutti i mapping dell'interfaccia di connessione.

Example

Nell'esempio seguente viene aggiornata la tabella dell'indice dell'interfaccia con mapping per un Wi-Fi e una connessione cellulare.

WINHTTP_CONNECTION_IFINDEX_ENTRY entries[2] = {};
entries[0].pwszConnectionName = L"Wi-Fi";
entries[0].dwIfIndex = 4;
entries[1].pwszConnectionName = L"Cellular";
entries[1].dwIfIndex = 7;

WINHTTP_CONNECTION_IFINDEX_LIST ifList = {};
ifList.pConnectionIfIndexEntries = entries;
ifList.nEntries = 2;

WinHttpConnectionUpdateIfIndexTable(hSession, &ifList);

Requisiti

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

Vedere anche