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 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, 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 , 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 se puede NULL.
Valor devuelto
fltAttachVolume 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 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 leídos del registro. Se trata de un código de error. |
Observaciones
Si el autor de la llamada especifica un valornull que no es 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 el 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, consulte 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 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.
FltAttachVolume agrega una referencia de ejecución 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 | Valor |
---|---|
de la plataforma de destino de | Universal |
encabezado de | fltkernel.h (incluya Fltkernel.h) |
biblioteca de | FltMgr.lib |
irQL | PASSIVE_LEVEL |