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.
Nadmierny sterownik wystawia żądanie metody OID OID_RECEIVE_FILTER_SET_FILTER w celu ustawienia filtru na karcie sieciowej.
Element członkowski InformationBuffer struktury NDIS_OID_REQUEST zawiera wskaźnik do buforu przydzielonego przez obiekt wywołujący. Ten bufor jest sformatowany tak, aby zawierał następujące elementy:
Struktura NDIS_RECEIVE_FILTER_PARAMETERS określająca parametry filtru odbierania NDIS.
Tablica struktur NDIS_RECEIVE_FILTER_FIELD_PARAMETERS, która określa kryterium testu filtru dla pola w nagłówku pakietu sieciowego.
Po pomyślnym powrocie z żądania metody OID element członkowski InformationBuffer struktury NDIS_OID_REQUEST zawiera wskaźnik do struktury NDIS_RECEIVE_FILTER_PARAMETERS. Jeśli sterownik nadmiernie tworzy nowy filtr odbierania, usługa NDIS aktualizuje tę strukturę przy użyciu nowego identyfikatora filtru.
Uwagi
Filtry odbierania NDIS są używane w następujących interfejsach NDIS:
pakiet NDIS łączący. Aby uzyskać więcej informacji na temat używania filtrów odbierania w tym interfejsie, zobacz Zarządzanie łączeniem pakietów filtrów odbierania.
wirtualizacji we/wy pojedynczego katalogu głównego (SR-IOV). Aby uzyskać więcej informacji na temat używania filtrów odbierania w tym interfejsie, zobacz Ustawianie filtru odbierania na porcie wirtualnym.
kolejki maszyn wirtualnych (VMQ). Aby uzyskać więcej informacji o sposobie używania filtrów odbierania w tym interfejsie, zobacz Setting and Clearing VMQ Filters.
Żądanie metody OID OID_RECEIVE_FILTER_SET_FILTER jest obowiązkowe dla sterowników miniportu, które obsługują łączenie pakietów NDIS, SR-IOV lub interfejs VMQ.
Nadmierny sterownik inicjuje strukturę NDIS_RECEIVE_FILTER_PARAMETERS z żądaną konfiguracją filtru. NDIS przypisuje identyfikator filtru w FilterId elementu członkowskiego struktury NDIS_RECEIVE_FILTER_PARAMETERS i przekazuje żądanie metody do bazowego sterownika miniportu.
Każdy filtr ustawiony w kolejce odbierania ma unikatowy identyfikator filtru dla karty sieciowej. Oznacza to, że identyfikatory filtrów nie są duplikowane w różnych kolejkach, którymi zarządza karta sieciowa. Gdy usługa NDIS odbiera żądanie identyfikatora OID w celu ustawienia filtru w kolejce odbierania, weryfikuje parametry filtru. Po przydzieleniu niezbędnych zasobów i identyfikatora filtru usługa NDIS przesyła żądanie identyfikatora OID do bazowej karty sieciowej. Jeśli karta sieciowa może pomyślnie przydzielić niezbędne zasoby oprogramowania i sprzętu dla filtru, kończy żądanie OID ze stanem powrotu NDIS_STATUS_SUCCESS.
Uwaga Począwszy od NDIS 6.30, filtr odbierania pakietów jest obsługiwany tylko w domyślnej kolejce odbierania karty sieciowej. Ta kolejka odbierania ma identyfikator NDIS_DEFAULT_RECEIVE_QUEUE_ID.
Sterownik miniportu musi zachować identyfikatory filtrów dla przydzielonych filtrów odbierania. Usługa NDIS używa identyfikatora filtru w późniejszych żądaniach OID, aby zmienić parametry filtru odbierania lub wyczyścić filtr odbierania.
Gdy sterownik miniportu otrzyma żądanie OID_RECEIVE_FILTER_QUEUE_ALLOCATION_COMPLETE i ma filtry ustawione w kolejce, kolejka jest w stanie Uruchomiona. W tym stanie sterownik miniportu może uruchomić wskazania pakietów w kolejce, wywołując NdisMIndicateReceiveNetBufferLists.
Dodatkowe wytyczne dotyczące interfejsu SR-IOV
Następujące kwestie dotyczą sterowników miniportów, które obsługują interfejs SR-IOV:
W przypadku interfejsu SR-IOV kolejka odbierania jest tworzona na domyślnym lub niezdefinicyjnym porcie wirtualnym (VPort).
Uwaga Począwszy od systemu Windows Server 2012, interfejs SR-IOV obsługuje tylko domyślną kolejkę odbierania VPort.
Po przydzieleniu SR-IOV VPort za pośrednictwem żądania zestawu identyfikatorów OID OID_NIC_SWITCH_CREATE_VPORTsterowniki mogą ustawiać filtry na VPort z żądaniami identyfikatora OID OID_RECEIVE_FILTER_SET_FILTER.
Uwaga Tylko sterownik nadmiernie przydzielony VPort może ustawić filtr dla tego VPort.
Ponieważ domyślny port VPort zawsze istnieje, nadmierne sterowniki zawsze mogą ustawić filtr dla domyślnego wirtualnegoportu.
Po utworzeniu wirtualnegoportu nie są ustawione żadne filtry odbierania. W takim przypadku sterownik miniportu nie może wskazywać żadnych pakietów odbieranych na tym VPort przed odebraniem przez sterownik miniportu żądania identyfikatora OID OID_RECEIVE_FILTER_SET_FILTER dla VPort. Po wydaniu tego żądania identyfikatora OID sterownik miniportu może wskazywać pakiety na tym VPort.
Uwaga Jeśli sterownik miniportu wskazuje pakiety na VPort podczas przetwarzania żądania identyfikatora OID OID_RECEIVE_FILTER_SET_FILTER, musi ukończyć żądanie OID i zwrócić kod stanu NDIS_STATUS_SUCCESS.
Dodatkowe wytyczne dotyczące interfejsu VMQ
Następujące kwestie dotyczą sterowników miniportów, które obsługują interfejs VMQ:
Po przydzieleniu kolejki odbierania maszyny wirtualnej za pośrednictwem sterowników można ustawić filtry w kolejce odbierania z żądaniami OID OID_RECEIVE_FILTER_SET_FILTER.
Uwaga Tylko sterownik protokołu, który przydzielił kolejkę odbierania, może ustawić filtr w tej kolejce.
Ponieważ kolejka domyślna zawsze istnieje, nadmierne sterowniki zawsze mogą ustawić filtr w kolejce domyślnej. Jeśli karta sieciowa obsługuje kolejkę upuszczania, nadmierne sterowniki mogą ustawić filtr w kolejce upuszczania.
Nadmierne sterowniki nie są właścicielami kolejek domyślnych ani upuszczania. W związku z tym wszystkie sterowniki protokołu powiązane z kartą sieciową używają kolejki domyślnej lub upuszczania.
Po utworzeniu kolejki odbierania nie są ustawione żadne filtry odbierania. W takim przypadku sterownik miniportu nie może wskazywać żadnych pakietów odbieranych w tej kolejce odbierania, zanim sterownik miniportu otrzyma żądanie OID OID_RECEIVE_FILTER_SET_FILTER dla kolejki odbierania. Po wydaniu tego żądania OID sterownik miniportu może wskazywać pakiety w tej kolejce odbierania.
Uwaga Jeśli sterownik miniportu wskazuje pakiety w kolejce podczas przetwarzania żądania identyfikatora OID OID_RECEIVE_FILTER_SET_FILTER, musi ukończyć żądanie OID i zwrócić kod stanu NDIS_STATUS_SUCCESS.
Kody stanu powrotu
Sterownik miniportu zwraca jeden z następujących kodów stanu dla żądania metody OID OID_RECEIVE_FILTER_SET_FILTER:
NDIS_STATUS_SUCCESS
Filtr został pomyślnie ustawiony w kolejce. Bufor informacji zawiera zaktualizowaną strukturę NDIS_RECEIVE_FILTER_PARAMETERS.
NDIS_STATUS_PENDING
Żądanie oczekuje na ukończenie. Końcowy kod stanu i wyniki zostaną przekazane do procedury obsługi uzupełniania żądań OID obiektu wywołującego.
NDIS_STATUS_INVALID_PARAMETER
Co najmniej jeden z parametrów, które podano przez sterownik nadmiernego instalowania, jest nieprawidłowy.
NDIS_STATUS_INVALID_LENGTH
Bufor informacyjny był zbyt krótki. Usługa NDIS ustawia DATA. METHOD_INFORMATION. BajtyNowe składowe w strukturze NDIS_OID_REQUEST do minimalnego wymaganego rozmiaru buforu.
NDIS_STATUS_NOT_SUPPORTED
Wersja sterownika miniportu NDIS jest starszą wersją niż 6.20.
NDIS_STATUS_FAILURE
Żądanie nie powiodło się z innych powodów.
Wymagania
Wersja |
Obsługiwane w usłudze NDIS 6.20 lub nowszym. |
Nagłówek |
Ntddndis.h (m.in. Ndis.h) |
Zobacz też
NdisMIndicateReceiveNetBufferLists
NDIS_RECEIVE_FILTER_PARAMETERS
NET_BUFFER_LIST_RECEIVE_FILTER_ID