PFLT_CONTEXT_ALLOCATE_CALLBACK回调函数 (fltkernel.h)

微筛选器驱动程序可以将 PFLT_CONTEXT_ALLOCATE_CALLBACK 类型的例程注册为微筛选器驱动程序的 ContextAllocateCallback 例程。

语法

PFLT_CONTEXT_ALLOCATE_CALLBACK PfltContextAllocateCallback;

PVOID PfltContextAllocateCallback(
  [in] POOL_TYPE PoolType,
  [in] SIZE_T Size,
  [in] FLT_CONTEXT_TYPE ContextType
)
{...}

参数

[in] PoolType

要分配的池的类型。 此参数是必需的,必须是下列参数之一:

NonPagedPool

PagedPool

如果 contextType 参数FLT_VOLUME_CONTEXT,则必须为 NonPagedPool

[in] Size

整个上下文的大小(以字节为单位),包括筛选器管理器定义的部分和微筛选器驱动程序定义的部分。

[in] ContextType

上下文的类型。 此参数是必需的,必须是以下值之一:

从 Windows Vista) 开始FLT_FILE_CONTEXT (

FLT_INSTANCE_CONTEXT

FLT_STREAM_CONTEXT

FLT_STREAMHANDLE_CONTEXT

从 Windows 8) 开始FLT_SECTION_CONTEXT (

从 Windows Vista) 开始FLT_TRANSACTION_CONTEXT (

FLT_VOLUME_CONTEXT

返回值

如果没有足够的可用池来满足请求,此例程将返回 NULL 指针。 否则,它将返回指向新分配的上下文的指针。

注解

对于微筛选器驱动程序必须执行其自己的上下文分配的极少数情况,它可以在从其 DriverEntry 例程调用 FltRegisterFilter 时为其注册的每个上下文类型指定PFLT_CONTEXT_ALLOCATE_CALLBACK类型的例程作为 ContextAllocateCallback 例程。 若要指定此例程,微筛选器驱动程序会将指向该例程的指针存储在上下文类型的 FLT_CONTEXT_REGISTRATION 结构的 ContextAllocateCallback 成员中。

有关上下文注册的详细信息,请参阅 FLT_CONTEXT_REGISTRATION的参考条目。

要求

要求
目标平台 桌面
标头 fltkernel.h (包括 Fltkernel.h)
IRQL <=APC_LEVEL

另请参阅

FLT_CONTEXT_REGISTRATION

FLT_REGISTRATION

FltRegisterFilter

PFLT_CONTEXT_CLEANUP_CALLBACK

PFLT_CONTEXT_FREE_CALLBACK