PFLT_NORMALIZE_NAME_COMPONENT fonction de rappel (fltkernel.h)
Un pilote minifilter qui fournit des noms de fichiers pour le cache de noms du gestionnaire de filtres peut inscrire une routine de type PFLT_NORMALIZE_NAME_COMPONENT en tant que routine NormalizeNameComponentCallback du pilote minifilter.
Syntaxe
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
)
{...}
Paramètres
[in] Instance
Pointeur de instance opaque pour le pilote minifilter instance pour lequel cette routine de rappel est inscrite.
[in] ParentDirectory
Pointeur vers une structure UNICODE_STRING qui contient le nom du répertoire parent pour ce composant de nom.
[in] VolumeNameLength
Longueur, en octets, du nom du répertoire parent stocké dans la structure vers laquelle pointe le paramètre ParentDirectory .
[in] Component
Pointeur vers une structure UNICODE_STRING qui contient le composant name à développer.
[out] ExpandComponentName
Pointeur vers une structure de FILE_NAMES_INFORMATION qui reçoit les informations de nom de fichier développé (normalisé) pour le composant name.
[in] ExpandComponentNameLength
Longueur, en octets, de la mémoire tampon vers laquelle pointe le paramètre ExpandComponentName .
[in] Flags
Indicateurs de normalisation de nom. FLTFL_NORMALIZE_NAME_CASE_SENSITIVE spécifie que le nom à normaliser respecte la casse. FLTFL_NORMALIZE_NAME_DESTINATION_FILE_NAME spécifie que la routine de rappel a été appelée pour traiter un appel de routine FltGetDestinationFileNameInformation .
[in, out] NormalizationContext
Pointeur vers les informations de contexte fournies par le pilote minifilter à passer dans tous les appels ultérieurs à cette routine de rappel qui sont effectués pour normaliser les composants restants dans le même chemin de nom de fichier.
Valeur retournée
Cette routine de rappel retourne STATUS_SUCCESS ou une valeur NTSTATUS appropriée. Si le composant name spécifié par le paramètre Component n’existe pas dans le répertoire parent spécifié par le paramètre ParentDirectory , cette routine de rappel doit retourner STATUS_NO_SUCH_FILE. Si cette routine de rappel émet une requête IRP_MN_QUERY_DIRECTORY (FileNamesInformation) dans le répertoire parent, le système de fichiers retourne le code de status correct. Dans ce cas, ce rappel peut simplement retourner le code status que le système de fichiers retourne.
Remarques
Un pilote minifilter qui fournit des noms de fichiers pour le cache de noms du gestionnaire de filtres peut inscrire une routine de type PFLT_NORMALIZE_NAME_COMPONENT en tant que routine NormalizeNameComponentCallback du pilote minifilter.
Pour inscrire cette routine de rappel, le pilote minifilter stocke l’adresse d’une routine de type PFLT_NORMALIZE_NAME_COMPONENT dans le membre NormalizeNameComponentCallback de la structure FLT_REGISTRATION que le pilote minifilter transmet en tant que paramètre à FltRegisterFilter.
Le gestionnaire de filtres appelle cette routine de rappel pour interroger le pilote minifilter pour obtenir les noms normalisés des composants dans le chemin d’accès de nom de fichier dont le pilote minifilter a modifié les noms. Si le chemin d’accès au nom de fichier contient plusieurs composants de ce type, le gestionnaire de filtres peut appeler cette routine de rappel plusieurs fois dans le processus de normalisation de tous les composants du chemin d’accès. Le pilote minifilter peut utiliser le paramètre NormalizationContext pour transmettre des informations de contexte aux appels suivants à cette routine de rappel.
Si le pilote minifilter utilise le paramètre NormalizationContext , il doit également inscrire une routine de rappel de nettoyage du contexte de normalisation. Pour plus d’informations, consultez l’entrée de référence pour PFLT_NORMALIZE_CONTEXT_CLEANUP.
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Desktop (Expérience utilisateur) |
En-tête | fltkernel.h (inclure Fltkernel.h) |
IRQL | PASSIVE_LEVEL |
Voir aussi
PFLT_NORMALIZE_CONTEXT_CLEANUP