FsRtlChangeBackingFileObject, fonction (ntifs.h)
La routine FsRtlChangeBackingFileObject remplace l’objet de fichier actif par un nouvel objet de fichier.
Syntaxe
NTSTATUS FsRtlChangeBackingFileObject(
PFILE_OBJECT CurrentFileObject,
PFILE_OBJECT NewFileObject,
FSRTL_CHANGE_BACKING_TYPE ChangeBackingType,
ULONG Flags
);
Paramètres
CurrentFileObject
[in, facultatif] l’objet fichier actif. Si currentFileObject est null, l’objet de fichier actuel du système d’exploitation est défini sur NewFileObject. S’il n’est pas NULL, l’objet de fichier de stockage est remplacé par NewFileObject uniquement si l’objet de fichier de stockage actuel du système d’exploitation est égal à cette valeur. Si cet objet de fichier n’appartient pas au flux, l’opération échoue.
NewFileObject
[in] Le nouvel objet de fichier que le système d’exploitation référence et stocke en interne.
ChangeBackingType
[in] Valeur d’énumération de FSRTL_CHANGE_BACKING_TYPE qui indique quelle structure interne doit être modifiée pour référencer NewFileObject.
Flags
[in] réservé pour une utilisation ultérieure.
Valeur de retour
La routine FsRtlChangeBackingFileObject retourne STATUS_SUCCESS si l’opération réussit. Sinon, FsRtlChangeBackingFileObject retourne le code d’erreur approprié. Le tableau suivant contient des codes d’erreur qui FsRtlChangeBackingFileObject peuvent retourner.
Retourner le code | Description |
---|---|
STATUS_INVALID_PARAMETER_2 | L’opération de modification a échoué, car l’objet de fichier qui NewFileObject spécifie ne représente pas le même flux que CurrentFileObject. |
STATUS_INVALID_PARAMETER_3 | L’opération de modification a échoué, car l’appelant a spécifié un type de stockage non valide dans ChangeBackingType. |
STATUS_INVALID_PARAMETER_4 | L’opération de modification a échoué, car l’appelant a spécifié une valeur non valide dans Indicateurs. |
STATUS_NOT_SUPPORTED | L’opération de modification a échoué, car l’appelant a obtenu l’objet de fichier d’une manière qui n’autorise pas l’échange ultérieur de l’objet fichier. Par exemple, si l’appelant a obtenu l’objet de fichier avec un appel à CcGetFileObjectFromSectionPtrs, il n’est pas sûr de permuter l’objet de fichier. |
Remarques
La routine FsRtlChangeBackingFileObject modifie l’objet de fichier pour l’une des opérations suivantes :
Une des zones de contrôle d’image du gestionnaire de mémoire pour le flux
Zone de contrôle des données du gestionnaire de mémoire pour le flux
Mappage du cache partagé du gestionnaire de cache pour le flux
La routine FsRtlChangeBackingFileObject n’est pas synchrone. Il traite la demande d’un changement d’objet de fichier et retourne immédiatement. Le gestionnaire de cache et le gestionnaire de mémoire synchronisent la modification de l’objet de fichier et ne libèreront pas l’ancien objet de fichier tant que toutes les opérations incomplètes associées à l’ancien objet de fichier n’ont pas terminé. Un état de retour de STATUS_SUCCESS de FsRtlChangeBackingFileObject ne signifie pas que le système d’exploitation a déjà modifié l’objet de fichier.
Toutefois, après FsRtlChangeBackingFileObject s’exécute correctement, le système d’exploitation associe toutes les opérations futures au nouvel objet de fichier.
Pour modifier l’objet de fichier pour plusieurs types de stockage, l’appelant doit appeler FsRtlChangeBackingFileObject plusieurs fois, une fois pour chaque type de stockage à modifier.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | La routine FsRtlChangeBackingFileObject est disponible à partir de Windows Vista. |
plateforme cible | Universel |
d’en-tête | ntifs.h (include Ntifs.h) |
bibliothèque | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
règles de conformité DDI | PowerIrpDDis(wdm) |