Función FltQueryInformationFile (fltkernel.h)
FltQueryInformationFile recupera información de un archivo determinado.
Sintaxis
NTSTATUS FLTAPI FltQueryInformationFile(
[in] PFLT_INSTANCE Instance,
[in] PFILE_OBJECT FileObject,
[out] PVOID FileInformation,
[in] ULONG Length,
[in] FILE_INFORMATION_CLASS FileInformationClass,
[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. Este parámetro es obligatorio y no puede ser NULL.
[out] FileInformation
Puntero a un búfer asignado por el autor de la llamada que recibe información sobre el archivo. El parámetro FileInformationClass especifica el tipo de información. Este parámetro es obligatorio y no puede ser NULL.
[in] Length
Tamaño, en bytes, del búfer FileInformation .
[in] FileInformationClass
Valor FILE_INFORMATION_CLASS que especifica el tipo de información de archivo que se va a devolver en el búfer FileInformation .
[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 FileInformation . Este parámetro es opcional y puede ser NULL.
Valor devuelto
FltQueryInformationFile devuelve STATUS_SUCCESS o un valor NTSTATUS adecuado, como el siguiente:
Código devuelto | Descripción |
---|---|
|
El archivo reside en un volumen que no está montado actualmente. Se trata de un código de error. |
Comentarios
Un controlador de minifiltro llama a FltQueryInformationFile para recuperar información del archivo identificado por FileObject. El archivo debe estar abierto actualmente.
FltQueryInformationFile devuelve cero en cualquier miembro de una estructura FILE_XXX_INFORMATION que no es compatible con un sistema de archivos determinado.
Los autores de llamadas de FltQueryInformationFile deben ejecutarse en IRQL = PASSIVE_LEVEL y con las API habilitadas.
NOTA: No llame a esta rutina con un valor IRP de nivel superior que no sea NULL, ya que esto puede provocar un interbloqueo del sistema.
Requisitos
Requisito | Value |
---|---|
Plataforma de destino | Universal |
Encabezado | fltkernel.h (incluya Fltkernel.h) |
Library | FltMgr.lib |
Archivo DLL | Fltmgr.sys |
IRQL | PASSIVE_LEVEL (consulte la sección Comentarios) |