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。
不断 | 价值 |
---|---|
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 输入参数:
- PFLT_PRE_OPERATION_CALLBACK
- PFLT_POST_OPERATION_CALLBACK
- PFLT_INSTANCE_SETUP_CALLBACK
- PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK
- PFLT_INSTANCE_TEARDOWN_CALLBACK
FltGetContextsEx 递增 上下文 参数指向 FLT_RELATED_CONTEXTS_EX 结构中返回的每个上下文的引用计数。 因此,对于每次成功调用 FltGetContextsEx,调用方必须:
- 为 上下文 参数指向的整个结构调用 FltReleaseContextsEx。
- 为结构中返回的每个上下文调用 FltReleaseContext,并将结构中返回的每个上下文字段设置为零。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows 8 |
目标平台 | 普遍 |
标头 | fltkernel.h (包括 Fltkernel.h) |
库 | FltMgr.lib |
DLL | Fltmgr.sys |
IRQL | <= APC_LEVEL |
另请参阅
PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK