파일 시스템 필터 드라이버 초기화

파일 시스템 필터 드라이버를 초기화하기 위한 DriverEntry 루틴은 디바이스 드라이버를 초기화하기 위한 DriverEntry 루틴과 매우 유사합니다. 드라이버가 로드되면 드라이버를 로드한 동일한 구성 요소도 드라이버의 DriverEntry 루틴을 호출하여 드라이버를 초기화합니다. 파일 시스템 필터 드라이버의 경우 드라이버를 로드하는 구성 요소는 I/O 관리자(시작 유형이 SERVICE_BOOT_START 필터의 경우) 또는 Service Control Manager(다른 시작 형식의 경우)입니다.

DriverEntry 루틴은 IRQL = PASSIVE_LEVEL 시스템 스레드 컨텍스트에서 실행됩니다. 이 루틴은 페이지 가능할 수 있으며 삭제되도록 INIT 세그먼트에 있어야 합니다. 드라이버 코드를 페이징 가능하게 만드는 방법에 대한 자세한 내용은 MmLockPagableCodeSection의 설명 섹션을 참조하세요.

DriverEntry 루틴은 다음과 같이 정의됩니다.

NTSTATUS 
(*PDRIVER_INITIALIZE) ( 
    IN PDRIVER_OBJECT DriverObject, 
    IN PUNICODE_STRING RegistryPath 
    ); 

이 루틴에는 두 개의 입력 매개 변수가 있습니다. 첫 번째 DriverObject는 파일 시스템 필터 드라이버가 로드될 때 만들어진 드라이버 개체입니다. 두 번째 RegistryPath는 드라이버의 레지스트리 키에 대한 경로를 포함하는 계산된 유니코드 문자열에 대한 포인터입니다.

파일 시스템 필터 드라이버에 대한 DriverEntry 루틴은 다음 단계를 수행합니다.

컨트롤 디바이스 개체 만들기

IRP 디스패치 루틴 등록

빠른 I/O 디스패치 루틴 등록

FsFilter 콜백 루틴 등록

기타 필요한 초기화 수행

[선택 사항] 콜백 루틴 등록

[선택 사항] 레지스트리 경로 문자열의 복사본 저장

상태 반환