Función IoRegisterFsRegistrationChange (ntifs.h)

La rutina IoRegisterFsRegistrationChange registra una rutina de notificación del controlador de filtro de archivos que se llamará cada vez que un sistema de archivos se registra o anula el registro como un sistema de archivos activo.

Sintaxis

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

Parámetros

[in] DriverObject

Puntero al objeto de controlador para el controlador de filtro FS.

[in] DriverNotificationRoutine

Puntero a la rutina PDRIVER_FS_NOTIFICATION , a la que el sistema de archivos llama cuando se registra o anula el registro.

Valor devuelto

IoRegisterFsRegistrationChange devuelve un valor NTSTATUS como uno de los siguientes.

Código devuelto Descripción
STATUS_SUCCESS La rutina de notificación se registró correctamente.
STATUS_INSUFFICIENT_RESOURCES No se pudo asignar un paquete de notificación para la rutina de notificación.
STATUS_DEVICE_ALREADY_ATTACHED Vea la sección Comentarios.
STATUS_NOT_SUPPORTED La directiva del sistema bloquea los controladores de filtro de FS heredados. Consulte Bloqueo de controladores de filtro de sistema de archivos heredados para obtener más información.

Comentarios

IoRegisterFsRegistrationChange registra un controlador de filtro FS para recibir una notificación cada vez que un sistema de archivos llama a IoRegisterFileSystem o IoUnregisterFileSystem.

Para dejar de recibir estas notificaciones, el controlador de filtro debe llamar a IoUnregisterFsRegistrationChange.

Cuando un controlador de filtro de FS llama a IoRegisterFsRegistrationChange, el sistema operativo llama a su rutina de notificación inmediatamente para todos los sistemas de archivos registrados actualmente. (Un sistema de archivos registrado es uno que ya se ha llamado correctamente IoRegisterFileSystem , pero que aún no ha llamado IoUnregisterFileSystem). Dado que se puede llamar a la rutina de notificación del autor de la llamada incluso antes de que se devuelva IoRegisterFsRegistrationChange , un controlador de filtro no debe llamar a esta rutina hasta que haya creado ninguna estructura de datos que necesite para procesar estas notificaciones.

IoRegisterFsRegistrationChange omite los dispositivos RAW. Para obtener información sobre cómo adjuntar al sistema de archivos RAW por nombre, vea Adjuntar el objeto de dispositivo de filtro al objeto de dispositivo de destino.

IoRegisterFsRegistrationChange incrementa el recuento de referencias en el objeto de controlador del controlador de filtro.

IoRegisterFsRegistrationChange devuelve STATUS_DEVICE_ALREADY_ATTACHED si se cumplen las condiciones siguientes:

  • Un controlador de filtro FS ha llamado a IoRegisterFsRegistrationChange dos veces en sucesión sin llamar a IoUnregisterFsRegistrationChange entre ellos.
  • Ese controlador de filtro de FS ha pasado los mismos valores para DriverObject y DriverNotificationRoutine que registró en la llamada anterior a IoRegisterFsRegistrationChange.
  • Ningún otro controlador de filtro se ha registrado desde la primera llamada.

Requisitos

Requisito Value
Plataforma de destino Universal
Encabezado ntifs.h (incluya Ntifs.h)
Library NtosKrnl.lib
Archivo DLL NtosKrnl.exe
IRQL < DISPATCH_LEVEL

Consulte también

IoRegisterFileSystem

IoRegisterFsRegistrationChangeEx

IoUnregisterFileSystem

IoUnregisterFsRegistrationChange