Função NtFlushBuffersFileEx (ntifs.h)
A rotina NtFlushBuffersFileEx envia uma solicitação de liberação para um determinado arquivo para o sistema de arquivos. Um sinalizador de operação de liberação opcional pode ser definido para controlar como os dados do arquivo são gravados no armazenamento.
Sintaxe
__kernel_entry NTSYSCALLAPI NTSTATUS NtFlushBuffersFileEx(
[in] HANDLE FileHandle,
[in] ULONG Flags,
[in] PVOID Parameters,
[in] ULONG ParametersSize,
[out] PIO_STATUS_BLOCK IoStatusBlock
);
Parâmetros
[in] FileHandle
Identificador retornado por NtCreateFile ou NtOpenFile para o arquivo cujos buffers serão liberados. Esse parâmetro é necessário e não pode ser NULL.
[in] Flags
Sinalizadores de operação de liberação. Os sinalizadores podem ser um dos seguintes valores:
Valor | Significado |
---|---|
0 (normal) | Os dados de arquivo e os metadados no cache de arquivos serão gravados e o armazenamento subjacente será sincronizado para liberar seu cache. Sistemas de arquivos do Windows com suporte: NTFS, ReFS, FAT e exFAT. |
FLUSH_FLAGS_FILE_DATA_ONLY | Os dados do arquivo no cache de arquivos serão gravados. Nenhum metadado é gravado e o armazenamento subjacente não é sincronizado para liberar seu cache. Esse sinalizador não é válido com identificadores de volume. Sistemas de arquivos do Windows com suporte: NTFS, FAT, exFAT. |
FLUSH_FLAGS_NO_SYNC | Os dados de arquivo e os metadados no cache de arquivos serão gravados. O armazenamento subjacente não é sincronizado para liberar seu cache. Esse sinalizador não é válido com identificadores de volume. Sistemas de arquivos do Windows com suporte: NTFS, FAT, exFAT. |
FLUSH_FLAGS_FILE_DATA_SYNC_ONLY | Os dados do arquivo especificado serão gravados no cache na memória do Windows. Somente os metadados necessários para a recuperação de dados serão liberados (a atualização do carimbo de data/hora será ignorada o máximo possível). O armazenamento subjacente é sincronizado para liberar seu cache. Esse sinalizador não é válido com identificadores de volume ou diretório. Sistemas de arquivos do Windows com suporte: NTFS. |
[in] Parameters
Ponteiro para um bloco com parâmetros adicionais. No momento, esse parâmetro deve ser definido como NULL.
[in] ParametersSize
O tamanho, em bytes, do bloco para o qual os Parâmetros apontam. No momento, esse parâmetro deve ser definido como 0.
[out] IoStatusBlock
Endereço do bloco de status de E/S do chamador. Esse parâmetro é necessário e não pode ser NULL.
Retornar valor
NtFlushBuffersFileEx 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. |
STATUS_ACCESS_DENIED | O arquivo não tem acesso de gravação ou acréscimo. |
Comentários
Os drivers de minifiltro devem chamar FltFlushBuffers2 em vez de chamar NtFlushBuffersFileEx.
Um driver de filtro do sistema de arquivos herdado pode chamar NtFlushBuffersFileEx para emitir uma solicitação de IRP_MJ_FLUSH_BUFFERS ao sistema de arquivos para um determinado arquivo. A operação de liberação é síncrona.
Os chamadores de NtFlushBuffersFileEx devem estar em execução em IRQL = PASSIVE_LEVEL e com APCs de kernel especiais habilitadas.
Para chamadas de drivers de modo kernel, as versões NtXxx e ZwXxx de uma rotina do Windows Native System Services podem se comportar de forma diferente na maneira como lidam e interpretam parâmetros de entrada. Para obter mais informações sobre a relação entre as versões NtXxx e ZwXxx de uma rotina, consulte Using Nt and Zw Versions of the Native System Services Routines.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 8 |
Plataforma de Destino | Universal |
Cabeçalho | ntifs.h (inclua Ntifs.h) |
Biblioteca | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL (consulte a seção Comentários.) |
Confira também
Usando versões Nt e Zw das rotinas de serviços do sistema nativo