Stati dell'adattatore di un driver Miniport

Per ogni adattatore miniport gestito, un driver miniport NDIS deve supportare il set di stati operativi seguente:

  • Fermato

  • Shutdown

  • Inizializzazione in corso

  • Paused

  • Riavvio

  • In esecuzione

  • Sospensione

La figura seguente illustra le relazioni tra questi stati.

Diagramma che mostra le interrelationship tra gli stati operativi di un driver miniport NDIS.

Nota L'operazione di reimpostazione non influisce sugli stati operativi dell'adattatore miniport. Inoltre, lo stato dell'adattatore potrebbe cambiare mentre è in corso un'operazione di reimpostazione. Ad esempio, NDIS potrebbe chiamare il gestore di sospensione di un driver quando è in corso un'operazione di reimpostazione. In questo caso, il driver può completare la reimpostazione o l'operazione di sospensione in qualsiasi ordine seguendo i normali requisiti per ogni operazione. Per un'operazione di reimpostazione, il driver può non riuscire a trasmettere pacchetti di richiesta oppure può mantenerli in coda e completarli in un secondo momento. Tuttavia, è necessario notare che un driver overlying non può completare un'operazione di sospensione mentre i pacchetti di trasmissione sono in sospeso.

Di seguito vengono definiti gli stati dell'adattatore:

Interrotto è lo stato iniziale di tutti gli adattatori miniport. Quando un adattatore miniport è nello stato Interrotto e NDIS chiama la funzione MiniportInitializeEx del driver per inizializzare l'adattatore miniport, l'adattatore miniport entra nello stato inizializzazione. Se MiniportInitializeEx ha esito negativo, l'adattatore miniport torna allo stato Interrotto. Quando l'adattatore miniport si trova nello stato Paused e NDIS chiama la funzione MiniportHaltEx , l'adattatore miniport torna allo stato Halted.

Non è possibile utilizzare un adattatore miniport nello stato Arresto fino a quando il sistema non viene arrestato e riavviato. Quando l'adattatore miniport si trova nello stato Paused, Restarting, Running o Pausing e NDIS chiama la funzione MiniportShutdownEx del driver miniport , l'adattatore miniport entra nello stato Shutdown.

Nello stato Inizializzazione , un driver miniport completa tutte le operazioni necessarie per inizializzare un adattatore miniport. Quando un adattatore miniport è nello stato Interrotto e NDIS chiama la funzione MiniportInitializeEx del driver miniport , l'adattatore miniport entra nello stato Inizializzazione. Se MiniportInitializeEx ha esito positivo, l'adattatore miniport entra nello stato Sospeso. Se MiniportInitializeEx ha esito negativo, l'adattatore miniport torna allo stato Interrotto.

Quando una scheda miniport è nello stato Sospeso , un driver miniport non indica i dati di rete ricevuti o accetta le richieste di invio. Quando un adattatore miniport è nello stato Sospensione e l'operazione di sospensione è completata, l'adattatore miniport entra nello stato Sospeso. Quando un adattatore miniport è nello stato Inizializzazione e MiniportInitializeEx ha esito positivo, l'adattatore miniport entra nello stato Sospeso. Quando NDIS chiama la funzione MiniportRestart del driver miniport , l'adattatore miniport passa dallo stato Sospeso allo stato Riavvia. Quando NDIS chiama la funzione MiniportHaltEx del driver miniport , l'adattatore miniport passa dallo stato Sospeso allo stato Arrestato.

Nello stato di riavvio , un driver miniport completa tutte le operazioni necessarie per riavviare le operazioni di invio e ricezione per un adattatore miniport. Quando un adattatore miniport è nello stato Sospeso e NDIS chiama la funzione MiniportRestart del driver, l'adattatore miniport entra nello stato di riavvio. Se il riavvio non riesce, l'adattatore miniport torna allo stato Sospeso. Se il riavvio ha esito positivo, l'adattatore miniport entra nello stato In esecuzione.

Nello stato In esecuzione , un driver miniport esegue l'elaborazione normale di invio e ricezione per un adattatore miniport. Quando l'adattatore miniport è nello stato Riavvio e il driver è pronto per eseguire operazioni di invio e ricezione, l'adattatore miniport entra nello stato In esecuzione.

Nello stato Sospensione , un driver miniport completa tutte le operazioni necessarie per arrestare le operazioni di invio e ricezione per un adattatore miniport. Il driver deve attendere che NDIS restituisca tutte le indicazioni di ricezione in sospeso. Quando un adattatore miniport è in stato Running e NDIS chiama la funzione MiniportPause del driver, l'adattatore miniport entra nello stato Di sospensione. Un driver miniport non può eseguire un'operazione di sospensione. Al termine dell'operazione di sospensione, l'adattatore miniport entra nello stato Sospeso.

Gestione dello stack di driver

Driver miniport NDIS