Condividi tramite


Determinazione delle funzionalità VMQ di una scheda di rete

NDIS fornisce l'interfaccia per determinare le funzionalità VMQ di una scheda di rete, ad esempio:

  • Funzionalità di filtro generiche di una scheda di rete.

  • Funzionalità di coda di macchine virtuali supportate.

  • Supporto lookahead per consentire la suddivisione della memoria dei dati di rete in due buffer separati.

    Nota A partire da NDIS 6.30, la suddivisione dei dati dei pacchetti in buffer lookahead separati non è più supportata.

I driver Miniport forniscono le informazioni seguenti a NDIS durante l'inizializzazione della scheda di rete:

  • Le funzionalità hardware VMQ che la scheda di rete può supportare.

  • Le funzionalità VMQ attualmente abilitate.

  • Funzionalità di filtro di ricezione globali abilitate o disabilitate in una scheda di rete.

I driver e le applicazioni overlying possono usare le richieste di query OID seguenti per ottenere le funzionalità della scheda di rete.

OID_RECEIVE_FILTER_HARDWARE_CAPABILITIES

OID_RECEIVE_FILTER_CURRENT_CAPABILITIES

OID_RECEIVE_FILTER_GLOBAL_PARAMETERS

NDIS gestisce queste richieste di query OID per i driver miniport. Pertanto, la query non è richiesta per i driver miniport. NDIS segnala le funzionalità di ricezione VMQ attualmente abilitate di una scheda di rete durante l'inizializzazione. Pertanto, i driver overlying non devono eseguire query su questi OID.

La struttura NDIS_RECEIVE_FILTER_CAPABILITIES specifica le funzionalità di filtro di una scheda di rete. Questa struttura viene usata nei modi seguenti:

La struttura NDIS_RECEIVE_FILTER_CAPABILITIES include le informazioni seguenti:

EnabledFilterTypes
Tipi dei filtri di ricezione supportati. Il flag NDIS_RECEIVE_FILTER_VMQ_FILTERS_ENABLED specifica che i filtri VMQ (Virtual Machine Queue) sono abilitati.

EnabledQueueTypes
Tipi di code di ricezione supportate. Il flag NDIS_RECEIVE_FILTER_VM_QUEUES_ENABLED specifica che le code di macchine virtuali (VM) sono abilitate.

NumQueues
Numero di code di ricezione supportate dalla scheda di rete. Per supportare VMQ, questo numero deve essere uguale o minore del numero di indirizzi MAC unicast supportati dalla scheda di interfaccia di rete. Questo numero non deve includere la coda predefinita.

Nota Il numero di indirizzi MAC unicast o code di macchine virtuali supportate da una scheda di rete non include l'indirizzo MAC della scheda di interfaccia di rete associata.

SupportedQueueProperties
Proprietà della coda supportate dalla scheda di rete. Il flag NDIS_RECEIVE_FILTER_VM_QUEUE_SUPPORTED specifica che la scheda di rete fornisce i requisiti minimi per supportare il filtro VMQ. Una scheda di interfaccia di rete con supporto per VMQ deve fornire una voce di tabella MSI-X per ogni coda di ricezione. Pertanto, un driver miniport VMQ deve impostare il flag di NDIS_RECEIVE_FILTER_MSI_X_SUPPORTED.

SupportedFilterTests
Operazioni di test del filtro supportate da un driver miniport. Ad esempio, la scheda di rete supporta il test del campo intestazione selezionato per determinare se è uguale a un determinato valore. Un driver miniport VMQ deve impostare il flag di NDIS_RECEIVE_FILTER_TEST_HEADER_FIELD_EQUAL_SUPPORTED.

SupportHeaders
Tipi di intestazioni di pacchetti di rete che un driver miniport può controllare. Ad esempio, la scheda di rete può controllare l'intestazione MAC di un pacchetto di rete. L'intestazione MAC include il tipo di pacchetto, gli indirizzi MAC di destinazione e di origine, l'identificatore VLAN e i campi tag di priorità. Un driver miniport VMQ deve impostare il flag di NDIS_RECEIVE_FILTER_MAC_HEADER_SUPPORTED.

SupportMacHeaderFields
Tipi di campi di intestazione MAC che un driver miniport può controllare. Un driver miniport VMQ deve impostare il flag di NDIS_RECEIVE_FILTER_MAC_HEADER_DEST_ADDR_SUPPORTED.

