次の方法で共有


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
エラーまたは NetDMA インターフェイスが ProviderAbortDma 関数を呼び出したため、最新の 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 インターフェイスは
ProviderAllocateDmaChannel DMA チャネルを割り当てて初期化する DMA プロバイダー ドライバーの関数です。

NetDMA インターフェイスは、ProviderAllocateDmaChannel ChannelParameters パラメーターNET_DMA_CHANNEL_PARAMETERS 構造体を提供します。

必要条件

要件 価値
サポートされる最小クライアント Windows Vista
サポートされる最小サーバー Windows Server 2008
ヘッダー netdma.h (Netdma.h を含む)

関連項目

NET_DMA_DESCRIPTOR

ProviderAbortDma

ProviderAllocateDmaChannel

ProviderResumeDma

ProviderSuspendDma