Compartir a través de


PFLT_INSTANCE_SETUP_CALLBACK función de devolución de llamada (fltkernel.h)

Un controlador de minifiltro puede registrar una rutina de tipo PFLT_INSTANCE_SETUP_CALLBACK como rutina InstanceSetupCallback del controlador de minifiltro.

Sintaxis

PFLT_INSTANCE_SETUP_CALLBACK PfltInstanceSetupCallback;

NTSTATUS PfltInstanceSetupCallback(
  [in] PCFLT_RELATED_OBJECTS FltObjects,
  [in] FLT_INSTANCE_SETUP_FLAGS Flags,
  [in] DEVICE_TYPE VolumeDeviceType,
  [in] FLT_FILESYSTEM_TYPE VolumeFilesystemType
)
{...}

Parámetros

[in] FltObjects

Puntero a una estructura FLT_RELATED_OBJECTS que contiene punteros opacos para los objetos relacionados con la operación actual.

[in] Flags

Máscara de bits de marcas que indican por qué se está adjuntando la instancia. Uno o varios de los siguientes:

Marca Significado
FLTFL_INSTANCE_SETUP_AUTOMATIC_ATTACHMENT (0x00000001) La instancia se adjunta automáticamente. El controlador de minifiltro se acaba de cargar y se está adjuntando a todos los volúmenes existentes o se está adjuntando a un volumen recién montado.
FLTFL_INSTANCE_SETUP_MANUAL_ATTACHMENT (0x00000002) La instancia se está adjuntando manualmente porque una aplicación en modo de usuario ha llamado FilterAttach o FilterAttachAtAltitude, o porque un componente en modo kernel ha llamado FltAttachVolume o FltAttachVolumeAtAltitude
FLTFL_INSTANCE_SETUP_NEWLY_MOUNTED_VOLUME (0x00000004) La instancia se adjunta automáticamente a un volumen recién montado.
FLTFL_INSTANCE_SETUP_DETACHED_VOLUME (0x00000008) La instancia se está adjuntando a un volumen desasociado. Es posible, en algunos sistemas de archivos (como FAT y CDFS, que usan algunas unidades multimedia extraíbles) para volver a adjuntar un volumen después de que se haya desasociado. Un volumen se desasocia si no tiene ninguna pila de almacenamiento asociada. Un volumen en este estado suele ser un volumen desmontado que todavía tiene archivos abiertos.
FLTFL_INSTANCE_SETUP_DEV_VOLUME (0x00000010) La instancia de se adjunta a un volumen con formato de volumen de desarrollador. Los filtros del sistema de archivos pueden habilitar optimizaciones que no requieren que un administrador confíe en el volumen en un equipo determinado. Disponible a partir de Windows 11, versión 22H2, actualización de septiembre.
FLTFL_INSTANCE_SETUP_TRUSTED_VOLUME (0x00000020) Indica que un administrador de una máquina determinada tiene confianza en este volumen y está dispuesto a habilitar optimizaciones como no tener filtros antivirus asociados al volumen. Esta información se conserva en el registro en una máquina determinada. Los filtros del sistema de archivos pueden usar esto para habilitar las optimizaciones que requieren que un administrador confíe en el volumen en un equipo determinado. Disponible a partir de Windows 11, versión 22H2, actualización de septiembre.

[in] VolumeDeviceType

Tipo de dispositivo del volumen del sistema de archivos. Debe ser una de las siguientes:

  • FILE_DEVICE_CD_ROM_FILE_SYSTEM (0x00000002)
  • FILE_DEVICE_DISK_FILE_SYSTEM (0x00000008)
  • FILE_DEVICE_NETWORK_FILE_SYSTEM (0x00000014)

[in] VolumeFilesystemType

Tipo de sistema de archivos del volumen. Los valores posibles se muestran en FLT_FILESYSTEM_TYPE.

Valor devuelto

Esta rutina de devolución de llamada devuelve STATUS_SUCCESS o un valor NTSTATUS como el siguiente:

Código devuelto Descripción
STATUS_FLT_DO_NOT_ATTACH Devolver este valor impide que la instancia del controlador de minifiltro se adjunte al volumen especificado. Se trata de un código de error.

Comentarios

Nota

No realice ninguna sincronización de subprocesos ni comunicación entre procesos en la implementación de PFLT_INSTANCE_SETUP_CALLBACK . La realización de estas operaciones puede provocar condiciones de interbloqueo.

Cuando un controlador de minifiltro se registra a sí mismo llamando a FltRegisterFilter desde su rutina DriverEntry , puede registrar una rutina de tipo PFLT_INSTANCE_SETUP_CALLBACK como la rutina InstanceSetupCallback del controlador de minifiltro.

Para registrar la rutina InstanceSetupCallback , el controlador de minifiltro almacena la dirección de una rutina de tipo PFLT_INSTANCE_SETUP_CALLBACK en el miembro InstanceSetupCallback de la estructura FLT_REGISTRATION que el controlador de minifiltro pasa como parámetro Registration de FltRegisterFilter.

El administrador de filtros llama a esta rutina en la primera operación después de montar un nuevo volumen.

El administrador de filtros llama a esta rutina para permitir que el controlador de minifiltro responda a una solicitud de datos adjuntos automática o manual. Si esta rutina devuelve un código NTSTATUS de error o advertencia, la instancia del controlador de minifiltro no se adjunta al volumen especificado. De lo contrario, la instancia del controlador de minifiltro se adjunta al volumen especificado.

Requisitos

Requisito Value
Plataforma de destino Escritorio
Encabezado fltkernel.h (incluya Fltkernel.h)
IRQL PASSIVE_LEVEL

Consulte también

FLT_REGISTRATION

FLT_RELATED_OBJECTS

FilterAttach

FilterAttachAtAltitude

FltAttachVolume

FltAttachVolumeAtAltitude

FltRegisterFilter

PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK

PFLT_INSTANCE_TEARDOWN_CALLBACK

Unidad de desarrollo