Funzione FsRtlChangeBackingFileObject (ntifs.h)
La routine FsRtlChangeBackingFileObject sostituisce l'oggetto file corrente con un nuovo oggetto file.
Sintassi
NTSTATUS FsRtlChangeBackingFileObject(
PFILE_OBJECT CurrentFileObject,
PFILE_OBJECT NewFileObject,
FSRTL_CHANGE_BACKING_TYPE ChangeBackingType,
ULONG Flags
);
Parametri
CurrentFileObject
[in, facoltativo] L'oggetto file corrente. Se CurrentFileObject è NULL, l'oggetto file corrente del sistema operativo è impostato su NewFileObject. Se non è NULL, l'oggetto file di backup viene modificato in NewFileObject solo se l'oggetto file di backup corrente del sistema operativo è uguale a questo valore. Se questo oggetto file non appartiene al flusso, l'operazione non riesce.
NewFileObject
[in] Il nuovo oggetto file a cui il sistema operativo farà riferimento e archivierà internamente.
ChangeBackingType
[in] Valore di enumerazione FSRTL_CHANGE_BACKING_TYPE che indica quale struttura interna deve essere modificata per fare riferimento NewFileObject.
Flags
[in] Riservato per uso futuro.
Valore restituito
La routine FsRtlChangeBackingFileObject
Codice restituito | Descrizione |
---|---|
STATUS_INVALID_PARAMETER_2 | L'operazione di modifica non è riuscita perché l'oggetto file che NewFileObject specifica non rappresenta lo stesso flusso di CurrentFileObject. |
STATUS_INVALID_PARAMETER_3 | L'operazione di modifica non è riuscita perché il chiamante ha specificato un tipo di supporto non valido in ChangeBackingType. |
STATUS_INVALID_PARAMETER_4 | L'operazione di modifica non è riuscita perché il chiamante ha specificato un valore non valido in Flag. |
STATUS_NOT_SUPPORTED | L'operazione di modifica non è riuscita perché il chiamante ha ottenuto l'oggetto file in modo che non consenta lo scambio successivo dell'oggetto file. Ad esempio, se il chiamante ha ottenuto l'oggetto file con una chiamata a CcGetFileObjectFromSectionPtrs, non è sicuro scambiare l'oggetto file. |
Osservazioni
La routine FsRtlChangeBackingFileObject modifica l'oggetto file per uno dei seguenti:
Una delle aree di controllo delle immagini di Gestione memoria per il flusso
Area di controllo dei dati di Gestione memoria per il flusso
Mappa della cache condivisa di Gestione cache per il flusso
La routine FsRtlChangeBackingFileObject non è sincrona. Elabora la richiesta di modifica dell'oggetto file e restituisce immediatamente. Gestione cache e Gestione memoria sincronizzano la modifica dell'oggetto file e non liberano l'oggetto file precedente finché non vengono completate tutte le operazioni incomplete associate all'oggetto file precedente. Uno stato restituito di STATUS_SUCCESS da FsRtlChangeBackingFileObject non significa che il sistema operativo abbia già modificato l'oggetto file.
Tuttavia, dopo l'esecuzione di FsRtlChangeBackingFileObject, il sistema operativo associa tutte le operazioni future al nuovo oggetto file.
Per modificare l'oggetto file per più tipi di supporto, il chiamante deve chiamare FsRtlChangeBackingFileObject più volte, una volta per ogni tipo di supporto da modificare.