MaxMacHeaderFilters
Numero massimo di filtri di intestazione MAC supportati dal driver miniport. Devono essere presenti almeno il numero di filtri di intestazione presenti nelle code delle macchine virtuali.

MaxQueueGroups
Questo membro è riservato per NDIS.

MaxQueuesPerQueueGroup
Questo membro è riservato per NDIS.

MinLookaheadSplitSize
Dimensioni minime, in byte, supportate dalla scheda di rete per i segmenti di pacchetti lookahead.

Nota A partire da NDIS 6.30, la suddivisione dei dati dei pacchetti in buffer lookahead separati non è più supportata. I driver Miniport che supportano NDIS 6.30 o versioni successive devono impostare questo membro su zero.

MaxLookaheadSplitSize
Dimensioni massime, in byte, supportate dalla scheda di rete per i segmenti di pacchetti lookahead.

Nota A partire da NDIS 6.30, la suddivisione dei dati dei pacchetti in buffer lookahead separati non è più supportata. I driver Miniport che supportano NDIS 6.30 o versioni successive devono impostare questo membro su zero.

Dopo aver restituito correttamente la query OID OID_RECEIVE_FILTER_HARDWARE_CAPABILITIES, il membro InformationBufferdella strutturaNDIS_OID_REQUEST contiene un puntatore a una struttura NDIS_RECEIVE_FILTER_CAPABILITIES. Queste funzionalità possono includere funzionalità hardware VMQ attualmente disabilitate dalle impostazioni del file INF o tramite la pagina Proprietà avanzate . Per altre informazioni sulle impostazioni dei file INF VMQ, vedere Voci INF standard VMQ.

I driver miniport NDIS forniscono le funzionalità hardware di filtro della ricezione durante l'inizializzazione nel membro HardwareReceiveFilterCapabilities della struttura NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES .

Dopo aver restituito correttamente la query OID OID_RECEIVE_FILTER_CURRENT_CAPABILITIES, il membro InformationBufferdella strutturaNDIS_OID_REQUEST contiene un puntatore a una struttura NDIS_RECEIVE_FILTER_CAPABILITIES. Queste funzionalità includono le funzionalità VMQ attualmente abilitate.

I driver miniport NDIS forniscono le funzionalità di filtro attualmente abilitate durante l'inizializzazione nel membro CurrentReceiveFilterCapabilities della struttura NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES .

NDIS segnala le funzionalità di filtro attualmente abilitate di una scheda di rete sottostante per l'overlying dei driver di protocollo nel membro ReceiveFilterCapabilities della struttura NDIS_BIND_PARAMETERS durante l'operazione di associazione.

La struttura NDIS_RECEIVE_FILTER_GLOBAL_PARAMETERS viene usata nell'OID della query OID_RECEIVE_FILTER_GLOBAL_PARAMETERS per ottenere le impostazioni correnti del filtro di ricezione globale.

NDIS_RECEIVE_FILTER_GLOBAL_PARAMETERS include le informazioni seguenti:

EnabledFilterTypes
Tipi di filtri di ricezione abilitati. Il flag NDIS_RECEIVE_FILTER_VMQ_FILTERS_ENABLED specifica che i filtri VMQ (Virtual Machine Queue) sono abilitati.

EnabledQueueTypes
Tipi di code di ricezione abilitate. Il flag NDIS_RECEIVE_FILTER_VM_QUEUES_ENABLED specifica che le code di macchine virtuali (VM) sono abilitate.

Dopo aver restituito correttamente la query OID OID_RECEIVE_FILTER_GLOBAL_PARAMETERS, il membro InformationBufferdella strutturaNDIS_OID_REQUEST contiene un puntatore a una struttura NDIS_RECEIVE_FILTER_GLOBAL_PARAMETERS. La struttura NDIS_RECEIVE_FILTER_GLOBAL_PARAMETERS specifica le funzionalità di filtro della ricezione abilitate o disabilitate in una scheda di rete.

I driver di protocollo NDIS usano OID_RECEIVE_FILTER_GLOBAL_PARAMETERS per eseguire query sui parametri di configurazione globale correnti per ricevere il filtro in una scheda di rete. Ad esempio, i driver di protocollo possono usare questo OID per determinare se i tipi di filtri di ricezione o ricezione sono abilitati o disabilitati.