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] 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 ha esito negativo.

NewFileObject

[in] Nuovo oggetto file a cui farà riferimento il sistema operativo e che archivierà internamente.

ChangeBackingType

[in] Valore di enumerazione FSRTL_CHANGE_BACKING_TYPE che indica quale struttura interna deve essere modificata per fare riferimento a NewFileObject.

Flags

[in] Riservato per l'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 restituiti da FsRtlChangeBackingFileObject .

Codice restituito Descrizione
STATUS_INVALID_PARAMETER_2 L'operazione di modifica non è riuscita perché l'oggetto file specificato da NewFileObject 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 backup non valido in ChangeBackingType.
STATUS_INVALID_PARAMETER_4 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.

Commenti

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 immediatamente 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 fino a quando non sono state completate tutte le operazioni incomplete associate all'oggetto file precedente. Lo stato restituito di STATUS_SUCCESS da FsRtlChangeBackingFileObject non significa che il sistema operativo ha 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ù di un tipo di backup, il chiamante deve chiamare FsRtlChangeBackingFileObject più volte, una volta per ogni tipo di backup da modificare.

Requisiti

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)

Vedi anche

FSRTL_CHANGE_BACKING_TYPE