CodeForge.comFree Open Source Codes Forge and Sharing |
///
/// @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.
| Name | Size | Date |
| 0.00 B | 19% 13-10-05 | |
| 0.00 B | 22% 27-07-06 | |
| 0.00 B | 17% 08-12-05 | |
| 29.50 kB | 19-10-05 16:30 | |
| 32.50 kB | 10-01-06 10:39 | |
| 33.50 kB | 10-01-06 12:03 | |
| 40.00 kB | 01-11-05 17:36 | |
| 33.50 kB | 27-07-06 14:26 | |
| 30.00 kB | 13-10-05 11:52 | |
| 29.50 kB | 13-10-05 11:53 | |
| 0.00 B | 17% 13-10-05 | |
| 2.36 kB | 08-03-06 09:05 | |
| 3.38 kB | 08-03-06 09:05 | |
| 3.40 kB | 08-03-06 09:03 | |
| 2.02 kB | 02-03-06 17:48 | |
| 374.00 B | 07-09-05 15:41 | |
| 966.00 B | 06-03-06 23:41 | |
| 312.67 kB | 08-03-06 09:25 | |
| 108.00 B | 02-03-06 16:30 | |
| 6.15 kB | 08-03-06 09:05 | |
| 3.23 kB | 08-03-06 09:03 | |
| 12.88 kB | 08-03-06 09:05 | |
| 1.98 kB | 08-03-06 09:03 | |
| 5.49 kB | 08-03-06 09:05 | |
| 5.34 kB | 08-03-06 09:03 | |
| 8.14 kB | 08-03-06 09:05 | |
| 2.38 kB | 08-03-06 09:03 | |
| 3.40 kB | 08-03-06 09:03 | |
| 3.23 kB | 08-03-06 09:03 | |
| 1.98 kB | 08-03-06 09:03 | |
| 5.34 kB | 08-03-06 09:03 | |
| 2.38 kB | 08-03-06 09:03 | |
| 4.02 kB | 02-03-06 17:29 | |
| 14.93 kB | 28-02-06 17:57 | |
| 904.00 B | 20-12-05 19:26 | |
| 1.01 kB | 21-12-05 15:07 | |
| 6.97 kB | 28-02-06 14:45 | |
| 1.55 kB | 28-02-06 09:40 | |
| 2.07 kB | 21-12-05 15:01 | |
| 1.59 kB | 20-12-05 18:58 | |
| 2.03 kB | 04-03-06 10:36 | |
| 2.38 kB | 20-12-05 19:54 | |
| 3.57 kB | 04-03-06 10:42 | |
| 2.32 kB | 23-12-05 13:33 | |
| 312.67 kB | 08-03-06 09:25 | |
| 258.02 kB | 08-03-06 09:25 | |
| 2.05 kB | 08-03-06 09:07 | |
| 2.89 kB | 08-03-06 09:24 | |
| 374.00 B | 07-09-05 15:41 | |
| 712.00 B | 06-03-06 23:55 | |
| 20.00 kB | 07-03-06 00:10 | |
| 179.00 B | 07-03-06 00:08 | |
| 3.17 kB | 08-03-06 09:26 | |
| 2.84 kB | 08-03-06 09:24 | |
| 374.00 B | 07-09-05 15:41 | |
| 710.00 B | 08-03-06 09:24 | |
| 20.50 kB | 08-03-06 09:26 | |
| 177.00 B | 08-03-06 08:55 | |
| 374.00 B | 07-09-05 15:41 | |
| 949.00 B | 02-03-06 16:30 | |
| 258.02 kB | 08-03-06 09:25 | |
| 108.00 B | 02-03-06 15:45 | |
| 3.63 kB | 04-03-06 10:34 | |
| 4.02 kB | 02-03-06 17:29 | |
| 2.30 kB | 02-03-06 17:48 | |
| 14.93 kB | 28-02-06 17:57 | |
| 7.12 kB | 08-03-06 09:03 | |
| 904.00 B | 20-12-05 19:26 | |
| 1.01 kB | 21-12-05 15:07 | |
| 6.97 kB | 28-02-06 14:45 | |
| 2.68 kB | 08-03-06 09:03 | |
| 1.55 kB | 28-02-06 09:40 | |
| 2.07 kB | 21-12-05 15:01 | |
| 1.59 kB | 20-12-05 18:58 | |
| 10.22 kB | 04-03-06 10:35 | |
| 2.03 kB | 04-03-06 10:36 | |
| 2.38 kB | 20-12-05 19:54 | |
| 21.22 kB | 08-03-06 09:03 | |
| 3.57 kB | 04-03-06 10:42 | |
| 8.15 kB | 08-03-06 09:03 | |
| 2.32 kB | 23-12-05 13:33 | |
| 1.47 kB | 08-03-06 09:24 | |
| 346.00 B | 08-03-06 08:52 | |
| 17.27 kB | 08-03-06 09:36 | |
| 297.71 kB | 26-07-06 17:28 | |
| 1.30 kB | 27-07-06 14:41 | |
| 0.00 B | 17-10-06 09:02 | |
| 0.00 B | 17-10-06 09:02 | |
| 0.00 B | 17-10-06 09:02 | |
| 0.00 B | 17-10-06 09:02 | |
| 0.00 B | 17-10-06 09:02 | |
| 0.00 B | 17-10-06 09:02 | |
| 0.00 B | 17-10-06 09:02 | |
| 0.00 B | 17-10-06 09:02 | |
| 0.00 B | 17-10-06 09:02 | |
| 0.00 B | 17-10-06 09:02 | |
| 0.00 B | 17-10-06 09:02 | |
| 0.00 B | 17-10-06 09:02 | |
| 0.00 B | 17-10-06 09:02 | |
| 0.00 B | 17-10-06 09:02 | |
| 0.00 B | 17-10-06 09:02 | |
| 0.00 B | 17-10-06 09:02 | |
| 0.00 B | 17-10-06 09:02 | |
| 0.00 B | 17-10-06 09:02 | |
| 0.00 B | 17-10-06 09:02 | |
| 0.00 B | 17-10-06 09:02 | |
| 0.00 B | 17-10-06 09:02 | |
| 0.00 B | 17-10-06 09:02 | |
| 0.00 B | 17-10-06 09:02 | |
| 0.00 B | 05-09-08 09:10 |