structure IO_DRIVER_CREATE_CONTEXT (ntddk.h)
La structure IO_DRIVER_CREATE_CONTEXT est utilisée pour transmettre des paramètres supplémentaires aux routines IoCreateFileEx
La routine IoCreateFileEx est utilisée par les pilotes de filtre hérités et la routine FltCreateFileEx2 est utilisée par les pilotes minifilter.
Syntaxe
typedef struct _IO_DRIVER_CREATE_CONTEXT {
CSHORT Size;
struct _ECP_LIST *ExtraCreateParameter;
PVOID DeviceObjectHint;
PTXN_PARAMETER_BLOCK TxnParameters;
PESILO SiloContext;
} IO_DRIVER_CREATE_CONTEXT, *PIO_DRIVER_CREATE_CONTEXT;
Membres
Size
Membre en lecture seule initialisé par la routine IoInitializeDriverCreateContext.
ExtraCreateParameter
Pointeur vers une structure ECP_LIST, qui contient une liste d’entrées de paramètre de création supplémentaire (ECP). Pour plus d’informations, consultez la section remarques suivantes.
DeviceObjectHint
Si IO_DRIVER_CREATE_CONTEXT est utilisé pour passer des paramètres de création supplémentaires à la routine FltCreateFileEx2, ce membre doit être NULL.
Si IO_DRIVER_CREATE_CONTEXT est utilisé pour transmettre des paramètres de création supplémentaires à la routine IoCreateFileEx, ce membre est un pointeur vers l’objet d’appareil vers lequel la demande de création sera envoyée. L’objet d’appareil doit être un filtre hérité ou un objet de périphérique de système de fichiers dans la pile de pilotes du système de fichiers pour le volume sur lequel réside le fichier ou le répertoire. Dans le cas IoCreateFileEx, ce paramètre est facultatif et peut être NULL. Si ce paramètre est null, la requête est envoyée à l’objet de l’appareil en haut de la pile de pilotes.
TxnParameters
Pointeur vers une transaction à associer à l’opération de création. L’opération de création fait partie de la transaction si la valeur de ce membre est un pointeur valide vers la transaction. Si la valeur de ce membre est NULL, l’opération de création ne fait pas partie d’une transaction.
SiloContext
Conteneur sur lequel réside le fichier. Ce membre a été introduit dans Windows 10 version 1607.
Remarques
La structure IO_DRIVER_CREATE_CONTEXT peut être allouée à partir d’un pool paginé ou non paginé. La routine IoInitializeDriverCreateContext doit initialiser la structure IO_DRIVER_CREATE_CONTEXT avant de pouvoir utiliser la structure.
Les membres de la structure IO_DRIVER_CREATE_CONTEXT (à l’exception du membre Size
Une structure ECP_LIST contient une liste d’entrées de paramètre de création supplémentaire (ECP). Chaque entrée ECP (structure de contexte ECP) dans la liste ECP (structure ECP_LIST) est un paramètre de création supplémentaire pour IoCreateFileEx et FltCreateFileEx2.
Pour spécifier un ecP dans le cadre d’une opération de création, initialisez le membre ExtraCreateParameter de la structure IO_DRIVER_CREATE_CONTEXT avec la routine correcte :
Pour les pilotes de filtre hérités, la routine FsRtlAllocateExtraCreateParameterList doit être utilisée pour allouer le pool de mémoire pour la structure ECP_LIST. Le système d’exploitation ne libère pas automatiquement les structures ECP_LIST. Au lieu de cela, une fois la structure ECP_LIST allouée, elle doit finalement être libérée à l’aide de la routine FsRtlFreeExtraCreateParameterList.
Pour les pilotes minifilter, la routine FltAllocateExtraCreateParameterList doit être utilisée pour allouer le pool de mémoire pour la structure ECP_LIST. Le système d’exploitation ne libère pas automatiquement les structures ECP_LIST. Au lieu de cela, une fois la structure ECP_LIST allouée, elle doit finalement être libérée à l’aide de la routine FltFreeExtraCreateParameterList.
Si les PPE sont utilisées, elles doivent être créées, manipulées et libérées à l’aide des routines appropriées. Par exemple, les pilotes minifilter utilisent la routine FltInsertExtraCreateParameter pour insérer une entrée ECP dans une liste ECP. La suivante consultez également section répertorie la plupart de ces routines requises.
Lors du retour d’un appel à IoCreateFileEx ou FltCreateFileEx2, la liste ECP n’est pas modifiée et peut être passée à des supplémentaires ioCreateFileEx ou fltCreateFileEx2 appels pour les nouvelles opérations de création.
Pour créer ou ouvrir un fichier dans le contexte d’une transaction, définissez la TxnParameters membre de la structure IO_DRIVER_CREATE_CONTEXT sur la valeur retournée par la routine IoGetTransactionParameterBlock.
Exigences
Exigence | Valeur |
---|---|
d’en-tête | ntddk.h (include Ntddk.h, Ntifs.h, Fltkernel.h) |
Voir aussi
FltAllocateExtraCreateParameterFromLookasideList
FltAllocateExtraCreateParameterList
FltFreeExtraCreateParameterList
FsRtlAllocateExtraCreateParameterList
FsRtlFreeExtraCreateParameterList
IoCreateFileSpecifyDeviceObjectHint