Auflisten von Filtern auf einer VMQ
Um eine Liste aller Filter zu erhalten, die für eine Empfangswarteschlange festgelegt sind, können überlastende Treiber und Anwendungen die OID-Anforderung ( OID_RECEIVE_FILTER_ENUM_FILTERS Method Object Identifier) verwenden.
Das InformationBuffer-Element der NDIS_OID_REQUEST-Struktur enthält zunächst einen Zeiger auf eine NDIS_RECEIVE_FILTER_INFO_ARRAY-Struktur . Wenn die NDIS_RECEIVE_FILTER_INFO_ARRAY-Struktur formatiert wird, muss der überlastende Treiber oder die anwendung den QueueId-Member auf den Bezeichner (ID) der Empfangswarteschlange festlegen. Die Empfangswarteschlangen-ID wird auf folgende Weise abgerufen:
Der überlastende Treiber hat den Wert der Empfangswarteschlangen-ID aus früheren OID-Methodenanforderungen von OID_RECEIVE_FILTER_ALLOCATE_QUEUE oder OID_RECEIVE_FILTER_ENUM_QUEUES abgerufen. Der Treiber kann auch NDIS_DEFAULT_RECEIVE_QUEUE_ID für die Standard-Empfangswarteschlange angeben.
Eine Anwendung hat den Wert der Empfangswarteschlangen-ID aus einer früheren OID-Methodenanforderung von OID_RECEIVE_FILTER_ENUM_QUEUES abgerufen. Die Anwendung kann auch NDIS_DEFAULT_RECEIVE_QUEUE_ID für die Standard-Empfangswarteschlange angeben.
Nach einer erfolgreichen Rückgabe von der OID-Methodenanforderung von OID_RECEIVE_FILTER_ENUM_FILTERS enthält das InformationBuffer-Element der NDIS_OID_REQUEST-Struktur einen Zeiger auf eine aktualisierte NDIS_RECEIVE_FILTER_INFO_ARRAY-Struktur , der eine oder mehrere NDIS_RECEIVE_FILTER_INFO-Strukturen folgen. Jede NDIS_RECEIVE_FILTER_INFO-Struktur gibt die ID für einen Filter an, der für die angegebene Empfangswarteschlange festgelegt ist.
Überlastende Treiber oder Anwendungen können die OID_RECEIVE_FILTER_PARAMETERS OID-Methodenanforderung verwenden, um die Parameter eines bestimmten Filters für eine Empfangswarteschlange abzurufen.
Das InformationBuffer-Element der NDIS_OID_REQUEST-Struktur enthält zunächst einen Zeiger auf eine NDIS_RECEIVE_FILTER_PARAMETERS-Struktur . Der übergeordnete Treiber oder die Anwendung formatiert die NDIS_RECEIVE_FILTER_PARAMETERS-Struktur , indem das FilterId-Element auf den Wert ungleich null ID des Filters festgelegt wird, dessen Parameter zurückgegeben werden sollen.
Hinweis Der überlastende Treiber hat die Filter-ID aus einer früheren OID-Methodenanforderung von OID_RECEIVE_FILTER_SET_FILTER oder OID_RECEIVE_FILTER_ENUM_FILTERS abgerufen. Die Anwendung kann die Filter-ID nur aus einer früheren OID-Methodenanforderung von OID_RECEIVE_FILTER_ENUM_FILTERS abrufen.
NDIS verarbeitet die OID_RECEIVE_FILTER_ENUM_FILTERS - und OID_RECEIVE_FILTER_PARAMETERS Methoden-OID-Anforderungen für Miniporttreiber. NDIS hat die Informationen aus einem internen Cache der Daten abgerufen, die es aus der OID_RECEIVE_FILTER_SET_FILTER OID-Anforderung empfangen hat.