Share via


WDM 드라이버 유형

WDM 드라이버에는 버스 드라이버, 함수 드라이버 및 필터 드라이버의 세 가지 종류가 있습니다.

  • 버스 드라이버는 개별 I/O 버스 디바이스를 구동하고 디바이스 독립적인 슬롯별 기능을 제공합니다. 또한 버스 드라이버는 버스에 연결된 자식 디바이스를 감지하고 보고합니다.
  • 함수 드라이버는 개별 디바이스를 구동합니다.
  • 필터 드라이버는 디바이스, 디바이스 클래스 또는 버스에 대한 I/O 요청을 필터링합니다.

이 컨텍스트에서 버스 는 다른 물리적, 논리적 또는 가상 디바이스가 연결된 모든 디바이스입니다. 버스에는 SCSI 및 PCI와 같은 기존 버스뿐만 아니라 병렬 포트, 직렬 포트 및 i8042 포트가 포함됩니다.

드라이버 개발자는 다양한 종류의 WDM 드라이버를 이해하고 어떤 종류의 드라이버를 쓰고 있는지 아는 것이 중요합니다. 예를 들어 드라이버가 각 플러그 앤 플레이 IRP를 처리하는지 여부와 이러한 IRP를 처리하는 방법은 기록되는 드라이버 종류(버스 드라이버, 함수 드라이버 또는 필터 드라이버)에 따라 달라집니다.

다음 그림에서는 디바이스에 대한 버스 드라이버, 함수 드라이버 및 필터 드라이버 간의 관계를 보여 줍니다.

가능한 드라이버 계층을 보여 주는 다이어그램

일반적으로 각 디바이스에는 부모 I/O 버스용 버스 드라이버, 디바이스의 함수 드라이버 및 디바이스에 대한 필터 드라이버가 0개 이상 있습니다. 많은 필터 드라이버가 필요한 드라이버 디자인은 최적의 성능을 제공하지 않습니다.

이전 그림의 드라이버는 다음과 같습니다.

  1. 버스 드라이버는 버스 컨트롤러, 어댑터 또는 브리지를 서비스합니다. 버스 드라이버는 필수 드라이버입니다. 컴퓨터의 각 버스 유형에 대해 하나의 버스 드라이버가 있습니다. Microsoft는 가장 일반적인 버스용 버스 드라이버를 제공합니다. IHV 및 OEM은 다른 버스 드라이버를 제공할 수 있습니다.

  2. 버스 필터 드라이버는 일반적으로 버스에 값을 추가하고 Microsoft 또는 시스템 OEM에서 제공합니다. 버스에 대한 버스 필터 드라이버의 수는 있을 수 있습니다.

  3. 하위 수준 필터 드라이버는 일반적으로 디바이스 하드웨어의 동작을 수정합니다. 선택 사항이며 일반적으로 IHV에서 제공됩니다. 디바이스에 대한 하위 수준 필터 드라이버는 여러 개 있을 수 있습니다.

  4. 함수 드라이버는 디바이스의 기본 드라이버입니다. 함수 드라이버는 일반적으로 디바이스 공급업체에서 작성하며 디바이스가 원시 모드에서 사용되지 않는 한 필요합니다.

  5. 상위 수준 필터 드라이버는 일반적으로 디바이스에 대한 부가 가치 기능을 제공합니다. 선택 사항이며 일반적으로 IHV에서 제공됩니다.

다음 topics 버스 드라이버, 함수 드라이버, 필터 드라이버 등 세 가지 일반적인 유형의 WDM 드라이버에 대해 자세히 설명합니다. 또한 샘플 USB 드라이버를 사용하는 WDM 드라이버 계층화의 예도 포함되어 있습니다.

섹션 내용