NET_DMA_CHANNEL_PARAMETERS 구조체(netdma.h)

참고 NetDMA 인터페이스는 Windows 8 이상에서 지원되지 않습니다.
 
NET_DMA_CHANNEL_PARAMETERS 구조는 DMA 공급자 드라이버가 DMA 채널을 구성하는 데 사용해야 하는 구성 매개 변수를 지정합니다.

구문

typedef struct _NET_DMA_CHANNEL_PARAMETERS {
  USHORT           Revision;
  USHORT           Size;
  ULONG            Flags;
  PVOID            CompletionVirtualAddress;
  PHYSICAL_ADDRESS CompletionPhysicalAddress;
  ULONG            ProcessorAffinityMask;
  ULONG            ChannelPriority;
  ULONG            CpuNumber;
  GROUP_AFFINITY   ProcessorAffinityMaskEx;
} NET_DMA_CHANNEL_PARAMETERS, *PNET_DMA_CHANNEL_PARAMETERS;

멤버

Revision

이 구조체의 수정 번호입니다.

Windows 7 및 Windows Server 2008 R2 이상에서는 이 멤버를 NET_DMA_CHANNEL_PARAMETERS_REVISION_2 설정합니다.

Windows Vista 및 Windows Server 2008의 경우 이 멤버를 NET_DMA_CHANNEL_PARAMETERS_REVISION_1 설정합니다.

Size

이 구조체의 크기(바이트)입니다. 이 멤버를 sizeof(NET_DMA_CHANNEL_PARAMETERS)로 설정합니다.

Flags

DMA 채널 특성을 정의하는 플래그에 대한 비트 집합입니다. 이 멤버를 0으로 설정합니다. 현재 정의된 플래그가 없습니다.

CompletionVirtualAddress

DMA 엔진이 DMA 전송 완료 상태 쓸 수 있는 메모리 위치의 가상 주소입니다. 이 가상 주소는 에 지정된 실제 주소와 연결됩니다.
CompletionPhysicalAddress 멤버입니다.

CompletionPhysicalAddress

DMA 엔진이 DMA 전송 완료 상태 쓸 수 있는 메모리 위치의 실제 주소입니다. NET_DMA_STATUS_UPDATE_ON_COMPLETION 플래그가 NET_DMA_DESCRIPTOR 구조체의 ControlFlags 멤버에 설정되지 않은 경우 CompletionPhysicalAddress는 사용되지 않습니다. 그렇지 않으면 지정된 주소의 완성 상태 값은 DMA 엔진이 처리한 가장 최근 DMA 설명자의 실제 주소와 추가 상태 정보의 64비트 너비 조합입니다.

DMA 설명자의 실제 주소는 64비트 경계에 맞춰야 합니다. 따라서 주소의 하위 6비트 를 다른 정보에 사용할 수 있습니다. DMA 엔진은 비트 OR 연산을 사용하여 다음 상태 값을 설명자 주소와 결합합니다.

의미
NetDmaTransferStatusActive
최신 DMA 설명자에 대한 DMA 전송은 오류 없이 완료되었으며 DMA 엔진에는 처리할 설명자가 더 많이 있습니다.
NetDmaTransferStatusIdle
설명자의 연결된 목록에서 마지막 DMA 설명자에 대한 DMA 전송이 오류 없이 완료되었습니다.
NetDmaTransferStatusSuspend
가장 최근 DMA 설명자에 대한 DMA 전송은 오류 없이 완료되었으며 NetDMA 인터페이스가 ProviderSuspendDma 함수라고 하므로 DMA 전송이 일시 중단됩니다. NetDMA 인터페이스가 ProviderResumeDma 함수를 호출한 후 DMA 엔진이 전송을 다시 시작합니다.
NetDmaTransferStatusHalted
가장 최근의 DMA 전송에 대한 DMA 전송은 오류 또는 NetDMA 인터페이스가 ProviderAbortDma 함수라고 했기 때문에 중단되었습니다.
NetDmaTransferStatusArmed
첫 번째 설명자에 대한 DMA 전송이 완료되지 않았으며 완료된 설명자 주소가 잘못되었습니다.

ProcessorAffinityMask

이 DMA 채널에서 사용할 수 있는 CPU를 나타내는 비트맵입니다. ProcessorAffinityMask의 각 비트는 CPU를 식별합니다. 예를 들어 비트 0을 설정하면 CPU 0을 사용할 수 있음을 나타내고 비트 1을 설정하면 CPU 1을 사용할 수 있습니다.

ChannelPriority

동일한 DMA 엔진의 다른 DMA 채널을 기준으로 DMA 채널의 우선 순위를 나타내는 DMA 채널 우선 순위 값입니다. 우선 순위가 낮은 설정은 우선 순위가 낮은 DMA 채널을 나타냅니다. 이 값이 하드웨어에서 지원하는 것보다 높은 우선 순위를 나타내는 경우 하드웨어에서 지원하는 가장 높은 값을 사용해야 합니다. Windows Vista NetDMA 인터페이스는 이 멤버를 0으로 설정합니다.

CpuNumber

DMA 채널과 연결된 CPU 번호입니다. DMA 공급자 드라이버는 에서 반환하기 전에 값을 설정합니다.
ProviderAllocateDmaChannel 함수입니다. DMA 엔진은 DMA 채널과 연결된 인터럽트 DPC에 이 CPU를 사용합니다. DMA 엔진 및 컴퓨터 구성이 MSI-X를 지원하는 경우 표시된 CPU에 사용할 수 있는 MSI-X 인터럽트 없이 표시된 CPU 번호와 인터럽트도 연결되어야 합니다.

ProcessorAffinityMaskEx

이 DMA 채널이 연결될 수 있는 CPU의 그룹 번호 및 비트맵입니다.

설명

DMA 채널을 사용하기 전에 NetDMA 인터페이스는 다음을 호출합니다.
DMA 채널을 할당하고 초기화하는 DMA 공급자 드라이버의 ProviderAllocateDmaChannel 함수입니다.

NetDMA 인터페이스는 ProviderAllocateDmaChannelChannelParameters 매개 변수에 NET_DMA_CHANNEL_PARAMETERS 구조를 제공합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista
지원되는 최소 서버 Windows Server 2008
머리글 netdma.h(Netdma.h 포함)

추가 정보

NET_DMA_DESCRIPTOR

ProviderAbortDma

ProviderAllocateDmaChannel

ProviderResumeDma

ProviderSuspendDma