IoRegisterFsRegistrationChange 함수(ntifs.h)

IoRegisterFsRegistrationChange 루틴은 파일 시스템이 자신을 활성 파일 시스템으로 등록하거나 등록 취소할 때마다 호출할 파일 시스템 필터 드라이버의 알림 루틴을 등록합니다.

구문

NTSTATUS IoRegisterFsRegistrationChange(
  [in] PDRIVER_OBJECT          DriverObject,
  [in] PDRIVER_FS_NOTIFICATION DriverNotificationRoutine
);

매개 변수

[in] DriverObject

FS 필터 드라이버의 드라이버 개체에 대한 포인터입니다.

[in] DriverNotificationRoutine

파일 시스템이 자신을 등록하거나 등록 취소할 때 호출하는 PDRIVER_FS_NOTIFICATION 루틴에 대한 포인터입니다.

반환 값

IoRegisterFsRegistrationChange 는 다음 중 하나와 같은 NTSTATUS 값을 반환합니다.

반환 코드 설명
STATUS_SUCCESS 알림 루틴이 성공적으로 등록되었습니다.
STATUS_INSUFFICIENT_RESOURCES 알림 루틴에 대해 알림 패킷을 할당할 수 없습니다.
STATUS_DEVICE_ALREADY_ATTACHED 설명 부분을 참조하세요.
STATUS_NOT_SUPPORTED 레거시 FS 필터 드라이버는 시스템 정책에 의해 차단됩니다. 자세한 내용은 레거시 파일 시스템 필터 드라이버 차단 을 참조하세요.

설명

IoRegisterFsRegistrationChange 는 파일 시스템이 IoRegisterFileSystem 또는 IoUnregisterFileSystem 을 호출할 때마다 알림을 받을 FS 필터 드라이버를 등록 합니다.

이러한 알림 수신을 중지하려면 필터 드라이버가 IoUnregisterFsRegistrationChange를 호출해야 합니다.

FS 필터 드라이버가 IoRegisterFsRegistrationChange를 호출하면 OS는 현재 등록된 모든 파일 시스템에 대해 해당 알림 루틴을 즉시 호출합니다. 등록된 파일 시스템은 이미 IoRegisterFileSystem 을 성공적으로 호출했지만 아직 IoUnregisterFileSystem을 호출하지 않은 시스템입니다. IoRegisterFsRegistrationChange 가 반환되기 전에 호출자의 알림 루틴을 호출할 수 있으므로 필터 드라이버는 이러한 알림을 처리하기 위해 필요한 데이터 구조를 만든 후에야 이 루틴을 호출할 수 있습니다.

IoRegisterFsRegistrationChange 는 RAW 디바이스를 무시합니다. 이름으로 RAW 파일 시스템에 연결하는 방법에 대한 자세한 내용은 필터 디바이스 개체를 대상 디바이스 개체에 연결을 참조하세요.

IoRegisterFsRegistrationChange 는 필터 드라이버의 드라이버 개체에 대한 참조 수를 증가합니다.

IoRegisterFsRegistrationChange 는 다음 조건이 충족되면 STATUS_DEVICE_ALREADY_ATTACHED 반환합니다.

  • FS 필터 드라이버는 그 사이에 IoUnregisterFsRegistrationChange 를 호출하지 않고 연속해서 IoRegisterFsRegistrationChange 를 두 번 호출했습니다.
  • 해당 FS 필터 드라이버는 IoRegisterFsRegistrationChange에 대한 이전 호출에서 등록한 DriverObjectDriverNotificationRoutine에 대해 동일한 값을 전달했습니다.
  • 첫 번째 호출 이후 다른 필터 드라이버가 등록되지 않았습니다.

요구 사항

요구 사항
대상 플랫폼 유니버설
헤더 ntifs.h(Ntifs.h 포함)
라이브러리 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL < DISPATCH_LEVEL

추가 정보

IoRegisterFileSystem

IoRegisterFsRegistrationChangeEx

IoUnregisterFileSystem

IoUnregisterFsRegistrationChange