Attachement d’ECPs à IRP_MJ_CREATE opérations à l’origine d’un pilote en mode noyau
Vous devez suivre ces étapes pour configurer les fournisseurs d’environnement et les attacher à une opération de IRP_MJ_CREATE sur un fichier :
Appelez FltAllocateExtraCreateParameterList ou FsRtlAllocateExtraCreateParameterList pour allouer de la mémoire pour une structure ECP_LIST . Le système d’exploitation ne libère pas automatiquement ECP_LIST structures. Au lieu de cela, le pilote de minifiltre doit finalement appeler FltFreeExtraCreateParameterList ou FsRtlFreeExtraCreateParameterList pour libérer la mémoire allouée pour le ECP_LIST.
Appelez FltAllocateExtraCreateParameter ou FsRtlAllocateExtraCreateParameter pour allouer un pool de mémoire paginée pour une structure de contexte ECP et générer un pointeur vers cette structure.
Appelez FltInsertExtraCreateParameter ou FsRtlInsertExtraCreateParameter pour insérer des structures de contexte ECP dans la structure ECP_LIST .
Appelez IoInitializeDriverCreateContext pour initialiser une structure IO_DRIVER_CREATE_CONTEXT .
Définissez la structure IO_DRIVER_CREATE_CONTEXT . Dans cette définition, pointez le membre ExtraCreateParameter de IO_DRIVER_CREATE_CONTEXT vers la structure ECP_LIST .
Appelez FltCreateFileEx2 ou IoCreateFileEx pour attacher les ecps à l’opération IRP_MJ_CREATE sur le fichier. Dans cet appel, passez un pointeur vers la structure IO_DRIVER_CREATE_CONTEXT vers le paramètre DriverContext .
Appelez FltFreeExtraCreateParameterList ou FsRtlFreeExtraCreateParameterList pour libérer la structure ECP_LIST . Ces fonctions libèrent également automatiquement tous les éléments de liste ECP restants.