다음을 통해 공유


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를 IRP_MN_FILTER_RESOURCE_REQUIREMENTS.

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