Stati di associazione di un driver di protocollo

Un driver del protocollo NDIS deve supportare gli stati operativi seguenti per ogni associazione gestita dal driver:

  • Svincolato

  • Apertura

  • In esecuzione

  • Chiusura

  • Sospensione

  • Paused

  • Riavvio

Le figure seguenti illustrano la relazione tra questi stati.

Diagramma che mostra la relazione tra gli stati di associazione in un driver del protocollo NDIS.

Di seguito vengono definiti gli stati di associazione del driver del protocollo:

Lo stato Unbound è lo stato iniziale di un'associazione. In questo stato, il driver del protocollo attende che NDIS chiami la funzione ProtocolBindAdapterEx . Dopo che NDIS chiama ProtocolBindAdapterEx, l'associazione entra nello stato Apertura. Dopo il completamento di un'operazione senza associazione, un'associazione restituisce lo stato Unbound dallo stato Di chiusura.

Nello stato Apertura , un driver di protocollo alloca le risorse per l'associazione e tenta di aprire l'adattatore miniport. Dopo che NDIS chiama la funzione ProtocolBindAdapterEx del driver, l'associazione entra nello stato Apertura. Se il driver del protocollo non riesce a eseguire l'associazione all'adattatore miniport, l'associazione restituisce lo stato Non in uscita. Se il driver viene associato correttamente all'adattatore miniport, l'associazione entra nello stato Sospeso.

Nello stato Esecuzione , un driver di protocollo esegue l'elaborazione normale di invio e ricezione per un'associazione. Quando l'associazione si trova nello stato Di riavvio e il driver è pronto per eseguire operazioni di invio e ricezione, l'associazione entra nello stato Esecuzione.

Nello stato Di chiusura il driver del protocollo chiude l'associazione all'adattatore miniport e quindi rilascia le risorse per l'associazione. Dopo che NDIS chiama la funzione ProtocolUnbindAdapterEx del driver del protocollo, l'associazione entra nello stato Di chiusura. Dopo aver completato le operazioni di unbind, l'associazione entra nello stato Unbound.

Nello stato di sospensione , un driver del protocollo completa tutte le operazioni necessarie per arrestare l'invio e la ricezione delle operazioni per un'associazione. Quando un'associazione si trova nello stato In esecuzione e NDIS invia al driver del protocollo una notifica di sospensione PnP, l'associazione entra nello stato di sospensione. Il driver del protocollo deve attendere il completamento di tutte le richieste di invio in sospeso. Un driver di protocollo non riesce a eseguire un'operazione di sospensione. Al termine dell'operazione di sospensione, l'associazione entra nello stato Sospeso.

Nello stato Sospeso il driver del protocollo non esegue operazioni di invio o ricezione per un'associazione. Quando un'associazione si trova nello stato di sospensione e viene completata un'operazione di sospensione, l'associazione entra nello stato Sospeso. Quando un'associazione si trova nello stato Apertura e un'operazione aperta viene completata correttamente, l'associazione entra nello stato Sospeso. Se NDIS invia al driver del protocollo una notifica di riavvio PnP per l'associazione, l'associazione entra nello stato Di riavvio. Se NDIS chiama la funzione ProtocolUnbindAdapterEx del driver, l'associazione entra nello stato Di chiusura.

Nello stato di riavvio , un driver di protocollo completa tutte le operazioni necessarie per riavviare l'invio e la ricezione delle operazioni per un'associazione. Quando un'associazione si trova nello stato sospeso e NDIS invia al driver del protocollo una notifica di riavvio PnP, l'associazione entra nello stato Di riavvio. Se il riavvio ha esito negativo, l'associazione restituisce lo stato Sospeso. Se il riavvio ha esito positivo, l'associazione entra nello stato Esecuzione.

Gestione dello stack di driver

Driver del protocollo NDIS