DMA_APPEND_HANDLER 콜백 함수(netdma.h)
ProviderAppendDma 함수는 DMA 채널의 마지막 설명자에 연결된 DMA 설명자 목록을 추가합니다.
구문
DMA_APPEND_HANDLER DmaAppendHandler;
NTSTATUS DmaAppendHandler(
[in] PVOID ProviderChannelContext,
[in] PNET_DMA_DESCRIPTOR DescriptorVirtualAddress,
[in] PHYSICAL_ADDRESS DescriptorPhysicalAddress,
[in] ULONG DescriptorCount
)
{...}
매개 변수
[in] ProviderChannelContext
DMA 채널의 컨텍스트 영역을 식별하는 포인터입니다. DMA 공급자는 의 pProviderChannelContext 매개 변수에 지정된 위치에 있는 NetDMA에 이 핸들을 반환했습니다. ProviderAllocateDmaChannel 함수입니다.
[in] DescriptorVirtualAddress
DMA 설명자의 연결된 목록에서 첫 번째 NET_DMA_DESCRIPTOR 구조체의 가상 주소에 대한 포인터입니다. 해당 물리적 주소는 DescriptorPhysicalAddress 매개 변수에 지정됩니다.
[in] DescriptorPhysicalAddress
DMA 설명자의 연결된 목록에서 첫 번째 DMA 설명자의 실제 주소에 대한 포인터입니다. 해당 가상 주소는 DescriptorVirtualAddress 매개 변수에 지정됩니다.
[in] DescriptorCount
DescriptorVirtualAddress 의 DMA 설명자 수입니다.
반환 값
ProviderAppendDma는 다음 상태 값 중 하나를 반환합니다.
반환 코드 | 설명 |
---|---|
|
작업이 성공적으로 완료되었습니다. |
|
지정되지 않은 이유로 작업이 실패했습니다. |
설명
NetDMA 인터페이스는 DMA 공급자 드라이버의 ProviderAppendDma 함수를 호출하여 DMA 채널의 마지막 설명자 다음에 연결된 DMA 설명자 목록을 추가합니다. NetDMA 인터페이스는 DMA 전송이 시작된 후 ProviderAppendDma 를 여러 번 호출할 수 있습니다. 그러나 NetDMA 인터페이스는 채널 재설정 또는 중단 후 또는 DMA 채널이 처음 할당된 후 ProviderStartDma 함수를 호출해야 합니다.
활성 전송의 현재 설명자가 마지막 설명자인 경우 DMA 엔진은 마지막 설명자를 다시 읽어야 합니다. 마지막 NET_DMA_DESCRIPTOR 구조의 NextDescriptor 멤버에는 새 주소가 있어야 하며 DMA 엔진은 다음 설명자를 계속 진행해야 합니다. 현재 설명자가 마지막 설명자가 아닌 경우 DMA 엔진은 추가 작업 없이 DMA 설명자를 계속 처리할 수 있습니다.
NetDMA는 IRQL <= DISPATCH_LEVEL ProviderAppendDma를 호출합니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows Server 2008에서 NetDMA 2.0 드라이버에 대해 지원됩니다. Windows Server 2008에서 NetDMA 1.1 드라이버에 대해 지원됩니다. Windows Server 2008 및 Windows Vista에서 NetDMA 1.0 드라이버에 대해 지원됩니다. |
대상 플랫폼 | Windows |
헤더 | netdma.h(Netdma.h 포함) |
IRQL | <= DISPATCH_LEVEL |