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

Un controlador de minifiltro que proporciona nombres de archivo para la memoria caché de nombres del administrador de filtros puede registrar una rutina de tipo PFLT_NORMALIZE_NAME_COMPONENT como la rutina NormalizeNameComponentCallback del controlador de minifiltro.

Sintaxis

PFLT_NORMALIZE_NAME_COMPONENT PfltNormalizeNameComponent;

NTSTATUS PfltNormalizeNameComponent(
  [in]      PFLT_INSTANCE Instance,
  [in]      PCUNICODE_STRING ParentDirectory,
  [in]      USHORT VolumeNameLength,
  [in]      PCUNICODE_STRING Component,
  [out]     PFILE_NAMES_INFORMATION ExpandComponentName,
  [in]      ULONG ExpandComponentNameLength,
  [in]      FLT_NORMALIZE_NAME_FLAGS Flags,
  [in, out] PVOID *NormalizationContext
)
{...}

Parámetros

[in] Instance

Puntero de instancia opaco para la instancia del controlador de minifiltro para la que está registrada esta rutina de devolución de llamada.

[in] ParentDirectory

Puntero a una estructura de UNICODE_STRING que contiene el nombre del directorio primario para este componente de nombre.

[in] VolumeNameLength

Longitud, en bytes, del nombre del directorio primario almacenado en la estructura a la que apunta el parámetro ParentDirectory .

[in] Component

Puntero a una estructura de UNICODE_STRING que contiene el componente de nombre que se va a expandir.

[out] ExpandComponentName

Puntero a una estructura de FILE_NAMES_INFORMATION que recibe la información del nombre de archivo expandido (normalizado) para el componente de nombre.

[in] ExpandComponentNameLength

Longitud, en bytes, del búfer al que apunta el parámetro ExpandComponentName .

[in] Flags

Marcas de normalización de nombres. FLTFL_NORMALIZE_NAME_CASE_SENSITIVE especifica que el nombre que se va a normalizar distingue mayúsculas de minúsculas. FLTFL_NORMALIZE_NAME_DESTINATION_FILE_NAME especifica que se ha llamado a la rutina de devolución de llamada para atender una llamada rutinaria FltGetDestinationFileNameInformation .

[in, out] NormalizationContext

Puntero a la información de contexto proporcionada por el controlador minifiltro que se pasará en las llamadas posteriores a esta rutina de devolución de llamada que se realizan para normalizar los componentes restantes en la misma ruta de acceso de nombre de archivo.

Valor devuelto

Esta rutina de devolución de llamada devuelve STATUS_SUCCESS o un valor NTSTATUS adecuado. Si el componente de nombre que especifica el parámetro Component no existe en el directorio primario que especifica el parámetro ParentDirectory , esta rutina de devolución de llamada debe devolver STATUS_NO_SUCH_FILE. Si esta rutina de devolución de llamada emite una solicitud de IRP_MN_QUERY_DIRECTORY (FileNamesInformation) al directorio primario, el sistema de archivos devuelve el código de estado correcto. En esta situación, esta devolución de llamada simplemente puede devolver el código de estado que devuelve el sistema de archivos.

Comentarios

Un controlador de minifiltro que proporciona nombres de archivo para la memoria caché de nombres del administrador de filtros puede registrar una rutina de tipo PFLT_NORMALIZE_NAME_COMPONENT como la rutina NormalizeNameComponentCallback del controlador de minifiltro.

Para registrar esta rutina de devolución de llamada, el controlador de minifiltro almacena la dirección de una rutina de tipo PFLT_NORMALIZE_NAME_COMPONENT en el miembro NormalizeNameComponentCallback de la estructura FLT_REGISTRATION que el controlador de minifiltro pasa como parámetro a FltRegisterFilter.

El administrador de filtros llama a esta rutina de devolución de llamada para consultar al controlador de minifiltro los nombres normalizados de los componentes de la ruta de acceso del nombre de archivo cuyos nombres ha modificado el controlador de minifiltro. Si la ruta de acceso del nombre de archivo contiene más de un componente de este tipo, el administrador de filtros puede llamar a esta rutina de devolución de llamada varias veces en el proceso de normalizar todos los componentes de la ruta de acceso. El controlador minifiltro puede usar el parámetro NormalizationContext para pasar información de contexto a las llamadas posteriores a esta rutina de devolución de llamada.

Si el controlador minifiltro usa el parámetro NormalizationContext , también debe registrar una rutina de devolución de llamada de limpieza del contexto de normalización. Para obtener más información, consulte la entrada de referencia para PFLT_NORMALIZE_CONTEXT_CLEANUP.

Requisitos

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

Consulte también

FILE_NAMES_INFORMATION

FLT_REGISTRATION

FltRegisterFilter

PFLT_GENERATE_FILE_NAME

PFLT_NORMALIZE_CONTEXT_CLEANUP

PFLT_NORMALIZE_NAME_COMPONENT_EX

UNICODE_STRING