Modifica dei filtri di ricezione dell'aggregazione dei pacchetti
Per modificare un filtro di ricezione su un driver miniport che supporta l'unione dei pacchetti, un driver di filtro o protocollo overlying esegue i passaggi seguenti:
Per ottenere un elenco di tutti i filtri di ricezione di coalescenza dei pacchetti scaricati nel driver miniport, il driver sovrapposto emette una richiesta di metodo OID di OID_RECEIVE_FILTER_ENUM_FILTERS. Il membro InformationBuffer della struttura NDIS_OID_REQUEST contiene un puntatore a una struttura NDIS_RECEIVE_FILTER_INFO_ARRAY.
Nota Quando l'applicazione o il driver sovrastante inizializza la struttura NDIS_RECEIVE_FILTER_INFO_ARRAY, deve impostare il membro QueueId su NDIS_DEFAULT_RECEIVE_QUEUE_ID.
Dopo aver restituito correttamente la richiesta del metodo OID di OID_RECEIVE_FILTER_ENUM_FILTERS, il membro InformationBuffer della struttura NDIS_OID_REQUEST contiene un puntatore a una struttura NDIS_RECEIVE_FILTER_INFO_ARRAY aggiornata seguita da una o più strutture NDIS_RECEIVE_FILTER_INFO. Ogni struttura NDIS_RECEIVE_FILTER_INFO specifica l'identificatore (ID) di un filtro impostato sull'adattatore di rete.
Per ottenere i parametri di un filtro di ricezione di un pacchetto specifico che è stato scaricato nel driver miniport, il driver superiore invia una richiesta del metodo OID di OID_RECEIVE_FILTER_PARAMETERS. Il membro InformationBuffer della struttura NDIS_OID_REQUEST contiene un puntatore a una struttura NDIS_RECEIVE_FILTER_PARAMETERS. L'applicazione o il driver overlay inizializza la struttura NDIS_RECEIVE_FILTER_PARAMETERS impostando il membro FilterId sul valore ID diverso da zero del filtro di cui devono essere restituiti i parametri.
Dopo il ritorno con successo dalla richiesta del metodo OID, il membro InformationBuffer della struttura NDIS_OID_REQUEST contiene un puntatore a un buffer. Questo buffer è formattato per contenere quanto segue:
Struttura NDIS_RECEIVE_FILTER_PARAMETERS che specifica i parametri per il filtro di ricezione NDIS.
Una matrice di strutture di NDIS_RECEIVE_FILTER_FIELD_PARAMETERS che specifica il criterio di verifica del filtro per un campo in un'intestazione di pacchetto di rete.
Il driver sovrastante modifica il filtro di ricezione per aggiungere, eliminare o cambiare il set di criteri di test del filtro. Il driver esegue questa operazione aggiungendo, eliminando o modificando singole strutture NDIS_RECEIVE_FILTER_FIELD_PARAMETERS dalla matrice di parametri di campo specificata dalla struttura NDIS_RECEIVE_FILTER_PARAMETERS.
Quando il driver sovrapposto ha completato le modifiche al criterio di test, deve aggiornare i membri della struttura NDIS_RECEIVE_FILTER_PARAMETERS per riflettere le modifiche apportate al filtro di ricezione. Ad esempio, il driver sovrastante deve aggiornare il membro FieldParametersArrayNumElements per contenere il nuovo numero di elementi nell'array.
Per altre informazioni, vedere Specifica di un filtro di ricezione di coalescenza di pacchetti.
Il driver sovrastante invia una richiesta di metodo OID di OID_RECEIVE_FILTER_SET_FILTER per scaricare il filtro di ricezione modificato al driver miniport.
Per ulteriori informazioni, consultare Impostazione di un filtro di ricezione per la coalescenza dei pacchetti.