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

📄 wdf_filter_fio.h

📁 国内文件驱动编程知名人物蔡大侠的教程源代码
💻 H
字号:
// 头文件:		wdf_filter_fio.h 
//
// 代码文件:	wdf_filter_fio.c
//
// 说明:		这两个文件中含有所有wdf_filter所用到fastio函数的声明和
//				实现。开发filesys filter驱动的时候需要用到这个
//
// 依赖:		这个头文件依赖于wdf.h和wdf_fast_io.h

#ifndef _WDF_FILTER_FIO_H_DKJKJDF_EJ8RER_DKJFEA_

#define _WDF_FILTER_FIO_H_DKJKJDF_EJ8RER_DKJFEA_

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

wd_bool
wdff_fio_check(
    in wd_file * fileobject,
    in wd_lgint * fileoffset,
    in wd_ulong length,
    in wd_bool wait,
    in wd_ulong lockkey,
    in wd_bool checkforreadoperation,
    out wd_io_stat_block * iostatus,
    in wd_dev * deviceobject
    );

wd_bool
wdff_fio_read(
    in wd_file * fileobject,
    in wd_lgint * fileoffset,
    in wd_ulong length,
    in wd_bool wait,
    in wd_ulong lockkey,
    out wd_void * buffer,
    out wd_io_stat_block * iostatus,
    in wd_dev * deviceobject
    );

wd_bool
wdff_fio_write(
    in wd_file * fileobject,
    in wd_lgint * fileoffset,
    in wd_ulong length,
    in wd_bool wait,
    in wd_ulong lockkey,
    in wd_void * buffer,
    out wd_io_stat_block * iostatus,
    in wd_dev * deviceobject
    );

wd_bool
wdff_fio_query_basic_info(
    in wd_file * fileobject,
    in wd_bool wait,
    out wd_file_basic_infor * buffer,
    out wd_io_stat_block * iostatus,
    in wd_dev * deviceobject
    );

wd_bool
wdff_fio_query_standard_info(
    in wd_file * fileobject,
    in wd_bool wait,
    out wd_file_standard_infor * buffer,
    out wd_io_stat_block * iostatus,
    in wd_dev * deviceobject
    );

wd_bool
wdff_fio_io_lock(
    in wd_file * fileobject,
    in wd_lgint * fileoffset,
    in wd_lgint * length,
    wd_proc_id processid,
    wd_ulong key,
    wd_bool failimmediately,
    wd_bool exclusivelock,
    out wd_io_stat_block * iostatus,
    in wd_dev * deviceobject
    );

wd_bool 
wdff_fio_unlock_s(
    in wd_file * fileobject,
    in wd_lgint * fileoffset,
    in wd_lgint * length,
    wd_proc_id processid,
    wd_ulong key,
    out wd_io_stat_block * iostatus,
    in wd_dev * deviceobject
    );

wd_bool
wdff_fio_unlock_a(
    in wd_file * fileobject,
    wd_proc_id processid,
    out wd_io_stat_block * iostatus,
    in wd_dev * deviceobject
    );

wd_bool
wdff_fio_unlock_a_by_key(
    in wd_file * fileobject,
    wd_void * processid,
    wd_ulong key,
    out wd_io_stat_block * iostatus,
    in wd_dev * deviceobject
    );

wd_bool
wdff_fio_dev_ctl(
    in wd_file * fileobject,
    in wd_bool wait,
    in wd_void * inputbuffer optional,
    in wd_ulong inputbufferlength,
    out wd_void * outputbuffer optional,
    in wd_ulong outputbufferlength,
    in wd_ulong iocontrolcode,
    out wd_io_stat_block * iostatus,
    in wd_dev * deviceobject
    );

wd_void wdff_fio_detach_dev(
    in wd_dev * sourcedevice,
    in wd_dev * targetdevice
    );

wd_bool wdff_fio_query_net_open_info(
    in wd_file * fileobject,
    in wd_bool wait,
    out wd_file_net_open_infor * buffer,
    out wd_io_stat_block * iostatus,
    in wd_dev * deviceobject
    );

wd_bool wdff_fio_mdl_read(
    in wd_file * fileobject,
    in wd_lgint * fileoffset,
    in wd_ulong length,
    in wd_ulong lockkey,
    out wd_pmdl *mdlchain,
    out wd_io_stat_block * iostatus,
    in wd_dev * deviceobject
    );


wd_bool wdff_fio_mdl_read_complete(
    in wd_file * fileobject,
    in wd_pmdl mdlchain,
    in wd_dev * deviceobject
    );

wd_bool wdff_fio_prepare_mdl_write(
    in wd_file * fileobject,
    in wd_lgint * fileoffset,
    in wd_ulong length,
    in wd_ulong lockkey,
    out wd_pmdl *mdlchain,
    out wd_io_stat_block * iostatus,
    in wd_dev * deviceobject
    );

wd_bool wdff_fio_mdl_write_complete(
    in wd_file * fileobject,
    in wd_lgint * fileoffset,
    in wd_pmdl mdlchain,
    in wd_dev * deviceobject
    );

wd_bool wdff_fio_read_compressed(
    in wd_file * fileobject,
    in wd_lgint * fileoffset,
    in wd_ulong length,
    in wd_ulong lockkey,
    out wd_void * buffer,
    out wd_pmdl *mdlchain,
    out wd_io_stat_block * iostatus,
    out wd_compressed_data_info *compresseddatainfo,
    in wd_ulong compresseddatainfolength,
    in wd_dev * deviceobject
    );

wd_bool wdff_fio_write_compressed(
    in wd_file * fileobject,
    in wd_lgint * fileoffset,
    in wd_ulong length,
    in wd_ulong lockkey,
    in wd_void * buffer,
    out wd_pmdl *mdlchain,
    out wd_io_stat_block * iostatus,
    in wd_compressed_data_info *compresseddatainfo,
    in wd_ulong compresseddatainfolength,
    in wd_dev * deviceobject
    );

wd_bool wdff_fio_mdl_read_complete_compressed(
    in wd_file * fileobject,
    in wd_pmdl mdlchain,
    in wd_dev * deviceobject
    );

wd_bool wdff_fio_mdl_write_complete_compressed(
    in wd_file * fileobject,
    in wd_lgint * fileoffset,
    in wd_pmdl mdlchain,
    in wd_dev * deviceobject
    );

wd_bool wdff_fio_query_open(
    in wd_pirp irp,
    out wd_file_net_open_infor * networkinformation,
    in wd_dev * deviceobject
    );

#endif //_WDF_FILTER_FIO_H_DKJKJDF_EJ8RER_DKJFEA_

⌨️ 快捷键说明

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