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.
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
);
[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ódigo de XXX 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 do inputbuffer e OutputBuffer, e determina quais 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 exija 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 estiver 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 exija 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 estiver NULL.
[out, optional] LengthReturned
Ponteiro para uma variável alocada por chamador que recebe o tamanho, em bytes, das informações retornadas no buffer em OutputBuffer. Esse parâmetro é opcional e pode ser NULL.
FltFsControlFile retorna STATUS_SUCCESS ou um valor NTSTATUS apropriado.
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_OPBATCH_ACK_CLOSE_PENDING
FSCTL_OPLOCK_BREAK_ACKNOWLEDGE
Para obter mais informações sobre os códigos deXXX FSCTL_ definidos pelo sistema, consulte a seção Comentários da entrada de referência para DeviceIoControl na documentação do SDK do Microsoft Windows.
Requisito | Valor |
---|---|
da Plataforma de Destino | Universal |
cabeçalho | fltkernel.h (inclua Fltkernel.h) |
biblioteca | FltMgr.lib |
de DLL | Fltmgr.sys |
IRQL | PASSIVE_LEVEL |