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를 IRP_MN_FILTER_RESOURCE_REQUIREMENTS.
NetDMA는 IRQL = PASSIVE_LEVEL ProviderSetDmaChannelCpuAffinity 호출합니다.
요구 사항
| 요구 | 값 |
|---|---|
| 지원되는 최소 클라이언트 | Windows Vista에서 NetDMA 1.0 드라이버에 대해 지원됩니다. |
| 대상 플랫폼 | Windows |
| 헤더 | netdma.h(Netdma.h 포함) |
| IRQL | PASSIVE_LEVEL |