首页
社区
课程
招聘
未解决 有偿求解决,文件过滤驱动函数FltRegisterFilter调用失败返回0xc0000034的问题
发表于: 2020-10-21 09:40 4256

未解决 有偿求解决,文件过滤驱动函数FltRegisterFilter调用失败返回0xc0000034的问题

2020-10-21 09:40
4256

为什么我调用FltRegisterFilter函数注册文件过滤回调会返回0xc0000034失败。究竟是哪里出了问题呢,请问哪个高手可以帮我,我给人民币


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (10)
雪    币: 1810
活跃值: (1783)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
仅供参考
https://stackoverflow.com/questions/42389211/fltregisterfilter-not-working
2020-10-21 09:47
0
雪    币: 9626
活跃值: (1826)
能力值: ( LV5,RANK:73 )
在线值:
发帖
回帖
粉丝
3
有偿你倒是开个悬赏贴啊
2020-10-21 12:47
0
雪    币: 789
活跃值: (1774)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
FltRegisterFilter会检测你的inf是否有安装并创建注册表项目,函数调用失败说明你注册表里该有的没有
2020-10-22 01:19
0
雪    币: 48
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
5
のばら FltRegisterFilter会检测你的inf是否有安装并创建注册表项目,函数调用失败说明你注册表里该有的没有
谢谢。文件过滤驱动的加载是要先写注册表的
2020-11-3 23:48
0
雪    币: 2674
活跃值: (2304)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
6

STATUS_OBJECT_NAME_NOT_FOUND
可以用如下rundll32命令安装MiniFileFilter
rundll32.exe syssetup SetupInfObjectInstallAction DefaultInstall 128 .inf文件路径
.inf文件中可以配置服务启动类型,安装完后OpenService,StartService启动服务就可以了。

最后于 2020-11-4 11:47 被低调putchar编辑 ,原因:
2020-11-4 11:42
0
雪    币: 2674
活跃值: (2304)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
7
//操作回调集
static CONST FLT_OPERATION_REGISTRATION operCallbacks[]={
               {
	     IRP_MJ_CREATE,  //文件的创建
	     0,
         OnFltCreatePreCallback,
	     OnFltCreatePostCallback,
	     NULL
        },
        {
	     IRP_MJ_READ,    //文件的读
	     0,
	     OnFltReadPreCallback,
	     OnFltReadPostCallback,
	     NULL
        },
         {
	        IRP_MJ_WRITE,   //文件的写
	        0,
	        OnFltWritePreCallback,
	        OnFltWritePostCallback,
	        NULL
        },
        {
	        IRP_MJ_SET_INFORMATION,  //文件的设置
	        0,
	        OnFltSetInformationPreCallback,
	        OnFltSetInformationPostCallback,
	        NULL
        },
        {
          IRP_MJ_QUERY_INFORMATION,   //文件的查询
	       0,
          OnFltQueryInformationPreCallback,
	       OnFltQueryInformationPostCallback,
	       NULL
        },
        {
          IRP_MJ_CLEANUP,    //清理操作
	      0,
          OnFltCleanupPreCallback,
	      OnFltCleanupPostCallback,
	      NULL
        },
        {
          IRP_MJ_CLOSE,      //关闭操作
	      0,
          OnFltClosePreCallback,
	      OnFltClosePostCallback,
	      NULL
        },
        {IRP_MJ_OPERATION_END}
};
...
do{
       ....
//填写微过滤器注册结构
        g_userGlobalInfo.g_fltRegistration.Size=sizeof(FLT_REGISTRATION);
	        g_userGlobalInfo.g_fltRegistration.Version=FLT_REGISTRATION_VERSION;
#if DBG       
	        g_userGlobalInfo.g_fltRegistration.Flags=0;
#else
        g_userGlobalInfo.g_fltRegistration.Flags=FLTFL_REGISTRATION_DO_NOT_SUPPORT_SERVICE_STOP;
#endif
        g_userGlobalInfo.g_fltRegistration.ContextRegistration=NULL;
        g_userGlobalInfo.g_fltRegistration.OperationRegistration=operCallbacks;
        g_userGlobalInfo.g_fltRegistration.FilterUnloadCallback=OnFltUnloadCallback;
        g_userGlobalInfo.g_fltRegistration.InstanceSetupCallback=OnFltInstanceSetupCallback;
        g_userGlobalInfo.g_fltRegistration.InstanceQueryTeardownCallback=OnFltInstanceQueryTearDownCallback;
        g_userGlobalInfo.g_fltRegistration.InstanceTeardownStartCallback=OnFltInstanceTearDownStartCallback;
        g_userGlobalInfo.g_fltRegistration.InstanceTeardownCompleteCallback=OnFltInstanceTearDownCompleteCallback;
//注册微过滤器
        ntStatus=FltRegisterFilter(pDriverObject,
		&g_userGlobalInfo.g_fltRegistration,
		&g_userGlobalInfo.g_pFltFilter);
        if(!NT_SUCCESS(ntStatus)){
	KdPrintEx((
	     DPFLTR_IHVDRIVER_ID,
	     DPFLTR_ERROR_LEVEL,
	     "Failed to FltRegisterFilter[DriverEntry]!Status: 0x%08X\n",
                      ntStatus
                     ));
         break;
        }
        ...
}while(FALSE);


我的MiniFileMonitor中FltRegisterFilter没有你说的那个现象,运行很稳定,你再检查下!


最后于 2020-11-4 14:40 被低调putchar编辑 ,原因:
2020-11-4 14:30
0
雪    币: 48
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
8
低调putchar //操作回调集 static CONST FLT_OPERATION_REGISTRATION operCallbacks[]={ & ...
文件过滤驱动和一般的驱动不一样,要想加载文件过滤驱动,需要先安装inf文件
2020-11-13 09:23
1
雪    币: 6977
活跃值: (1780)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
9
说白了就是注册表中的实例和高度你没有写,4楼已经说了
2020-11-13 10:05
0
雪    币: 2674
活跃值: (2304)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
10
Paula。 文件过滤驱动和一般的驱动不一样,要想加载文件过滤驱动,需要先安装inf文件
把:服务名,.sys文件名, .inf文件名,.inf文件中的相关内容名称全部统一起来, 然后安装.inf加载驱动再试试,我的全部统一为了MiniFileMonitor名,所以是正常的。
2020-11-13 11:32
0
雪    币: 2674
活跃值: (2304)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
11

通过修改注册表,把你描述的问题浮现出来了:

(1)正常情况:


(2)0xc0000034失败(STATUS_OBJECT_NAME_NOT_FOUND)

我把键名改为:Instances2, 让它找不到实例



解决方法1.

修复注册表

然后重启


解决方法2:

1.管理权权限: sc delete 服务名

2.重启

3.管理权权限执行命令再次安装:  rundll32.exe syssetup SetupInfObjectInstallAction DefaultInstall 128 .inf文件路径

4.net start 服务名


注: 如果你做了对注册表的防护,请暂时关掉注册表防护,修复完了再开启。


不要人民币,毕竟大家挣点钱都不容易!以后在适当时候,给我点看雪币就可以了。


2020-11-13 13:30
0
游客
登录 | 注册 方可回帖
返回
//