FltAllocateExtraCreateParameterFromLookasideList, fonction (fltkernel.h)
La routine FltAllocateExtraCreateParameterFromLookasideList alloue le pool de mémoire à partir d’une liste de choix donnée pour une structure de contexte de paramètre de création supplémentaire (ECP) et génère un pointeur vers cette structure.
Syntaxe
NTSTATUS FLTAPI FltAllocateExtraCreateParameterFromLookasideList(
[in] PFLT_FILTER Filter,
[in] LPCGUID EcpType,
[in] ULONG SizeOfContext,
[in] FSRTL_ALLOCATE_ECP_FLAGS Flags,
[in, optional] PFSRTL_EXTRA_CREATE_PARAMETER_CLEANUP_CALLBACK CleanupCallback,
[in, out] PVOID LookasideList,
[out] PVOID *EcpContext
);
Paramètres
[in] Filter
Pointeur de filtre opaque vers le pilote minifilter. Ce pointeur identifie de façon unique le pilote minifilter et reste constant tant que le pilote minifilter est chargé.
[in] EcpType
Pointeur vers un GUID qui indique le type de la structure de contexte ECP. Pour plus d’informations, consultez Utilisation des GUID dans les pilotes.
[in] SizeOfContext
Taille, en octets, de la structure de contexte ECP.
[in] Flags
Définit les options d’allocation de pool. Si la valeur du paramètre SizeOfContext est supérieure à la taille, en octets, de la liste de choix donnée, la structure de contexte ECP est allouée à partir du pool système au lieu de la liste lookaside. Dans ce cas, si le paramètre Indicateurs contient la valeur d’indicateur de bits FSRTL_ALLOCATE_ECP_FLAG_CHARGE_QUOTA, le pool système alloué par la routine est facturé par rapport au quota de mémoire du processus actuel. Pour plus d’informations, consultez le paramètre Flags de FltAllocateExtraCreatePara meter. Dans le cas le plus courant lorsque la mémoire de la structure de contexte ECP est allouée à partir de la liste lookaside, l’indicateur de bits FSRTL_ALLOCATE_ECP_FLAG_CHARGE_QUOTA n’est pas utilisé par la routine.
[in, optional] CleanupCallback
Pointeur facultatif vers une routine de rappel de nettoyage définie par minifilter de type PFSRTL_EXTRA_CREATE_PARAMETER_CLEANUP_CALLBACK. La routine de rappel de nettoyage est appelée lorsque la structure de contexte ECP est supprimée. Définissez ce paramètre sur NULL si une routine de rappel de nettoyage n’est pas applicable.
[in, out] LookasideList
Pointeur vers une liste de lookaside initialisée dans laquelle tenter d’allouer le pool (pour la structure de contexte ECP). Pour initialiser la liste lookaside, utilisez la routine FltInitExtraCreateParameterLookasideList.
[out] EcpContext
Reçoit un pointeur vers la structure de contexte ECP allouée. Si la routine n’a pas pu allouer suffisamment de pool pour la structure de contexte ECP, ecpContext sera NULL et la routine retournera le code d’état STATUS_INSUFFICIENT_RESOURCES.
Valeur de retour
La routine FltAllocateExtraCreateParameterFromLookasideList peut retourner l’une des valeurs suivantes :
Retourner le code | Description |
---|---|
STATUS_INSUFFICIENT_RESOURCES | La routine FltAllocateExtraCreateParameterFromLookasideList n’a pas pu allouer suffisamment de mémoire pour une structure de contexte ECP. Dans ce cas, EcpContext sera NULL. |
STATUS_SUCCESS | La structure de contexte ECP a été correctement allouée. Dans ce cas, un pointeur vers la structure allouée est retourné par le paramètre EcpContext. |
Remarques
Cette routine est disponible à partir de Windows Vista.
L'FltAllocateExtraCreateParameterFromLookasideList routine alloue un pool de mémoire pour une structure de contexte ECP à partir de la liste lookaside initialisée ou non paginée donnée. Toutefois, si la taille de la structure de contexte ECP (telle que définie par le paramètre SizeOfContext) est supérieure à la liste de choix, la routine alloue de la mémoire à partir d’un pool système paginé ou non paginé.
Utilisez la routine FltInitExtraCreateParameterLookasideList pour initialiser une liste de choix de pool paginée ou non paginée. Utilisez la routine FltAllocateExtraCreateParameterFromLookasideList pour allouer une structure de contexte ECP à partir de la liste lookaside et la routine FltFreeExtraCreateParameter pour libérer la structure de contexte ECP.
Utilisez la routine FltDeleteExtraCreateParameterLookasideList pour libérer une liste lookaside.
Les pilotes doivent libérer toutes les structures de contexte ECP et les listes de choix qu’ils créent avant le déchargement. Toutefois, si un pilote de filtre de système de fichiers ou de système de fichiers attache un FOURNISSEUR d’identité à un ECP_LIST existant ou nouvellement créé lors du traitement d’une demande de IRP_MJ_CREATE, ce fournisseur d’identité est automatiquement nettoyé lorsque l’IRP est terminé. Par conséquent, un pilote de filtre n’a pas besoin de nettoyer dynamiquement les fournisseurs d’environnement qui sont ajoutés dynamiquement. Cela permet à l’ECP d’un pilote de filtre d’être correctement propagé sur les points d’analyse, ce qui peut nécessiter la génération de plusieurs requêtes IRP_MJ_CREATE.
Pour plus d’informations sur l’utilisation de listes lookaside avec des pilotes, consultez Using Lookaside Lists.
Exigences
Exigence | Valeur |
---|---|
plateforme cible | Universel |
d’en-tête | fltkernel.h (include Fltkernel.h) |
bibliothèque | FltMgr.lib |
IRQL | <= APC_LEVEL |
Voir aussi
FltAllocateExtraCreateParameter
FltAllocateExtraCreateParameterList
FltDeleteExtraCreateParameterLookasideList
FltFreeExtraCreateParameterList