wdf_filter.c in windows_file_monitor


A better filter paper-driven book, word format, and source Liezi pay procedures....Original Link
    Sponsored links

			
///
/// @file		wdf_filter.c 
///

//	以下的代码仅仅做示范用。你可以修改和使用,但仅仅限于非商业
//	的应用。本代码不做任何质量和安全上的保证。任何商业使用必须
//	得到作者的许可。可以以以下方式与作者联系:
//  MSN:	walled_river@hotmail.com
//	EMail:	mfc_tan_wen@163.com
//	QQ:		16191935

#include "wdf_filter.h"
#include "wdf_filter_disp.h"
#include "wdf_filter_fio.h"
#include "wdf_filter_fsctl.h"
#include "wdf/wd_syn.h"
#include "wdf/wd_dev.h"
#include "wdf/wd_sys.h"
#include "wdf/wd_fs.h"
#include "wdf/wd_shadow_io.h"

wd_drv			*g_drv = NULL;
wd_dev			*g_cdo = NULL;
wd_mutex		g_attach_lock;

wd_ustr			g_reg_path;
wd_wchar		g_reg_path_buf[512];

// All callback functions' pointers are recorded in 
// this structs.
wdff_callback	g_callback = {0};

wd_ustr			*g_cdo_name = NULL;
wd_ustr			*g_cdo_link = NULL;
wd_ustr			*g_cdo_name_2k = NULL;
wd_ustr			*g_cdo_link_2k = NULL;

// If any  file system is being activated or
// disactivated, this function will be called.
wd_void wdff_notify(
			in wd_dev *dev,
			in wd_bool active)
{
	wd_wchar name_buf[wd_dev_name_max_len];
	wd_ustr name;
	wd_ustr_init_em(&name,name_buf,wd_dev_name_max_len*sizeof(wd_wchar));
	wd_obj_get_name(dev,&name);
	if(active)
	{
		wdff_attach_fs_dev(dev);
		wdff_attach_fs_vols(wd_dev_drv(dev));
	}
	else
	{
		// I did nothing when a file system 
		// was being disactivated. 
	}
}

extern wd_void fsfe_exit();

