Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym temacie opisano, jak NDIS i nadrzędne sterowniki określają możliwości filtrowania odbieranych danych przez kartę sieciową, która obsługuje wirtualizację pojedynczego rdzenia wejścia/wyjścia (SR-IOV). Ten temat zawiera następujące informacje:
Raportowanie możliwości filtrowania odbioru podczas MiniportInitializeEx
Odpytywanie możliwości filtrowania odbioru przez nadrzędne sterowniki
Uwaga Tylko sterownik miniportu dla funkcji fizycznej PCI Express (PCIe) karty sieciowej SR-IOV może zgłaszać możliwości filtrowania odbierającego. Sterowniki Miniport dla funkcji wirtualnych PCIe nie powinny zgłaszać możliwości filtrowania pakietów odbieranych przez adapter SR-IOV.
Zgłaszanie funkcji filtrowania odbioru podczas MiniportInitializeEx
Gdy usługa NDIS wywołuje funkcję sterownika miniportu MiniportInitializeEx, sterownik zapewnia następujące możliwości filtrowania odbieranych pakietów:
Pełne możliwości sprzętowego filtrowania odbieranych danych, które karta sieciowa może obsługiwać.
Możliwości filtrowania odbioru dla interfejsów obecnie włączonych na karcie sieciowej.
Sterownik miniportu zgłasza kompletne możliwości filtrowania odbieranych danych bazowej karty sieciowej za pomocą struktury NDIS_RECEIVE_FILTER_CAPABILITIES, która jest zainicjowana w następujący sposób:
Sterownik miniportu inicjuje składnik nagłówka . Sterownik ustawia członka Type struktury Header na NDIS_OBJECT_TYPE_DEFAULT.
Począwszy od NDIS 6.30, sterownik miniportu ustawia element członkowski Revision nagłówka Header na NDIS_RECEIVE_FILTER_CAPABILITIES_REVISION_2 oraz element członkowski Size na NDIS_SIZEOF_RECEIVE_FILTER_CAPABILITIES_REVISION_2.
Sterownik miniportu ustawia pozostałych członków struktury NDIS_RECEIVE_FILTER_CAPABILITIES na zakres wartości dotyczących możliwości filtrowania odbierania karty sieciowej SR-IOV. Na przykład sterownik miniportu ustawia odpowiednie flagi w SupportedFilterTests w celu określenia operacji testowych filtru obsługiwanych przez sterownik miniportu.
Oprócz funkcji SR-IOV filtrowanie odbioru jest również używane w następujących interfejsach:
konsolidacja pakietów NDIS. Aby uzyskać więcej informacji na temat używania filtrów odbierania w tym interfejsie, zobacz Zarządzanie łączeniem pakietów filtrów odbierania.
kolejka maszyn wirtualnych (VMQ). Aby uzyskać więcej informacji o sposobie używania filtrów odbierania w tym interfejsie, zobacz Setting and Clearing VMQ Filters.
Jeśli sterownik miniportu obsługuje którykolwiek z tych interfejsów, musi również ustawić członków struktury NDIS_RECEIVE_FILTER_CAPABILITIES na zakres wartości zdolności filtrowania odbioru, które są specyficzne dla interfejsu. Jeśli na przykład sterownik obsługuje łączenie pakietów NDIS i SR-IOV, musi ustawić flagę NDIS_RECEIVE_FILTER_PACKET_COALESCING_SUPPORTED_ON_DEFAULT_QUEUE w elemencie SupportedQueueProperties.
Sterownik miniportu zgłasza aktualnie włączone możliwości filtrowania odbioru podstawowej karty sieciowej za pośrednictwem struktury NDIS_RECEIVE_FILTER_CAPABILITIES, która jest inicjowana w następujący sposób:
Sterownik miniportu inicjuje składnik nagłówka . Sterownik ustawia członek Type nagłówka Header na NDIS_OBJECT_TYPE_DEFAULT.
Począwszy od NDIS 6.30, sterownik miniportu ustawia element członkowski Revision nagłówka Header na NDIS_RECEIVE_FILTER_CAPABILITIES_REVISION_2 oraz element członkowski Size na NDIS_SIZEOF_RECEIVE_FILTER_CAPABILITIES_REVISION_2.
Sterownik miniportu ustawia inne członki struktury NDIS_RECEIVE_FILTER_CAPABILITIES na zakres wartości dla możliwości filtrowania ruchu przychodzącego przez interfejsy, które są obecnie włączone. Jeśli na przykład włączono koalescencję pakietów NDIS, sterownik musi ustawić tylko te członków, które są specyficzne dla tej technologii.
Interfejsy korzystające z filtrowania odbierania są włączone lub wyłączone za pomocą ustandaryzowanych słów kluczowych INF. Aby uzyskać więcej informacji na temat włączania łączenia pakietów NDIS, zobacz zestandaryzowane słowa kluczowe INF dla łączenia pakietów. Aby uzyskać więcej informacji na temat włączania SR-IOV i VMQ, zobacz Handling SR-IOV, VMQ i RSS Standardized INF Keywords.
Gdy NDIS wywołuje funkcję MiniportInitializeEx sterownika miniportu, sterownik rejestruje możliwości filtrowania odbioru przez kartę sieciową, wykonując następujące kroki:
Sterownik miniportu inicjuje strukturę NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES.
Sterownik miniportu ustawia element członkowski HardwareReceiveFilterCapabilities na adres struktury NDIS_RECEIVE_FILTER_CAPABILITIES. Ta struktura została wcześniej zainicjowana z pełnymi możliwościami filtrowania odbierania sprzętowego karty sieciowej.
Jeśli koalescencja pakietów VMQ, SR-IOV i NDIS jest obecnie wyłączona na karcie sieciowej, sterownik miniportu ustawia pole CurrentReceiveFilterCapabilities na wartość NULL.
Jeśli funkcje VMQ, SR-IOV lub łączenie pakietów NDIS są obecnie włączone na karcie sieciowej, sterownik miniportu musi wykonać następujące czynności:
Sterownik miniportu musi zainicjować inną strukturę NDIS_RECEIVE_FILTER_CAPABILITIES z bieżącymi możliwościami filtrowania odbioru dla interfejsów, które są obecnie włączone na karcie sieciowej.
Jeśli interfejs SR-IOV jest włączony, istnieją sytuacje, w których sterownik miniportu musi ustawić elementy członkowskie struktury NDIS_RECEIVE_FILTER_CAPABILITIES na te same lub różne wartości. To dlatego, że interfejs SR-IOV zapewnia podobny mechanizm kolejkowania do VMQ, ale używa portów wirtualnych (VPorts) zamiast kolejek odbiorczych maszyn wirtualnych.
Na przykład sterownik miniportu musi ustawić flagę NDIS_RECEIVE_FILTER_VMQ_FILTERS_ENABLED w EnabledFilterTypes elementu członkowskiego, jeśli włączony jest VMQ lub interfejs SR-IOV. Jednak sterownik miniportu musi ustawić składową NumQueues na zero, jeśli interfejs SR-IOV jest włączony, i na wartość inną niż zero, jeśli interfejs VMQ jest włączony.
Sterownik miniportu ustawia element członkowski CurrentReceiveFilterCapabilities na adres struktury NDIS_RECEIVE_FILTER_CAPABILITIES, która zawiera bieżące możliwości filtrowania odbioru dla aktualnie włączonego interfejsu.
Jeśli koalescencja pakietów NDIS lub technologie VMQ czy SR-IOV są obecnie włączone na karcie sieciowej, sterownik miniportu ustawia członka HardwareReceiveFilterCapabilities na adres struktury NDIS_RECEIVE_FILTER_CAPABILITIES. Ta struktura została wcześniej zainicjowana z obecnie włączonymi funkcjami filtrowania odbioru karty sieciowej.
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 filtrowania odbioru przez nadrzędne sterowniki
NDIS przekazuje obecnie włączone możliwości filtrowania odbioru karty sieciowej do nadrzędnych sterowników związanych z kartą sieciową w następujący sposób:
Gdy funkcja NDIS wywołuje nadstawiającą funkcję FilterAttach sterownika filtra, funkcja NDIS przekazuje możliwości przełącznika karty sieciowej za pośrednictwem parametru AttachParameters. Ten parametr zawiera wskaźnik do struktury NDIS_FILTER_ATTACH_PARAMETERS. Człon ReceiveFilterCapabilities zawiera wskaźnik do struktury NDIS_RECEIVE_FILTER_CAPABILITIES.
Gdy NDIS wywołuje funkcję ProtocolBindAdapterEx nadrzędnego sterownika protokołu, NDIS przekazuje możliwości przełącznika karty sieciowej za pośrednictwem parametru BindParameters. Ten parametr zawiera wskaźnik do struktury NDIS_FILTER_ATTACH_PARAMETERS. Członek tej struktury ReceiveFilterCapabilities zawiera wskaźnik do struktury NDIS_RECEIVE_FILTER_CAPABILITIES.
NDIS również zwraca strukturę NDIS_RECEIVE_FILTER_CAPABILITIES, gdy obsługuje zapytania identyfikatora obiektu (OID) OID_RECEIVE_FILTER_CURRENT_CAPABILITIES oraz OID_RECEIVE_FILTER_HARDWARE_CAPABILITIES, które są wystawiane przez nadrzędne protokoły lub sterowniki filtrów.