FsRtlAllocateExtraCreateParameterFromLookasideList, fonction (ntifs.h)
La routine FsRtlAllocateExtraCreateParameterFromLookasideList alloue le pool de mémoire à partir d’une liste de lookaside 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 FsRtlAllocateExtraCreateParameterFromLookasideList(
[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] EcpType
Pointeur vers un GUID qui indique le type d’ECP pour lequel une structure de contexte doit être allouée. Pour plus d’informations sur les PPE, consultez Utilisation de paramètres de création supplémentaires avec une opération de IRP_MJ_CREATE.
[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 vers laquelle le paramètre LookasideList pointe vers, FsRtlAllocateExtraCreateParameterFromLookasideList alloue la structure de contexte ECP à partir du pool système au lieu de la liste lookaside. Dans ce cas, si le paramètre Flags contient la valeur de l’indicateur de bits FSRTL_ALLOCATE_ECP_FLAG_CHARGE_QUOTA, le pool système alloué par FsRtlAllocateExtraCreateParameterFromLookasideList est facturé par rapport au quota de mémoire du processus actuel. Pour plus d’informations sur les valeurs d’indicateur de bits, consultez le paramètre indicateurs
[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 lookaside initialisée à partir de laquelle FsRtlAllocateExtraCreateParameterFromLookasideList tente d’allouer le pool (pour la structure de contexte ECP). Pour initialiser la liste lookaside, utilisez la routine FsRtlInitExtraCreateParameterLookasideList.
[out] EcpContext
Pointeur vers un emplacement qui reçoit un pointeur vers la structure de contexte ECP allouée. Si FsRtlAllocateExtraCreateParameterFromLookasideList n’a pas pu allouer suffisamment de pool pour la structure de contexte ECP, FsRtlAllocateExtraCreateParameterFromLookasideList définit EcpContext à NULL et retourne le code d’état STATUS_INSUFFICIENT_RESOURCES.
Valeur de retour
La routine FsRtlAllocateExtraCreateParameterFromLookasideList peut retourner l’une des valeurs suivantes :
Retourner le code | Description |
---|---|
STATUS_INSUFFICIENT_RESOURCES | La routine FsRtlAllocateExtraCreateParameterFromLookasideList n’a pas pu allouer suffisamment de mémoire pour une structure de contexte ECP. Dans ce cas, le paramètre EcpContext |
STATUS_SUCCESS | La structure de contexte ECP a été correctement allouée. Dans ce cas, FsRtlAllocateExtraCreateParameterFromLookasideList retourne un pointeur vers la structure allouée dans le paramètre EcpContext. |
Remarques
Utilisez la routine FsRtlInitExtraCreateParameterLookasideList pour initialiser une liste de choix de pool paginée ou non paginée. Utilisez la routine FsRtlAllocateExtraCreateParameterFromLookasideList pour allouer une structure de contexte ECP à partir de la liste lookaside et la routine FsRtlFreeExtraCreateParameter routine pour libérer la structure de contexte ECP.
Utilisez la routine FsRtlDeleteExtraCreateParameterLookasideList 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 se termine. 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 de réécriture, un processus qui peut nécessiter plusieurs requêtes de IRP_MJ_CREATE à générer.
Pour plus d’informations sur l’utilisation de listes lookaside avec des pilotes, consultez Using Lookaside Lists.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | FsRtlAllocateExtraCreateParameterFromLookasideList est disponible à partir de Windows Vista. |
plateforme cible | Universel |
d’en-tête | ntifs.h (include Ntifs.h) |
bibliothèque | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |
Voir aussi
FsRtlDeleteExtraCreateParameterLookasideList