Función FltFsControlFile (fltkernel.h)

La rutina FltFsControlFile envía un código de control directamente a un sistema de archivos especificado o al controlador de filtro del sistema de archivos, lo que hace que el controlador correspondiente realice la acción especificada.

Sintaxis

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

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 directorio que es el destino de esta solicitud. Este parámetro es obligatorio y no puede ser NULL.

[in] FsControlCode

FSCTL_XXX código que indica qué operación del sistema de archivos 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áles de los siguientes pares de parámetros (InputBuffer y InputBufferLength, OutputBuffer y OutputBufferLength) son necesarios.

[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 FsControlCode 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, optional] 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 FsControlCode 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

FltFsControlFile devuelve STATUS_SUCCESS o un valor NTSTATUS adecuado.

Comentarios

Los controladores de minifiltro deben llamar a esta rutina en lugar de ZwFsControlFile.

Actualmente se documentan los siguientes códigos FSCTL para los controladores en 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 obtener más información sobre los códigos FSCTL_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
Archivo DLL Fltmgr.sys
IRQL PASSIVE_LEVEL

Consulte también

FltDeviceIoControlFile

ZwFsControlFile