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.
Přílišné ovladače vydávají požadavky metody identifikátoru objektu (OID) OID_RECEIVE_FILTER_ALLOCATE_QUEUE pro přidělení fronty, která má počáteční sadu parametrů konfigurace.
InformationBuffer člen struktury NDIS_OID_REQUEST obsahuje ukazatel na NDIS_RECEIVE_QUEUE_PARAMETERS strukturu. Po úspěšném návratu z požadavku metody OID obsahuje InformationBuffer člen struktury NDIS_OID_REQUEST ukazatel na NDIS_RECEIVE_QUEUE_PARAMETERS strukturu, která má nový identifikátor fronty.
Poznámky
Požadavek metody OID OID_RECEIVE_FILTER_ALLOCATE_QUEUE je volitelný pro ovladače miniportu NDIS 6.20 a novější. Pro ovladače miniportu, které podporují rozhraní fronty virtuálních počítačů (VMQ), je povinné.
Přílišný ovladač inicializuje strukturu NDIS_RECEIVE_QUEUE_PARAMETERS s požadovanou konfigurací fronty. NDIS přiřadí identifikátor fronty v QueueId člen struktury NDIS_RECEIVE_QUEUE_PARAMETERS a předá požadavek metody na ovladač miniportu.
Poznámka Přílišný ovladač může nastavit NDIS_RECEIVE_QUEUE_PARAMETERS_PER_QUEUE_RECEIVE_INDICATION a NDIS_RECEIVE_QUEUE_PARAMETERS_LOOKAHEAD_SPLIT_REQUIRED příznaky v Flags člen struktury NDIS_RECEIVE_QUEUE_PARAMETERS. Ostatní příznaky se nepoužívají pro přidělení fronty.
Jakmile je ovladač miniportu vydán požadavek OID OID_RECEIVE_FILTER_ALLOCATE_QUEUE a zpracuje ho úspěšně, fronta je ve stavu Pozastaveno.
Přílišný ovladač musí použít identifikátor fronty, který NDIS poskytuje v následných požadavcích OID, například k úpravě parametrů fronty nebo uvolnění fronty. Identifikátor fronty je také součástí dat OOB (out-of-band) ve všech NET_BUFFER_LIST strukturách, které jsou přidružené k frontě. Ovladače používají makro NET_BUFFER_LIST_RECEIVE_QUEUE_ID k načtení identifikátoru fronty ve struktuře NET_BUFFER_LIST.
Když NDIS obdrží požadavek OID pro přidělení příjmové fronty, ověří parametry fronty. Jakmile NDIS přidělí potřebné prostředky a identifikátor fronty, odešle požadavek OID podkladovému ovladači miniportu. Identifikátor fronty je jedinečný pro přidružený síťový adaptér.
Pokud ovladač miniportu může úspěšně přidělit potřebný software a hardwarové prostředky pro příjem fronty, dokončí požadavek OID vrácením NDIS_STATUS_SUCCESS.
Ovladač miniportu musí zachovat identifikátory fronty pro přidělené příjmové fronty. NDIS používá identifikátor fronty příjmu pro následná volání ovladače miniportu k nastavení filtru příjmu ve frontě příjmu, změně parametrů příjmové fronty nebo uvolnění příjmové fronty.
Jakmile nadlimitní ovladač přidělí jednu nebo více příjmových front a volitelně nastaví počáteční filtry, musí vydat OID_RECEIVE_FILTER_QUEUE_ALLOCATION_COMPLETE nastavit požadavky OID, aby oznámil ovladač miniportu, že přidělení je dokončeno pro aktuální dávku příjmových front.
Ovladač miniportu nesmí uchovávat žádné pakety ve frontě pro příjem, pokud v této frontě nejsou nastavené žádné filtry. Pokud fronta nikdy nenastavila žádné filtry nebo všechny filtry byly vymazány, měla by být fronta prázdná a všechny pakety by se měly zahodit. To znamená, že pakety nejsou označeny zásobníkem ovladačů nebo zachovány ve frontě.
Přílišné ovladače používají požadavky OID OID_RECEIVE_FILTER_FREE_QUEUE k uvolnění front, které přidělují.
Návratové stavové kódy
Ovladač NDIS nebo miniport vrátí jeden z následujících stavových kódů pro požadavek metody OID OID_RECEIVE_FILTER_ALLOCATE_QUEUE.
Stavový kód | Popis |
---|---|
NDIS_STATUS_SUCCESS |
Fronta byla úspěšně přidělena. Informační vyrovnávací paměť obsahuje aktualizovanou strukturu NDIS_RECEIVE_QUEUE_PARAMETERS. |
NDIS_STATUS_PENDING |
Požadavek čeká na dokončení. Konečný stavový kód a výsledky se předají obslužné rutině dokončení požadavku OID volajícího. |
NDIS_STATUS_INVALID_PARAMETER |
Jeden nebo více parametrů, které zadanou nadlimitní ovladač nebyl platný. |
NDIS_STATUS_INVALID_LENGTH |
Informační vyrovnávací paměť byla příliš krátká. Rozhraní NDIS nastavil dat.METHOD_INFORMATION.bytesNeeded člen ve struktuře NDIS_OID_REQUEST na minimální požadovanou velikost vyrovnávací paměti. |
NDIS_STATUS_NOT_SUPPORTED |
Verze ovladače miniportu NDIS je starší než verze 6.20. |
NDIS_STATUS_FAILURE |
Žádost se nezdařila z jiných důvodů. |
Požadavky
Verze |
Podporováno v NDIS 6.20 a novějších verzích. |
Záhlaví |
Ntddndis.h (včetně Ndis.h) |
Viz také
NET_BUFFER_LIST_RECEIVE_QUEUE_ID