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
FltAllocateExtraCreateParameter
FltAllocateExtraCreateParameterFromLookasideList