Udostępnij przez


Stany kolejki maszyny wirtualnej NDIS

Artykuł ten zawiera omówienie stanów operacyjnych kolejek maszyn wirtualnych NDIS (VMQs). Aby uzyskać więcej informacji na temat stanów kolejki, zajrzyj do tematu Queue States and Operations w sekcji Pisanie sterowników VMQ.

Dla każdej kolejki karta sieciowa musi obsługiwać następujący zestaw stanów operacyjnych:

  • Niezdefiniowany

  • Przydzielone

  • Zestaw

  • Wstrzymano

  • Bieganie

  • Zatrzymaj DMA

  • Zwalnianie

Na poniższej ilustracji przedstawiono relacje między tymi stanami.

Diagram ilustrujący stany kolejki maszyn wirtualnych NDIS i ich relacje.

Poniżej zdefiniowano stany adaptera:

niezdefiniowane
Niezdefiniowany jest początkowym stanem kolejki. W tym stanie kolejka nie jest przydzielona. Kolejka (z wyjątkiem kolejki domyślnej, która zawsze istnieje) jest niezdefiniowana, dopóki sterownik miniportu nie otrzyma żądania alokacji kolejki. Ponadto jest on niezdefiniowany po zakończeniu wolnej operacji i wszystkie sygnały, które zostały uruchomione, zostaną ukończone.

Przydzielone
Kolejka znajduje się w stanie Przydzielone po wystąpieniu żądania alokacji i zanim zostaną ustawione jakiekolwiek filtry w kolejce. Filtr może również przejść w stan Przydzielony, jeśli kolejka znajduje się w stanie Ustawionym, a ostatni filtr zostanie wyczyszczony w kolejce. Kolejka przechodzi w stan Wstrzymania, jeśli sterownik miniportu otrzyma żądanie zakończenia alokacji, podczas gdy jest w stanie Przydzielonym. Kolejka przechodzi w stan Zatrzymaj DMA, jeśli sterownik miniportu otrzyma żądanie zwolnienia kolejki.

zestaw
W stanie zestawieniu kolejka jest przydzielona i ustawiono co najmniej jeden filtr w kolejce, ale sterownik miniportu nie otrzymał jeszcze potwierdzenia zakończenia alokacji identyfikatora OID. Kolejka przechodzi w stan Uruchomiony, jeśli otrzyma żądanie zakończenia alokacji. Kolejka znajduje się w stanie Przydzielonym, jeśli ostatni filtr w kolejce zostanie wyczyszczony. Należy pamiętać, że kolejka nie może zostać zwolniona, gdy w kolejce są ustawione filtry.

wstrzymano
W stanie Wstrzymano kolejka jest przydzielona, ale jej sterownik miniportu nie zgłasza odebranych pakietów, ponieważ w kolejce nie ma ustawionych filtrów. Sterownik miniportu może wprowadzić stan Wstrzymania ze stanu Przydzielonego lub stanu Uruchomionego. Kolejka przechodzi w stan Uruchomione po otrzymaniu żądania ustawienia filtrów. Kolejka przechodzi w stan Zatrzymania DMA po odebraniu żądania zwolnienia kolejki.

uruchomiona
W stanie Działający kolejka ma ustawione filtry, alokacja kolejki jest ukończona, a karta sieciowa wskazuje odbieranie pakietów. Kolejka przechodzi w stan Wstrzymania, jeśli ostatni filtr w kolejce zostanie wyczyszczony. Należy pamiętać, że kolejka nie może zostać zwolniona, gdy w kolejce są ustawione filtry. Ponadto sterownik miniportu może zatrzymać DMA, jeśli ostatni filtr zostanie wyczyszczony. Jednak w tym przypadku sterownik miniportu nie powinien wysyłać wskazania stanu zatrzymania DMA.

zatrzymaj DMA
W stanie Zatrzymanie DMA sterownik miniportu otrzymał żądanie odblokowania kolejki, a działanie DMA musi zostać zatrzymane. Sterownik miniportu musi wysłać wskaźnik stanu zatrzymania DMA. Po wysłaniu przez sterownik miniportu wskazania stanu kolejka jest w stanie Zwalnianie. Pamiętaj, że DMA prawdopodobnie zostało już zatrzymane, gdy ostatni filtr został wyczyszczony. Jednak sterownik miniportu powinien wysyłać wskazanie stanu tylko wtedy, kiedy otrzymuje żądanie kolejki zwolnionej.

zwalnianie
W stanie Zwalnianie sterownik miniportu czeka na wszystkie zaległe wskazania odbioru w kolejce, aby ukończyć i zwolnić zasoby skojarzone z kolejką. Po uwolnieniu wszystkich zasobów kolejka przechodzi w stan niezdefiniowany.