미니필터 드라이버 등록

모든 미니필터 드라이버는 DriverEntry 루틴에서 FltRegisterFilter를 호출하여 등록된 미니필터 드라이버의 전역 목록에 자신을 추가하고 필터 관리자에게 콜백 루틴 목록 및 드라이버에 대한 기타 정보를 제공해야 합니다.

MiniSpy 샘플에서 미니필터 드라이버는 다음 코드 예제와 같이 등록됩니다.

NTSTATUS status;
status = FltRegisterFilter(
           DriverObject,                  //Driver
           &FilterRegistration,           //Registration
           &MiniSpyData.FilterHandle);    //RetFilter

FltRegisterFilter 에는 두 개의 입력 매개 변수가 있습니다. 첫 번째 Driver는 미니필터 드라이버가 DriverEntry 루틴에 대한 DriverObject 입력 매개 변수로 받은 드라이버 개체 포인터입니다. 두 번째 등록은 미니필터 드라이버의 콜백 루틴에 대한 진입점을 포함하는 FLT_REGISTRATION 구조체에 대한 포인터입니다.

또한 FltRegisterFilter 에는 미니필터 드라이버에 대한 불투명 필터 포인터를 수신하는 출력 매개 변수 RetFilter가 있습니다. 이 필터 포인터는 FltStartFilteringFltUnregisterFilter를 비롯한 많은 FltXxx 지원 루틴에 필요한 입력 매개 변수입니다.