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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

Windows过滤驱动程序的概念

發布時間:2025/4/14 windows 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Windows过滤驱动程序的概念 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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

?

進行過濾的最主要的方法是對一個設備對象(Device Object)進行綁定。
Windows系統之所以可以運作,是因為Windows中已經存在許多提供了各種功能的設備對象。這些設備對象接收請求,并完成實際硬件的功能。 ?
我們可以首先認為:一個真實的設備對應一個設備對象(雖然實際對應關系可能復雜得多)。通過編程可以生成一個虛擬的設備對象,并“綁定”(Attach)在一個真實的設備上。一旦綁定,則本來操作系統發送給真實設備的請求,就會首先發送到這個虛擬設備。 ?

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

?

在綁定一個設備之前,先要知道如何生成一個用于過濾的過濾設備。函數IoCreateDevice被用于生成設備: ?
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是本驅動的驅動對象。這個指針是系統提供,從DriverEntry中傳 入。DeviceExtensionSize是設備擴展,請先簡單地傳入0。DeviceName是設備名稱。一個規則 是:過濾設備一般不需要名稱,所以傳入NULL即可。DeviceType是設備類型,保持和被綁定的設備類型一致即可。 DeviceCharacteristics是設備特征,在生成設備對象時筆者總是憑經驗直接填0,然后看是否排斥,選擇FALSE。

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。