Compartir a través de


Función FsRtlKernelFsControlFile (ntifs.h)

La función FsRtlKernelFsControlFile compila un IRP explícito FSCTL_XXX, lo envía por 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 mediante FileObject en lugar de controlar.

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 de InputBuffer y OutputBuffer, así como cuál de los siguientes pares de parámetros son necesarios. Para obtener información detallada sobre los códigos de FSCTL_XXX definidos por el sistema, consulte 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 de 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 de OutputBuffer 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).

Comentarios

FsRtlKernelFsControlFile establece el IRP_MN_KERNEL_CALL código secundario que 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
Header ntifs.h

Consulte también

ZwFsControlFile