使用英语阅读

通过


FltAllocateCallbackDataEx 函数 (fltkernel.h)

FltAllocateCallbackDataEx 例程分配回调数据结构,并且可以为微型筛选器驱动程序可用于启动 I/O 请求的其他结构预分配内存。

语法

NTSTATUS FLTAPI FltAllocateCallbackDataEx(
  [in]          PFLT_INSTANCE                    Instance,
  [in/optional] PFILE_OBJECT                     FileObject,
  [in]          FLT_ALLOCATE_CALLBACK_DATA_FLAGS Flags,
  [out]         PFLT_CALLBACK_DATA               *RetNewCallbackData
);

参数

[in] Instance

不透明实例指针,指向正在启动 I/O作的微型筛选器驱动程序实例。 此参数是必需的,不能 NULL

[in/optional] FileObject

指向 I/O作中使用的文件对象的指针。 此参数是可选的,可以 NULL。 如果这是 CREATE作,请将 FileObject 设置为 NULL

[in] Flags

值为零或以下标志:FLT_ALLOCATE_CALLBACK_DATA_PREALLOCATE_ALL_MEMORY

如果设置了此标志,则例程会预先分配筛选器管理器所需的所有内存,以便在 I/O 请求中使用其他结构。

[out] RetNewCallbackData

指向调用方分配的变量的指针,该变量接收新分配的回调数据的地址 FLT_CALLBACK_DATA 结构。

返回值

FltAllocateCallbackDataEx 例程在成功时返回STATUS_SUCCESS;如果例程在尝试分配回调数据结构时遇到池分配失败,或者设置FLT_ALLOCATE_CALLBACK_DATA_PREALLOCATE_ALL_MEMORY标志并且无法分配额外的内存,则返回STATUS_INSUFFICIENT_RESOURCES。

言论

如果设置了FLT_ALLOCATE_CALLBACK_DATA_PREALLOCATE_ALL_MEMORY标志,则例程会分配在后续 I/O 请求中使用的其他筛选器管理器结构所需的所有内存。 使用此标志,微型筛选器可以预分配一个或多个回调数据结构,以便在内存不足的情况下或从内存分配失败中恢复时,用于发出 I/O 请求。

备注

额外的分配内存供筛选器管理器使用。 由于内存不足的情况,文件系统或其他筛选器仍可能会失败 I/O 请求。

重要

FltAllocateCallbackData 的注释也适用于 FltAllocateCallbackDataEx。 查看该信息,以便为设计选择正确的例程。

要求

要求 价值
最低支持的客户端 在 Windows 7 及更高版本的 Windows作系统中可用。
目标平台 普遍
标头 fltkernel.h (包括 FltKernel.h)
FltMgr.lib
IRQL <= APC_LEVEL

另请参阅

FLT_CALLBACK_DATA

FltAllocateCallbackData