새 필터 드라이버 만들기

이 항목에서는 Visual Studio를 사용하여 새 필터 드라이버 작성을 시작하는 방법을 설명합니다. 필터 드라이버는 다른 topics 다루는 디바이스 함수 드라이버, 소프트웨어 드라이버 및 파일 시스템 드라이버와 다릅니다. 필터 드라이버와 다른 유형의 드라이버와 어떻게 다른지 알아보려면 다음 topics 참조하세요.

시작하려면 먼저 필터 드라이버에 적합한 드라이버 모델을 결정합니다. 가장 적합한 모델을 결정하는 데 도움이 필요하면 드라이버 모델 선택을 참조하세요. 하드웨어 디바이스에 대한 필터 드라이버를 작성하는 경우 디바이스 및 드라이버 기술에 설명된 기술 목록에 디바이스가 적합한 위치를 결정합니다. 필터 드라이버 모델을 선택하기 위한 지침이 있는지 확인하려면 해당 특정 기술에 대한 설명서를 참조하세요. 권장 필터 드라이버 모델은 기술마다 다릅니다. 일부 기술의 경우 설명서에서는 UMDF(사용자 모드 드라이버 프레임워크), KMDF(커널 모드 드라이버 프레임워크) 또는 WDM(Windows 드라이버 모델)을 사용하는 것이 좋습니다. 다른 기술의 경우 설명서에서는 필터 드라이버를 작성하는 방법에 대한 명시적 세부 정보를 제공합니다. 일부 기술에는 미니 필터 모델이 있습니다. 일부 기술의 경우 필터 드라이버 모델에 대한 권장 사항이 없을 수 있습니다.

다음으로, 다음 중 드라이버 모델 권장 사항을 설명하는 사례를 확인하고 단계를 수행합니다.

사례 1: 기술에 대한 설명서에서 UMDF를 권장합니다.

  1. Visual Studio의 파일 메뉴에서 새로 만들기 | 를 선택합니다. 프로젝트.
  2. 새 프로젝트 대화 상자의 왼쪽 창에서 Visual C++ | 를 찾아 선택합니다. Windows 드라이버 | WDF.
  3. 가운데 창에서 UMDF(사용자 모드 드라이버)를 선택합니다.
  4. 이름위치 상자를 입력하고 확인을 선택합니다. 자세한 내용은 템플릿을 기반으로 UMDF 드라이버 작성을 참조하세요. 참고 새 UMDF 드라이버를 만들 때 32자 이하의 드라이버 이름을 선택해야 합니다. 이 길이 제한은 wdfglobals.h에 정의되어 있습니다.
  5. 이 시점에서 대부분의 UMDF 드라이버에 필요한 일반 코드를 구현하는 드라이버 프로젝트가 있습니다. 이제 필터와 관련된 코드를 제공할 수 있습니다.

사례 2: 기술 설명서에서 KMDF를 권장합니다.

  1. Visual Studio의 파일 메뉴에서 새로 만들기 | 를 선택합니다. 프로젝트.
  2. 새 프로젝트 대화 상자의 왼쪽 창에서 WDF를 찾아 선택합니다.
  3. 가운데 창에서 KMDF(커널 모드 드라이버)를 선택합니다.
  4. 이름위치 상자를 입력하고 확인을 선택합니다. 자세한 내용은 템플릿을 기반으로 KMDF 드라이버 작성을 참조하세요. 참고 새 KMDF 드라이버를 만들 때 32자 이하의 드라이버 이름을 선택해야 합니다. 이 길이 제한은 wdfglobals.h에 정의되어 있습니다.
  5. 이 시점에서 대부분의 KMDF 드라이버에 필요한 일반 코드를 구현하는 드라이버 프로젝트가 있습니다. 이제 필터와 관련된 코드를 제공할 수 있습니다.

사례 3: 기술에 대한 설명서에서는 특정 필터 또는 미니 필터 모델을 설명합니다.

