次の方法で共有


DMA_CHANNELS_CPU_AFFINITY_HANDLER コールバック関数 (netdma.h)

メモ NetDMA インターフェイスはサポートされていません

Windows 8以降。

 
ProviderSetDmaChannelCpuAffinity 関数は、DMA プロバイダーに関連付けられている DMA チャネルの CPU アフィニティを設定します。

構文

DMA_CHANNELS_CPU_AFFINITY_HANDLER DmaChannelsCpuAffinityHandler;

NTSTATUS DmaChannelsCpuAffinityHandler(
  [in] PVOID ProviderContext,
  [in] PNET_DMA_CHANNEL_CPU_AFFINITY CpuAffinityArray,
  [in] ULONG CpuAffinityArraySize
)
{...}

パラメーター

[in] ProviderContext

DMA プロバイダーのコンテキスト領域を識別するポインター。 DMA プロバイダー ドライバーは、 への呼び出しでこのポインターを NetDMA に渡しました。 NetDmaRegisterProvider 関数。

[in] CpuAffinityArray

の配列へのポインター NET_DMA_CHANNEL_CPU_AFFINITY DMA プロバイダーに関連付けられている DMA チャネルの CPU アフィニティを指定する構造体です。

[in] CpuAffinityArraySize

CpuAffinityArray のバッファーの長さ (バイト単位)。

戻り値

ProviderSetDmaChannelCpuAffinity は、次のいずれかの状態値を返します。

リターン コード 説明
STATUS_SUCCESS
操作は正常に完了しました。
STATUS_RESOURCES
リソースが不足しているため、操作が失敗しました。
STATUS_UNSUCCESSFUL
指定されていない理由で操作が失敗しました。

注釈

NetDMA インターフェイスは、DMA プロバイダー ドライバーの ProviderSetDmaChannelCpuAffinity 関数を呼び出して、DMA プロバイダーの DMA チャネルの CPU アフィニティを指定します。 NetDMA は 、 のコンテキストで ProviderSetDmaChannelCpuAffinity を呼び出します。 NetDmaRegisterProvider 関数。

DMA プロバイダーが開始される前に DMA チャネルの実際の数が不明であるため、NetDMA インターフェイスはチャネルの最大数の CPU アフィニティを指定します。 DMA プロバイダーは、 の MaxDmaChannelCount メンバー内のチャネルの最大数を提供します。netDmaRegisterProvider 関数に渡す構造体をNET_DMA_PROVIDER_CHARACTERISTICSします。

MSI-X プラットフォームをサポートしていないコンピューターでは、割り込み DPC には CPU アフィニティを指定できますが、割り込みには指定できません。 この場合、NetDMA インターフェイスは、 の ProcessorAffinityMask メンバー内の割り込み DPC に使用可能な CPU の一覧を指定します。 NET_DMA_CHANNEL_PARAMETERS 構造体。

MSI-X をサポートするコンピューターでは、DMA プロバイダー ドライバーは、 の処理中に割り込みアフィニティを指定できます。 IRP_MN_FILTER_RESOURCE_REQUIREMENTS Irp。

NetDMA は、IRQL = PASSIVE_LEVEL で ProviderSetDmaChannelCpuAffinity を呼び出します。

要件

要件
サポートされている最小のクライアント Windows Vista の NetDMA 1.0 ドライバーでサポートされています。
対象プラットフォーム Windows
ヘッダー netdma.h (Netdma.h を含む)
IRQL PASSIVE_LEVEL

こちらもご覧ください

IRP_MN_FILTER_RESOURCE_REQUIREMENTS

NET_DMA_CHANNEL_CPU_AFFINITY

NET_DMA_CHANNEL_PARAMETERS

NET_DMA_PROVIDER_CHARACTERISTICS

NetDmaRegisterProvider