次の方法で共有


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 メンバー内のチャネルの最大数を提供します。 NET_DMA_PROVIDER_CHARACTERISTICSNetDmaRegisterProvider 関数に渡される構造体です。

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

MSI-X をサポートするコンピューターでは、DMA プロバイダー ドライバーは割り込みアフィニティを指定しながら、IRP を IRP_MN_FILTER_RESOURCE_REQUIREMENTS します。

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

必要条件

要件 価値
サポートされる最小クライアント Windows Vista の NetDMA 1.0 ドライバーでサポートされています。
ターゲット プラットフォーム ウィンドウズ
ヘッダー 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