PFLT_CONTEXT_ALLOCATE_CALLBACK callback function (fltkernel.h)
A minifilter driver can register a routine of type PFLT_CONTEXT_ALLOCATE_CALLBACK as the minifilter driver's ContextAllocateCallback routine.
PFLT_CONTEXT_ALLOCATE_CALLBACK PfltContextAllocateCallback;
PVOID PfltContextAllocateCallback(
[in] POOL_TYPE PoolType,
[in] SIZE_T Size,
[in] FLT_CONTEXT_TYPE ContextType
)
{...}
[in] PoolType
The type of pool to allocate. This parameter is required and must be one of the following:
NonPagedPool
PagedPool
Must be NonPagedPool if the ContextType parameter is FLT_VOLUME_CONTEXT.
[in] Size
The size, in bytes, of the entire context, including both the portion defined by the filter manager and the portion defined by the minifilter driver.
[in] ContextType
The type of context. This parameter is required and must be one of the following values:
FLT_FILE_CONTEXT (starting with Windows Vista)
FLT_INSTANCE_CONTEXT
FLT_STREAM_CONTEXT
FLT_STREAMHANDLE_CONTEXT
FLT_SECTION_CONTEXT (starting with Windows 8)
FLT_TRANSACTION_CONTEXT (starting with Windows Vista)
FLT_VOLUME_CONTEXT
If not enough free pool is available to satisfy the request, this routine returns a NULL pointer. Otherwise, it returns a pointer to the newly allocated context.
For the rare cases that a minifilter driver must perform its own context allocation, it can specify a routine of type PFLT_CONTEXT_ALLOCATE_CALLBACK as the ContextAllocateCallback routine for each context type that it registers when it calls FltRegisterFilter from its DriverEntry routine. To specify this routine, the minifilter driver stores a pointer to the routine in the ContextAllocateCallback member of the FLT_CONTEXT_REGISTRATION structure for the context type.
For more information about context registration, see the reference entry for FLT_CONTEXT_REGISTRATION.
Requirement | Value |
---|---|
Target Platform | Desktop |
Header | fltkernel.h (include Fltkernel.h) |
IRQL | <=APC_LEVEL |