青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

S.l.e!ep.¢%

像打了激速一樣,以四倍的速度運轉(zhuǎn),開心的工作
簡單、開放、平等的公司文化;尊重個性、自由與個人價值;
posts - 1098, comments - 335, trackbacks - 0, articles - 1
  C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

驅(qū)動的入口 DriverEntry() 函數(shù)

NTSTATUS?DriverEntry(IN?PDRIVER_OBJECT?DriverObject,?IN?PUNICODE_STRING?RegistryPath)
{
}


1. 驅(qū)動對象 DriverObject
DRIVER_OBJECT 對應 .sys? 文件?
DRIVER_OBJECT?對象是操作系統(tǒng)在加載驅(qū)動時所分配的.
RegisteryPath 也是操作系統(tǒng)用于記錄驅(qū)動相關參數(shù)的注冊表路徑.

DriverObject 重要之處,在于它有一組函數(shù)指針,稱之為 dispatch functions
開發(fā)驅(qū)動的主要任務就是自己實現(xiàn)這些 dispatch functions, 當系統(tǒng)用到你的驅(qū)動時,就會向你的驅(qū)動發(fā)送 IRP, 可以在 dispatch functions 中處理這些 IRP, 可以讓IRP 失敗,也可以讓它返回成功,甚至可以修改或自己發(fā)出IRP。(如何把驅(qū)動關聯(lián)到系統(tǒng)中,讓它可以通知到呢?)

2. 設備對象 DeviceObject 簡稱?DO?
IRP 是由 DeviceObject 發(fā)出的,只有針對該驅(qū)動所生成的 DeviceObject? 的 IRP,操作系統(tǒng)才會發(fā)給該驅(qū)動來處理。具體的 dispatch function 決定于 DeviceObject? 下的 DriverObject 成員

3. 文件系統(tǒng) File System 簡稱 FS

4. 控制設備 Control Device Object?簡稱 CDO
??? CDO主要任務是修改整個驅(qū)動的內(nèi)部配置,因此一個驅(qū)動只對應一個 CDO

5. Symbolic Link 符號鏈接
??? 可以通過 Symbolic links viewer 工具查看操作系統(tǒng)的所有符號鏈接
??? 可以看到 C:?? 對應 \Device\HarddiskVolume1
??? 這里可以看出,文件系統(tǒng)驅(qū)動是針對每個 Volume 來生成一個 DeviceObject ,則不是針對文件。實際上對某個 Volume? 的文件讀寫,都發(fā)到這個 Volume 設備對象上面去了.

6. 可以使用 IoCreateDevice() 函數(shù)來創(chuàng)建 控制設備對象(控制設備對象的作用?)

7. 指定 DriverObject 的處理函數(shù)
??? for(i = 0; i<= IRP_MJ_MAXIMUM_FUNCTION; i++)
??? {
??????? DriverObject->MajorFunction[i] = SfPassThrough;
??? }
??? 處理函數(shù)里面最簡單的處理就是什么都不做,傳給操作系統(tǒng)的其它驅(qū)動處理,使用下面的代碼
??? IoSkipCurrentIrpStackLocation(Irp);
??? return IoCallDriver( ((PSFILTER_DEVICE_EXTENSION)DeviceObject->DeviceExtension)->AttachedToDeviceObject, Irp);

8. 文件系統(tǒng)的驅(qū)動,除了要處理正常的IRP之外,還要處理 FastIo
??? (a. FastIo 是操作系統(tǒng)的 Cache Manager 調(diào)用所觸發(fā)的沒有 IRP 的請求
???? b. FastIo 是獨立于普通IRP分發(fā)函數(shù)之外的另一組接口,作用跟普通的IRP是一樣的
???? c. 如果是一個文件過濾驅(qū)動,那么普通的IRP分發(fā)函數(shù) 和 FastIo 都有可能被調(diào)用,所以最好是同時過濾這兩套接口
???? d. fastio 的分發(fā)函數(shù)直接返回 FALSE 不做任何事,這樣這些請求都會通過IRP重新發(fā)送,有一定的效率損失,但不是很大。? )
???
FastIo 的函數(shù)可以通過 Driver->FastIoDispatch 來指定

9. 驅(qū)動中的內(nèi)存分配
??? 并不是簡單的 new, 而是調(diào)用函數(shù) ExAllocatePoolWithTag() 函數(shù)來分配
??? 內(nèi)存清零則使用 RtlZeroMemory() 函數(shù)

10. 操作系統(tǒng) 保存了 目前所有的驅(qū)動設備對象,并且用類似于“鏈表”的方式,這個“鏈表”稱為設備棧

任何來自應用層(Ring3)的請求,都會被 Windows?系統(tǒng)的 IO管理器翻譯成 IRP,然后發(fā)給設備棧中最頂端的那個設備

