Partager via


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

ECP_LIST

FltAllocateExtraCreateParameter

FltAllocateExtraCreateParameterFromLookasideList

FltCreateFileEx2

FltFreeExtraCreateParameter

FltFreeExtraCreateParameterList

FltGetEcpListFromCallbackData

FltInsertExtraCreateParameter

FltRemoveExtraCreateParameter

FltSetEcpListIntoCallbackData

IoCreateFileEx