Sdílet prostřednictvím


OID_RECEIVE_FILTER_ALLOCATE_QUEUE

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é

NDIS_OID_REQUEST

NET_BUFFER_LIST

NET_BUFFER_LIST_RECEIVE_QUEUE_ID

OID_RECEIVE_FILTER_FREE_QUEUE

OID_RECEIVE_FILTER_QUEUE_ALLOCATION_COMPLETE

NDIS_RECEIVE_QUEUE_PARAMETERS