DMA_CHANNELS_CPU_AFFINITY_HANDLER コールバック関数 (netdma.h)
Windows 8以降。
構文
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 は、次のいずれかの状態値を返します。
リターン コード | 説明 |
---|---|
|
操作は正常に完了しました。 |
|
リソースが不足しているため、操作が失敗しました。 |
|
指定されていない理由で操作が失敗しました。 |
注釈
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 |