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 関数を呼び出した後に転送を再開します。 |
|
エラーまたは ProviderAbortDma 関数と呼ばれる NetDMA インターフェイスが原因で、最新の 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 インターフェイスは を呼び出します。
DMA チャネルを割り当てて初期化する DMA プロバイダー ドライバーの ProviderAllocateDmaChannel 関数。
NetDMA インターフェイスは、ProviderAllocateDmaChannelの ChannelParameters パラメーターにNET_DMA_CHANNEL_PARAMETERS構造体を提供します。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista |
サポートされている最小のサーバー | Windows Server 2008 |
Header | netdma.h (Netdma.h を含む) |