Función FltAttachVolume (fltkernel.h)
FltAttachVolume crea una nueva instancia del controlador de minifiltro y la asocia al volumen especificado.
Sintaxis
NTSTATUS FLTAPI FltAttachVolume(
[in, out] PFLT_FILTER Filter,
[in, out] PFLT_VOLUME Volume,
[in, optional] PCUNICODE_STRING InstanceName,
[out] PFLT_INSTANCE *RetInstance
);
Parámetros
[in, out] Filter
Puntero de filtro opaco para el autor de la llamada. Este parámetro es obligatorio y no puede ser NULL.
[in, out] Volume
Puntero de volumen opaco para el volumen al que se va a asociar la instancia del controlador de minifiltro. Este parámetro es obligatorio y no puede ser NULL.
[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 puede ser NULL. Si es NULL, FltAttachVolume intenta leer el nombre de instancia predeterminado del controlador de minifiltro del registro. (Para obtener más información sobre este parámetro, vea la siguiente sección Comentarios).
[out] 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 puede ser NULL.
Valor devuelto
FltAttachVolume devuelve STATUS_SUCCESS o un valor NTSTATUS adecuado, como uno de los siguientes:
Código devuelto | Descripción |
---|---|
|
El filtro o el volumen especificados se están 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 con este nombre en el volumen especificado. |
|
FltAttachVolume encontró un error de asignación de grupo. Se trata de un código de error. |
|
Otra instancia ya estaba asociada a la altitud especificada en los atributos de instancia que se leyeron del registro. Se trata de un código de error. |
Comentarios
Si el autor de la llamada especifica un valor distinto de NULL para InstanceName, FltAttachVolume lee los atributos de instancia especificados por el controlador de minifiltro que se almacenan en el Registro en HKLM\CurrentControlSet\Services\ServiceName\Instances\InstanceName, donde ServiceName es el nombre del servicio del controlador de minifiltro. Este nombre de servicio se especifica en la directiva AddService de la sección DefaultInstall.Services del archivo INF del controlador de minifiltro. (Para obtener más información sobre los archivos INF del controlador de filtro, vea Instalación de un controlador de filtro del sistema de archivos).
Si el autor de la llamada no especifica un valor para InstanceName, FltAttachVolume usa el nombre almacenado en el Registro en HKLM\CurrentControlSet\Services\ServiceName\Instances\DefaultInstance para la parte InstanceName de la ruta del Registro.
El nombre de instancia especificado en el parámetro InstanceName debe ser único en todo el sistema.
FltAttachVolume devuelve un puntero de instancia opaco para la nueva instancia de *RetInstance. Este valor de puntero identifica de forma única la instancia del controlador de minifiltro y permanece constante siempre y cuando la instancia se adjunte al volumen.
FltAttachVolume 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 FltAttachVolume debe coincidir con una llamada posterior a FltObjectDereference.
Para adjuntar una instancia de controlador de minifiltro a un volumen a una altitud determinada, llame a FltAttachVolumeAtAltitude.
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 | Value |
---|---|
Plataforma de destino | Universal |
Encabezado | fltkernel.h (incluya Fltkernel.h) |
Library | FltMgr.lib |
IRQL | PASSIVE_LEVEL |