共用方式為


OID_RECEIVE_FILTER_ALLOCATE_QUEUE

過度配置驅動程式會發出物件識別碼 (OID) 方法要求 OID_RECEIVE_FILTER_ALLOCATE_QUEUE,以配置具有一組初始組態參數的佇列。

NDIS_OID_REQUEST結構的InformationBuffer成員包含NDIS_RECEIVE_QUEUE_PARAMETERS結構的指標。 從 OID 方法要求成功傳回之後,NDIS_OID_REQUEST結構的InformationBuffer成員會包含具有新佇列識別碼之NDIS_RECEIVE_QUEUE_PARAMETERS結構的指標。

備註

OID_RECEIVE_FILTER_ALLOCATE_QUEUE的 OID 方法要求對於 NDIS 6.20 和更新版本的迷你埠驅動程式而言是選擇性的。 支援虛擬機器佇列 (VMQ) 介面的迷你埠驅動程式是必要的。

過度配置驅動程式會使用其要求的佇列組態,初始化 NDIS_RECEIVE_QUEUE_PARAMETERS 結構。 NDIS 會在NDIS_RECEIVE_QUEUE_PARAMETERS結構的QueueId成員中指派佇列識別碼,並將方法要求傳遞至迷你埠驅動程式。

注意過度配置驅動程式可以在NDIS_RECEIVE_QUEUE_PARAMETERS 結構的Flags成員中設定NDIS_RECEIVE_QUEUE_PARAMETERS_PER_QUEUE_RECEIVE_INDICATIONNDIS_RECEIVE_QUEUE_PARAMETERS_LOOKAHEAD_SPLIT_REQUIRED旗標。 其他旗標不會用於佇列配置。

在迷你埠驅動程式發出OID_RECEIVE_FILTER_ALLOCATE_QUEUE的 OID 要求並成功處理之後,佇列就會處於暫停狀態。

過度處理驅動程式必須使用 NDIS 在後續的 OID 要求中提供的佇列識別碼,例如,修改佇列參數或釋放佇列。 佇列識別碼也會包含在與佇列相關聯之所有NET_BUFFER_LIST結構上的頻外 ( OOB) 資料中。 驅動程式會使用 NET_BUFFER_LIST_RECEIVE_QUEUE_ID 宏來擷取 NET_BUFFER_LIST 結構中的佇列識別碼。

當 NDIS 收到 OID 要求來配置接收佇列時,它會驗證佇列參數。 在 NDIS 配置必要的資源和佇列識別碼之後,它會將 OID 要求提交至基礎迷你埠驅動程式。 佇列識別碼對相關聯的網路介面卡而言是唯一的。

如果迷你埠驅動程式可以成功配置接收佇列所需的軟體和硬體資源,它會傳回 NDIS_STATUS_SUCCESS來完成 OID 要求。

迷你埠驅動程式必須保留已配置接收佇列的佇列識別碼。 NDIS 會針對迷你埠驅動程式的後續呼叫使用接收佇列的佇列識別碼,以在接收佇列上設定接收篩選、變更接收佇列參數,或釋出接收佇列。

過度配置驅動程式配置一或多個接收佇列,並選擇性地設定初始篩選之後,必須發出 OID_RECEIVE_FILTER_QUEUE_ALLOCATION_COMPLETE 設定 OID 要求,以通知迷你埠驅動程式配置已完成目前接收佇列批次。

如果該佇列上未設定任何篩選,迷你埠驅動程式不得保留接收佇列中的任何封包。 如果佇列從未設定任何篩選,或清除所有篩選準則,則佇列應該是空的,而且應該捨棄任何封包。 也就是說,封包不會指出驅動程式堆疊或保留在佇列中。

過度配置驅動程式會使用 OID_RECEIVE_FILTER_FREE_QUEUE 的 OID 要求來釋放其配置的佇列。

傳回狀態碼

NDIS 或迷你埠驅動程式會針對 OID_RECEIVE_FILTER_ALLOCATE_QUEUE 的 OID 方法要求傳回下列其中一個狀態碼。

狀態碼 描述

NDIS_STATUS_SUCCESS

已成功配置佇列。 資訊緩衝區包含更新 NDIS_RECEIVE_QUEUE_PARAMETERS 結構。

NDIS_STATUS_PENDING

要求正在擱置完成。 最終狀態代碼和結果會傳遞至呼叫端的 OID 要求完成處理常式。

NDIS_STATUS_INVALID_PARAMETER

一或多個超載驅動程式所提供的參數無效。

NDIS_STATUS_INVALID_LENGTH

資訊緩衝區太短。 NDIS 會設定DATAMETHOD_INFORMATIONNDIS_OID_REQUEST結構中的BytesNeeded成員,以達到所需的最小緩衝區大小。

NDIS_STATUS_NOT_SUPPORTED

迷你埠驅動程式的 NDIS 版本早于 6.20 版。

NDIS_STATUS_FAILURE

要求因其他原因而失敗。

規格需求

版本

NDIS 6.20 和更新版本支援。

標頭

Ntddndis.h (包括 Ndis.h)

另請參閱

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