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
PFLT_NORMALIZE_CONTEXT_CLEANUP