Fonction FsRtlAllocateExtraCreateParameterList (ntifs.h)
La routine FsRtlAllocateExtraCreateParameterList alloue de la mémoire de pool paginée pour une structure ECP_LIST et génère un pointeur vers cette structure.
Syntaxe
NTSTATUS FsRtlAllocateExtraCreateParameterList(
[in] FSRTL_ALLOCATE_ECPLIST_FLAGS Flags,
[out] PECP_LIST *EcpList
);
Paramètres
[in] Flags
Définit les options d’allocation de pool. Si l’indicateur FSRTL_ALLOCATE_ECPLIST_FLAG_CHARGE_QUOTA est combiné au paramètre Flags à l’aide d’une opération OR au niveau du bit, tout pool alloué par FsRtlAllocateExtraCreateParameterList est facturé par rapport au quota de mémoire du processus actuel.
[out] EcpList
Reçoit un pointeur vers une structure de liste ECP initialisée. Si FsRtlAllocateExtraCreateParameterList n’a pas pu allouer un pool suffisant, *EcpList est NULL et FsRtlAllocateExtraCreateParameterList retourne status code STATUS_INSUFFICIENT_RESOURCES.
Valeur retournée
FsRtlAllocateExtraCreateParameterList peut retourner l’une des valeurs suivantes :
Code de retour | Description |
---|---|
STATUS_INSUFFICIENT_RESOURCES | FsRtlAllocateExtraCreateParameterList n’a pas pu allouer suffisamment de mémoire pour une structure de liste ECP. Dans ce cas, *EcpList aura la valeur NULL. |
STATUS_SUCCESS | La mémoire de la structure ECP_LIST a été allouée et initialisée avec succès. Dans ce cas, un pointeur vers la structure de liste initialisée est retourné dans le paramètre EcpList . |
Remarques
Le fait que le système d’exploitation libère automatiquement de la mémoire que FsRtlAllocateExtraCreateParameterList alloue dépend du moment où FsRtlAllocateExtraCreateParameterList est appelé, comme indiqué dans les situations suivantes :
Un appelant peut appeler FsRtlAllocateExtraCreateParameterList pour allouer le ECP_LIST et ajouter une ou plusieurs structures de contexte ECP avant que l’appelant appelle la routine IoCreateFileEx . Dans ce cas, le système d’exploitation ne libère aucune des structures de contexte ECP. Par conséquent, l’appelant peut effectuer plusieurs appels à IoCreateFileEx avec le même ensemble ECP. Lorsque l’appelant a terminé avec le ECP_LIST, l’appelant doit appeler la routine FltFreeExtraCreateParameter pour libérer le ECP_LIST.
Alors qu’un système de fichiers ou un pilote de filtre de système de fichiers traite une demande de IRP_MJ_CREATE , le système de fichiers ou le pilote de filtre de système de fichiers peut appeler FltInsertExtraCreateParameter pour joindre un ecP à un ECP_LIST existant. Si le ECP_LIST n’existe pas, l’appelant doit appeler FsRtlAllocateExtraCreateParameterList pour créer le ECP_LIST. Dans ce cas, le ECP_LIST et la structure de contexte ECP sont automatiquement nettoyés par le gestionnaire d’E/S une fois l’opération de création terminée. Cela permet de propager correctement l’ECP d’un système de fichiers ou d’un pilote de filtre sur le traitement des points d’analyse. Ce processus peut nécessiter la génération de plusieurs requêtes IRP_MJ_CREATE.
Si l’indicateur FSRTL_ALLOCATE_ECPLIST_FLAG_CHARGE_QUOTA est utilisé avec le paramètre Flags , un pool paginable est alloué. Sinon, un pool paginable est alloué à l’aide d’une liste de lookaside interne.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows Vista |
Plateforme cible | Universal |
En-tête | ntifs.h (include Ntifs.h) |
Bibliothèque | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |
Voir aussi
FltAllocateExtraCreateParameter
FltAllocateExtraCreateParameterFromLookasideList