Función FltAttachVolumeAtAltitude (fltkernel.h)
FltAttachVolumeAtAltitude es una rutina de compatibilidad de depuración que asocia una instancia de controlador de minifiltro a un volumen a una altitud especificada, reemplazando cualquier configuración en el archivo INF del controlador de minifiltro.
Sintaxis
NTSTATUS FLTAPI FltAttachVolumeAtAltitude(
[in, out] PFLT_FILTER Filter,
[in, out] PFLT_VOLUME Volume,
[in] PCUNICODE_STRING Altitude,
[in, optional] PCUNICODE_STRING InstanceName,
[out, optional] PFLT_INSTANCE *RetInstance
);
Parámetros
[in, out] Filter
Puntero de filtro opaco para el autor de la llamada. Este parámetro es necesario y no se puede null.
[in, out] Volume
Puntero de volumen opaco para el volumen al que se va a adjuntar la instancia del controlador de minifiltro. Este parámetro es necesario y no se puede null.
[in] Altitude
Puntero a una estructura UNICODE_STRING que contiene la cadena de altitud de la instancia. Este parámetro es necesario y no se puede null. (Para obtener más información sobre este parámetro, vea la siguiente sección Comentarios).
[in, optional] InstanceName
Puntero a una estructura de UNICODE_STRING que contiene el nombre de instancia de la nueva instancia. Este parámetro es opcional y se puede NULL. Si es NULL, FltAttachVolumeAtAltitude genera un nombre de instancia del nombre del controlador de minifiltro y la cadena de altitud a la que Altitud apunta. El nombre generado se trunca, si es necesario, para INSTANCE_NAME_MAX_CHARS caracteres.
[out, optional] RetInstance
Puntero a una variable asignada por el autor de la llamada que recibe un puntero de instancia opaco para la instancia recién creada. Este parámetro es opcional y se puede NULL.
Valor devuelto
fltAttachVolumeAtAltitude devuelve STATUS_SUCCESS o un valor NTSTATUS adecuado, como uno de los siguientes:
Código devuelto | Descripción |
---|---|
|
El de filtro de especificado o volumen se está descomponiéndose. Se trata de un código de error. |
|
El controlador de minifiltro no ha iniciado el filtrado. Para obtener más información, vea FltStartFiltering. Se trata de un código de error. |
|
Ya existe una instancia en esta altitud en el volumen especificado. Se trata de un código de error. |
|
Ya existe una instancia con este nombre en el volumen especificado. Se trata de un código de error. |
|
fltAttachVolumeAtAltitude encontró un error de asignación de grupo. Se trata de un código de error. |
|
La estructura UNICODE_STRING que altitud apunta a que no contenía una cadena de altitud válida. Se trata de un código de error. |
Observaciones
Un controlador de minifiltro solo debe usar fltAttachVolumeAtAltitude para la depuración. No debe llamar a esta rutina en una versión comercial del controlador de minifiltro.
fltAttachVolumeAtAltitude es el equivalente del kernel de la función FilterAttachAtAltitude de Win3 2.
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 matriz de caracteres anchos que contiene uno o varios dígitos decimales de 0 a 9; la matriz 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.
El nombre de instancia especificado en el parámetro InstanceName debe ser único en todo el sistema.
fltAttachVolumeAtAltitude devuelve un puntero de instancia opaco para la nueva instancia en *RetInstance. Este valor de puntero identifica de forma única la instancia del controlador de minifiltro y permanece constante siempre que la instancia esté asociada al volumen.
FltAttachVolumeAtAltitude agrega una referencia de rundown al puntero de instancia opaco devuelto en *RetInstance. Cuando este puntero ya no es necesario, el autor de la llamada debe liberarlo llamando a FltObjectDereference. Por lo tanto, cada llamada correcta a FltAttachVolumeAtAltitude debe coincidir con una llamada posterior a FltObjectDereference.
Para comparar las altitudes de dos instancias de controlador de minifiltro asociadas al mismo volumen, llame a FltCompareInstanceAltitudes.
Para desasociar una instancia de controlador de minifiltro de un volumen, llame a FltDetachVolume.
Requisitos
Requisito | Valor |
---|---|
de la plataforma de destino de | Universal |
encabezado de | fltkernel.h (incluya Fltkernel.h) |
biblioteca de | FltMgr.lib |
irQL | PASSIVE_LEVEL |