Condividi tramite


Configurazione e installazione del trasporto

Affinché un protocollo di trasporto sia accessibile tramite Windows Sockets, deve essere installato correttamente nel sistema e registrato con Windows Sockets. Quando un provider di servizi di trasporto viene installato richiamando il programma di installazione di un fornitore, le informazioni di configurazione devono essere aggiunte a un database di configurazione per fornire alle Ws2_32.dll informazioni necessarie relative al provider di servizi. Il Ws2_32.dll esporta diverse funzioni di installazione, WSCInstallProvider e WSCInstallProviderAndChains, affinché il programma di installazione del fornitore fornisca le informazioni pertinenti sul provider di servizi da installare. Queste informazioni includono, ad esempio, il nome e il percorso della DLL del provider di servizi e un elenco di strutture WSAPROTOCOL_INFO che il provider può supportare. Il Ws2_32.dll fornisce anche una funzione, WSCDeinstallProvider, per consentire al programma di deinstallazione di un fornitore di rimuovere tutte le informazioni pertinenti dal database di configurazione gestito dal Ws2_32.dll. La posizione esatta e il formato di queste informazioni di configurazione sono privati per il Ws2_32.dlle possono essere modificati solo dalle funzioni indicate in precedenza.

Nelle piattaforme a 64 bit esistono funzioni simili che operano su cataloghi a 32 bit e a 64 bit. Queste funzioni includono WSCInstallProvider64_32, WSCInstallProviderAndChains64_32e WSCDeinstallProvider32.

L'ordine in cui i provider di servizi di trasporto vengono inizialmente installati determina l'ordine in cui vengono enumerati tramite WSCEnumProtocols e WSCEnumProtocols32 all'interfaccia del provider di servizi o tramite WSAEnumProtocols all'interfaccia dell'applicazione. Inoltre, questo ordine regola anche l'ordine in cui i protocolli e i provider di servizi vengono considerati quando un client richiede la creazione di un socket in base alla famiglia di indirizzi, al tipo e all'identificatore del protocollo. Windows Sockets 2 include un applet denominato Sporder.exe che consente di riordinare in modo interattivo il catalogo dei protocolli installati dopo l'installazione dei protocolli. Windows Sockets 2 include anche una DLL ausiliaria, Sporder.dll, che esporta un'interfaccia procedurale per riordinare i protocolli. Questa interfaccia procedurale è costituita da una singola routine denominata WSCWriteProviderOrder.

Installazione di protocolli e catene di protocolli a più livelli

La struttura WSAPROTOCOL_INFO fornita con ogni protocollo da installare indica se il protocollo è un protocollo di base, un protocollo a più livelli o una catena di protocolli. Il valore del parametro ProtocolChain.ChainLen viene interpretato come illustrato nella tabella seguente.

Valore Significato
0 Protocollo a più livelli.
1 Protocollo di base (o concatenamento con un solo componente).
>1 Catena di protocolli.

 

L'installazione delle catene di protocolli può verificarsi solo dopo l'installazione corretta di tutti i componenti costitutivi (protocolli di base e protocolli a più livelli). La struttura WSAPROTOCOL_INFO per una catena di protocolli usa il parametro ProtocolChain per descrivere la lunghezza della catena e l'identità di ogni componente. I singoli protocolli che costituiscono una catena sono elencati nell'ordine nella matrice ProtocolChain.ChainEntries, con l'elemento zeroth della matrice corrispondente al primo provider a più livelli. I protocolli sono identificati dai relativi valori CatalogEntryID, assegnati dal Ws2_32.dll in fase di installazione del protocollo e sono disponibili nella struttura WSAPROTOCOL_INFO per ogni protocollo.

I valori per i parametri rimanenti nella struttura di WSAPROTOCOL_INFO della catena di protocolli devono essere scelti per riflettere gli attributi e gli identificatori che caratterizzano meglio la catena di protocolli nel suo complesso. Quando si selezionano questi valori, gli sviluppatori devono tenere presente che le comunicazioni sulle catene di protocolli possono verificarsi solo quando entrambi gli endpoint hanno catene di protocolli compatibili installate e che le applicazioni devono essere in grado di riconoscere la struttura di WSAPROTOCOL_INFO corrispondente.

Quando viene installato un protocollo di base, non è necessario creare voci nella matrice ProtocolChain.ChainEntries. Si è compreso in modo implicito che l'unico componente di questa catena è già identificato nel parametro CatalogEntryID della stessa struttura WSAPROTOCOL_INFO. Si noti anche che le catene di protocolli potrebbero non includere più istanze dello stesso protocollo a più livelli.