NET_DMA_CHANNEL_PARAMETERS構造体 (netdma.h)

メモNetDMA インターフェイスは、Windows 8 以降ではサポートされていません。
 
NET_DMA_CHANNEL_PARAMETERS構造体は、DMA プロバイダー ドライバーが DMA チャネルを構成するために使用する構成パラメーターを指定します。

構文

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 演算を使用して、次の状態値と記述子アドレスを組み合わせます。

意味
NetDmaTransferStatusActive
最新の DMA 記述子の DMA 転送はエラーなしで完了し、DMA エンジンには処理する記述子が多くなります。
NetDmaTransferStatusIdle
エラーなしで完了した記述子のリンクリスト内の最後の DMA 記述子の DMA 転送。
NetDmaTransferStatusSuspend
最新の DMA 記述子の DMA 転送はエラーなしで完了し、 ProviderSuspendDma 関数と呼ばれる NetDMA インターフェイスが原因で DMA 転送が中断されます。 DMA エンジンは、NetDMA インターフェイスが ProviderResumeDma 関数を呼び出した後に転送を再開します。
NetDmaTransferStatusHalted
エラーまたは ProviderAbortDma 関数と呼ばれる NetDMA インターフェイスが原因で、最新の DMA 転送の DMA 転送が中止されました。
NetDmaTransferStatusArmed
最初の記述子の 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 を含む)

こちらもご覧ください

NET_DMA_DESCRIPTOR

ProviderAbortDma

ProviderAllocateDmaChannel

ProviderResumeDma

ProviderSuspendDma