Collegamento di un modulo di filtro

Per avviare il processo di inserimento di un modulo filtro in uno stack di driver, NDIS chiama la funzione FilterAttach del driver di filtro. All'inizio dell'esecuzione nella funzione FilterAttach , il modulo di filtro entra nello stato Di collegamento. Per altre informazioni sul collegamento di un modulo di filtro a uno stack di driver, vedere Avvio di uno stack di driver.

Un driver di filtro usa l'handle , che NDIS passa al parametro NdisFilterHandle di FilterAttach in tutte le future chiamate di funzione NdisXxx che fanno riferimento a questo modulo di filtro. Tali funzioni includono indicazioni sullo stato, inviare richieste, ricevere indicazioni e richieste OID.

Mentre un modulo di filtro si trova nello stato Di collegamento , il driver:

  • Crea un'area di contesto per il modulo di filtro e alloca pool di buffer e altre risorse specifiche del modulo di filtro. Per altre informazioni sui pool di buffer, vedere Filter Driver Buffer Management.For more information about buffer pools, see Filter Driver Buffer Management.

  • Chiama la funzione NdisFSetAttributes usando il valore NdisFilterHandle passato a FilterAttach. Il parametro FilterModuleContext di NdisFSetAttributes specifica l'area di contesto del driver di filtro per questo modulo di filtro. NDIS passa questa area di contesto alle funzioni FilterXxx del driver di filtro.

  • Facoltativamente, legge i parametri di configurazione per questo modulo di filtro dal Registro di sistema. Per altre informazioni, vedere Accesso alle informazioni di configurazione per un driver di filtro.

  • Se le operazioni precedenti sono state completate correttamente, il modulo di filtro si trova nello stato Sospeso .

  • Se le operazioni precedenti non sono riuscite, il driver di filtro deve rilasciare tutte le risorse allocate nella funzione FilterAttach e restituire il modulo di filtro allo stato Scollegato .

  • Restituisce NDIS_STATUS_SUCCESS o un codice di errore appropriato. Se il driver restituisce un codice di errore, NDIS termina lo stack di driver.

Nota Il Registro di sistema può contenere un flag che specifica che un modulo di filtro è facoltativo. Se un modulo di filtro facoltativo non è collegato, NDIS non termina il resto dello stack di driver.

Un driver di filtro non può effettuare richieste di invio, indicare i dati ricevuti, effettuare richieste OID o effettuare indicazioni di stato dallo stato Di collegamento . Le operazioni di invio e ricezione sono supportate negli stati In esecuzione e Sospensione . Le richieste OID e le indicazioni sullo stato sono supportate negli stati Sospendi, Riavvia, In esecuzione e Sospensione .

NDIS chiama la funzione FilterDetach per scollegare un modulo di filtro collegato a FilterAttach. Per altre informazioni, vedere Scollegamento di un modulo filtro.