새 필터 드라이버 만들기
이 항목에서는 Visual Studio를 사용하여 새 필터 드라이버 작성을 시작하는 방법에 대해 설명합니다. 필터 드라이버는 다른 항목에서 다루는 장치 기능 드라이버, 소프트웨어 드라이버 및 파일 시스템 드라이버와는 다릅니다. 필터 드라이버 및 필터 드라이버가 다른 종류의 드라이버와 어떻게 다른지에 대한 자세한 내용은 다음 항목을 참조하세요.
시작하려면 먼저 자신의 필터 드라이버에 적합한 드라이버 모델을 결정합니다. 가장 적합한 모델을 확인하는 데 도움을 얻으려면 드라이버 모델 선택을 참조하세요. 하드웨어 장치에 대한 필터 드라이버를 작성하려는 경우 자신의 장치가 장치 및 드라이버 기술에 설명된 기술 목록에서 어디에 해당하는지 확인합니다. 필터 드라이버 모델 선택에 대한 지침이 있는지 확인하려면 특정 기술의 설명서를 참조하세요. 권장되는 필터 드라이버 모델은 기술마다 다릅니다. 어떤 기술의 설명서에서는 UMDF(사용자 모드 드라이버 프레임워크), KMDF(커널 모드 드라이버 프레임워크) 또는 WDM(Windows 드라이버 모델)을 사용할 것을 권장하고, 다른 기술의 설명서에서는 필터 드라이버를 작성하는 방법에 대한 명확한 세부 정보를 제공합니다. 또한 미니 필터 모델을 사용하는 기술도 있지만, 아예 필터 드라이버 모델에 대한 권장 내용이 없는 기술도 있습니다.
지금부터는 다음 중 자신의 드라이버 모델 권장 사항을 설명하는 사례를 확인하고 단계를 따릅니다.
사례 1: 기술 설명서에서 UMDF를 권장하는 경우
- Visual Studio의 파일 메뉴에서 새로 만들기 | 프로젝트를 선택합니다.
- 새 프로젝트 대화 상자의 왼쪽 창에서 Visual C++ | Windows 드라이버 | WDF를 찾아 선택합니다.
- 가운데 창에서 **사용자 모드 드라이버(UMDF)**를 선택합니다.
- 이름 및 위치 상자에 해당 정보를 입력하고 확인을 클릭합니다. 자세한 내용은 템플릿 기반 UMDF 드라이버 작성을 참조하세요. 참고 새 UMDF 드라이버를 만들 경우 32자 이하의 드라이버 이름을 선택해야 합니다. 길이 제한은 wdfglobals.h에서 정의됩니다.
- 이로써 대부분의 UMDF 드라이버에 필요한 일반 코드를 구현하는 드라이버 프로젝트가 만들어졌습니다. 이제 필터 고유의 코드를 제공할 수 있습니다.
사례 2: 기술 설명서에서 KMDF를 권장하는 경우
- Visual Studio의 파일 메뉴에서 새로 만들기 | 프로젝트를 선택합니다.
- 새 프로젝트 대화 상자의 왼쪽 창에서 WDF를 찾아 선택합니다.
- 가운데 창에서 **KMDF(커널 모드 드라이버)**를 선택합니다.
- 이름 및 위치 상자에 해당 정보를 입력하고 확인을 클릭합니다. 자세한 내용은 템플릿 기반 KMDF 드라이버 작성을 참조하세요. 참고 새 KMDF 드라이버를 만들 경우 32자 이하의 드라이버 이름을 선택해야 합니다. 길이 제한은 wdfglobals.h에서 정의됩니다.
- 이로써 대부분의 KMDF 드라이버에 필요한 일반 코드를 구현하는 드라이버 프로젝트가 만들어졌습니다. 이제 필터 고유의 코드를 제공할 수 있습니다.
사례 3: 기술 설명서에서 특정 필터 또는 미니 필터 모델을 설명하는 경우
장치 기술에 특정 필터 또는 미니 필터 모델이 있는 경우 Visual Studio에 해당 모델에 대한 템플릿이 있는지 확인합니다.
- Visual Studio의 파일 메뉴에서 새로 만들기 | 프로젝트를 선택합니다.
- 새 프로젝트 대화 상자의 왼쪽 창에서 템플릿 | Visual C++ | Windows 드라이버를 찾아 선택합니다.
- 설치된 템플릿 목록을 탐색하여 작성해야 할 필터 유형에 대한 템플릿이 있는지 확인합니다. 예를 들면, 네트워킹 아래에 있는 필터 드라이버: NDIS 템플릿을 선택할 수 있습니다.
- Windows 드라이버 아래에 자신의 필터 드라이버 종류에 해당하는 템플릿이 없으면 온라인을 클릭하고 온라인에서 사용 가능한 템플릿을 찾아봅니다.
- 필터 드라이버 종류에 맞는 템플릿이 있으면 그 템플릿을 선택하고 이름 및 위치 상자에 해당 정보를 입력한 다음 확인을 클릭합니다.
- 이로써 필터 드라이버에 필요한 일반 코드를 구현하는 드라이버 프로젝트가 만들어졌습니다. 이제 필터 고유의 코드를 제공할 수 있습니다. 구현해야 할 기능에 대한 자세한 내용은 기술 설명서를 참조하세요.
자신의 장치 기술에 특정 필터 모델 또는 미니 필터 모델이 있고 이 필터 드라이버 종류에 맞는 템플릿을 찾을 수 없는 경우 UMDF, KMDF 또는 WDM을 사용할지 여부를 결정하려면 기술 설명서를 참조하세요.
사례 4: 기술 설명서에서 WDM을 권장하는 경우
Visual Studio의 파일 메뉴에서 새로 만들기 | 프로젝트를 선택합니다.
Visual Studio의 새 프로젝트 대화 상자에 있는 Windows 드라이버에서 WDM을 선택합니다.
이름 및 위치 상자에 해당 정보를 입력하고 확인을 클릭합니다.
이제 빈 WDM 드라이버 프로젝트가 만들어졌습니다. 솔루션 탐색기 창에서 드라이버 프로젝트를 마우스 오른쪽 단추로 클릭하고 추가 | 새 항목을 선택합니다.
새 항목 추가 대화 상자에서 **C++ 파일(.cpp)**을 선택하고 파일의 이름을 입력한 다음 확인을 클릭합니다.
참고 .cpp 파일 대신 .c 파일을 만들려면 .c 확장명을 가진 이름을 입력합니다.
필터에 필요한 기능을 구현합니다. 기능을 구현하고 구성할 때 .cpp 또는 .c 파일을 추가할 수 있습니다.
사례 5: 기술 설명서에 필터 드라이버 모델에 대한 권장 내용이 없는 경우
UMDF, KMDF 또는 WDM 중 자신의 필터 드라이버에 가장 적합한 모델을 결정합니다. 도움이 필요하면 드라이버 모델 선택을 참조하세요.
Visual Studio의 파일 메뉴에서 새로 만들기 | 프로젝트를 선택합니다.
Visual Studio의 새 프로젝트 대화 상자에 있는 Windows 드라이버에서 다음 템플릿 중 하나를 선택합니다.
- WDF | UMDF(사용자 모드 드라이버)
- WDF | KMDF(커널 모드 드라이버)
- WDM | 빈 커널 드라이버
참고 새 KMDF 또는 UMDF 드라이버를 만들 경우 32자 이하의 드라이버 이름을 선택해야 합니다. 길이 제한은 wdfglobals.h에서 정의됩니다.
필터에 필요한 기능을 구현합니다. 필요에 맞게 .c 또는 .cpp 파일을 만듭니다.
어떤 템플릿을 사용할지 확실치 않으면 Windows 하드웨어 WDK 및 드라이버 개발 포럼을 읽거나 여기에 질문을 게시하세요.