Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Pro každou frontu musí síťový adaptér podporovat následující sadu provozních stavů:
nedefinováno
Fronta není přidělena. K přidělení fronty odešle nadřazený ovladač požadavek OID_RECEIVE_FILTER_ALLOCATE_QUEUE OID.
přiděleno
Stav Přiděleno je počáteční stav fronty. Pokud je fronta ve stavu Přiděleno, nadřazený ovladač obvykle nastaví filtry ve frontě s OID_RECEIVE_FILTER_SET_FILTER identifikátorem OID nebo dokončí přidělení fronty pomocí požadavku OID_RECEIVE_FILTER_QUEUE_ALLOCATION_COMPLETE identifikátoru.
sada
Ve stavu Set má fronta přidělen alespoň jeden filtr, ale nadřazený ovladač neodeslal OID OID_RECEIVE_FILTER_QUEUE_ALLOCATION_COMPLETE.
Běh
Ve stavu Spuštěno má fronta nastavené filtry, přidělení fronty je dokončené a adaptér miniportu indikuje příjem paketů pro frontu.
Pozastaveno
Ve stavu Pozastaveno síťový adaptér nezoznačuje přijatá síťová data pro frontu. Buď nebyly ve frontě nastaveny žádné filtry před požadavkem OID_RECEIVE_FILTER_QUEUE_ALLOCATION_COMPLETE OID, nebo všechny filtry nastavené ve frontě byly odstraněny pomocí požadavku OID_RECEIVE_FILTER_CLEAR_FILTER OID.
DMA zastaveno
Ve stavu DMA zastaveno přijal ovladač miniportu požadavek OID_RECEIVE_FILTER_FREE_QUEUE identifikátoru. Když se DMA zastaví a ovladač vydá indikátor stavu DMA-stop (s NDIS_STATUS_RECEIVE_QUEUE_STATE), ovladač přejde do stavu Uvolnění.
Uvolnění
Ve stavu Uvolnění miniportový ovladač dokončí operace nezbytné k zastavení odesílání a příjímání ve frontě a uvolní s nimi spojené prostředky. Po dokončení všech nevyřízených indikátorů příjmu se fronta odstraní a fronta je nedefinovaná.
V následující tabulce nadpisy představují stavy fronty. Hlavní události jsou uvedeny v prvním sloupci. Zbývající položky v tabulce určují další stav, do kterého fronta přejde po události, která nastane ve stavu. Prázdné položky představují neplatné kombinace událostí a stavů.
| Událost \ Stav | Nedefinovaný | Přidělený | Nastavit | Běhání | Pozastaveno | Zastavte DMA | Osvobozující |
|---|---|---|---|---|---|---|---|
OID_RECEIVE_FILTER_ALLOCATE_QUEUE – metoda (set) |
Přidělený |
||||||
OID_RECEIVE_FILTER_QUEUE_PARAMETERS – požadavek metody (dotazu) |
Přidělený |
Nastavit |
Běhání |
Pozastaveno |
|||
OID_RECEIVE_FILTER_QUEUE_PARAMETERS – nastavení požadavku |
Přidělený |
Nastavit |
Běhání |
Pozastaveno |
|||
OID_RECEIVE_FILTER_SET_FILTER – metoda (nastavení) žádost |
Nastavit |
Nastavit |
Běhání |
Běhání |
|||
OID_RECEIVE_FILTER_CLEAR_FILTER – nastavení požadavku (poslední filtr) |
Přidělený |
Pozastaveno |
|||||
OID_RECEIVE_FILTER_CLEAR_FILTER – požadavek na nastavení (není poslední filtr) |
Nastavit |
Běhání |
|||||
OID_RECEIVE_FILTER_ENUM_FILTERS – metoda (požadavek dotazu) |
Přidělený |
Nastavit |
Běhání |
Pozastaveno |
|||
OID_RECEIVE_FILTER_PARAMETERS – požadavek metody (dotaz) |
Nastavit |
Běhání |
|||||
OID_RECEIVE_FILTER_QUEUE_ALLOCATION_COMPLETE – požadavek metody (set) |
Pozastaveno |
Běhání |
|||||
Příjem paketů |
Běhání |
||||||
OID_RECEIVE_FILTER_FREE_QUEUE nastavení požadavku |
Zastavte DMA |
Zastavte DMA |
|||||
DMA je zastavené a byla odeslána indikace stavu NDIS_STATUS_RECEIVE_QUEUE_STATE (přičemž DMA už pravděpodobně bylo zastaveno ve stavu přidělené nebo pozastavené). |
Osvobozující |
||||||
Všechny indikátory příjmu jsou dokončené a prostředky fronty se uvolní. |
Nedefinovaný |
Poznámka Události uvedené v předchozí tabulce zahrnují některé sekundární události, které nemají za následek změnu stavu. Tyto sekundární události jsou zahrnuty v tabulce a určují stavy, ve kterých jsou tyto události platné.
Události primární fronty jsou definovány takto:
OID_RECEIVE_FILTER_ALLOCATE_QUEUE – požadavek metody (set)
Nadřazený ovladač přidělil frontu. Další informace o přidělování front najdete v tématu Přidělování a uvolnění front virtuálních počítačů.
OID_RECEIVE_FILTER_SET_FILTER – metoda (nastavení) žádosti
Nadřízený ovladač nastavil filtr ve frontě. Pokud nadřazený ovladač neodeslal OID_RECEIVE_FILTER_QUEUE_ALLOCATION_COMPLETE OID, fronta je ve stavu „Set“. V opačném případě je fronta ve stavu Běží. Další informace o nastavení filtrů ve frontách najdete v tématu Nastavení a vymazání filtrů VMQ.
OID_RECEIVE_FILTER_CLEAR_FILTER – nastavení požadavku
Překrývající ovladač odstranil filtr ve frontě. Pokud byl poslední filtr vymazán ve spuštěné frontě, může být DMA zastaveno; jsou zastaveny indikace příjmu a fronta by měla být vymazána z přijatých dat, pokud nějaká existují. Další informace o vymazání filtrů ve frontách naleznete v tématu Nastavení a vymazání filtrů VMQ.
OID_RECEIVE_FILTER_QUEUE_ALLOCATION_COMPLETE – požadavek metody (set)
Nadřazený ovladač dokončil alokaci fronty. Pokud jsou ve frontě nastavené filtry, je ve stavu Spuštěno a může začít příjem signálů. Další informace o dokončení přidělování front najdete v tématu přidělování a uvolnění front virtuálních počítačů.
Přijmout paket
Ovladač miniportu může označit pouze příjem paketů pro frontu, která je ve stavu Běží. Další informace o označování přijatých dat pro fronty naleznete v tématu VMQ Send and Receive Operations.
OID_RECEIVE_FILTER_FREE_QUEUE nastavit požadavek.
Nadřazený ovladač uvolnil frontu. Ovladač vydá indikaci stavu zastavení DMA (s NDIS_STATUS_RECEIVE_QUEUE_STATE), ovladač přejde do stavu Uvolnění. Pokud jsou všechny nevyřízené indikace příjmu dokončené a prostředky fronty jsou uvolněny, fronta není definována.