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 |