Partager via


FsRtlAllocateExtraCreateParameterList, fonction (ntifs.h)

La routine FsRtlAllocateExtraCreateParameterList alloue de la mémoire du pool paginé 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é avec le paramètre Flags à l’aide d’une opération OR au niveau du bit, tout pool alloué par FsRtlAllocateExtraCreateParameterList sera 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 a la valeur NULL et FsRtlAllocateExtraCreateParameterList retourne le code d’état STATUS_INSUFFICIENT_RESOURCES.

Valeur de retour

FsRtlAllocateExtraCreateParameterList peut retourner l’une des valeurs suivantes :

Retourner le code Description
STATUS_INSUFFICIENT_RESOURCES FsRtlAllocateExtraCreateParameterList n’a pas pu allouer suffisamment de mémoire pour une structure de liste ECP. Dans ce cas, *EcpList sera NULL.
STATUS_SUCCESS La mémoire de la structure ECP_LIST a été correctement allouée et initialisée. Dans ce cas, un pointeur vers la structure de liste initialisée est retourné dans le paramètre EcpList.

Remarques

Si le système d’exploitation libère automatiquement la mémoire que FsRtlAllocateExtraCreateParameterList alloue dépend du moment où FsRtlAllocateExtraCreateParameterList est appelée, 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 jeu ECP. Lorsque l’appelant est terminé avec le ECP_LIST, l’appelant doit appeler la routine FltFreeExtraCreateParameter pour libérer le ECP_LIST.

  • Alors qu’un pilote de filtre de système de fichiers ou de système de fichiers traite une demande de IRP_MJ_CREATE, le pilote de filtre du système de fichiers ou du système de fichiers peut appeler FltInsertExtraCreateParameter pour attacher 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, les ECP_LIST et la structure de contexte ECP sont automatiquement nettoyées par le gestionnaire d’E/S lorsque l’opération de création se termine. Cela permet à l’ECP d’un système de fichiers ou d’un pilote de filtre d’être correctement propagé 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 Indicateurs, un pool paginable est alloué. Sinon, un pool paginable est alloué à l’aide d’une liste de lookaside interne.

Exigences

Exigence Valeur
client minimum pris en charge 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

ECP_LIST

FltAllocateExtraCreateParameter

FltAllocateExtraCreateParameterFromLookasideList

FltCreateFileEx2

FltFreeExtraCreateParameter

FltFreeExtraCreateParameterList

FltGetEcpListFromCallbackData

FltInsertExtraCreateParameter

FltRemoveExtraCreateParameter

FltSetEcpListIntoCallbackData

IoCreateFileEx