FltGetContextsEx 函数 (fltkernel.h)

FltGetContextsEx 例程检索与当前操作相关的对象的微筛选器驱动程序上下文。

语法

NTSTATUS FLTAPI FltGetContextsEx(
  [in]  PCFLT_RELATED_OBJECTS    FltObjects,
  [in]  FLT_CONTEXT_TYPE         DesiredContexts,
  [in]  SIZE_T                   ContextsSize,
  [out] PFLT_RELATED_CONTEXTS_EX Contexts
);

参数

[in] FltObjects

指向 FLT_RELATED_OBJECTS 结构的指针,其中包含与当前操作相关的对象的不透明指针。 有关更多信息,请参见备注。

[in] DesiredContexts

标识要检索的上下文类型。 此参数可以是以下值的按位 OR。

常数 Value
FLT_VOLUME_CONTEXT 0x0001
FLT_INSTANCE_CONTEXT 0x0002
FLT_FILE_CONTEXT 0x0004
FLT_STREAM_CONTEXT 0x0008
FLT_STREAMHANDLE_CONTEXT 0x0010
FLT_TRANSACTION_CONTEXT 0x0020
FLT_SECTION_CONTEXT 020040
FLT_ALL_CONTEXTS 所有上下文值的按位 OR

[in] ContextsSize

上下文指向 的FLT_RELATED_CONTEXTS_EX 结构的大小(以字节 为单位)。 将 设置为 sizeof (FLT_RELATED_CONTEXTS_EX) 。

[out] Contexts

指向调用方分配 的FLT_RELATED_CONTEXTS 结构的指针,该结构接收请求的上下文。 此参数是必需的,不能设置为 NULL。 FltMgr 将结构成员设置为零:

  • 调用方未请求的上下文。
  • 调用方请求但 FltMgr 找不到的上下文。

返回值

成功完成后,FltGetContextsEx 将返回STATUS_SUCCESS。 否则,它将返回如下状态代码之一。

代码 含义
STATUS_INVALID_PARAMETER 输入的上下文值无效。

注解

有关上下文的详细信息,请参阅 关于微筛选器上下文

微筛选器驱动程序调用 FltGetContextsEx 以检索指向 FLT_RELATED_OBJECTS 结构中对象的上下文的指针。 在STATUS_SUCCESS,微筛选器在使用前需要检查上下文不是零。

以下微筛选器驱动程序回调例程类型接收指向 FLT_RELATED_OBJECTS 结构的指针作为 FltObjects 输入参数:

FltGetContextsEx 递增 Contexts 参数指向的FLT_RELATED_CONTEXTS_EX结构中返回的每个上下文的引用计数。 因此,对于每次成功调用 FltGetContextsEx,调用方必须:

  • Contexts 参数指向的整个结构调用 FltReleaseContextsEx
  • 为结构中返回的每个上下文调用 FltReleaseContext ,并将结构中返回的每个上下文字段设置为零。

要求

要求
最低受支持的客户端 Windows 8
目标平台 通用
标头 fltkernel.h (包括 Fltkernel.h)
Library FltMgr.lib
DLL Fltmgr.sys
IRQL <= APC_LEVEL

另请参阅

FLT_RELATED_CONTEXTS_EX

FLT_RELATED_OBJECTS

FltRegisterFilter

FltReleaseContext

FltReleaseContextsEx

PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK

PFLT_INSTANCE_SETUP_CALLBACK

PFLT_INSTANCE_TEARDOWN_CALLBACK

PFLT_POST_OPERATION_CALLBACK

PFLT_PRE_OPERATION_CALLBACK