Condividi tramite


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 restituisce STATUS_SUCCESS se l'operazione ha esito positivo. In caso contrario, FsRtlChangeBackingFileObject restituisce il codice di errore appropriato. La tabella seguente contiene codici di errore che possono essere restituiti 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.

Fabbisogno

Requisito Valore
client minimo supportato La routine FsRtlChangeBackingFileObject è disponibile a partire da Windows Vista.
piattaforma di destinazione Universale
intestazione ntifs.h (include Ntifs.h)
libreria NtosKrnl.lib
dll NtosKrnl.exe
IRQL PASSIVE_LEVEL
regole di conformità DDI PowerIrpDDis(wdm)

Vedere anche

FSRTL_CHANGE_BACKING_TYPE