原始 IRP????????????????????????? IRP????????????????????????????? IRP
-------------->???????????? ----------->????????????????? --------->
??????????????????? 最頂端的設備?????????? 排第二的設備??????????????? ....
<--------------???????????? <-----------????????????????? <---------
原始IRP返回????????????????? IRP返回???????????????????? IRP返回

箭頭表示IRP請求的發(fā)送過程
a.?只要我們在這個設備棧的頂端再綁定一個設備,那么發(fā)給這個設備的請求,自然就會先發(fā)給我們的設備來處理(可以通過 IoAttachDeviceToDeviceStack)

11. 某些 dispatch function 里開頭有 PAGED_CODE();?的作用是?
?????
12. 先用 IoCreateDevice() 創(chuàng)建一個 Device Object?, 然后調(diào)用 IoAttachDeviceToDeviceStack() 綁定到? \Device\HarddiskVolume1? 這個設備,那么所有發(fā)給 C:\ 的IRP,都必然先發(fā)送給我們的驅(qū)動,這樣一來就可以捕獲所有對文件的操作了。

13. 當一個新的存儲媒介被系統(tǒng)發(fā)現(xiàn)(如U盤)并生成一個Volume的過程稱為? Mounting, 此時,文件系統(tǒng)的CDO會得到一個IRP, 這個IRP是 IRP_MJ_FILE_SYSTEM_CONTROL, MinorFunctionCode == IRP_MN_MOUNT

14. IoRegisterFsRegistrationChange() 注冊一個回調(diào)函數(shù),當操作系統(tǒng)中有任何文件系統(tǒng)被激活或者是被注銷時,注冊過的回調(diào)函數(shù)會被調(diào)用。
(注意,這里說的文件系統(tǒng)是指 NTFS, FAT32, CDFS 這些文件系統(tǒng)
win2k以前的系統(tǒng),對已經(jīng)激活的文件系統(tǒng)不會調(diào)用回調(diào),但2K以后的系統(tǒng)會對已經(jīng)存在的文件系統(tǒng)重新枚舉一次, 所以在2K下需要自己枚舉已經(jīng)加載的文件系統(tǒng))
(注冊這個回調(diào)有什么作用?直接綁定 RawDisk 和處理 IRP_MN_MOUNT
?不就得了?)

15. 當收到文件系統(tǒng)的 notify 時,綁定設備前,需要一個宏的判斷是否是文件系統(tǒng)類型的設備
#define IS_DESIRED_DEVICE_TYPE(_type) \
??? (((_type) == FILE_DEVICE_DISK_FILE_SYSTEM) || \
???? ((_type) == FILE_DEVICE_CD_ROM_FILE_SYSTEM) || \
???? ((_type) == FILE_DEVICE_NETWORK_FILE_SYSTEM))

(難道阿貓阿狗的設備增加時,都會觸發(fā) fs system notify?)

