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_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