Compartilhar via


Função FltFlushBuffers (fltkernel.h)

A rotina FltFlushBuffers é usada pelo driver de minifiltro para enviar uma solicitação de liberação de um determinado arquivo para o sistema de arquivos. Use FltFlushBuffers2 para especificar diferentes opções de tipo de liberação.

Sintaxe

NTSTATUS FLTAPI FltFlushBuffers(
  [in] PFLT_INSTANCE Instance,
  [in] PFILE_OBJECT  FileObject
);

Parâmetros

[in] Instance

Ponteiro de instância opaco para o chamador. Esse parâmetro é necessário e não pode ser NULL.

[in] FileObject

Ponteiro do objeto de arquivo para que o arquivo seja liberado. Esse parâmetro é necessário e não pode ser NULL.

Valor de retorno

FltFlushBuffers retorna STATUS_SUCCESS ou um valor NTSTATUS apropriado, como um dos seguintes:

Código de retorno Descrição
STATUS_MEDIA_WRITE_PROTECTED
O arquivo reside em um volume protegido por gravação. Este é um código de erro.
STATUS_VOLUME_DISMOUNTED
O arquivo reside em um volume que não está montado no momento. Este é um código de erro.

Observações

Um driver de minifiltro pode chamar FltFlushBuffers para emitir uma solicitação IRP_MJ_FLUSH_BUFFERS ao sistema de arquivos para um determinado arquivo. A operação de liberação é síncrona e é emitida para as instâncias abaixo da instância de especificada.

Se FileObject for para um arquivo, os dados do arquivo e os metadados no cache de arquivos serão gravados e o armazenamento subjacente será sincronizado para liberar seu cache. Se FileObject for para um volume, o sistema de arquivos fará com que os dados do arquivo e os metadados de todos os arquivos modificados no volume sejam gravados e o armazenamento subjacente seja sincronizado para liberar seu cache. Use FltFlushBuffers2 para controlar mais granularmente o tipo de liberação que o sistema de arquivos deve fazer.

Requisitos

Requisito Valor
da Plataforma de Destino Universal
cabeçalho fltkernel.h (inclua Fltkernel.h)
biblioteca FltMgr.lib
IRQL PASSIVE_LEVEL

Consulte também

FltFlushBuffers2

IRP_MJ_FLUSH_BUFFERS