Compartir a través de


Función FsRtlChangeBackingFileObject (ntifs.h)

La rutina 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] 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] Nuevo objeto de archivo al que el sistema operativo hará referencia 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 Especifica NewFileObject 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 Flags.
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.

Comentarios

La rutina FsRtlChangeBackingFileObject 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 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 finalicen todas las operaciones incompletas asociadas al objeto de archivo antiguo. 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 que FsRtlChangeBackingFileObject se ejecute 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 Value
Cliente mínimo compatible La rutina FsRtlChangeBackingFileObject está disponible a partir de Windows Vista.
Plataforma de destino Universal
Encabezado ntifs.h (incluya Ntifs.h)
Library NtosKrnl.lib
Archivo DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
Reglas de cumplimiento de DDI PowerIrpDDis(wdm)

Consulte también

FSRTL_CHANGE_BACKING_TYPE