Função FsRtlChangeBackingFileObject (ntifs.h)
A rotina FsRtlChangeBackingFileObject substitui o objeto de arquivo atual por um novo objeto de arquivo.
Sintaxe
NTSTATUS FsRtlChangeBackingFileObject(
PFILE_OBJECT CurrentFileObject,
PFILE_OBJECT NewFileObject,
FSRTL_CHANGE_BACKING_TYPE ChangeBackingType,
ULONG Flags
);
Parâmetros
CurrentFileObject
[in, opcional] O objeto de arquivo atual. Se CurrentFileObject for NULL, o objeto de arquivo atual do sistema operacional será definido como NewFileObject. Se não for NULL, o objeto de arquivo de backup será alterado para NewFileObject somente se o objeto de arquivo de suporte atual do sistema operacional for igual a esse valor. Se esse objeto de arquivo não pertencer ao fluxo, a operação falhará.
NewFileObject
[in] O novo objeto de arquivo que o sistema operacional fará referência e armazenará internamente.
ChangeBackingType
[in] Um FSRTL_CHANGE_BACKING_TYPE valor de enumeração que indica qual estrutura interna deve ser alterada para referenciar NewFileObject.
Flags
[in] Reservado para uso futuro.
Retornar valor
A rotina FsRtlChangeBackingFileObject retornará STATUS_SUCCESS se a operação for bem-sucedida. Caso contrário, FsRtlChangeBackingFileObject retornará o código de erro apropriado. A tabela a seguir contém códigos de erro que FsRtlChangeBackingFileObject pode retornar.
Código de retorno | Descrição |
---|---|
STATUS_INVALID_PARAMETER_2 | A operação de alteração falhou porque o objeto de arquivo especificado por NewFileObject não representa o mesmo fluxo que CurrentFileObject. |
STATUS_INVALID_PARAMETER_3 | A operação de alteração falhou porque o chamador especificou um tipo de suporte inválido em ChangeBackingType. |
STATUS_INVALID_PARAMETER_4 | A operação de alteração falhou porque o chamador especificou um valor inválido em Flags. |
STATUS_NOT_SUPPORTED | A operação de alteração falhou porque o chamador obteve o objeto de arquivo de uma maneira que não permite a troca subsequente do objeto de arquivo. Por exemplo, se o chamador obteve o objeto de arquivo com uma chamada para CcGetFileObjectFromSectionPtrs, não é seguro trocar o objeto de arquivo. |
Comentários
A rotina FsRtlChangeBackingFileObject altera o objeto de arquivo para um dos seguintes:
Uma das áreas de controle de imagem do gerenciador de memória para o fluxo
A área de controle de dados do gerenciador de memória para o fluxo
O mapa de cache compartilhado do gerenciador de cache para o fluxo
A rotina FsRtlChangeBackingFileObject não é síncrona. Ele processa a solicitação de uma alteração do objeto de arquivo e retorna imediatamente. O gerenciador de cache e o gerenciador de memória sincronizam a alteração do objeto de arquivo e não liberam o objeto de arquivo antigo até que todas as operações incompletas associadas ao objeto de arquivo antigo tenham sido concluídas. Um retorno status de STATUS_SUCCESS de FsRtlChangeBackingFileObject não significa que o sistema operacional já alterou o objeto de arquivo.
No entanto, depois que FsRtlChangeBackingFileObject for executado com êxito , o sistema operacional associará todas as operações futuras ao novo objeto de arquivo.
Para alterar o objeto de arquivo para mais de um tipo de suporte, o chamador deve chamar FsRtlChangeBackingFileObject várias vezes, uma vez para que cada tipo de suporte seja alterado.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | A rotina FsRtlChangeBackingFileObject está disponível a partir do Windows Vista. |
Plataforma de Destino | Universal |
Cabeçalho | ntifs.h (inclua Ntifs.h) |
Biblioteca | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
Regras de conformidade da DDI | PowerIrpDDis(wdm) |