NET_DMA_CHANNEL_PARAMETERS構造体 (netdma.h)
構文
typedef struct _NET_DMA_CHANNEL_PARAMETERS {
USHORT Revision;
USHORT Size;
ULONG Flags;
PVOID CompletionVirtualAddress;
PHYSICAL_ADDRESS CompletionPhysicalAddress;
ULONG ProcessorAffinityMask;
ULONG ChannelPriority;
ULONG CpuNumber;
GROUP_AFFINITY ProcessorAffinityMaskEx;
} NET_DMA_CHANNEL_PARAMETERS, *PNET_DMA_CHANNEL_PARAMETERS;
メンバーズ
Revision
この構造体のリビジョン番号。
Windows 7 および Windows Server 2008 R2 以降では、このメンバーを NET_DMA_CHANNEL_PARAMETERS_REVISION_2に設定します。
Windows Vista および Windows Server 2008 の場合は、このメンバーを NET_DMA_CHANNEL_PARAMETERS_REVISION_1に設定します。
Size
この構造体のサイズ (バイト単位)。 このメンバーを sizeof(NET_DMA_CHANNEL_PARAMETERS) に設定します。
Flags
DMA チャネル属性を定義するフラグのビットセット。 このメンバーを 0 に設定します。 現在、フラグは定義されていません。
CompletionVirtualAddress
DMA エンジンが DMA 転送完了状態を書き込むことができるメモリの場所の仮想アドレス。 この仮想アドレスは、
CompletionPhysicalAddress メンバーを します。
CompletionPhysicalAddress
DMA エンジンが DMA 転送完了状態を書き込むことができるメモリの場所の物理アドレス。 NET_DMA_DESCRIPTOR 構造体の ControlFlags メンバーで NET_DMA_STATUS_UPDATE_ON_COMPLETION フラグが設定されていない場合、CompletionPhysicalAddress は使用されません。 それ以外の場合、指定したアドレスの完了状態値は、DMA エンジンが処理した最新の DMA 記述子の物理アドレスと追加の状態情報の 64 ビット幅の組み合わせになります。
DMA 記述子の物理アドレスは、64 ビット境界にアラインする必要があります。 そのため、アドレスの下位 6 ビットは他の情報に使用できます。 DMA エンジンは、ビットごとの OR 演算を使用して、次の状態値を記述子アドレスと組み合わせます。
価値 | 意味 |
---|---|
|
エラーなしで完了した最新の DMA 記述子の DMA 転送と、DMA エンジンで処理する記述子が増えています。 |
|
エラーなしで完了した記述子のリンクされたリスト内の最後の DMA 記述子の DMA 転送。 |
|
エラーなしで完了した最新の DMA 記述子の DMA 転送と、ProviderSuspendDma 関数と呼ばれる NetDMA インターフェイスが原因で DMA 転送が中断されます。 Dma エンジンは、NetDMA インターフェイスが ProviderResumeDma 関数を呼び出した後、転送を再開します。 |
|
エラーまたは NetDMA インターフェイスが ProviderAbortDma 関数を呼び出したため、最新の DMA 転送の DMA 転送が中止されました。 |
|
最初の記述子の DMA 転送が完了せず、完了した記述子アドレスが無効です。 |
ProcessorAffinityMask
この DMA チャネルで使用できる CPU を示すビットマップ。 ProcessorAffinityMask の各ビットは CPU を識別します。 たとえば、設定ビット 0 は CPU 0 を使用できることを示し、設定ビット 1 は CPU 1 を使用できることを示します。などです。
ChannelPriority
同じ DMA エンジン上の他の DMA チャネルに対する DMA チャネルの優先度を表す DMA チャネルの優先度値。 優先順位の低い設定は、優先順位の低い DMA チャネルを示します。 この値がハードウェアがサポートするよりも高い優先順位を示す場合は、ハードウェアがサポートする最大値を使用する必要があります。 Windows Vista NetDMA インターフェイスは、このメンバーを 0 に設定します。
CpuNumber
DMA チャネルに関連付けられている CPU 番号。 DMA プロバイダー ドライバーは、戻る前に値を設定します。
ProviderAllocateDmaChannel 関数を します。 DMA エンジンは、DMA チャネルに関連付けられている割り込み DPC にこの CPU を使用します。 DMA エンジンとコンピューターの構成で MSI-X がサポートされている場合、指定された CPU に対して使用可能な MSI-X 割り込みがない限り、割り込みは指定された CPU 番号にも関連付ける必要があります。
ProcessorAffinityMaskEx
この DMA チャネルを関連付けることができる CPU のグループ番号とビットマップ。
備考
DMA チャネルを使用する前に、NetDMA インターフェイスは
ProviderAllocateDmaChannel DMA チャネルを割り当てて初期化する DMA プロバイダー ドライバーの関数です。
NetDMA インターフェイスは、ProviderAllocateDmaChannel の ChannelParameters パラメーターNET_DMA_CHANNEL_PARAMETERS 構造体を提供します。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows Vista |
サポートされる最小サーバー | Windows Server 2008 |
ヘッダー | netdma.h (Netdma.h を含む) |