TDI過濾程式框架

2021-06-09 06:35:22 字數 2036 閱讀 7583

#include #include #include #include //儲存裝置指標的全域性變數

pdevice_object

g_tcpfltobj=null,

g_udpfltobj=null,

g_ipfltobj=null,

g_tcpoldobj=null,

g_udpoldobj=null,

g_ipoldobj=null;

//函式宣告

ntstatus c_n_a_device(pdriver_object driverobject,pdevice_object *fltobj,pdevice_object *oldobj,wchar_t *devname);

ntstatus devicedispatch(in pdevice_object deviceobject,in pirp irp);

pdevice_object get_original_devobj(pdevice_object flt_devobj,int *proto);

//解除安裝函式

void onunload(in pdriver_object driverobject)

//驅動入口函式

ntstatus driverentry(in pdriver_object thedriverobject,in punicode_string theregistrypath)

//繫結tdi裝置 \\device\\udp

status=c_n_a_device(thedriverobject,&g_udpfltobj,&g_udpoldobj,l"\\device\\udp");

if(status!=status_success)

//繫結tdi裝置 \\device\\rawip

status=c_n_a_device(thedriverobject,&g_ipfltobj,&g_ipoldobj,l"\\device\\rawip");

if(status!=status_success)

done:

//如果繫結失敗了

if(status!=status_unsuccessful)

return status;}

//繫結函式定義

ntstatus c_n_a_device(pdriver_object driverobject,pdevice_object *fltobj,pdevice_object *oldobj,wchar_t *devname)

//設定裝置io方式為直接io 讀寫不經過快取

(*fltobj)->flags|=do_direct_io;

//將要繫結的裝置名初始化為乙個unicode字串

rtlinitunicodestring(&str,devname);

//繫結這個裝置

status=ioattachdevice(*fltobj,&str,oldobj); //此函式注意下 找到了真實裝置指標

if(status!=status_success)

kdprint(("[tdi_fw] driverentry:%s fileobj:0x%x\n",devname,*fltobj));

return status_success;

}//分發函式定義

ntstatus devicedispatch(in pdevice_object deviceobject,in pirp irp)

else

return status;

}//取得對應的真實裝置

pdevice_object get_original_devobj(pdevice_object flt_devobj,int *proto)

else if (flt_devobj==g_udpfltobj)

else

if(result!=null&&proto!=null)

*proto=ipproto;

return result;

}

萌框架vue(四) 過濾器

作用 一些常見的文字格式化 用途 用插值表示式之中 用在 v bind 之中 分類 全域性過濾器 區域性過濾器 全域性過濾器 1 建立乙個過濾器物件 一定在放在 vue 例項之前 vue.filter filtername,function value filtername 定義過濾器的名稱 fun...

beego框架的過濾器filter

過濾器函式如下所示 beego.insertfilter pattern string,position int,filter filterfunc,params bool insertfilter 函式的三個必填引數,乙個可選引數 pattern 路由規則,可以根據一定的規則進行路由,如果你全匹配...

MFC框架程式剖析

1 mfc microsoftfoundation class,微軟基礎類庫 是微軟為了簡化程式設計師的開發工作所開發的一套c 類的集合,是一套物件導向的函式庫,以類的方式提供給使用者使用 二 基於mfc的程式框架剖析 1 mfc程式的classview標籤頁 圖 2 繼承關係 1 cmainfra...