Udostępnij przez


Określanie możliwości SR-IOV

W tym temacie opisano, w jaki sposób NDIS i nadrzędne sterowniki określają funkcjonalności wirtualizacji I/O z pojedynczym rdzeniem (SR-IOV) karty sieciowej. Ten temat zawiera następujące informacje:

raportowanie możliwości SR-IOV podczas MiniportInitializeEx

Zapytania dotyczące możliwości SR-IOV przez nadległe sterowniki

Raportowanie możliwości SR-IOV podczas MiniportInitializeEx

Gdy NDIS wywołuje funkcję MiniportInitializeEx sterownika miniportu, sterownik zapewnia następujące SR-IOV możliwości:

  • Kompletny zestaw SR-IOV możliwości sprzętowych, które może obsługiwać karta sieciowa.

  • SR-IOV możliwości, które są aktualnie aktywne w karcie sieciowej.

  • Czy sterownik miniportu zarządza funkcją fizyczną PCI Express (PCIe) czy funkcją wirtualną (VF) na karcie sieciowej?

Sterownik miniportu zgłasza SR-IOV możliwości sprzętowe podstawowej karty sieciowej za pomocą struktury NDIS_SRIOV_CAPABILITIES, która jest inicjowana w następujący sposób:

  1. Sterownik miniportu inicjuje składową Header. Sterownik ustawia człon Type nagłówka Header na NDIS_OBJECT_TYPE_DEFAULT.

    Począwszy od wersji NDIS 6.30, sterownik miniportu ustawia pole Revision w Header na NDIS_SRIOV_CAPABILITIES_REVISION_1 oraz pole Size na NDIS_SIZEOF_SRIOV_CAPABILITIES_REVISION_1.

  2. Sterownik miniportu ustawia odpowiednie flagi w członie SriovCapabilities, aby zgłosić SR-IOV funkcje.

    Jeśli karta sieciowa obsługuje funkcję SR-IOV, sterownik miniportu dla funkcji fizycznej PCI Express (PCIe) karty musi ustawić następujące flagi:

    • NDIS_SRIOV_CAPS_SRIOV_SUPPORTED

    • NDIS_SRIOV_CAPS_PF_MINIPORT

    Notatka

     Sterownik miniportu dla funkcji wirtualnej PCIe (VF) adaptera sieciowego musi ustawić zarówno flagę NDIS_SRIOV_CAPS_VF_MINIPORT, jak i flagę NDIS_SRIOV_CAPS_SRIOV_SUPPORTED.  

Gdy NDIS wywołuje funkcję MiniportInitializeEx sterownika miniportu, sterownik rejestruje SR-IOV możliwości karty sieciowej, wykonując następujące kroki:

  1. Sterownik miniportu inicjuje strukturę NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES.

    Sterownik miniportu ustawia członkowski element HardwareSriovCapabilities na wskaźnik do wcześniej zainicjowanej struktury NDIS_SRIOV_CAPABILITIES.

    Jeśli ustawienie rejestru dla *SRIOV słowa kluczowego INF ma wartość jeden, możliwości SR-IOV są obecnie włączone na karcie sieciowej. Sterownik miniportu ustawia członków CurrentSriovCapabilities na wskaźnik do struktury NDIS_SRIOV_CAPABILITIES.

    Jeśli ustawienie rejestru dla słowa kluczowego INF *SRIOV* ma wartość zero, możliwości SR-IOV na karcie sieciowej są obecnie wyłączone. Sterownik miniportu musi ustawić członek CurrentSriovCapabilities na NULL.

    Aby uzyskać więcej informacji na temat słowa kluczowego INF *SRIOV, zobacz Standardowe słowa kluczowe INF dla technologii SR-IOV.

  2. Sterownik wywołuje NdisMSetMiniportAttributes i ustawia parametr MiniportAttributes na wskaźnik do struktury NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES.

Aby uzyskać więcej informacji na temat procesu inicjowania adaptera, zobacz Inicjowanie adaptera Miniport.

Zapytania dotyczące możliwości SR-IOV przez nadrzędne sterowniki

Usługa NDIS przekazuje obecnie włączone możliwości SR-IOV karty sieciowej do nadrzędnych sterowników powiązanych z kartą sieciową w następujący sposób:

  • Gdy NDIS wywołuje funkcję FilterAttach nadrzędnego sterownika filtru, NDIS przekazuje możliwości karty sieciowej SR-IOV za pośrednictwem parametru AttachParameters. Ten parametr zawiera wskaźnik do struktury NDIS_FILTER_ATTACH_PARAMETERS. SriovCapabilities składowa tej struktury zawiera wskaźnik do struktury NDIS_SRIOV_CAPABILITIES.

  • Gdy NDIS wywołuje ProtocolBindAdapterEx sterownika protokołu nadrzędnego, usługa NDIS przekazuje za pośrednictwem parametru BindParameters możliwości SR-IOV karty sieciowej. Ten parametr zawiera wskaźnik do struktury NDIS_FILTER_ATTACH_PARAMETERS. SriovCapabilities składowa tej struktury zawiera wskaźnik do struktury NDIS_SRIOV_CAPABILITIES.

NDIS również zwraca strukturę NDIS_SRIOV_CAPABILITIES, gdy obsługuje żądania zapytań identyfikatora obiektu (OID) OID_SRIOV_HARDWARE_CAPABILITIES i OID_SRIOV_CURRENT_CAPABILITIES, które są wydawane przez nadrzędny protokół lub sterowniki filtru.