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 necesario y no se puede null.
[in] FileObject
Puntero de objeto de archivo para el archivo. Este parámetro es necesario y no se puede 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 necesario y no se puede null.
[in] Length
Tamaño, en bytes, del búfer de 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 de 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 de FileInformation. Este parámetro es opcional y se puede 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. |
Observaciones
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 de 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 llamar a esta rutina con un valor IRP de nivel superior no NULL, ya que esto puede provocar un interbloqueo del sistema.
Requisitos
Requisito | Valor |
---|---|
de la plataforma de destino de | Universal |
encabezado de | fltkernel.h (incluya Fltkernel.h) |
biblioteca de | FltMgr.lib |
DLL de | Fltmgr.sys |
irQL | PASSIVE_LEVEL (consulte la sección Comentarios) |