FsRtlChangeBackingFileObject-Funktion (ntifs.h)
Die FsRtlChangeBackingFileObject-Routine ersetzt das aktuelle Dateiobjekt durch ein neues Dateiobjekt.
Syntax
NTSTATUS FsRtlChangeBackingFileObject(
PFILE_OBJECT CurrentFileObject,
PFILE_OBJECT NewFileObject,
FSRTL_CHANGE_BACKING_TYPE ChangeBackingType,
ULONG Flags
);
Parameter
CurrentFileObject
[in, optional] Das aktuelle Dateiobjekt. Wenn CurrentFileObjectNULL ist, wird das aktuelle Dateiobjekt des Betriebssystems auf NewFileObject festgelegt. Wenn es nicht NULL ist, wird das Sicherungsdateiobjekt nur dann in NewFileObject geändert, wenn das aktuelle Sicherungsdateiobjekt des Betriebssystems diesem Wert entspricht. Wenn dieses Dateiobjekt nicht zum Stream gehört, schlägt der Vorgang fehl.
NewFileObject
[in] Das neue Dateiobjekt, auf das das Betriebssystem intern verweist und speichert.
ChangeBackingType
[in] Ein FSRTL_CHANGE_BACKING_TYPE Enumerationswert, der angibt, welche interne Struktur geändert werden soll, um auf NewFileObject zu verweisen.
Flags
[in] Reserviert für die zukünftige Verwendung.
Rückgabewert
Die FsRtlChangeBackingFileObject-Routine gibt STATUS_SUCCESS zurück, wenn der Vorgang erfolgreich ist. Andernfalls gibt FsRtlChangeBackingFileObject den entsprechenden Fehlercode zurück. Die folgende Tabelle enthält Fehlercodes, die FsRtlChangeBackingFileObject möglicherweise zurückgibt.
Rückgabecode | Beschreibung |
---|---|
STATUS_INVALID_PARAMETER_2 | Der Änderungsvorgang ist fehlgeschlagen, da das dateiobjekt, das NewFileObject angibt, nicht denselben Stream wie CurrentFileObject darstellt. |
STATUS_INVALID_PARAMETER_3 | Der Änderungsvorgang ist fehlgeschlagen, weil der Aufrufer in ChangeBackingType einen ungültigen Sicherungstyp angegeben hat. |
STATUS_INVALID_PARAMETER_4 | Fehler beim Änderungsvorgang, weil der Aufrufer in Flags einen ungültigen Wert angegeben hat. |
STATUS_NOT_SUPPORTED | Der Änderungsvorgang ist fehlgeschlagen, weil der Aufrufer das Dateiobjekt auf eine Weise abgerufen hat, die das nachfolgende Austauschen des Dateiobjekts nicht zulässt. Wenn der Aufrufer beispielsweise das Dateiobjekt mit einem Aufruf von CcGetFileObjectFromSectionPtrs abgerufen hat, ist es nicht sicher, das Dateiobjekt zu tauschen. |
Hinweise
Die FsRtlChangeBackingFileObject-Routine ändert das Dateiobjekt für eines der folgenden:
Einer der Bildkontrollbereiche des Speicher-Managers für den Stream
Der Datenkontrollbereich des Speicher-Managers für den Stream
Die freigegebene Cachezuordnung des Cache-Managers für den Stream
Die FsRtlChangeBackingFileObject-Routine ist nicht synchron. Es verarbeitet die Anforderung für eine Änderung des Dateiobjekts und gibt sofort zurück. Der Cache-Manager und der Speicher-Manager synchronisieren die Änderung des Dateiobjekts und geben das alte Dateiobjekt erst frei, wenn alle unvollständigen Vorgänge abgeschlossen sind, die dem alten Dateiobjekt zugeordnet sind. Eine Rückgabe status von STATUS_SUCCESS aus FsRtlChangeBackingFileObject bedeutet nicht, dass das Betriebssystem das Dateiobjekt bereits geändert hat.
Nachdem FsRtlChangeBackingFileObject jedoch erfolgreich ausgeführt wurde, ordnet das Betriebssystem alle zukünftigen Vorgänge dem neuen Dateiobjekt zu.
Um das Dateiobjekt für mehr als einen Sicherungstyp zu ändern, muss der Aufrufer FsRtlChangeBackingFileObject mehrmals aufrufen, damit sich jeder Unterstützungstyp ändern kann.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Die FsRtlChangeBackingFileObject-Routine ist ab Windows Vista verfügbar. |
Zielplattform | Universell |
Header | ntifs.h (include Ntifs.h) |
Bibliothek | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
DDI-Complianceregeln | PowerIrpDDis(wdm) |