Compartir a través de


Función FsRtlChangeBackingFileObject (ntifs.h)

La rutina de FsRtlChangeBackingFileObject reemplaza el objeto de archivo actual por un nuevo objeto de archivo.

Sintaxis

NTSTATUS FsRtlChangeBackingFileObject(
  PFILE_OBJECT              CurrentFileObject,
  PFILE_OBJECT              NewFileObject,
  FSRTL_CHANGE_BACKING_TYPE ChangeBackingType,
  ULONG                     Flags
);

Parámetros

CurrentFileObject

[in, opcional] El objeto de archivo actual. Si CurrentFileObject es null, el objeto de archivo actual del sistema operativo se establece en NewFileObject. Si no es NULL, el objeto de archivo de respaldo se cambia a NewFileObject solo si el objeto de archivo de respaldo actual del sistema operativo es igual a este valor. Si este objeto de archivo no pertenece a la secuencia, se produce un error en la operación.

NewFileObject

[in] El nuevo objeto de archivo al que hará referencia el sistema operativo y almacenará internamente.

ChangeBackingType

[in] Valor de enumeración FSRTL_CHANGE_BACKING_TYPE que indica qué estructura interna se debe cambiar para hacer referencia a NewFileObject.

Flags

[in] Reservado para uso futuro.

Valor devuelto

La rutina FsRtlChangeBackingFileObject devuelve STATUS_SUCCESS si la operación se realiza correctamente. De lo contrario, FsRtlChangeBackingFileObject devuelve el código de error adecuado. La tabla siguiente contiene códigos de error que FsRtlChangeBackingFileObject podría devolver.

Código devuelto Descripción
STATUS_INVALID_PARAMETER_2 Error en la operación de cambio porque el objeto de archivo que NewFileObject especifica no representa la misma secuencia que CurrentFileObject.
STATUS_INVALID_PARAMETER_3 Error en la operación de cambio porque el autor de la llamada especificó un tipo de respaldo no válido en ChangeBackingType.
STATUS_INVALID_PARAMETER_4 Error en la operación de cambio porque el autor de la llamada especificó un valor no válido en Marcas.
STATUS_NOT_SUPPORTED Error en la operación de cambio porque el autor de la llamada obtuvo el objeto de archivo de una manera que no permite el intercambio posterior del objeto de archivo. Por ejemplo, si el autor de la llamada obtuvo el objeto de archivo con una llamada a CcGetFileObjectFromSectionPtrs, no es seguro intercambiar el objeto de archivo.

Observaciones

El FsRtlChangeBackingFileObject rutina cambia el objeto de archivo para uno de los siguientes elementos:

  • Una de las áreas de control de imágenes del administrador de memoria para la secuencia

  • Área de control de datos del administrador de memoria para la secuencia

  • Mapa de caché compartida del administrador de caché para la secuencia

La rutina de FsRtlChangeBackingFileObject no es sincrónica. Procesa la solicitud de un cambio de objeto de archivo y devuelve inmediatamente. El administrador de caché y el administrador de memoria sincronizan el cambio del objeto de archivo y no liberarán el objeto de archivo antiguo hasta que se hayan completado todas las operaciones incompletas asociadas al objeto de archivo anterior. Un estado devuelto de STATUS_SUCCESS de FsRtlChangeBackingFileObject no significa que el sistema operativo ya haya cambiado el objeto de archivo.

Sin embargo, después de FsRtlChangeBackingFileObject se ejecuta correctamente, el sistema operativo asocia todas las operaciones futuras con el nuevo objeto de archivo.

Para cambiar el objeto de archivo para más de un tipo de respaldo, el autor de la llamada debe llamar a FsRtlChangeBackingFileObject varias veces, una vez para que cada tipo de respaldo cambie.

Requisitos

Requisito Valor
cliente mínimo admitido La rutina FsRtlChangeBackingFileObject está disponible a partir de Windows Vista.
de la plataforma de destino de Universal
encabezado de ntifs.h (incluya Ntifs.h)
biblioteca de NtosKrnl.lib
DLL de NtosKrnl.exe
irQL PASSIVE_LEVEL
reglas de cumplimiento de DDI PowerIrpDDis(wdm)

Consulte también

FSRTL_CHANGE_BACKING_TYPE