Condividi tramite


Determinazione delle funzionalità SR-IOV

Questo argomento descrive in che modo NDIS e driver eccessivamente determinano le singole funzionalità di virtualizzazione I/O radice (SR-IOV) di una scheda di rete. In questo argomento sono contenute le informazioni indicate di seguito.

Creazione di report sulle funzionalità SR-IOV durante MiniportInitializeEx

Esecuzione di query sulle funzionalità SR-IOV tramite l'overlying dei driver

Creazione di report sulle funzionalità SR-IOV durante MiniportInitializeEx

Quando NDIS chiama la funzione MiniportInitializeEx del driver miniport , il driver offre le funzionalità SR-IOV seguenti:

  • Set completo di funzionalità hardware SR-IOV supportate dalla scheda di rete.

  • Funzionalità SR-IOV attualmente abilitate nella scheda di rete.

  • Indica se il driver miniport gestisce la funzione fisica PCI Express (PCIe) o la funzione virtuale (VF) nella scheda di rete.

Il driver miniport segnala le funzionalità hardware SR-IOV della scheda di rete sottostante tramite una struttura NDIS_SRIOV_CAPABILITIES inizializzata nel modo seguente:

  1. Il driver miniport inizializza il membro Header . Il driver imposta il membro Type di Header su NDIS_OBJECT_TYPE_DEFAULT.

    A partire da NDIS 6.30, il driver miniport imposta il membro Revision di Header su NDIS_SRIOV_CAPABILITIES _REVISION_1 e il membro Size su NDIS_SIZEOF_SRIOV_CAPABILITIES_REVISION_1.

  2. Il driver miniport imposta i flag appropriati nel membro SriovCapabilities per segnalare le funzionalità SR-IOV.

    Se la scheda di rete supporta SR-IOV, il driver miniport per la funzione fisica PCI Express (PCIe) della scheda deve impostare i flag seguenti:

    • NDIS_SRIOV_CAPS_SRIOV_SUPPORTED

    • NDIS_SRIOV_CAPS_PF_MINIPORT

    Nota

     Il driver miniport per una funzione virtuale PCIe (VF) della scheda di rete deve impostare sia il flag NDIS_SRIOV_CAPS_VF_MINIPORT che il flag NDIS_SRIOV_CAPS_SRIOV_SUPPORTED.  

Quando NDIS chiama la funzione MiniportInitializeEx del driver miniport , il driver registra le funzionalità SR-IOV della scheda di rete seguendo questa procedura:

  1. Il driver miniport inizializza una struttura NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES .

    Il driver miniport imposta il membro HardwareSriovCapabilities su un puntatore alla struttura NDIS_SRIOV_CAPABILITIES inizializzata in precedenza.

    Se l'impostazione del Registro di sistema per la parola chiave *SRIOV INF ha un valore pari a uno, le funzionalità SR-IOV sono attualmente abilitate nella scheda di rete. Il driver miniport imposta i membri CurrentSriovCapabilities su un puntatore alla stessa struttura NDIS_SRIOV_CAPABILITIES .

    Se l'impostazione del Registro di sistema per la parola chiave *SRIOV INF ha un valore pari a zero, le funzionalità SR-IOV sono attualmente disabilitate nella scheda di rete. Il driver miniport deve impostare il membro CurrentSriovCapabilities su NULL.

    Per altre informazioni sulla parola chiave *SRIOV INF, vedere Parole chiave INF standardizzate per SR-IOV.

  2. Il driver chiama NdisMSetMiniportAttributes e imposta il parametro MiniportAttributes su un puntatore alla struttura NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES .

Per altre informazioni sul processo di inizializzazione dell'adattatore, vedere Inizializzazione di un adattatore Miniport.

Esecuzione di query sulle funzionalità SR-IOV tramite l'overlying dei driver

NDIS passa le funzionalità SR-IOV attualmente abilitate per la scheda di rete ai driver che si associano alla scheda di rete nel modo seguente:

  • Quando NDIS chiama la funzione FilterAttach di un driver di filtro eccessiva, NDIS passa le funzionalità SR-IOV della scheda di rete tramite il parametro AttachParameters . Questo parametro contiene un puntatore a una struttura NDIS_FILTER_ATTACH_PARAMETERS . Il membro SriovCapabilities di questa struttura contiene un puntatore a una struttura NDIS_SRIOV_CAPABILITIES .

  • Quando NDIS chiama la funzione ProtocolBindAdapterEx di un driver di protocollo overlying, NDIS passa le funzionalità SR-IOV della scheda di rete tramite il parametro BindParameters . Questo parametro contiene un puntatore a una struttura NDIS_FILTER_ATTACH_PARAMETERS . Il membro SriovCapabilities di questa struttura contiene un puntatore a una struttura NDIS_SRIOV_CAPABILITIES .

NDIS restituisce anche la struttura di NDIS_SRIOV_CAPABILITIES quando gestisce le richieste di query OID (Object Identifier) di OID_SRIOV_HARDWARE_CAPABILITIES e OID_SRIOV_CURRENT_CAPABILITIES rilasciate tramite driver di protocollo o filtro tramite overlying.