드라이버 모델 선택

Microsoft Windows는 드라이버를 작성하는 데 사용할 수 있는 다양한 드라이버 모델을 제공합니다. 최상의 드라이버 모델을 선택하는 전략은 작성하려는 드라이버 유형에 따라 달라집니다. 옵션은 다음과 같습니다.

  • 디바이스 함수 드라이버
  • 디바이스 필터 드라이버
  • 소프트웨어 드라이버
  • 파일 시스템 필터 드라이버
  • 파일 시스템 드라이버

다양한 유형의 드라이버 간의 차이점에 대한 자세한 내용은 드라이버란?디바이스 노드 및 디바이스 스택을 참조하세요. 다음 섹션에서는 각 드라이버 유형에 대한 모델을 선택하는 방법을 설명합니다.

디바이스 함수 드라이버에 대한 드라이버 모델 선택

하드웨어 디바이스를 디자인할 때 고려해야 할 첫 번째 사항 중 하나는 함수 드라이버를 작성해야 하는지 여부입니다. 다음과 같은 질문을 해 보세요.

드라이버를 완전히 쓰지 않아도 될까요? 함수 드라이버를 작성해야 하는 경우 사용하기에 가장 적합한 드라이버 모델은 무엇인가요? 이러한 질문에 답하려면 디바이스 및 드라이버 기술에 설명된 기술 목록에 디바이스가 적합한 위치를 결정합니다. 해당 특정 기술에 대한 설명서를 참조하여 함수 드라이버를 작성해야 하는지 여부를 확인하고 디바이스에 사용할 수 있는 드라이버 모델에 대해 알아봅니다.

일부 개별 기술에는 미니 드라이버 모델이 있습니다. 미니 드라이버 모델에서 디바이스 드라이버는 일반 작업을 처리하는 부분과 디바이스별 작업을 처리하는 두 부분으로 구성됩니다. 일반적으로 Microsoft는 일반 부분을 작성하고 디바이스 제조업체는 디바이스별 부분을 씁니다. 디바이스 특정 부분에는 다양한 이름이 있으며, 대부분은 접두사 mini를 공유합니다. 다음은 미니 드라이버 모델에 사용되는 이름 중 일부입니다.

  • 미니포트 드라이버 표시
  • 오디오 미니포트 드라이버
  • 배터리 미니클래스 드라이버
  • Bluetooth 프로토콜 드라이버
  • HID 미니 드라이버
  • WIA 미니드라이버
  • NDIS 미니포트 드라이버
  • 스토리지 미니포트 드라이버
  • 스트리밍 미니드라이버

미니 드라이버 모델에 대한 개요는 미니 드라이버 및 드라이버 쌍을 참조하세요.

디바이스 및 드라이버 기술에 나열된 모든 기술에 전용 미니 드라이버 모델이 있는 것은 아닙니다. 특정 기술에 대한 설명서에서는 KMDF(커널 모드 드라이버 프레임워크)를 사용하는 것이 좋습니다. 다른 기술에 대한 설명서에서는 UMDF(사용자 모드 드라이버 프레임워크)를 사용하는 것이 좋습니다. 핵심은 특정 디바이스 기술에 대한 설명서를 검토하여 시작해야 한다는 것입니다. 디바이스 기술에 미니 드라이버 모델이 있는 경우 미니 드라이버 모델을 사용해야 합니다. 그렇지 않으면 UMDF, KMDF 또는 WDM(Windows 드라이버 모델)을 사용할지 여부에 대한 기술별 설명서의 조언을 따릅니다.

디바이스 필터 드라이버에 대한 드라이버 모델 선택

여러 드라이버가 단일 I/O 요청에 참여하는 경우가 많습니다(예: 디바이스에서 데이터 읽기). 드라이버는 스택에 계층화되며 스택을 시각화하는 일반적인 방법은 맨 위에 첫 번째 드라이버가 있고 맨 아래에 마지막 드라이버가 있는 것입니다. 스택에는 하나의 함수 드라이버가 있으며 필터 드라이버도 있을 수 있습니다. 함수 드라이버 및 필터 드라이버에 대한 자세한 내용은 드라이버란?디바이스 노드 및 디바이스 스택을 참조하세요.

