Compartir a través de


Función FsRtlKernelFsControlFile (ntifs.h)

La función FsRtlKernelFsControlFile crea un IRP de FSCTL_XXX explícito, lo envía a la pila, espera sincrónicamente a que se complete y devuelve el resultado. Esta función permite al autor de la llamada completar esta acción FileObject en lugar de controlarla.

Sintaxis

NTSTATUS FsRtlKernelFsControlFile(
  [in]  PFILE_OBJECT FileObject,
  [in]  ULONG        FsControlCode,
  [in]  PVOID        InputBuffer,
  [in]  ULONG        InputBufferLength,
  [out] PVOID        OutputBuffer,
  [out] ULONG        OutputBufferLength,
  [out] PULONG       RetOutputBufferSize
);

Parámetros

[in] FileObject

Puntero al FILE_OBJECT para enviar la operación.

[in] FsControlCode

FSCTL_XXX código que indica qué operación de control del sistema de archivos se va a llevar a cabo. El valor de este parámetro determina los formatos y las longitudes necesarias del InputBuffer y outputBuffer, así como los pares de parámetros siguientes. Para obtener información detallada sobre los códigos de 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.

[in] 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 FsControlCode especifica una operación que no requiere datos de entrada, este puntero es opcional y puede ser NULL. Tenga en cuenta que este búfer puede modificarse tras la devolución y el autor de la llamada debe adaptarse a este. Esto se debe a que este búfer se puede usar para contener los datos de salida.

[in] InputBufferLength

Longitud del InputBuffer en bytes.

[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 FsControlCode especifica una operación que no genera datos de salida, este puntero es opcional y puede ser NULL.

[out] OutputBufferLength

Longitud del OutputBuffer de en bytes.

[out] RetOutputBufferSize

Recibe el número de bytes realmente escritos (devueltos) en el búfer de salida.

Valor devuelto

FsRtlKernelFsControlFile devuelve STATUS_SUCCESS o un valor NTSTATUS adecuado, como uno de los siguientes.

Valor Significado
STATUS_INSUFFICIENT_RESOURCES Error de asignación de grupo.
STATUS_INVALID_PARAMETER Se proporcionó un parámetro no válido (por ejemplo, un FileObject no válido).

Observaciones

FsRtlKernelFsControlFile establece el código secundario IRP_MN_KERNEL_CALL que le permite realizar operaciones sin necesidad de administrar privilegios de volumen para determinadas operaciones.

Esta función supone que todos los búferes que se le pasan son búferes en modo kernel.

Requisitos

Requisito Valor
encabezado de ntifs.h

Consulte también

ZwFsControlFile