다음을 통해 공유


어댑터 개체 소개

직접 I/O 및 DMA를 사용하는 모든 드라이버는 어댑터 개체를 만들어야 합니다. 어댑터 개체는 DMA 컨트롤러 채널 또는 포트 또는 버스 마스터 디바이스를 나타냅니다.

두 종류의 최저 수준 드라이버는 어댑터 개체를 사용해야 합니다.

  • 시스템 DMA 컨트롤러를 사용하는 디바이스용 드라이버입니다. 이러한 디바이스는 하위 디바이스 라고 하며 "시스템(또는 하위) DMA를 사용"이라고 합니다.

  • 버스 마스터 어댑터인 디바이스용 드라이버입니다. 이러한 디바이스는 I/O 버스를 사용하기 위해 시스템과 중재되므로 버스 마스터 DMA를 사용합니다.

드라이버는 일반적으로 디바이스 확장에서 어댑터 개체에 대한 포인터에 대한 스토리지를 제공합니다.

DMA 전송을 수행하기 위해 이러한 DMA 메서드 중 하나를 사용하는 디바이스의 드라이버에는 일반적으로 AdapterControl 루틴이 있으며 어댑터 개체를 조작하는 시스템 제공 지원 루틴을 호출합니다. ( AdapterControl 루틴이 필요하지 않은 드라이버에는 분산/수집 DMA를 사용하는 드라이버와 공통 버퍼인 버스 마스터 DMA를 사용하는 드라이버가 포함됩니다.)

디바이스 시작 작업의 일부로 DMA 작업을 처리하는 드라이버는 I/O 관리자를 호출하며, 이 관리자는 플랫폼별 HAL을 호출하여 어댑터 개체 집합을 만듭니다. 모든 Windows 플랫폼에서 어댑터 개체 집합에는 다음을 위한 어댑터 개체가 포함됩니다.

  • 하위 디바이스가 연결된 각 시스템 DMA 컨트롤러 채널 또는 포트입니다.

  • 컴퓨터의 각 버스 마스터 DMA 디바이스입니다.

I/O 관리자와 HAL은 함께 작동하여 디바이스의 DMA 기능 및 시스템 구성에 따라 적절한 어댑터 개체를 할당합니다.

(버스 마스터 DMA를 사용할 수 있는 SCSI 디바이스의 경우 SCSI 포트 드라이버는 HBA별 SCSI 미니포트 드라이버에 대한 어댑터 개체를 설정합니다. 미니포트 드라이버의 HwScsiFindAdapter 루틴은 포트 드라이버에 어댑터별 데이터를 제공합니다.)

드라이버에서 어댑터 개체 및 AdapterControl 루틴을 사용하는 시기와 방법에 대한 자세한 내용은 이 섹션과 Bus-Master DMA 사용을 참조하세요.

디바이스 드라이버용 DMA 다시 매핑 활성화