다음을 통해 공유


패킷 기반 시스템 DMA 사용

패킷 기반 DMA를 사용하는 하위 디바이스의 드라이버는 DMA 전송을 요청하는 IRP를 처리할 때 다음과 같은 일반 지원 루틴 시퀀스를 호출합니다.

IoGetDmaAdapter에서 반환된 어댑터 개체 포인터는 Irp-MdlAddress>에 전달된 MDL에 대한 포인터가 필요한 KeFlushIoBuffersMmGetMdlVirtualAddress를 제외한 이러한 각 루틴에 필요한 매개 변수입니다.

개별 드라이버는 각 드라이버가 디바이스를 서비스하기 위해 구현되는 방법에 따라 서로 다른 지점에서 이 일련의 지원 루틴을 호출합니다. 예를 들어 한 드라이버의 StartIo 루틴이 AllocateAdapterChannel을 호출할 수 있고, 다른 드라이버는 드라이버가 만든 연동 큐에서 IRP를 제거하는 루틴에서 이 호출을 수행할 수 있으며, 다른 드라이버는 하위 DMA 디바이스가 데이터를 전송할 준비가 되었음을 나타낼 때 이 호출을 수행할 수 있습니다.