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 멤버에 있는 최대 채널 수를 제공합니다. 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 |