디바이스에 대한 필터 드라이버를 작성할 준비를 하는 경우 디바이스 및 드라이버 기술에 설명된 기술 목록에 디바이스가 적합한 위치를 결정합니다. 특정 디바이스 기술에 대한 설명서에 필터 드라이버 모델 선택에 대한 지침이 있는지 확인합니다. 디바이스 기술에 대한 설명서에서 이 지침을 제공하지 않는 경우 먼저 UMDF를 드라이버 모델로 사용하는 것이 좋습니다. 필터 드라이버가 UMDF를 통해 사용할 수 없는 데이터 구조에 액세스해야 하는 경우 KMDF를 드라이버 모델로 사용하는 것이 좋습니다. 드물게 드라이버가 KMDF를 통해 사용할 수 없는 데이터 구조에 액세스해야 하는 경우 WDM을 드라이버 모델로 사용합니다.

소프트웨어 드라이버에 대한 드라이버 모델 선택

디바이스와 연결되지 않은 드라이버를 소프트웨어 드라이버라고 합니다. 소프트웨어 드라이버에 대한 자세한 내용은 드라이버란? 항목을 참조하세요. 소프트웨어 드라이버는 커널 모드에서 실행할 수 있으므로 보호된 운영 체제 데이터에 액세스할 수 있으므로 유용합니다. 프로세서 모드에 대한 자세한 내용은 사용자 모드 및 커널 모드를 참조하세요.

소프트웨어 드라이버의 경우 두 가지 옵션은 KMDF와 레거시 Windows NT 드라이버 모델입니다. KMDF와 레거시 Windows NT 모델을 모두 사용하면 플러그 앤 플레이(PnP) 및 전원 관리에 대해 걱정하지 않고 드라이버를 작성할 수 있습니다. 대신 드라이버의 기본 작업에 집중할 수 있습니다. KMDF를 사용하면 프레임워크가 PnP 및 전원을 처리하기 때문에 PnP 및 전원에 신경을 맡을 필요가 없습니다. 레거시 Windows NT 모델을 사용하면 커널 모드 서비스가 PnP 및 전원 관리와 완전히 독립적인 환경에서 작동하기 때문에 PnP 및 전원에 대해 걱정할 필요가 없습니다.

특히 이미 잘 알고 있는 경우 KMDF를 사용하는 것이 좋습니다. 드라이버가 PnP 및 전원 관리와 완전히 독립적이되도록 하려면 레거시 Windows NT 모델을 사용합니다. 전원 전환 또는 PnP 이벤트를 인식하는 소프트웨어 드라이버를 작성해야 하는 경우 레거시 Windows NT 모델을 사용할 수 없습니다. KMDF를 사용해야 합니다.

참고 PnP 또는 전원 이벤트를 인식하는 소프트웨어 드라이버를 작성해야 하고 드라이버가 KMDF를 통해 사용할 수 없는 데이터에 액세스해야 하는 경우 WDM을 사용해야 합니다.

파일 시스템 드라이버에 대한 드라이버 모델 선택

파일 시스템 드라이버의 모델 선택에 대한 도움말은 파일 시스템 드라이버 샘플을 참조하세요. 파일 시스템 드라이버는 매우 복잡할 수 있으며 드라이버 개발을 위한 고급 개념에 대한 지식이 필요할 수 있습니다.

파일 시스템 필터 드라이버에 대한 드라이버 모델 선택

파일 시스템 필터 드라이버에 대한 모델을 선택하는 방법에 대한 도움말은 파일 시스템 미니필터 드라이버 및 파일 시스템 필터 드라이버를 참조하세요.

파일 시스템 미니필터 드라이버에 대한 드라이버 모델 선택

파일 시스템 미니필터 드라이버에 대한 모델을 선택하는 데 도움이 필요하면 파일 시스템 미니필터 드라이버를 참조하세요.

커널 모드 드라이버 프레임워크

사용자 모드 드라이버 프레임워크