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

Voir aussi

FLT_CONTEXT_REGISTRATION

FLT_REGISTRATION

FltRegisterFilter

PFLT_CONTEXT_CLEANUP_CALLBACK

PFLT_CONTEXT_FREE_CALLBACK