Función FltDeviceIoControlFile (fltkernel.h)

FltDeviceIoControlFile envía un código de control directamente a un controlador de dispositivo especificado, lo que hace que el controlador correspondiente realice la acción especificada.

Sintaxis

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

Puntero de instancia opaco para el autor de la llamada. Este parámetro es obligatorio y no puede ser NULL.

[in] FileObject

Puntero de objeto de archivo para el archivo o dispositivo que es el destino de esta solicitud. Este parámetro es obligatorio y no puede ser NULL.

[in] IoControlCode

IOCTL_XXX código que indica qué operación de E/S del dispositivo se va a llevar a cabo. El valor de este parámetro determina los formatos y las longitudes necesarias de InputBuffer y OutputBuffer, y determina cuál de los siguientes pares de parámetros (InputBuffer y InputBufferLength, o OutputBuffery OutputBufferLength) es obligatorio.

[in, optional] InputBuffer

Puntero a un búfer de entrada asignado por el autor de la llamada que contiene información específica del dispositivo que se va a proporcionar al controlador de destino. Si el parámetro IoControlCode especifica una operación que no requiere datos de entrada, este parámetro es opcional y puede ser NULL.

[in] InputBufferLength

Tamaño, en bytes, del búfer en InputBuffer. Este valor se omite si InputBuffer es NULL.

[out] OutputBuffer

Puntero a un búfer de salida asignado por el autor de la llamada en el que se devuelve información del controlador de destino. Si el parámetro IoControlCode especifica una operación que no requiere datos de salida, este parámetro es opcional y puede ser NULL.

[in] OutputBufferLength

Tamaño, en bytes, del búfer en OutputBuffer. Este valor se omite si OutputBuffer es NULL.

[out, optional] LengthReturned

Puntero a una variable asignada por el autor de la llamada que recibe el tamaño, en bytes, de la información devuelta en el búfer en OutputBuffer. Este parámetro es opcional y puede ser NULL.

Valor devuelto

FltDeviceIoControlFile devuelve STATUS_SUCCESS o un valor NTSTATUS adecuado.

Comentarios

Para obtener más información sobre los códigos IOCTL_XXX definidos por el sistema, vea la sección Comentarios de la entrada de referencia para DeviceIoControl en la documentación de Microsoft Windows SDK.

Requisitos

Requisito Value
Plataforma de destino Universal
Encabezado fltkernel.h (incluya Fltkernel.h)
Library FltMgr.lib
IRQL PASSIVE_LEVEL

Consulte también

FltFsControlFile