OID_RECEIVE_FILTER_QUEUE_ALLOCATION_COMPLETE
NDIS プロトコル ドライバーは、受信キューの現在のバッチ割り当てが完了したことをミニポート ドライバーに通知する OID_RECEIVE_FILTER_QUEUE_ALLOCATION_COMPLETE のオブジェクト識別子 (OID) メソッド要求を発行します。
この NDIS_OID_REQUEST 構造体の InformationBuffer メンバーには、 NDIS_RECEIVE_QUEUE_ALLOCATION_COMPLETE_ARRAY 構造体へのポインターが含まれており、これに各キュー用の NDIS_RECEIVE_QUEUE_ALLOCATION_COMPLETE_PARAMETERS 構造体が続きます。 OID メソッド要求から正常に戻った後、 NDIS_OID_REQUEST 構造体の InformationBuffer メンバーには、同じ構造体配列へのポインターが含まれており、各 NDIS_RECEIVE_QUEUE_ALLOCATION_COMPLETE_PARAMETERS 構造体の CompletionStatus メンバーには、各キューの完了状態が含まれています。
解説
OID_RECEIVE_FILTER_QUEUE_ALLOCATION_COMPLETE の OID メソッド要求は、NDIS 6.20 およびこれ以降のミニポート ドライバーではオプションになります。 これは、仮想マシン・キュー (VMQ) インターフェースをサポートするミニポート・ドライバーには必須のものです。
1つ以上の受信キューを割り当てて、オプションで初期フィルターを設定した後、プロトコル ドライバーは、受信キューの現在のバッチに対する割り当てが完了したことをミニポート ドライバーに通知するために、OID_RECEIVE_FILTER_QUEUE_ALLOCATION_COMPLETE の OID メソッド要求を発行する必要があります。 これによって、ミニポート ドライバーは、複数の受信キュー間でハードウェア リソースのバランスをとることができるようになります。必要な場合は、受信キューに共有メモリなどのリソースを割り当てることができます。
ミニポート ドライバーが OID_RECEIVE_FILTER_QUEUE_ALLOCATION_COMPLETE 要求を受信して、キューに設定されているフィルターがある場合、キューは実行状態になります。 この状態で、ミニポート ドライバーは NdisMIndicateReceiveNetBufferLists を呼び出すことによって、キュー内のパケットの表示を開始できます。
状態コードを返します
ミニポート ドライバーは、OID_RECEIVE_FILTER_QUEUE_ALLOCATION_COMPLETE の OID メソッド 要求に対して次の状態コードのいずれかを返します。
状態コード | 説明 |
---|---|
NDIS_STATUS_SUCCESS |
キューの割り当てが完了しました。 情報バッファーには、更新 されたNDIS_RECEIVE_QUEUE_ALLOCATION_COMPLETE_ARRAY 構造体とパラメーター構造と、キュー割り当ての完了状態が含まれます。 |
NDIS_STATUS_PENDING |
要求の完了が保留中です。 最終的な状態コードと結果は、呼び出し元の OID 要求完了ハンドラーに渡されます。 |
NDIS_STATUS_INVALID_PARAMETER |
上位ドライバーが指定した1つ以上のパラメーターが無効でした。 |
NDIS_STATUS_INVALID_LENGTH |
情報バッファーが短すぎました。 NDISは、 NDIS_OID_REQUEST 構造体の DATA.METHOD_INFORMATION.BytesNeeded メンバー を 必要な最小バッファサイズに設定します。 |
NDIS_STATUS_NOT_SUPPORTED |
ミニポート ドライバーの NDIS バージョンは、バージョン 6.20 以前のものです。 |
NDIS_STATUS_FAILURE |
その他の理由で要求に失敗しました。 |
要件
バージョン |
NDIS 6.20 以降でサポートされています。 |
ヘッダー |
Ntddndis.h (Ndis.h を含む) |
関連項目
NdisMIndicateReceiveNetBufferLists