PFLT_CONTEXT_ALLOCATE_CALLBACK fonction de rappel (fltkernel.h)
Un pilote de minifiltre peut inscrire une routine de type PFLT_CONTEXT_ALLOCATE_CALLBACK comme routine ContextAllocateCallback du pilote minifiltre.
Syntaxe
PFLT_CONTEXT_ALLOCATE_CALLBACK PfltContextAllocateCallback;
PVOID PfltContextAllocateCallback(
[in] POOL_TYPE PoolType,
[in] SIZE_T Size,
[in] FLT_CONTEXT_TYPE ContextType
)
{...}
Paramètres
[in] PoolType
Type de pool à allouer. Ce paramètre est obligatoire et doit être l’un des éléments suivants :
NonPagedPool
PagedPool
Doit être NonPagedPool si le paramètre ContextType est FLT_VOLUME_CONTEXT.
[in] Size
Taille, en octets, de l’ensemble du contexte, y compris la partie définie par le gestionnaire de filtres et la partie définie par le pilote de minifiltre.
[in] ContextType
Type de contexte. Ce paramètre est obligatoire et doit être l’une des valeurs suivantes :
FLT_FILE_CONTEXT (à partir de Windows Vista)
FLT_INSTANCE_CONTEXT
FLT_STREAM_CONTEXT
FLT_STREAMHANDLE_CONTEXT
FLT_SECTION_CONTEXT (à partir de Windows 8)
FLT_TRANSACTION_CONTEXT (à partir de Windows Vista)
FLT_VOLUME_CONTEXT
Valeur retournée
Si le pool libre n’est pas suffisant pour répondre à la demande, cette routine retourne un pointeur NULL . Sinon, il retourne un pointeur vers le contexte nouvellement alloué.
Remarques
Dans les rares cas où un pilote de minifiltre doit effectuer sa propre allocation de contexte, il peut spécifier une routine de type PFLT_CONTEXT_ALLOCATE_CALLBACK comme routine ContextAllocateCallback pour chaque type de contexte qu’il inscrit lorsqu’il appelle FltRegisterFilter à partir de sa routine DriverEntry . Pour spécifier cette routine, le pilote de minifiltre stocke un pointeur vers la routine dans le membre ContextAllocateCallback de la structure FLT_CONTEXT_REGISTRATION pour le type de contexte.
Pour plus d’informations sur l’inscription de contexte, consultez l’entrée de référence pour FLT_CONTEXT_REGISTRATION.
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Desktop (Expérience utilisateur) |
En-tête | fltkernel.h (inclure Fltkernel.h) |
IRQL | <=APC_LEVEL |