日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > windows >内容正文

windows

Windows过滤驱动程序的概念

發(fā)布時(shí)間:2025/4/14 windows 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Windows过滤驱动程序的概念 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

??? 過(guò)濾,filter,過(guò)濾是在不影響上層和下層接口的情況下,在Windows系統(tǒng)內(nèi)核中加入新的層,從而不需要修改上層的軟件或者下層的真實(shí)驅(qū)動(dòng)程序,就加入了新的功能。 ?
??? 舉個(gè)例子:
??? 實(shí)時(shí)監(jiān)控的反病毒程序。任何高層軟件或者Windows的文件系統(tǒng)都沒(méi)有考慮過(guò)應(yīng)該什么時(shí)候去檢查文件中是否含有某個(gè)病毒的特征 碼,也不應(yīng)該要求某個(gè)軟件或者Windows的文件系統(tǒng)去考慮這些;反病毒程序需要在不改變文件系統(tǒng)的上層和下層接口的情況下,在中間加入一個(gè)過(guò)濾 層,這樣就可以在上層軟件讀取文件、下層驅(qū)動(dòng)提供數(shù)據(jù)時(shí),對(duì)這些數(shù)據(jù)進(jìn)行掃描,看其中是否含有某個(gè)病毒的特征碼。這是一個(gè)很典型的過(guò)濾過(guò)程。 ?

?

進(jìn)行過(guò)濾的最主要的方法是對(duì)一個(gè)設(shè)備對(duì)象(Device Object)進(jìn)行綁定。
Windows系統(tǒng)之所以可以運(yùn)作,是因?yàn)閃indows中已經(jīng)存在許多提供了各種功能的設(shè)備對(duì)象。這些設(shè)備對(duì)象接收請(qǐng)求,并完成實(shí)際硬件的功能。 ?
我們可以首先認(rèn)為:一個(gè)真實(shí)的設(shè)備對(duì)應(yīng)一個(gè)設(shè)備對(duì)象(雖然實(shí)際對(duì)應(yīng)關(guān)系可能復(fù)雜得多)。通過(guò)編程可以生成一個(gè)虛擬的設(shè)備對(duì)象,并“綁定”(Attach)在一個(gè)真實(shí)的設(shè)備上。一旦綁定,則本來(lái)操作系統(tǒng)發(fā)送給真實(shí)設(shè)備的請(qǐng)求,就會(huì)首先發(fā)送到這個(gè)虛擬設(shè)備。 ?

在WDK中,有多個(gè)內(nèi)核API能實(shí)現(xiàn)綁定功能。下面是其中一個(gè)函數(shù)的原型: ?
NTSTATUS ?
??? IoAttachDevice( ?
??????????? IN PDEVICE_OBJECT? SourceDevice, ?
??????????? IN PUNICODE_STRING? TargetDevice, ?
??????????? OUT PDEVICE_OBJECT? *AttachedDevice ?
); ?

?

在綁定一個(gè)設(shè)備之前,先要知道如何生成一個(gè)用于過(guò)濾的過(guò)濾設(shè)備。函數(shù)IoCreateDevice被用于生成設(shè)備: ?
NTSTATUS ?
IoCreateDevice( ?
??????? IN PDRIVER_OBJECT? DriverObject,??? ?
??????? IN ULONG? DeviceExtensionSize, ?
??????? IN PUNICODE_STRING? DeviceName? OPTIONAL, ?
??????? IN DEVICE_TYPE? DeviceType, ?
??????? IN ULONG? DeviceCharacteristics, ?
??????? IN BOOLEAN? Exclusive, ?
??????? OUT PDEVICE_OBJECT? *DeviceObject ?
??????? ); ?

DriverObject是本驅(qū)動(dòng)的驅(qū)動(dòng)對(duì)象。這個(gè)指針是系統(tǒng)提供,從DriverEntry中傳 入。DeviceExtensionSize是設(shè)備擴(kuò)展,請(qǐng)先簡(jiǎn)單地傳入0。DeviceName是設(shè)備名稱。一個(gè)規(guī)則 是:過(guò)濾設(shè)備一般不需要名稱,所以傳入NULL即可。DeviceType是設(shè)備類型,保持和被綁定的設(shè)備類型一致即可。 DeviceCharacteristics是設(shè)備特征,在生成設(shè)備對(duì)象時(shí)筆者總是憑經(jīng)驗(yàn)直接填0,然后看是否排斥,選擇FALSE。

總結(jié)

以上是生活随笔為你收集整理的Windows过滤驱动程序的概念的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。