Api FltGetStreamHandleContext和FltSetStreamHandleContext函数
FltGetStreamHandleContext的第三个参数的结构是否为用户定义的结构?在通过FltGetStreamHandleContext获取上下文之前,是否必须通过FltSetStreamHandleContext函数预定义上下文?很抱歉给您带来不便。是的,Api FltGetStreamHandleContext和FltSetStreamHandleContext函数,api,filter,driver,Api,Filter,Driver,FltGetStreamHandleContext的第三个参数的结构是否为用户定义的结构?在通过FltGetStreamHandleContext获取上下文之前,是否必须通过FltSetStreamHandleContext函数预定义上下文?很抱歉给您带来不便。是的,PFLT\u上下文是用户定义的结构,因此您可以自己设计它的内容。你需要通过电话分配。实际上,这个函数为分配的上下文上的保持引用计数分配了比ContextSize参数更多的参数(最初它等于1),因为fltstream[Handle]c
PFLT\u上下文是用户定义的结构,因此您可以自己设计它的内容。你需要通过电话分配。实际上,这个函数为分配的上下文上的保持引用计数分配了比ContextSize参数更多的参数(最初它等于1),因为fltstream[Handle]context
shell over or(阅读更多)
如果在FltGetStream[Handle]Context
之前未调用fltstream[Handle]Context
,则会得到NULL\u Context
(或者简单地说是0)(更确切地说FltGetStream[Handle]Context
返回错误未找到状态
)
同样,上下文是您在迷你过滤器驱动程序中定义的结构(在旧版中,您需要从中继承上下文,但迷你文件trs封装了它)
通常我们使用下一个代码
MY_STREAM_CONTEXT* Ctx;// your custom data
if (0 <= FltGetStreamHandleContext(FltObjects->Instance, FltObjects->FileObject, (PFLT_CONTEXT*)&Ctx))
{
//.. use Ctx
FltReleaseContext(Ctx);
}
MY\u STREAM\u CONTEXT*Ctx;//您的自定义数据
if(0实例,FltObjects->FileObject,(PFLT_CONTEXT*)&Ctx))
{
//…使用Ctx
FltReleaseContext(Ctx);
}