Compartir a través de


Función FltGetUpperInstance (fltkernel.h)

La rutina fltGetUpperInstance devuelve un puntero de instancia opaco para la siguiente instancia de controlador de minifiltro superior, si hay una, que se adjunta encima de una instancia de controlador de minifiltro determinada en el mismo volumen.

Sintaxis

NTSTATUS FLTAPI FltGetUpperInstance(
  [in]  PFLT_INSTANCE CurrentInstance,
  [out] PFLT_INSTANCE *UpperInstance
);

Parámetros

[in] CurrentInstance

Puntero de instancia opaco para la instancia para la que se solicita la siguiente instancia superior.

[out] UpperInstance

Puntero a una variable asignada por el autor de la llamada que recibe un puntero de instancia opaco para la siguiente instancia superior. Este parámetro es necesario y no se puede null.

Valor devuelto

fltGetUpperInstance devuelve STATUS_SUCCESS o un valor NTSTATUS adecuado, como el siguiente:

Código devuelto Descripción
STATUS_NO_MORE_ENTRIES
No se encontró ninguna instancia superior. Se trata de un código de advertencia.

Observaciones

Se dice que una instancia es por encima de otra si se adjunta a una altitud mayor en el mismo volumen. El término "altitud" hace referencia a la posición que ocupa una instancia (o debe ocupar) en la pila de instancias del controlador de minifiltro para un volumen. Cuanto mayor sea la altitud, más lejos estará la instancia del sistema de archivos base de la pila. Solo se puede adjuntar una instancia a una altitud determinada en un volumen determinado.

La altitud se especifica mediante una cadena de altitud, que es una cadena Unicode con recuento que consta de uno o más dígitos decimales en el intervalo de 0 a 9, y puede incluir un único separador decimal. Por ejemplo, "100.123456" y "03333" son cadenas de altitud válidas.

La cadena "03333" representa una altitud mayor que "100.123456". (Se omiten los ceros iniciales y finales). Es decir, una instancia cuya altitud es "03333" está más lejos del sistema de archivos base que una instancia cuya altitud es "100.123456". Sin embargo, esta comparación solo es significativa si ambas instancias están asociadas al mismo volumen.

FltGetUpperInstance agrega una referencia de rundown al puntero de instancia opaco devuelto en el parámetro upperInstance de. Cuando este puntero ya no es necesario, el autor de la llamada debe liberarlo llamando a FltObjectDereference. Por lo tanto, todas las llamadas correctas a fltGetUpperInstance deben coincidir con una llamada posterior a FltObjectDereference.

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 <= APC_LEVEL

Consulte también

fltAttachVolume

FltAttachVolumeAtAltitude

FltCompareInstanceAltitudes

fltGetBottomInstance

fltGetLowerInstance

fltGetTopInstance

FltObjectDereference