Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Dopo che un driver miniport alloca correttamente una porta NDIS e prima di usare il numero di porta nelle funzioni NDIS, il driver deve attivare la porta. Per attivare la porta, il driver miniport invia un evento PnP (Plug and Play) di attivazione della porta a NDIS. Per inviare l'evento PnP di attivazione della porta, i driver miniport usano il codice di evento PnP NetEventPortActivation nella chiamata alla funzione NdisMNetPnPEvent.
Per attivare le porte, il driver miniport deve impostare i membri della struttura NET_PNP_EVENT_NOTIFICATION a cui punta il parametro NetPnPEvent di NdisMNetPnPEvent come indicato di seguito:
PortNumber
Porta di origine della notifica dell'evento. Impostare questo membro su zero perché i numeri di porta vengono forniti nel membro Buffer della struttura specificata dal membro NetPnPEvent.
NetPnPEvent
Struttura NET_PNP_EVENT che descrive l'evento di attivazione delle porte. Impostare i membri di questa struttura come segue:
NetEvent
Codice evento che descrive l'evento. Impostare questo membro su NetEventPortActivation.
Buffer
Puntatore a una lista collegata di strutture NDIS_PORT. Il membro Successivo delle strutture NDIS_PORT punta alla struttura NDIS_PORT successiva nell'elenco.
LunghezzaBuffer
Numero di byte specificati in Buffer . Impostare BufferLength alla dimensione della struttura NDIS_PORT.
Altri membri
Impostare i membri rimanenti di NET_PNP_EVENT su NULL.
Il driver miniport elenca le porte che hanno modificato gli stati da inattivi ad attivi in un elenco collegato di strutture NDIS_PORT. Tuttavia, se la porta predefinita di una scheda miniport è la destinazione di un evento NetEventPortActivation PnP, la porta predefinita deve essere l'unica porta nell'elenco.
Quando il driver miniport invia una notifica all'NDIS dell'attivazione di una porta (ed eventualmente prima che venga restituita questa chiamata di notifica), il driver miniport deve essere pronto per gestire le richieste di invio e le richieste OID associate alla porta. I driver Miniport non devono utilizzare il numero di porta di una nuova porta attivata per indicazioni di stato o di ricezione fino a quando la chiamata a NdisMNetPnPEvent non restituisce.
NDIS non notifica i driver sovrastanti delle porte attivate fino a dopo che la porta predefinita è attiva. Quando NDIS chiama la funzione ProtocolBindAdapterExdel driver di protocollo, NDIS fornisce un elenco di tutte le porte attualmente attive nel membro ActivePorts della struttura NDIS_BIND_PARAMETERS a cui il parametro BindParameters punta. Quando un driver miniport attiva nuove porte, NDIS notifica tutti i driver di protocollo associati al driver miniport con l'evento PnP NetEventPortActivation. Per altre informazioni sulla gestione di questi eventi di attivazione delle porte in un driver di protocollo, vedere Gestione dell'evento PnP di attivazione delle porte.
Prima che un driver miniport allochi una porta NDIS, il driver deve chiamare la funzione NdisMSetMiniportAttributes per impostare le caratteristiche di registrazione nella struttura NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES. I driver Miniport possono controllare l'attivazione della porta predefinita impostando il flag di attributo NDIS_MINIPORT_CONTROLS_DEFAULT_PORT quando chiamano NdisMSetMiniportAttributes. Se un driver miniport assume la responsabilità di attivare la porta predefinita, NDIS non avvia l'associazione tra la scheda miniport e i driver overlying finché il driver miniport non attiva la porta predefinita con l'evento PnP di attivazione della porta.
Tutte le porte specificate dall'elenco collegato di strutture di NDIS_PORT devono trovarsi nello stato allocato. Un driver miniport non deve tentare di attivare una porta già attiva; se il driver tenta di attivare una porta attiva, NDIS considera la situazione come un errore di attivazione della porta.
Se NDIS non riesce ad attivare nessuna delle porte dell'elenco, fallisce la chiamata a NdisMNetPnPEvent, e nessuna delle porte nell'elenco passa allo stato attivato. Se NDIS non riesce ad attivare le porte perché alcune porte non esistono, NdisMNetPnPEvent restituisce un valore NDIS_STATUS_INVALID_PORT. Se NDIS non riesce ad attivare le porte perché alcune porte non sono nello stato allocato, NdisMNetPnPEvent restituisce un valore NDIS_STATUS_INVALID_PORT_STATE.
Dopo l'attivazione di una porta, la porta si trova nello stato attivato. I driver Miniport possono indicare i dati ricevuti e lo stato di una porta nello stato attivato.
NDIS passa lo stato di autenticazione della porta predefinita alla funzione MiniportInitializeEx al membro DefaultPortAuthStates della struttura NDIS_MINIPORT_INIT_PARAMETERS. Se un driver miniport controlla la porta predefinita, quando il driver miniport attiva la porta predefinita, può attivare la porta predefinita usando le impostazioni di autenticazione predefinite. Per usare le impostazioni di autenticazione predefinite, impostare il flag NDIS_PORT_CHAR_USE_DEFAULT_AUTH_SETTINGS nel membro Flags della struttura NDIS_PORT_CHARACTERISTICS. I driver Miniport possono usare il flag NDIS_PORT_CHAR_USE_DEFAULT_AUTH_SETTINGS per le porte che allocano e attivano. Per il caso di attivazione, NDIS assegna gli stati di autenticazione predefiniti alla porta appena attivata e ignora gli stati di autenticazione passati a NdisMNetPnPEvent per l'evento NetEventPortActivation.
Per altre informazioni sul controllo della porta predefinita e dell'allocazione delle porte, vedere l'allocazione di porte NDIS.