Função FltFsControlFile (fltkernel.h)

A rotina FltFsControlFile envia um código de controle diretamente para um sistema de arquivos ou driver de filtro do sistema de arquivos especificado, fazendo com que o driver correspondente execute a ação especificada.

Sintaxe

NTSTATUS FLTAPI FltFsControlFile(
  [in]            PFLT_INSTANCE Instance,
  [in]            PFILE_OBJECT  FileObject,
  [in]            ULONG         FsControlCode,
  [in, optional]  PVOID         InputBuffer,
  [in]            ULONG         InputBufferLength,
  [out, optional] PVOID         OutputBuffer,
  [in]            ULONG         OutputBufferLength,
  [out, optional] PULONG        LengthReturned
);

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 ou diretório que é o destino dessa solicitação. Esse parâmetro é necessário e não pode ser NULL.

[in] FsControlCode

FSCTL_ códigoXXX que indica qual operação do sistema de arquivos deve ser executada. O valor desse parâmetro determina os formatos e os comprimentos necessários de InputBuffer e OutputBuffer e determina qual dos seguintes pares de parâmetros (InputBuffer e InputBufferLength, OutputBuffer e OutputBufferLength) é necessário.

[in, optional] InputBuffer

Ponteiro para um buffer de entrada alocado pelo chamador que contém informações específicas do dispositivo a serem fornecidas ao driver de destino. Se o parâmetro FsControlCode especificar uma operação que não requer dados de entrada, esse parâmetro será opcional e poderá ser NULL.

[in] InputBufferLength

Tamanho, em bytes, do buffer em InputBuffer. Esse valor será ignorado se InputBuffer for NULL.

[out, optional] OutputBuffer

Ponteiro para um buffer de saída alocado pelo chamador no qual as informações são retornadas do driver de destino. Se o parâmetro FsControlCode especificar uma operação que não requer dados de saída, esse parâmetro será opcional e poderá ser NULL.

[in] OutputBufferLength

Tamanho, em bytes, do buffer em OutputBuffer. Esse valor será ignorado se OutputBuffer for NULL.

[out, optional] LengthReturned

Ponteiro para uma variável alocada pelo chamador que recebe o tamanho, em bytes, das informações retornadas no buffer em OutputBuffer. Esse parâmetro é opcional e pode ser NULL.

Retornar valor

FltFsControlFile retorna STATUS_SUCCESS ou um valor NTSTATUS apropriado.

Comentários

Os drivers de minifiltro devem chamar essa rotina em vez de ZwFsControlFile.

Os seguintes códigos FSCTL estão documentados atualmente para drivers no modo kernel:

FSCTL_DELETE_REPARSE_POINT

FSCTL_GET_REPARSE_POINT

FSCTL_OPBATCH_ACK_CLOSE_PENDING

FSCTL_OPLOCK_BREAK_ACK_NO_2

FSCTL_OPLOCK_BREAK_ACKNOWLEDGE

FSCTL_OPLOCK_BREAK_NOTIFY

FSCTL_REQUEST_BATCH_OPLOCK

FSCTL_REQUEST_FILTER_OPLOCK

FSCTL_REQUEST_OPLOCK_LEVEL_1

FSCTL_REQUEST_OPLOCK_LEVEL_2

FSCTL_SET_REPARSE_POINT

Para obter mais informações sobre os códigos FSCTL_XXX definidos pelo sistema, consulte a seção Comentários da entrada de referência para DeviceIoControl na documentação do SDK do Microsoft Windows.

Requisitos

Requisito Valor
Plataforma de Destino Universal
Cabeçalho fltkernel.h (inclua Fltkernel.h)
Biblioteca FltMgr.lib
DLL Fltmgr.sys
IRQL PASSIVE_LEVEL

Confira também

FltDeviceIoControlFile

ZwFsControlFile