wd_void wdff_unload(in wd_drv *driver)
{
	wd_ulong i,number;
	wd_stat status;
	wd_dev **devs = NULL; 
	wdff_dev_ext *ext = NULL;
	wd_dev *attached = NULL;

	// 以前在2k下,我认为无法动态卸载.现在我认为可以动态卸载. 
	devs = wd_drv_enum_devs(g_drv,&number,&status);
	if(devs == NULL)
	{
		wd_printf0("FSFE: To be unloaded... Get devices failed.\r\n");
		return;
	}

	wd_printf0("FSFE: To be unloaded.\r\n");

	fsfe_exit();

	for(i=0;i<number;i++)
	{
		if( (ext = wd_dev_ext(d			

			...
			...
			... to be continued.

  This is a preview. To get the complete source file, 
  please click here to download the whole source code package.

			
			


Project Files

    Sponsored links
NameSizeDate
 <01.Windows文件系统过滤驱动开发教程(1)>0.00 B19% 13-10-05
 <02.Windows文件系统过滤驱动开发教程(2)>0.00 B22% 27-07-06
 <03.Windows文件系统过滤驱动开发教程(3)>0.00 B17% 08-12-05
 04.Windows文件系统过滤驱动开发教程(4).doc29.50 kB19-10-05 16:30
 05.Windows文件系统过滤驱动开发教程(5).doc32.50 kB10-01-06 10:39
 06.Windows文件系统过滤驱动程序教程(6).doc33.50 kB10-01-06 12:03
 07.Windows文件系统过滤驱动程序教程(7).doc40.00 kB01-11-05 17:36
 08.Windows文件系统过滤驱动程序教程(8).doc33.50 kB27-07-06 14:26
 09.Windows文件系统过滤驱动程序教程(9).doc30.00 kB13-10-05 11:52
 10.Windows文件系统过滤驱动程序教程(10).doc29.50 kB13-10-05 11:53
 <11.Windows文件系统过滤驱动开发教程(11)>0.00 B17% 13-10-05
 fsfe.c2.36 kB08-03-06 09:05
 fsfe.dsp3.38 kB08-03-06 09:05
 fsfe.h3.40 kB08-03-06 09:03
 fsfe.vcproj2.02 kB02-03-06 17:48
 makefile374.00 B07-09-05 15:41
 mybuild.bat966.00 B06-03-06 23:41
 mylib.lib312.67 kB08-03-06 09:25
 sources108.00 B02-03-06 16:30
 wdf_filter.c6.15 kB08-03-06 09:05
 wdf_filter.h3.23 kB08-03-06 09:03
 wdf_filter_disp.c12.88 kB08-03-06 09:05
 wdf_filter_disp.h1.98 kB08-03-06 09:03
 wdf_filter_fio.c5.49 kB08-03-06 09:05
 wdf_filter_fio.h5.34 kB08-03-06 09:03
 wdf_filter_fsctl.c8.14 kB08-03-06 09:05
 wdf_filter_fsctl.h2.38 kB08-03-06 09:03
 fsfe.h3.40 kB08-03-06 09:03
 wdf_filter.h3.23 kB08-03-06 09:03
 wdf_filter_disp.h1.98 kB08-03-06 09:03
 wdf_filter_fio.h5.34 kB08-03-06 09:03
 wdf_filter_fsctl.h2.38 kB08-03-06 09:03
 wdf.h4.02 kB02-03-06 17:29
 wd_dev.h14.93 kB28-02-06 17:57
 wd_file_to_name.h904.00 B20-12-05 19:26
 wd_fs.h1.01 kB21-12-05 15:07
 wd_irp.h6.97 kB28-02-06 14:45
 wd_list.h1.55 kB28-02-06 09:40
 wd_mem.h2.07 kB21-12-05 15:01
 wd_set.h1.59 kB20-12-05 18:58
 wd_shadow_io.h2.03 kB04-03-06 10:36
 wd_syn.h2.38 kB20-12-05 19:54
 wd_sys.h3.57 kB04-03-06 10:42
 wd_ustr.h2.32 kB23-12-05 13:33
 fsfed.lib312.67 kB08-03-06 09:25
 wdfd.lib258.02 kB08-03-06 09:25
 create_filter.c2.05 kB08-03-06 09:07
 create_filter.dsp2.89 kB08-03-06 09:24
 makefile374.00 B07-09-05 15:41
 mybuild.bat712.00 B06-03-06 23:55
 CreateFilter.sys20.00 kB07-03-06 00:10
 sources179.00 B07-03-06 00:08
 file_filter.c3.17 kB08-03-06 09:26
 file_filter.dsp2.84 kB08-03-06 09:24
 makefile374.00 B07-09-05 15:41
 mybuild.bat710.00 B08-03-06 09:24
 FileFilter.sys20.50 kB08-03-06 09:26
 sources177.00 B08-03-06 08:55
 makefile374.00 B07-09-05 15:41
 mybuild.bat949.00 B02-03-06 16:30
 mylib.lib258.02 kB08-03-06 09:25
 sources108.00 B02-03-06 15:45
 wdf.dsp3.63 kB04-03-06 10:34
 wdf.h4.02 kB02-03-06 17:29
 wdf.vcproj2.30 kB02-03-06 17:48
 wd_dev.h14.93 kB28-02-06 17:57
 wd_file_to_name.c7.12 kB08-03-06 09:03
 wd_file_to_name.h904.00 B20-12-05 19:26
 wd_fs.h1.01 kB21-12-05 15:07
 wd_irp.h6.97 kB28-02-06 14:45
 wd_list.c2.68 kB08-03-06 09:03
 wd_list.h1.55 kB28-02-06 09:40
 wd_mem.h2.07 kB21-12-05 15:01
 wd_set.h1.59 kB20-12-05 18:58
 wd_shadow_io.c10.22 kB04-03-06 10:35
 wd_shadow_io.h2.03 kB04-03-06 10:36
 wd_syn.h2.38 kB20-12-05 19:54
 wd_sys.c21.22 kB08-03-06 09:03
 wd_sys.h3.57 kB04-03-06 10:42
 wd_ustr.c8.15 kB08-03-06 09:03
 wd_ustr.h2.32 kB23-12-05 13:33
 wdf_filter.dsw1.47 kB08-03-06 09:24
 如何编译.txt346.00 B08-03-06 08:52
 文件过滤系统设计.txt17.27 kB08-03-06 09:36
 wdf_filter1.rar297.71 kB26-07-06 17:28
 心得.txt1.30 kB27-07-06 14:41
 <i386>0.00 B17-10-06 09:02
 <i386>0.00 B17-10-06 09:02
 <i386>0.00 B17-10-06 09:02
 <objchk_wnet_x86>0.00 B17-10-06 09:02
 <objchk_wnet_x86>0.00 B17-10-06 09:02
 <i386>0.00 B17-10-06 09:02
 <Debug>0.00 B17-10-06 09:02
 <objchk_wnet_x86>0.00 B17-10-06 09:02
 <Release>0.00 B17-10-06 09:02
 <fsfe>0.00 B17-10-06 09:02
 <wdf>0.00 B17-10-06 09:02
 <create_filter>0.00 B17-10-06 09:02
 <file_filter>0.00 B17-10-06 09:02
 <Debug>0.00 B17-10-06 09:02
 <objchk_wnet_x86>0.00 B17-10-06 09:02
 <Debug>0.00 B17-10-06 09:02
 <fsfe>0.00 B17-10-06 09:02
 <inc>0.00 B17-10-06 09:02
 <lib>0.00 B17-10-06 09:02
 <samples>0.00 B17-10-06 09:02
 <wdf>0.00 B17-10-06 09:02
 <wdf_filter1>0.00 B17-10-06 09:02
 <wdf_filter1>0.00 B17-10-06 09:02
 <文件系统过滤驱动开发教程>0.00 B05-09-08 09:10
...

Related Items

    Sponsored links