FltRegisterFilter 함수(fltkernel.h)

FltRegisterFilter 는 미니필터 드라이버를 등록합니다.

구문

NTSTATUS FLTAPI FltRegisterFilter(
  [in]  PDRIVER_OBJECT         Driver,
  [in]  const FLT_REGISTRATION *Registration,
  [out] PFLT_FILTER            *RetFilter
);

매개 변수

[in] Driver

미니필터 드라이버의 드라이버 개체에 대한 포인터입니다. 미니필터 드라이버의 DriverEntry 루틴에 입력으로 전달된 것과 동일한 드라이버 개체 포인터여야 합니다.

[in] Registration

호출자가 할당한 미니필터 드라이버 등록 구조(FLT_REGISTRATION)에 대한 포인터입니다.

[out] RetFilter

호출자에 대한 불투명 필터 포인터를 수신하는 호출자가 할당한 변수에 대한 포인터입니다.

반환 값

FltRegisterFilter 는 STATUS_SUCCESS 또는 다음 중 하나와 같은 적절한 NTSTATUS 값을 반환합니다.

반환 코드 설명
STATUS_INSUFFICIENT_RESOURCES
FltRegisterFilter 에서 풀 할당 오류가 발생했습니다. 오류 코드입니다.
STATUS_INVALID_PARAMETER
다음 중 하나
  • 등록 구조의 Version 멤버가 FLT_REGISTRATION_VERSION 설정되지 않았습니다.
  • 등록 구조에서 NULL이 아닌 이름 공급자 루틴 중 하나가 잘못된 값으로 설정되었습니다. FLT_REGISTRATION GenerateFileNameCallback, NormalizeNameComponentCallbackNormalizeNameComponentExCallback 멤버는 이름 공급자 루틴 을 가리킵니 다.
STATUS_INVALID_PARAMETER 오류 코드입니다.
STATUS_FLT_NOT_INITIALIZED
필터가 등록하려고 할 때 필터 관리자가 초기화되지 않았습니다. 필터 관리자가 드라이버로 로드되었는지 확인합니다. 오류 코드입니다.
STATUS_OBJECT_NAME_NOT_FOUND
레지스트리에서 필터 서비스 키를 찾을 수 없습니다.

또는

필터 instance 등록되지 않았습니다.

설명

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

FltRegisterFilter 는 *RetFilter의 미니필터 드라이버에 대한 불투명 필터 포인터를 반환합니다. 이 포인터 값은 미니필터 드라이버를 고유하게 식별하고 미니필터 드라이버가 로드되는 한 일정하게 유지됩니다. 이 포인터는 FltStartFilteringFltUnregisterFilter에 필요한 매개 변수이므로 미니필터 드라이버는 이 포인터를 저장해야 합니다.

FltRegisterFilter를 호출한 후 미니필터 드라이버는 일반적으로 FltStartFiltering을 호출하여 I/O 작업 필터링을 시작합니다.

미니필터 드라이버는 FltRegisterFilter 를 호출하여 다른 미니필터 드라이버가 아닌 자신을 등록할 수 있습니다.

자체 등록을 취소하기 위해 미니필터 드라이버는 FltUnregisterFilter를 호출합니다.

요구 사항

요구 사항
대상 플랫폼 유니버설
헤더 fltkernel.h(Fltkernel.h 포함)
라이브러리 FltMgr.lib
DLL Fltmgr.sys
IRQL <= APC_LEVEL

추가 정보

FLT_REGISTRATION

FltStartFiltering

FltUnregisterFilter