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.
Nadmierne sterowniki wystawiają żądania metody identyfikatora obiektu (OID) OID_RECEIVE_FILTER_ALLOCATE_QUEUE w celu przydzielenia kolejki, która ma początkowy zestaw parametrów konfiguracji.
Element członkowski InformationBuffer struktury NDIS_OID_REQUEST zawiera wskaźnik do struktury NDIS_RECEIVE_QUEUE_PARAMETERS. Po pomyślnym powrocie z żądania metody OID InformationBuffer struktury NDIS_OID_REQUEST zawiera wskaźnik do struktury NDIS_RECEIVE_QUEUE_PARAMETERS, która ma nowy identyfikator kolejki.
Uwagi
Żądanie metody OID OID_RECEIVE_FILTER_ALLOCATE_QUEUE jest opcjonalne dla sterowników NDIS 6.20 i nowszych miniportów. W przypadku sterowników miniportów, które obsługują interfejs kolejki maszyn wirtualnych (VMQ).
Nadmierny sterownik inicjuje strukturę NDIS_RECEIVE_QUEUE_PARAMETERS z żądaną konfiguracją kolejki. Usługa NDIS przypisuje identyfikator kolejki w QueueId składowej struktury NDIS_RECEIVE_QUEUE_PARAMETERS i przekazuje żądanie metody do sterownika miniportu.
Uwaga sterownik nadmiernie może ustawiać flagi NDIS_RECEIVE_QUEUE_PARAMETERS_PER_QUEUE_RECEIVE_INDICATION i NDIS_RECEIVE_QUEUE_PARAMETERS_LOOKAHEAD_SPLIT_REQUIRED w Flags składowej struktury NDIS_RECEIVE_QUEUE_PARAMETERS. Inne flagi nie są używane do alokacji kolejki.
Po wydaniu przez sterownik miniportu żądania identyfikatora OID OID_RECEIVE_FILTER_ALLOCATE_QUEUE i pomyślnym dojściu do kolejki jest w stanie Wstrzymanie.
Sterownik overlying musi użyć identyfikatora kolejki, który NDIS udostępnia w kolejnych żądaniach OID, na przykład, aby zmodyfikować parametry kolejki lub zwolnić kolejkę. Identyfikator kolejki jest również uwzględniany w danych poza pasmem (OOB) we wszystkich strukturach NET_BUFFER_LIST skojarzonych z kolejką. Sterowniki używają makra NET_BUFFER_LIST_RECEIVE_QUEUE_ID do pobierania identyfikatora kolejki w strukturze NET_BUFFER_LIST.
Gdy usługa NDIS odbiera żądanie identyfikatora OID w celu przydzielenia kolejki odbierania, weryfikuje parametry kolejki. Gdy usługa NDIS przydziela niezbędne zasoby i identyfikator kolejki, przesyła żądanie OID do bazowego sterownika miniportu. Identyfikator kolejki jest unikatowy dla skojarzonej karty sieciowej.
Jeśli sterownik miniportu może pomyślnie przydzielić niezbędne zasoby oprogramowania i sprzętu dla kolejki odbierania, ukończy żądanie OID, zwracając NDIS_STATUS_SUCCESS.
Sterownik miniportu musi zachować identyfikatory kolejki dla przydzielonych kolejek odbierania. Usługa NDIS używa identyfikatora kolejki odbierania dla kolejnych wywołań sterownika miniportu w celu ustawienia filtru odbierania w kolejce odbierania, zmiany parametrów kolejki odbierania lub zwolnienia kolejki odbierania.
Gdy sterownik nadmiernie przydziela co najmniej jedną kolejkę odbierania i opcjonalnie ustawia początkowe filtry, musi wydać OID_RECEIVE_FILTER_QUEUE_ALLOCATION_COMPLETE ustawić żądania OID, aby powiadomić sterownik miniportu, że alokacja jest ukończona dla bieżącej partii kolejek odbierania.
Sterownik miniportu nie może przechowywać żadnych pakietów w kolejce odbierania, jeśli nie ma żadnych filtrów ustawionych w tej kolejce. Jeśli kolejka nigdy nie miała żadnych filtrów ustawionych lub wszystkie filtry zostały wyczyszczone, kolejka powinna być pusta i wszystkie pakiety powinny zostać odrzucone. Oznacza to, że pakiety nie są wskazywane na stos sterownika lub przechowywane w kolejce.
Nadmierne używanie sterowników OID żądań OID_RECEIVE_FILTER_FREE_QUEUE do zwalniania kolejek, które przydzielają.
Kody stanu powrotu
Sterownik NDIS lub miniport zwraca jeden z następujących kodów stanu dla żądania metody OID OID_RECEIVE_FILTER_ALLOCATE_QUEUE.
| Kod stanu | Opis |
|---|---|
NDIS_STATUS_SUCCESS |
Kolejka została pomyślnie przydzielona. Bufor informacji zawiera zaktualizowaną strukturę NDIS_RECEIVE_QUEUE_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 podanych parametrów sterownika nadmiernego jest nieprawidłowy. |
NDIS_STATUS_INVALID_LENGTH |
Bufor informacyjny był zbyt krótki. NDIS ustaw DATA.METHOD_INFORMATION.składowej bytesNeeded w strukturze NDIS_OID_REQUEST do minimalnego wymaganego rozmiaru buforu. |
NDIS_STATUS_NOT_SUPPORTED |
Wersja sterownika miniportu NDIS jest starsza niż wersja 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ż
NET_BUFFER_LIST_RECEIVE_QUEUE_ID