디바이스 기술에 특정 필터 또는 미니필터 모델이 있는 경우 검사 Visual Studio에 모델에 대한 템플릿이 있는지 확인합니다.

  1. Visual Studio의 파일 메뉴에서 새로 만들기 | 를 선택합니다. 프로젝트.
  2. 새 프로젝트 대화 상자의 왼쪽 창에서 템플릿 | 을 찾아 선택합니다. Visual C++ | Windows 드라이버.
  3. 설치된 템플릿 목록을 탐색하여 작성해야 하는 필터 유형에 대한 템플릿이 있는지 확인합니다. 예를 들어 네트워킹에서 필터 드라이버: NDIS 템플릿을 선택할 수 있습니다.
  4. Windows 드라이버 아래에 필터 드라이버 유형에 대한 템플릿이 없는 경우 온라인을 선택하고 온라인으로 사용할 수 있는 템플릿을 찾습니다.
  5. 필터 드라이버 유형에 대한 템플릿을 찾으면 템플릿을 선택하고 이름위치 상자를 입력한 다음 확인을 선택합니다.
  6. 이 시점에서 필터 드라이버에 필요한 일반 코드를 구현하는 드라이버 프로젝트가 있습니다. 이제 필터와 관련된 코드를 제공할 수 있습니다. 구현해야 하는 기능에 대해 알아보려면 기술에 대한 설명서를 참조하세요.

디바이스 기술에 특정 필터 모델 또는 미니필터 모델이 있고 필터 드라이버 유형에 대한 템플릿을 찾을 수 없는 경우 기술별 설명서를 참조하여 UMDF, KMDF 또는 WDM을 사용할지 여부를 결정합니다.

사례 4: 기술에 대한 설명서에서 WDM을 권장합니다.

  1. Visual Studio의 파일 메뉴에서 새로 만들기 | 를 선택합니다. 프로젝트.

  2. Visual Studio의 새 프로젝트 대화 상자의 Windows 드라이버에서 WDM을 선택합니다.

  3. 이름위치 상자를 입력하고 확인을 선택합니다.

  4. 이 시점에서 빈 WDM 드라이버 프로젝트가 있습니다. 솔루션 탐색기 창에서 드라이버 프로젝트를 길게 누르거나 마우스 오른쪽 단추로 클릭하고 추가 | 새 항목입니다.

  5. 새 항목 추가 대화 상자에서 C++ 파일(.cpp)을 선택하고 파일 이름을 입력한 다음 확인을 선택합니다.

    참고 .cpp 파일 대신 .c 파일을 만들려면 확장명을 .c 로 지정한 이름을 입력합니다.

  6. 필터에 필요한 함수를 구현합니다. 함수를 구현하고 구성할 때 .cpp 또는 .c 파일을 추가하도록 결정할 수 있습니다.

사례 5: 기술에 대한 설명서에는 필터 드라이버 모델에 대한 권장 사항이 없습니다.

  1. UMDF, KMDF 또는 WDM이 필터 드라이버에 가장 적합한 모델인지 확인합니다. 도움말은 드라이버 모델 선택을 참조하세요.

  2. Visual Studio의 파일 메뉴에서 새로 만들기 | 를 선택합니다. 프로젝트.

  3. Visual Studio의 새 프로젝트 대화 상자의 Windows 드라이버에서 다음 템플릿 중 하나를 선택합니다.

    • WDF | UMDF(사용자 모드 드라이버)
    • WDF | KMDF(커널 모드 드라이버)
    • WDM | 빈 커널 드라이버

    참고 새 KMDF 또는 UMDF 드라이버를 만들 때 32자 이하의 드라이버 이름을 선택해야 합니다. 이 길이 제한은 wdfglobals.h에 정의되어 있습니다.

  4. 필터에 필요한 함수를 구현합니다. 필요에 따라 새 .c 또는 .cpp 파일을 만듭니다.

사용할 템플릿을 잘 모르는 경우 Windows 하드웨어 WDK 및 드라이버 개발 포럼을 읽거나 게시하는 것이 좋습니다.