NDIS_RECEIVE_QUEUE_PARAMETERS 構造体 (ntddndis.h)
NDIS_RECEIVE_QUEUE_PARAMETERS構造体には、受信キューの構成パラメーターが含まれています。
構文
typedef struct _NDIS_RECEIVE_QUEUE_PARAMETERS {
NDIS_OBJECT_HEADER Header;
ULONG Flags;
NDIS_RECEIVE_QUEUE_TYPE QueueType;
NDIS_RECEIVE_QUEUE_ID QueueId;
NDIS_RECEIVE_QUEUE_GROUP_ID QueueGroupId;
GROUP_AFFINITY ProcessorAffinity;
ULONG NumSuggestedReceiveBuffers;
ULONG MSIXTableEntry;
ULONG LookaheadSize;
NDIS_VM_NAME VmName;
NDIS_QUEUE_NAME QueueName;
ULONG PortId;
ULONG InterruptCoalescingDomainId;
NDIS_QOS_SQ_ID QosSqId;
} NDIS_RECEIVE_QUEUE_PARAMETERS, *PNDIS_RECEIVE_QUEUE_PARAMETERS;
メンバー
Header
NDIS_RECEIVE_QUEUE_PARAMETERS構造体の型、リビジョン、およびサイズ。 このメンバーは、 NDIS_OBJECT_HEADER 構造体として書式設定されます。
ミニポート ドライバーは、ヘッダーの Type メンバーをNDIS_OBJECT_TYPE_DEFAULTに設定する必要があります。 NDIS_NIC_SWITCH_CAPABILITIES構造体のバージョンを指定するには、ドライバーで Header の Revision メンバーを次のいずれかの値に設定する必要があります。
NDIS_NIC_SWITCH_VPORT_PARAMETERS_REVISION_3
NDIS 6.50 の QosSqId フィールドを追加しました。
[サイズ] メンバーを [NDIS_SIZEOF_NIC_SWITCH_VPORT_PARAMETERS_REVISION_3] に設定します。
NDIS_RECEIVE_QUEUE_PARAMETERS_REVISION_2
NDIS 6.30 のメンバーを追加しました。
Size メンバーをNDIS_SIZEOF_RECEIVE_QUEUE_PARAMETERS_REVISION_2に設定します。
NDIS_RECEIVE_QUEUE_PARAMETERS_REVISION_1
NDIS 6.20 の元のバージョン。
[サイズ] メンバーをNDIS_SIZEOF_RECEIVE_QUEUE_PARAMETERS_REVISION_1に設定します。
Flags
次のフラグのビットごとの OR を含む ULONG 値。 次のフラグは、OID_RECEIVE_FILTER_ALLOCATE_QUEUE OID と、OID_RECEIVE_FILTER_QUEUE_PARAMETERS セットおよびクエリ OID に対して有効です。
NDIS_RECEIVE_QUEUE_PARAMETERS_PER_QUEUE_RECEIVE_INDICATION
ミニポート ドライバーは、 NdisMIndicateReceiveNetBufferLists 関数の 1 回の呼び出しで、このキューのパケットと他の受信キューのネットワーク パケットを混在させる必要があります。
NDIS_RECEIVE_QUEUE_PARAMETERS_LOOKAHEAD_SPLIT_REQUIRED
ネットワーク アダプターは、要求された先読みサイズ以上のオフセットで受信パケットを分割し、DMA を使用して先読みデータと先読み後データを個別の共有メモリ セグメントに転送する必要があります。
注意
NDIS 6.30 以降では、パケット データを個別の先読みバッファーに分割することはサポートされなくなりました。 NDIS 6.30 以降のバージョンをサポートするミニポート ドライバーは、このフラグを無視する必要があります。
次のフラグは、 OID_RECEIVE_FILTER_QUEUE_PARAMETERS セット OID と NDIS_STATUS_RECEIVE_FILTER_QUEUE_PARAMETERS 状態表示に対して有効です。
NDIS_RECEIVE_QUEUE_PARAMETERS_FLAGS_CHANGED
Flags メンバーの設定が変更されました。
NDIS_RECEIVE_QUEUE_PARAMETERS_PROCESSOR_AFFINITY_CHANGED
ProcessorAffinity メンバーの設定が変更されました。
NDIS_RECEIVE_QUEUE_PARAMETERS_SUGGESTED_RECV_BUFFER_NUMBERS_CHANGED
NumSuggestedReceiveBuffers メンバーの設定が変更されました。
NDIS_RECEIVE_QUEUE_PARAMETERS_NAME_CHANGED
QueueName メンバーの設定が変更されました。
注意
ドライバーは、NDIS_RECEIVE_QUEUE_PARAMETERS_CHANGE_MASK定義と Flags メンバーの値の間でビットごとの AND 操作を実行することによって、変更された受信キュー パラメーターを決定します。 結果が 0 の場合、受信キュー パラメーターは変更されていません。
QueueType
受信キューの種類を指定する NDIS_RECEIVE_QUEUE_TYPE 列挙値。
QueueId
受信キュー識別子を含む NDIS_RECEIVE_QUEUE_ID 型の値。 この識別子は、0 からネットワーク アダプターがサポートするキューの数までの整数値です。 NDIS_DEFAULT_RECEIVE_QUEUE_ID の値は、既定の受信キューを指定します。
QueueGroupId
このメンバーは NDIS 用に予約されています。
ProcessorAffinity
このキューに関連付けることができる CPU のグループ番号とビットマップを指定するGROUP_AFFINITY値。 少なくとも 1 つのプロセッサを指定する必要があります。 したがって、値を 0 にすることはできません。
NumSuggestedReceiveBuffers
キューをサポートするためにネットワーク アダプターが使用する必要がある受信バッファーの数の推奨値を含む ULONG 値。 この数は、ミニポート ドライバーが使用可能なリソースに対して、またはネットワーク アダプターが他のキューに使用する数に比例して調整できます。 たとえば、受信バッファーの実際の数は、この推奨値の 2 倍または半分にすることができます。
MSIXTableEntry
このメンバーは NDIS 用に予約されています。
LookaheadSize
このキューの先読みサイズ要件のサイズ (バイト単位) の ULONG 値。 VM キューで先読み機能をサポートするネットワーク アダプターは、受信パケットを要求された先読みサイズ以上のオフセットで分割し、DMA を使用して先読みデータと先読み後データを個別の共有メモリ セグメントに転送します。 LookaheadSize が 0 の場合、ミニポート ドライバーはパケットを分割しないでください。
LookaheadSize は、NDIS が Flags メンバーのNDIS_RECEIVE_QUEUE_PARAMETERS_LOOKAHEAD_SPLIT_REQUIRED フラグを設定する場合に有効です。 つまり、ミニポート ドライバーは、フラグも設定されている場合、指定した先読みサイズでパケットを分割する必要があります。 フラグが明確な場合、 LookaheadSize の 0 以外の値は無効です。
注意
NDIS 6.30 以降では、パケット データを個別の先読みバッファーに分割することはサポートされなくなりました。 このメンバーの値は 0 である必要があります。
VmName
ユーザーが読み取った仮想マシンの説明を含むNDIS_VM_NAME値。
QueueName
ユーザー が 読み取ったキューの説明を含むNDIS_QUEUE_NAME値。
PortId
VM キューが接続されている Hyper-V 拡張可能スイッチのポートの一意識別子を含む ULONG 値。
InterruptCoalescingDomainId
このメンバーは NDIS 用に予約されています。
QosSqId
仮想マシン キュー (VMQ) をスケジューラ キュー (SQ) に関連付けます。 SQ 関連付けがない場合は、このフィールドを 0 に設定します。 NDIS_QOS_SQ_IDの詳細については、「OID_QOS_OFFLOAD_CREATE_SQ」を参照してください。
従来の VMQ に対するハードウェアサービス品質 (QoS) のサポートは必要ありません。 QosSqId が 0 以外の場合、ミニポート ドライバーはNDIS_STATUS_NOT_SUPPORTEDを返す場合があります。
注釈
NDIS_RECEIVE_QUEUE_PARAMETERS構造体は、OID_RECEIVE_FILTER_ALLOCATE_QUEUE OID とOID_RECEIVE_FILTER_QUEUE_PARAMETERS OID で使用されます。
NDIS 6.30 では、 NDIS_RECEIVE_QUEUE_PARAMETERS 構造も NDIS_STATUS_RECEIVE_FILTER_QUEUE_PARAMETERS 状態表示で使用されます。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | NDIS 6.20 以降でサポートされています。 |
サポートされている最小のサーバー | Windows Server 2022 |
Header | ntddndis.h (Ndis.h を含む) |
こちらもご覧ください
NDIS_STATUS_RECEIVE_FILTER_QUEUE_PARAMETERS
NdisMIndicateReceiveNetBufferLists