Inizializzazione di un adattatore Miniport

Quando un dispositivo di rete diventa disponibile, il sistema carica il driver miniport NDIS necessario, se non è già caricato. Successivamente, il gestore Plug and Play (PnP) invia NDIS a Plug and Play IRP per avviare il dispositivo. NDIS chiama la funzione MiniportInitializeEx del driver miniport per inizializzare una scheda per le operazioni di I/O di rete. NDIS può chiamare MiniportInitializeEx in qualsiasi momento dopo l'inizializzazione del driver. Per altre informazioni sull'inizializzazione del driver miniport, vedere Inizializzazione di un driver Miniport.

Finché MiniportInitializeEx non restituisce, NDIS non invia richieste per l'adattatore inizializzato. L'adattatore è nello stato Inizializzazione.

Un driver miniport esegue in genere le attività seguenti in MiniportInitializeEx:

  1. Ottiene le informazioni di configurazione per l'adattatore.

  2. Ottiene informazioni sulle risorse hardware per l'adattatore.

  3. Chiama NdisMSetMiniportAttributes e fornisce gli attributi seguenti associati all'adapter:

    • Puntatore a un'area di contesto allocata dal driver.
    • Flag di attributi appropriati.
    • Intervallo di timeout per chiamare la funzione MiniportCheckForHangEx .
    • Tipo di interfaccia
  4. Inizializza le risorse specifiche dell'adattatore.

Il driver miniport specifica gli attributi dell'adattatore nella struttura NDIS_MINIPORT_ADAPTER_ATTRIBUTES che MiniportInitializeEx passa a NdisMSetMiniportAttributes.

In genere, MiniportInitializeEx alloca le risorse specifiche dell'adapter nell'ordine seguente:

  1. Memoria del pool non di paging.

  2. NET_BUFFER e pool di NET_BUFFER_LIST (vedere Operazioni di invio e ricezione del driver Miniport).

  3. Blocchi di rotazione.

  4. Timer.

  5. Porte di I/O.

  6. DMA (vedere DMA a dispersione/raccolta DMA).

  7. Shared Memory.

  8. Interrupts (vedere Gestione degli interrupt).

Dopo che MiniportInitializeEx viene restituito correttamente, l'adattatore si trova nello stato Sospeso. NDIS può chiamare la funzione MiniportRestart per eseguire la transizione dell'adattatore allo stato In esecuzione. Per altre informazioni, vedere Avvio di un adattatore Miniport.

Se MiniportInitializeEx restituisce NDIS_STATUS_SUCCESS, il driver deve rilasciare tutte le risorse per l'adattatore nella funzione MiniportHaltEx . Per altre informazioni, vedere Interruzione di un adattatore Miniport.

Il driver deve chiamare NdisMSetMiniportAttributes e impostare GeneralAttributes nella struttura NDIS_MINIPORT_ADAPTER_ATTRIBUTES se restituisce NDIS_STATUS_SUCCESS.

Se MiniportInitializeEx non è riuscito, MiniportInitializeEx deve rilasciare tutte le risorse allocate prima che venga restituito e l'adattatore torna allo stato Interrotto.

Interruzione di un adattatore Miniport

Stati e operazioni dell'adattatore Miniport

Operazioni di invio e ricezione del driver Miniport

DMA a dispersione/raccolta

Avvio di un adattatore Miniport