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 |
---|---|
|
O arquivo reside em um volume protegido por gravação. Este é um código de erro. |
|
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 |