Registrazione e apertura di una famiglia di indirizzi
Un gestore chiamate deve registrare una famiglia di indirizzi per ogni scheda di interfaccia di rete in cui fornisce servizi di gestione chiamate ai client orientati alla connessione. Analogamente, un driver MCM deve registrare una famiglia di indirizzi per la scheda di interfaccia di rete gestita.
Registrando una famiglia di indirizzi, un gestore chiamate o un driver MCM fa in modo che NDIS annunci i servizi del gestore chiamate o del driver MCM a tutti i client orientati alla connessione associati alla scheda.
Se un client orientato alla connessione può usare i servizi annunciati da un gestore chiamate o da un driver MCM, può aprire una famiglia di indirizzi con il gestore chiamate o il driver MCM.
Registrazione di una famiglia di indirizzi da un chiamante
Dopo che la relativa funzione ProtocolBindAdapterEx viene associata a un driver miniport sottostante con NdisOpenAdapterEx, un gestore chiamate NdisCmRegisterAddressFamilyEx per registrare una famiglia di indirizzi per l'associazione (vedere la figura seguente).
La chiamata a NdisCmRegisterAddressFamilyEx annuncia i servizi di segnalazione specifici del gestore chiamate. Un gestore chiamate deve registrare una famiglia di indirizzi ogni volta che la funzione ProtocolBindAdapterEx viene chiamata e associata correttamente a una scheda di interfaccia di rete con NdisOpenAdapterEx.
Il gestore chiamate può supportare più di una famiglia di indirizzi in tutti i driver miniport a cui è associato. Il gestore chiamate può supportare anche più di una famiglia di indirizzi in una singola scheda di interfaccia di rete a cui è associato. Il gestore chiamate deve registrare gli stessi punti di ingresso per ogni famiglia di indirizzi nell'associazione. Solo un gestore chiamate può supportare un particolare tipo di famiglia di indirizzi per i client associati a qualsiasi driver miniport specifico. Per altre informazioni sulla registrazione dei punti di ingresso per un gestore chiamate, vedere Registrazione CoNDIS.
Registrazione di una famiglia di indirizzi da un driver MCM
Un driver MCM chiama NdisMCmRegisterAddressFamilyEx dalla funzione MiniportInitializeEx dopo aver registrato i punti di ingresso del driver miniport con NdisMRegisterMiniportDriver. Per altre informazioni sui punti di ingresso regsitering, vedere Registrazione CoNDIS. Un driver MCM chiama NdisMCmRegisterAddressFamilyEx una volta per annunciare i servizi ai client orientati alla connessione (vedere la figura seguente).
Un driver miniport di una scheda di interfaccia di rete con supporto per la segnalazione orientata alla connessione è in grado di registrarsi come driver MCM anche se un gestore chiamate può essere disponibile. In questo modo, tale driver MCM annulla il gestore chiamate come gestore chiamate per tale scheda di interfaccia di rete.
Apertura di una famiglia di indirizzi
Una chiamata del gestore chiamate o del driver MCM a Ndis(M)CmRegisterAddressFamily fa sì che NDIS chiami la funzione ProtocolCoAfRegisterNotify di ogni client orientato alla connessione sull'associazione (come illustrato in due figure precedenti).
ProtocolCoAfRegisterNotify esamina i dati della famiglia di indirizzi per determinare se il client può usare i servizi di questo particolare driver CM o MCM. Se il client può apportare modifiche ai dati della famiglia di indirizzi fornita da CM (M)dipende dal particolare supporto del protocollo di segnalazione del gestore chiamate o del driver MCM.
Se il client rileva che i servizi di gestione delle chiamate offerti sono accettabili, ProtocolCoAfRegisterNotify alloca un'area di contesto per il client e chiama NdisClOpenAddressFamilyEx. NdisClOpenAddressFamilyEx non registra i punti di ingresso orientati alla connessione del client con NDIS. Per altre informazioni sulla registrazione di punti di ingresso orientati alla connessione con NDIS, vedere Registrazione CoNDIS.
La chiamata a NdisClOpenAddressFamilyEx fa sì che NDIS chiami la funzione ProtocolCmOpenAf del gestore chiamate o del driver MCM (come illustrato già nelle due figure precedenti). ProtocolCmOpenAf garantisce che il client ha passato una famiglia di indirizzi valida e alloca e inizializza le risorse necessarie per eseguire operazioni per conto del client che sta aprendo questa istanza della famiglia di indirizzi. ProtocolCmOpenAf archivia anche un NDIS fornito da NdisAfHandle che rappresenta l'associazione tra il gestore chiamate e il client per la famiglia di indirizzi aperti.
ProtocolCmOpenAf può essere completato in modo sincrono o asincrono. Per completare in modo asincrono, la funzione ProtocolCmOpenAf di un gestore chiamate NdisCmOpenAddressFamilyComplete; La funzione ProtocolCmOpenAf di un driver MCM chiama NdisMCmOpenAddressFamilyComplete. La chiamata a Ndis(M)CmOpenAddressFamilyComplete fa sì che NDIS chiami la funzione ProtocolOpenAfComplete del client che originariamente ha chiamato NdisClOpenAddressFamilyEx.
Se la chiamata del client a NdisClOpenAddressFamilyEx ha esito positivo, NDIS torna al client un NdisAfHandle che rappresenta l'associazione tra il gestore chiamate e il client per la famiglia di indirizzi aperta.
Se un client accetta chiamate in ingresso, in genere registra uno o più provider di servizi di accesso condiviso dalla funzione ProtocolClOpenAfCompleteEx chiamando NdisClRegisterSap dopo la chiamata a NdisClOpenAddressFamilyEx.
Se un client effettua chiamate in uscita, potrebbe creare uno o più VC nella funzione ProtocolClOpenAfCompleteEx in previsione di una richiesta da uno o più client per effettuare una chiamata in uscita.