Fonction IoRegisterFsRegistrationChange (ntifs.h)

La routine IoRegisterFsRegistrationChange enregistre la routine de notification d’un pilote de filtre de système de fichiers à appeler chaque fois qu’un système de fichiers s’inscrit ou se désinscrit en tant que système de fichiers actif.

Syntaxe

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

Paramètres

[in] DriverObject

Pointeur vers l’objet driver pour le pilote de filtre FS.

[in] DriverNotificationRoutine

Pointeur vers la routine PDRIVER_FS_NOTIFICATION que le système de fichiers appelle lorsqu’il s’inscrit ou se désinscrit.

Valeur retournée

IoRegisterFsRegistrationChange retourne une valeur NTSTATUS telle que l’une des valeurs suivantes.

Code de retour Description
STATUS_SUCCESS La routine de notification a été correctement inscrite.
STATUS_INSUFFICIENT_RESOURCES Impossible d’allouer un paquet de notification à la routine de notification.
STATUS_DEVICE_ALREADY_ATTACHED Consultez la section Notes.
STATUS_NOT_SUPPORTED Les pilotes de filtre FS hérités sont bloqués par la stratégie système. Pour plus d’informations, consultez Blocage des pilotes de filtre de système de fichiers hérités .

Remarques

IoRegisterFsRegistrationChange inscrit un pilote de filtre FS pour être averti chaque fois qu’un système de fichiers appelle IoRegisterFileSystem ou IoUnregisterFileSystem.

Pour arrêter de recevoir ces notifications, le pilote de filtre doit appeler IoUnregisterFsRegistrationChange.

Lorsqu’un pilote de filtre FS appelle IoRegisterFsRegistrationChange, le système d’exploitation appelle immédiatement sa routine de notification pour tous les systèmes de fichiers actuellement inscrits. (Un système de fichiers inscrit est un système qui a déjà appelé avec succès IoRegisterFileSystem , mais qui n’a pas encore appelé IoUnregisterFileSystem.) Étant donné que la routine de notification de l’appelant peut être appelée avant même le retour de IoRegisterFsRegistrationChange , un pilote de filtre ne doit pas appeler cette routine tant qu’il n’a pas créé les structures de données dont il a besoin pour traiter ces notifications.

IoRegisterFsRegistrationChange ignore les appareils RAW. Pour plus d’informations sur l’attachement au système de fichiers RAW par nom, consultez Attaching the Filter Device Object to the Target Device Object.

IoRegisterFsRegistrationChange incrémente le nombre de références sur l’objet pilote du pilote de filtre.

IoRegisterFsRegistrationChange retourne STATUS_DEVICE_ALREADY_ATTACHED si les conditions suivantes sont remplies :

  • Un pilote de filtre FS a appelé IoRegisterFsRegistrationChange deux fois de suite sans appeler IoUnregisterFsRegistrationChange entre les deux.
  • Ce pilote de filtre FS a passé les mêmes valeurs pour driverObject et DriverNotificationRoutine qu’il a enregistrées lors de l’appel précédent à IoRegisterFsRegistrationChange.
  • Aucun autre pilote de filtre n’a été inscrit depuis le premier appel.

Configuration requise

Condition requise Valeur
Plateforme cible Universal
En-tête ntifs.h (include Ntifs.h)
Bibliothèque NtosKrnl.lib
DLL NtosKrnl.exe
IRQL < DISPATCH_LEVEL

Voir aussi

IoRegisterFileSystem

IoRegisterFsRegistrationChangeEx

IoUnregisterFileSystem

IoUnregisterFsRegistrationChange