IoRegisterFsRegistrationChange-Funktion (ntifs.h)

Die IoRegisterFsRegistrationChange-Routine registriert die Benachrichtigungsroutine eines Dateisystemfiltertreibers, die aufgerufen wird, wenn sich ein Dateisystem als aktives Dateisystem registriert oder die Registrierung aufhebt.

Syntax

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

Parameter

[in] DriverObject

Zeiger auf das Treiberobjekt für den FS-Filtertreiber.

[in] DriverNotificationRoutine

Ein Zeiger auf die PDRIVER_FS_NOTIFICATION Routine, die das Dateisystem aufruft, wenn es sich selbst registriert oder die Registrierung auf hebt.

Rückgabewert

IoRegisterFsRegistrationChange gibt einen NTSTATUS-Wert wie einen der folgenden zurück.

Rückgabecode Beschreibung
STATUS_SUCCESS Die Benachrichtigungsroutine wurde erfolgreich registriert.
STATUS_INSUFFICIENT_RESOURCES Ein Benachrichtigungspaket konnte für die Benachrichtigungsroutine nicht zugeordnet werden.
STATUS_DEVICE_ALREADY_ATTACHED Siehe Hinweise.
STATUS_NOT_SUPPORTED Ältere FS-Filtertreiber werden durch die Systemrichtlinie blockiert. Weitere Informationen finden Sie unter Blockieren von Legacy-Dateisystemfiltertreibern .

Hinweise

IoRegisterFsRegistrationChange registriert einen FS-Filtertreiber, der benachrichtigt wird, wenn ein Dateisystem IoRegisterFileSystem oder IoUnregisterFileSystem aufruft.

Um den Empfang solcher Benachrichtigungen zu beenden, sollte der Filtertreiber IoUnregisterFsRegistrationChange aufrufen.

Wenn ein FS-Filtertreiber IoRegisterFsRegistrationChange aufruft, ruft das Betriebssystem seine Benachrichtigungsroutine sofort für alle aktuell registrierten Dateisysteme auf. (Ein registriertes Dateisystem ist ein Dateisystem, das bereits erfolgreich IoRegisterFileSystem aufgerufen hat, aber noch nicht IoUnregisterFileSystem aufgerufen hat.) Da die Benachrichtigungsroutine des Aufrufers bereits aufgerufen werden kann, bevor IoRegisterFsRegistrationChange zurückgegeben wird, sollte ein Filtertreiber diese Routine erst aufrufen, nachdem er alle Datenstrukturen erstellt hat, die er zum Verarbeiten dieser Benachrichtigungen benötigt.

IoRegisterFsRegistrationChange ignoriert RAW-Geräte. Informationen zum Anfügen an das RAW-Dateisystem nach Name finden Sie unter Anfügen des Filtergeräteobjekts an das Zielgeräteobjekt.

IoRegisterFsRegistrationChange erhöht die Verweisanzahl für das Treiberobjekt des Filtertreibers.

IoRegisterFsRegistrationChange gibt STATUS_DEVICE_ALREADY_ATTACHED zurück, wenn die folgenden Bedingungen erfüllt sind:

  • Ein FS-Filtertreiber hat IoRegisterFsRegistrationChange zweimal hintereinander aufgerufen, ohne IoUnregisterFsRegistrationChange dazwischen aufzurufen.
  • Dieser FS-Filtertreiber hat dieselben Werte für driverObject und DriverNotificationRoutine übergeben, die er beim vorherigen Aufruf von IoRegisterFsRegistrationChange registriert hat.
  • Seit dem ersten Aufruf wurden keine anderen Filtertreiber registriert.

Anforderungen

Anforderung Wert
Zielplattform Universell
Header ntifs.h (include Ntifs.h)
Bibliothek NtosKrnl.lib
DLL NtosKrnl.exe
IRQL < DISPATCH_LEVEL

Weitere Informationen

IoRegisterFileSystem

IoRegisterFsRegistrationChangeEx

IoUnregisterFileSystem

IoUnregisterFsRegistrationChange