⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fsfe.h

📁 国内文件驱动编程知名人物蔡大侠的教程源代码
💻 H
字号:
#ifndef _FSFE_HEADER_KDJIEUFKD9_9409504_238423_H_
#define _FSFE_HEADER_KDJIEUFKD9_9409504_238423_H_

#include "wdf_filter.h"
#include "wdf/wd_ustr.h"
#include "wdf/wd_dev.h"
#include "wdf/wd_irp.h"
#include "wdf/wd_mem.h"

/**
 * @defgroup fsfe 文件系统过滤
 *
 */

/*@{*/

/** 设置控制设备路径.
  * 必须在fsfe_main中调用此函数,而且不能在其他地方调用.
  * 如果未调用,你的控制设备没有名字,初始化会失败。
  * @param name 你要产生的控制设备的全路径。应该用L"\\FileSystem
				\\Filters\\开头",这是微软推荐.
  * @return 返回一个wd_ustr_h,这是此字符串的句柄。你可
  *			以保留它。但是请不要释放或者修改它.
*/ 
wd_ustr_h *fsfe_set_cdo_name(const wd_wchar *name);

/** 设置控制设备路径.
  * 必须在fsfe_main中调用此函数,而且不能在其他地方调用.
  *	如果未调用,你的控制
  * 设备没有符号连接,无法和应用程序通信。
  * @param link 你要产生的控制设备的符号连接名
  * @return 返回一个wd_ustr_h,这是此字符串的句柄。你可
			以保留它。但是请不要释
  *			放或者修改它.
*/ 
wd_ustr_h *fsfe_set_cdo_link(const wd_wchar *link);

/** 设置控制2000下的控制设备路径.
  * 必须在fsfe_main中调用此函数,而且不能在其他地方调用.
	如果未调用,在2000下加
	载驱动的时候,会没有控制设备名。
  * @param name 你要产生的控制设备的全路径。应该用
				L"\\FileSystem\\开头",这是微软推荐.
  * @return 返回一个wd_ustr_h,这是此字符串的句柄。你可
  *			以保留它。但是请不要释放或者修改它.
*/ 
wd_ustr_h *fsfe_set_cdo_name_2k(const wd_wchar *name);

/** 设置控制2000下的控制设备符号连接.
  * 必须在fsfe_main中调用此函数,而且不能在其他地方调用.
  *	如果未调用,在2000下加载驱动的时候,会没有控制设备名。
  * 设备没有符号连接,无法和应用程序通信。
  * @param link 你要产生的控制设备的符号连接名
  * @return 返回一个wd_ustr_h,这是此字符串的句柄。你可
			以保留它。但是请不要释放或者修改它.
*/ 
wd_ustr_h *fsfe_set_cdo_link_2k(const wd_wchar *link);


wd_void fsfe_set_read_write(wdff_callback_pre_func read_write);
wd_void fsfe_set_device_io_ctrl(wdff_callback_pre_func device_io_ctrl);
wd_void fsfe_set_close_clean_up(wdff_callback_pre_func close_clean_up);
wd_void fsfe_set_create(wdff_callback_pre_func create);
wd_void fsfe_set_read_write_comp(wdff_callback_post_func read_write_comp);
wd_void fsfe_set_device_io_ctrl_comp(wdff_callback_post_func device_io_ctrl_comp);
wd_void fsfe_set_close_clean_up_comp(wdff_callback_post_func close_clean_up_comp);
wd_void fsfe_set_create_comp(wdff_callback_post_func create_comp);
wd_void fsfe_set_other(wdff_callback_pre_func other);
wd_void fsfe_set_other_comp(wdff_callback_post_func other_comp);
_inline wd_void FsfeSetDeviceIoCtrl(WdffCallbackPreFunc DeviceIoCtrl)
{	fsfe_set_device_io_ctrl(DeviceIoCtrl);	}
_inline wd_void FsfeSetReadWrite(WdffCallbackPreFunc ReadWrite)
{	fsfe_set_read_write(ReadWrite);	}
_inline wd_ustr_h *FsfeSetCdoName(const wd_wchar *name)
{	return fsfe_set_cdo_name(name);	}
_inline wd_ustr_h *FsfeSetCdoLink(const wd_wchar *link)
{	return fsfe_set_cdo_link(link);	}
_inline wd_ustr_h *FsfeSetCdoName2k(const wd_wchar *name)
{	return fsfe_set_cdo_name_2k(name);	}
_inline wd_ustr_h *FsfeSetCdoLink2k(const wd_wchar *link)
{	return fsfe_set_cdo_link_2k(link);	}

/*@}*/
#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -