Compartilhar via


Função FltDeviceIoControlFile (fltkernel.h)

FltDeviceIoControlFile envia um código de controle diretamente para um driver de dispositivo especificado, fazendo com que o driver correspondente execute a ação especificada.

Sintaxe

NTSTATUS FLTAPI FltDeviceIoControlFile(
  [in]            PFLT_INSTANCE Instance,
  [in]            PFILE_OBJECT  FileObject,
  [in]            ULONG         IoControlCode,
  [in, optional]  PVOID         InputBuffer,
  [in]            ULONG         InputBufferLength,
  [out]           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 dispositivo que é o destino dessa solicitação. Esse parâmetro é necessário e não pode ser NULL.

[in] IoControlCode

IOCTL_códigoXXX que indica qual operação de E/S do dispositivo deve ser executada. O valor desse parâmetro determina os formatos e os comprimentos necessários de InputBuffer e OutputBuffer e determina quais dos seguintes pares de parâmetros (InputBuffer e InputBufferLength ou OutputBuffer e OutputBufferLength) são necessários.

[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 IoControlCode especificar uma operação que não exige 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] 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 IoControlCode especificar uma operação que não exige 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

FltDeviceIoControlFile retorna STATUS_SUCCESS ou um valor NTSTATUS apropriado.

Comentários

Para obter mais informações sobre os códigos IOCTL_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
IRQL PASSIVE_LEVEL

Confira também

FltFsControlFile