15. 初始化完后,需要設置一個標志位
????? DeviceObject->Flags &= ~DO_DEVICE_INITIALIZING;
?????
作用?原因?

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            在线精品视频一区二区三四| 久久欧美中文字幕| 午夜一级久久| 国内精品免费在线观看| 久久久精品一区| 欧美激情按摩| 在线一区欧美| 国产欧美一区二区三区另类精品 | 亚洲精品免费在线播放| 在线综合亚洲欧美在线视频| 国产精品久久久一区二区三区| 午夜久久黄色| 欧美黄色成人网| 亚洲专区免费| 黑人极品videos精品欧美裸| 欧美精品一区二区蜜臀亚洲| 亚洲免费小视频| 欧美高清视频一区二区| 亚洲欧美日韩精品| 加勒比av一区二区| 国产精品扒开腿爽爽爽视频 | 久久狠狠久久综合桃花| 亚洲电影在线| 亚洲国产精品传媒在线观看| 欧美精品一区在线| 午夜老司机精品| 亚洲激情视频网| 久久精品首页| 中国女人久久久| 影音国产精品| 国产欧美日韩在线| 欧美精品久久一区二区| 久久国产精品久久w女人spa| 日韩天堂av| 久久免费高清视频| 午夜精品福利电影| 日韩亚洲精品视频| 在线观看成人网| 国产精品入口麻豆原神| 欧美人与性动交cc0o| 久久精品成人欧美大片古装| 在线视频日韩精品| 亚洲韩日在线| 老司机午夜精品视频在线观看| 亚洲免费在线播放| 99riav久久精品riav| 在线日韩成人| 国内不卡一区二区三区| 国产精品人人爽人人做我的可爱 | 欧美连裤袜在线视频| 久久久人人人| 欧美影院在线播放| 亚洲永久在线| 夜夜爽www精品| 亚洲黄色影院| 欧美黄色大片网站| 欧美成人在线免费观看| 久久夜色精品国产欧美乱极品| 亚洲欧美日韩一区二区三区在线| 99国产精品国产精品久久| 亚洲欧洲日本国产| 亚洲国产精品久久| 在线欧美亚洲| 伊人久久久大香线蕉综合直播| 国产综合视频| 国产亚洲精品aa| 国产欧美日韩在线播放| 国产精品影院在线观看| 国产精品嫩草影院一区二区| 国产精品国产三级国产普通话三级| 欧美精品乱码久久久久久按摩| 欧美黄色一级视频| 欧美韩国日本一区| 欧美久久久久中文字幕| 欧美激情第一页xxx| 欧美国产日韩一区二区| 欧美精品免费观看二区| 欧美看片网站| 国产精品v欧美精品v日韩精品 | 国产欧美日韩精品在线| 国产一区二区日韩精品欧美精品 | 亚洲欧美日韩精品久久奇米色影视| 亚洲一区二区网站| 午夜一区在线| 久久久久久久综合日本| 免费h精品视频在线播放| 欧美激情一区二区三区| 亚洲精品五月天| 中文网丁香综合网| 欧美一区观看| 免费人成精品欧美精品| 欧美四级在线观看| 国产亚洲精品v| 亚洲国产欧美一区二区三区久久| 夜夜嗨av一区二区三区四季av| 亚洲免费一在线| 久久久亚洲欧洲日产国码αv | 一区二区三区 在线观看视频| 亚洲天堂网在线观看| 欧美一区二区私人影院日本| 美女黄色成人网| 欧美图区在线视频| 国产亚洲激情在线| 亚洲九九精品| 欧美一区二区三区精品电影| 欧美大秀在线观看| 在线亚洲欧美专区二区| 久久久成人网| 欧美色综合天天久久综合精品| 国产欧美在线观看| 亚洲精品一区二区三区av| 午夜精品国产更新| 亚洲成色最大综合在线| 亚洲欧美精品在线观看| 欧美xxxx在线观看| 国产日韩一区二区| 日韩亚洲欧美一区| 久久免费黄色| 日韩一级免费| 美女精品在线| 国产深夜精品福利| 一本色道综合亚洲| 久久这里只有精品视频首页| 一区二区三区精品| 牛人盗摄一区二区三区视频| 国产日韩欧美成人| 一区二区三区www| 蜜臀av国产精品久久久久| 中文精品在线| 欧美激情2020午夜免费观看| 国产一区在线视频| 亚洲综合色视频| 亚洲国产片色| 久久久在线视频| 国产日韩欧美精品| 亚洲欧美日韩另类精品一区二区三区| 欧美电影美腿模特1979在线看| 亚洲欧美经典视频| 欧美午夜激情小视频| 99天天综合性| 亚洲国产二区| 老司机免费视频一区二区| 狠狠色狠狠色综合日日小说| 性欧美暴力猛交69hd| 一区二区三区日韩精品| 欧美破处大片在线视频| 最新国产成人在线观看| 麻豆精品一区二区av白丝在线| 欧美一乱一性一交一视频| 国产精品推荐精品| 亚洲影院色无极综合| 日韩一区二区精品| 欧美日韩人人澡狠狠躁视频| 亚洲精品自在久久| 亚洲国产精品视频| 免费在线日韩av| 亚洲日本va午夜在线电影| 女同一区二区| 美乳少妇欧美精品| 91久久嫩草影院一区二区| 欧美va天堂| 蜜臀va亚洲va欧美va天堂| 亚洲国产日韩欧美在线动漫| 欧美黑人在线观看| 欧美成人免费va影院高清| 亚洲精品一区二区三| 亚洲精品在线电影| 欧美三区不卡| 欧美在线高清视频| 欧美一二三区精品| 精品成人在线视频| 欧美福利视频在线观看| 欧美黄色一区二区| 亚洲视频你懂的| av不卡免费看| 国产偷国产偷亚洲高清97cao| 久久亚洲精品欧美| 另类春色校园亚洲| 99综合精品| 亚洲一区二区三区午夜| 国模精品一区二区三区色天香| 欧美r片在线| 欧美日韩精品欧美日韩精品一| 亚洲女同在线| 久久er精品视频| 亚洲欧洲精品一区二区三区 | 鲁大师影院一区二区三区| 鲁大师影院一区二区三区| 日韩一区二区久久| 亚洲欧美久久| 在线视频国内自拍亚洲视频| 91久久久久久| 国产欧美日韩在线播放| 欧美国产一区二区三区激情无套| 欧美另类视频| 欧美影院在线播放| 欧美国产先锋| 香蕉久久夜色精品| 美女诱惑黄网站一区| 午夜精品视频在线观看一区二区|