Udostępnij przez


Wyliczanie filtrów na maszynie wirtualnej

Aby uzyskać listę wszystkich filtrów ustawionych w kolejce odbierania, nadmierne sterowniki i aplikacje mogą używać żądania identyfikatora obiektu metody OID_RECEIVE_FILTER_ENUM_FILTERS (OID).

Element InformationBuffer struktury NDIS_OID_REQUEST początkowo zawiera wskaźnik do struktury NDIS_RECEIVE_FILTER_INFO_ARRAY. Gdy formatuje strukturę NDIS_RECEIVE_FILTER_INFO_ARRAY, nadrzędny sterownik lub aplikacja musi ustawić członka QueueId na identyfikator (ID) kolejki odbierania. Identyfikator kolejki odbierania jest uzyskiwany w następujący sposób:

  • Nadrzędny sterownik uzyskał wartość identyfikatora kolejki odbioru z wcześniejszych żądań OID OID_RECEIVE_FILTER_ALLOCATE_QUEUE lub OID_RECEIVE_FILTER_ENUM_QUEUES. Sterownik może również określić NDIS_DEFAULT_RECEIVE_QUEUE_ID dla domyślnej kolejki odbierania.

  • Aplikacja uzyskała wartość identyfikatora kolejki odbiorczej z wcześniejszego żądania metody OID_RECEIVE_FILTER_ENUM_QUEUES OID. Aplikacja może również określić NDIS_DEFAULT_RECEIVE_QUEUE_ID dla domyślnej kolejki odbierania.

Po pomyślnym powrocie z żądania metody OID OID_RECEIVE_FILTER_ENUM_FILTERS, InformationBuffer składowej struktury NDIS_OID_REQUEST zawiera wskaźnik do zaktualizowanej struktury NDIS_RECEIVE_FILTER_INFO_ARRAY, za którą znajduje się co najmniej jedna struktura NDIS_RECEIVE_FILTER_INFO. Każda struktura NDIS_RECEIVE_FILTER_INFO określa identyfikator filtru ustawionego w określonej kolejce odbierania.

Nakładające się sterowniki lub aplikacje mogą użyć żądania metody OID_RECEIVE_FILTER_PARAMETERS OID w celu uzyskania parametrów określonego filtru w kolejce odbioru.

Element członkowski InformationBuffer struktury NDIS_OID_REQUEST początkowo zawiera wskaźnik do struktury NDIS_RECEIVE_FILTER_PARAMETERS. Nadrzędny sterownik lub aplikacja formatuje strukturę NDIS_RECEIVE_FILTER_PARAMETERS, ustawiając członka FilterId na niezerową wartość identyfikatora filtru, którego parametry mają być zwrócone.

Uwaga Nadrzędny sterownik uzyskał identyfikator filtru z wcześniejszego żądania metody OID OID_RECEIVE_FILTER_SET_FILTER lub OID_RECEIVE_FILTER_ENUM_FILTERS. Aplikacja może uzyskać identyfikator filtra tylko z wcześniejszego żądania metody OID, OID_RECEIVE_FILTER_ENUM_FILTERS.

Usługa NDIS obsługuje żądania OID metody OID_RECEIVE_FILTER_ENUM_FILTERS i OID_RECEIVE_FILTER_PARAMETERS dla sterowników miniportu. NDIS uzyskał informacje z wewnętrznej pamięci podręcznej danych, które otrzymał z żądania OID_RECEIVE_FILTER_SET_FILTER OID.