Função FltFlushBuffers (fltkernel.h)

A rotina fltFlushBuffers é usada pelo driver de minifiltro para enviar uma solicitação de liberação para 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 de objeto de arquivo para o arquivo a ser liberado. Esse parâmetro é necessário e não pode ser NULL.

Retornar valor

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.

Comentários

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 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
Plataforma de Destino Universal
Cabeçalho fltkernel.h (inclua Fltkernel.h)
Biblioteca FltMgr.lib
IRQL PASSIVE_LEVEL

Confira também

FltFlushBuffers2

IRP_MJ_FLUSH_BUFFERS