다음을 통해 공유


IDmaChannel 인터페이스(portcls.h)

인터페이스는 IDmaChannel DMA 채널 및 관련 DMA 버퍼 및 사용 매개 변수의 추상화 기능을 제공합니다. WaveCyclic 또는 WavePci 포트 드라이버는 이 인터페이스를 구현하고 WaveCyclic 또는 WavePci 미니포트 드라이버에 노출합니다. 미니포트 드라이버는 포트 드라이버의 NewXxxDmaChannel 메서드 중 하나를 호출하여 포트 드라이버의 개체 구현 IDmaChannel 에 대한 참조를 가져옵니다.

IPortWavePci::NewMasterDmaChannel

IPortWaveCyclic::NewMasterDmaChannel

IPortWaveCyclic::NewSlaveDmaChannel

포트 드라이버의 기본 구현에 없는 기능이 필요한 경우 미니포트 드라이버는 자체 IDmaChannel 인터페이스를 구현할 수도 있습니다. 이에 대한 자세한 내용은 웨이브 필터를 참조하세요. 포트 드라이버가 미니포트 드라이버의 NewStream 메서드(예: IMiniportWaveCyclic::NewStream)를 호출하면 메서드는 미니포트 드라이버의 IDmaChannel 개체를 포트 드라이버에 출력합니다. IDmaChannelIUnknown 인터페이스에서 상속됩니다.

Portcls.sys 인터페이스의 IDmaChannel 현재 구현은 공유 데이터에 대한 액세스를 내부적으로 동기화하지 않으므로 다중 스레드로부터 안전하지 않습니다. 일반적으로 단일 드라이버 스레드는 개체의 메서드를 IDmaChannel 호출합니다. 이 경우 두 메서드 호출이 동시에 동일한 데이터에 액세스할 위험이 없습니다. 그러나 여러 스레드가 잠재적으로 동시에 개체의 메서드를 IDmaChannel 호출할 수 있는 경우 드라이버 작성기는 내부 데이터 손상을 방지하기 위해 메서드 호출을 동기화해야 합니다.

자세한 내용은 DMA 채널 개체를 참조하세요.

참고

Microsoft는 다양하고 포괄적인 환경을 지원합니다. 이 문서에는 바이어스 없는 통신을 위한 Microsoft 스타일 가이드 에서 제외로 인식하는 용어에 대한 참조가 포함되어 있습니다. 단어 또는 구는 현재 소프트웨어에 표시되므로 일관성을 위해 이 문서에서 사용됩니다. 언어를 제거하도록 소프트웨어가 업데이트되면 이 문서는 맞춤으로 업데이트됩니다.

상속

IDmaChannel 인터페이스는 IUnknown 인터페이스에서 상속됩니다.

메서드

IDmaChannel 인터페이스에는 이러한 메서드가 있습니다.

 
IDmaChannel::AllocateBuffer

AllocateBuffer 메서드는 포트 드라이버 및 DMA 하드웨어에서 액세스할 수 있는 공통 버퍼를 할당합니다.
IDmaChannel::AllocatedBufferSize

AllocatedBufferSize 메서드는 할당된 버퍼의 크기를 반환합니다.
IDmaChannel::BufferSize

BufferSize 메서드는 DMA 채널의 데이터 버퍼 크기(바이트)를 반환합니다.
IDmaChannel::CopyFrom

CopyFrom 메서드는 DMA 채널의 공통 버퍼에서 지정된 대상 버퍼로 샘플 데이터를 복사합니다.
IDmaChannel::CopyTo

CopyTo 메서드는 지정된 원본 버퍼에서 DMA 채널의 공통 버퍼에 샘플 데이터를 복사합니다.
IDmaChannel::FreeBuffer

FreeBuffer 메서드는 IDmaChannel::AllocateBuffer에 대한 이전 호출에 의해 할당된 버퍼를 해제합니다.
IDmaChannel::GetAdapterObject

GetAdapterObject 메서드는 DMA 채널의 하드웨어 어댑터 개체를 반환합니다.
IDmaChannel::MaximumBufferSize

MaximumBufferSize 메서드는 이 DMA 채널 개체가 지원하도록 구성된 가장 큰 버퍼의 크기(바이트)를 반환합니다.
IDmaChannel::P hysicalAddress

PhysicalAddress 메서드는 할당된 버퍼의 실제 주소를 반환합니다.
IDmaChannel::SetBufferSize

SetBufferSize 메서드는 DMA 채널의 현재 버퍼 크기를 설정합니다.
IDmaChannel::SystemAddress

SystemAddress 메서드는 할당된 버퍼의 시스템 주소를 반환합니다.
IDmaChannel::TransferCount

TransferCount 메서드는 현재 하위 DMA 개체에 의해 전송되는 버퍼의 크기(바이트)를 반환합니다.

요구 사항

요구 사항
대상 플랫폼 Windows
헤더 portcls.h