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

S.l.e!ep.¢%

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

1. 如果系統(tǒng)版本號 WINVER >= 0x0501 ?則動(dòng)態(tài)加載如下的函數(shù), 并保存到 gSfDynamicFunctions?這個(gè)結(jié)構(gòu)(當(dāng)然,這個(gè)結(jié)構(gòu)是自定義的)
??? FsRtlRegisterFileSystemFilterCallbacks???? (詳見 sfilter(二) - 01 注冊FsFilter回調(diào)例程?)?
??? IoAttachDeviceToDeviceStackSafe?? 可以將我們創(chuàng)建的設(shè)備對象 附加 到 目標(biāo)文件系統(tǒng)或卷的過濾設(shè)備堆棧之中,這樣發(fā)到目標(biāo)設(shè)備的IRP,都先發(fā)到我們的設(shè)備對象,實(shí)現(xiàn)過濾
??? IoEnumerateDeviceObjectList
??? IoGetLowerDeviceObject
??? IoGetDeviceAttachmentBaseRef
??? IoGetDiskDeviceObject
??? IoGetAttachedDeviceReference
??? RtlGetVersion
??? (使用的函數(shù)是 MmGetSystemRoutineAddress() 它會(huì)從Ntoskrnl.exe 或 HAL 動(dòng)態(tài)獲取到函數(shù)地址)

2. 保存 DriverObject? 到 gSFilterDriverObject (暫不知道用來干嘛...)

3. 如果系統(tǒng)版本號 WINVER >= 0x0501??且?IoEnumerateDeviceObjectList 這個(gè)函數(shù)指針不為空...
??? 執(zhí)行 gSFilterDriverObject->DriverUnload = DriverUnload;?? (這里郁悶,干嘛不直接 DriverObject->DriverUnload = DriverUnload;??? ...)

4. 初始化一個(gè)資源變量 gRulesResource (使用的是 ExInitializeResourceLite() 函數(shù))
ExInitializeResourceLite()

5. 初始化一個(gè)Mutex - gSfilterAttachLock (使用的是 ExInitializeFastMutex() 函數(shù))

6. 初始化 gFsCtxLookAsideList、gFileNameLookAsideList、gReadWriteCompletionCtxLookAsideList (使用的是 ExInitializeNPagedLookasideList() 函數(shù))
(不知道這三個(gè)用來放什么?)

7. 創(chuàng)建一個(gè)控制設(shè)備對象(這個(gè)對象代表這個(gè)驅(qū)動(dòng)。注意它沒有設(shè)備擴(kuò)展) (用于與應(yīng)用層通信?)
??? 路徑是 file://FileSystem//Filters//SFilterCDO
??? 如果創(chuàng)建失敗,原因是路徑不在,那么就嘗試在 file://FileSystem//SFilterCDO?下創(chuàng)建

8. DriverObject的MajorFunction? 都使用 SfPassThrough() 這個(gè)函數(shù)來過濾,而
??? (1) 下列 IRP 使用 SfCreate() 來過濾
??? IRP_MJ_CREATE
??? IRP_MJ_CREATE_NAMED_PIPE
??? IRP_MJ_CREATE_MAILSLOT?
????
??? (2) IRP_MJ_FILE_SYSTEM_CONTROL 使用 SfFsControl() 來過濾
????
?? ?(3) IRP_MJ_CLEANUP = SfCleanup;
????
??? (4)?IRP_MJ_CLOSE = SfClose;
?
??? (5) IRP_MJ_READ = SfRead;

????(6)?IRP_MJ_WRITE = SfWrite;
???
??? (7)?IRP_MJ_DIRECTORY_CONTROL = SfDirectoryControl;
?
??? (8) IRP_MJ_SET_INFORMATION = SfSetInformation;
????
9、填充 FastIoDispatch 結(jié)構(gòu),并賦給 DriverObject
???????FastIoDispatch->FastIoCheckIfPossible = SfFastIoCheckIfPossible;
?????? FastIoDispatch->FastIoRead = SfFastIoRead;
?????? FastIoDispatch->FastIoWrite = SfFastIoWrite;
?????? FastIoDispatch->FastIoQueryBasicInfo = SfFastIoQueryBasicInfo;
???????FastIoDispatch->FastIoQueryStandardInfo = SfFastIoQueryStandardInfo;
???????FastIoDispatch->FastIoLock = SfFastIoLock;
???????FastIoDispatch->FastIoUnlockSingle = SfFastIoUnlockSingle;
???????FastIoDispatch->FastIoUnlockAll = SfFastIoUnlockAll;
???????FastIoDispatch->FastIoUnlockAllByKey = SfFastIoUnlockAllByKey;
???????FastIoDispatch->FastIoDeviceControl = SfFastIoDeviceControl;
???????FastIoDispatch->FastIoDetachDevice = SfFastIoDetachDevice;
???????FastIoDispatch->FastIoQueryNetworkOpenInfo = SfFastIoQueryNetworkOpenInfo;
???????FastIoDispatch->MdlRead = SfFastIoMdlRead;
???????FastIoDispatch->MdlReadComplete = SfFastIoMdlReadComplete;
???????FastIoDispatch->PrepareMdlWrite = SfFastIoPrepareMdlWrite;
???????FastIoDispatch->MdlWriteComplete = SfFastIoMdlWriteComplete;
???????FastIoDispatch->FastIoReadCompressed = SfFastIoReadCompressed;
???????FastIoDispatch->FastIoWriteCompressed = SfFastIoWriteCompressed;
???????FastIoDispatch->MdlReadCompleteCompressed = SfFastIoMdlReadCompleteCompressed;
???????FastIoDispatch->MdlWriteCompleteCompressed = SfFastIoMdlWriteCompleteCompressed;
???????FastIoDispatch->FastIoQueryOpen = SfFastIoQueryOpen;

10、如果系統(tǒng)版本 WINVER >= 0x0501 且 RegisterFileSystemFilterCallbacks 這個(gè)函數(shù)指針不為空
??????? 那么通過 RegisterFileSystemFilterCallbacks() 這個(gè)函數(shù)設(shè)置一些 callback (具體做什么還不知道。。。)

???FsFilterCallbacks.SizeOfFsFilterCallbacks = sizeof(FS_FILTER_CALLBACKS);
???FsFilterCallbacks.PreAcquireForSectionSynchronization = SfPreFsFilterPassThrough;
???FsFilterCallbacks.PostAcquireForSectionSynchronization = SfPostFsFilterPassThrough;
???FsFilterCallbacks.PreReleaseForSectionSynchronization = SfPreFsFilterPassThrough;
???FsFilterCallbacks.PostReleaseForSectionSynchronization = SfPostFsFilterPassThrough;
???FsFilterCallbacks.PreAcquireForCcFlush = SfPreFsFilterPassThrough;
???FsFilterCallbacks.PostAcquireForCcFlush = SfPostFsFilterPassThrough;
???FsFilterCallbacks.PreReleaseForCcFlush = SfPreFsFilterPassThrough;
???FsFilterCallbacks.PostReleaseForCcFlush = SfPostFsFilterPassThrough;
???FsFilterCallbacks.PreAcquireForModifiedPageWriter = SfPreFsFilterPassThrough;
???FsFilterCallbacks.PostAcquireForModifiedPageWriter = SfPostFsFilterPassThrough;
???FsFilterCallbacks.PreReleaseForModifiedPageWriter = SfPreFsFilterPassThrough;
???FsFilterCallbacks.PostReleaseForModifiedPageWriter = SfPostFsFilterPassThrough;


11、當(dāng)一個(gè)新的文件系統(tǒng)被裝入或者當(dāng)任何文件系統(tǒng)被卸載時(shí),注冊的回調(diào)函數(shù) SfFsNotification將被調(diào)用
????????通過? tatus = IoRegisterFsRegistrationChange(DriverObject, SfFsNotification); 這一句來實(shí)現(xiàn)

12、試圖附著到合適的RAW文件系統(tǒng)設(shè)備對象 \\Device\\RawDisk?和 \\Device\\RawCdRom,因?yàn)樗麄儧]有被IoRegisterFsRegistrationChange枚舉
????? (通過 IoGetDeviceObjectPointer() 函數(shù))
???????
13、清除控制設(shè)備對象上的初始化標(biāo)志,因?yàn)槲覀儸F(xiàn)在成功完成初始化

14、調(diào)用 IoRegisterDriverReinitialization

15、打完收工!!
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            午夜免费在线观看精品视频| 久热精品视频| 久久九九全国免费精品观看| 亚洲一区二区精品视频| 一区二区三区四区五区在线 | 91久久线看在观草草青青| 欧美一二区视频| 牛人盗摄一区二区三区视频| 欧美日韩国产一级| 国产精品久久久久久户外露出| 国产精品va| 精品成人久久| 亚洲一区国产视频| 欧美刺激性大交免费视频| 国产精品亚洲第一区在线暖暖韩国| 欧美精品午夜| 韩国av一区二区三区| 99精品视频一区| 欧美a级一区| 亚洲自拍偷拍视频| 欧美特黄视频| 国产一区二区三区久久悠悠色av| 久久九九国产精品| 亚洲精品国产精品国自产在线| 91久久精品www人人做人人爽| 欧美色区777第一页| 久久久之久亚州精品露出| 亚洲在线不卡| 国产欧美一区二区在线观看| 欧美一区影院| 亚洲国产成人不卡| 亚洲精品一区二区三区不| 美日韩丰满少妇在线观看| 亚洲一区在线视频| 免费中文日韩| 久久人体大胆视频| 久久精品亚洲| 国产专区欧美专区| 午夜在线a亚洲v天堂网2018| 亚洲人体大胆视频| 久久精品国内一区二区三区| 欧美香蕉视频| 亚洲自拍高清| 亚洲一级一区| 国产欧美va欧美不卡在线| 久久精品国产综合| 久久激情一区| 一本色道久久综合| 美女久久一区| 一区二区三区欧美在线| 亚洲精品美女久久久久| 欧美日韩亚洲一区在线观看| 午夜日韩激情| 久久午夜激情| 在线亚洲欧美视频| 香蕉久久夜色精品| 亚洲调教视频在线观看| 亚洲国产天堂久久综合网| 亚洲电影免费在线| 欧美性淫爽ww久久久久无| 99精品欧美一区二区三区| 国产精品久久夜| 欧美大片在线看| 亚洲国产二区| 校园激情久久| 9人人澡人人爽人人精品| 麻豆av一区二区三区| 老牛国产精品一区的观看方式| 亚洲级视频在线观看免费1级| 久久中文欧美| 国产精品久久久爽爽爽麻豆色哟哟| 夜夜狂射影院欧美极品| 欧美一级午夜免费电影| 日韩视频永久免费观看| 亚洲永久免费精品| 亚洲少妇诱惑| 亚洲欧美一区二区三区极速播放| 精品成人一区二区三区四区| 中国成人黄色视屏| 亚洲小视频在线观看| 欧美日韩国产成人| 久久男人资源视频| 国产精品嫩草99a| 在线免费观看欧美| 亚洲视频在线观看| 一区电影在线观看| 国产精品国产三级国产| 亚洲第一黄网| 国产日韩欧美在线| 欧美一级视频| 男人插女人欧美| 欧美成在线观看| 性视频1819p久久| 国产日韩欧美成人| 中日韩美女免费视频网站在线观看| 亚洲激情电影中文字幕| 欧美日韩视频专区在线播放| 99精品欧美一区二区蜜桃免费| 亚洲午夜在线观看| 一区二区在线视频观看| 欧美成人午夜影院| 亚洲国产精品视频| 午夜激情一区| 亚洲人成啪啪网站| 亚洲高清在线精品| 亚洲日本欧美天堂| 欧美色视频日本高清在线观看| 久久久噜噜噜久久中文字幕色伊伊| 亚洲成人在线网| 久久色在线观看| 亚洲精品小视频在线观看| 久久精品国产69国产精品亚洲| 亚洲看片网站| 亚洲精品日韩一| 日韩一区二区精品在线观看| 激情综合网激情| 欧美网站大全在线观看| 一区二区三区精密机械公司 | 91久久午夜| 在线电影国产精品| 国一区二区在线观看| 欧美亚一区二区| 麻豆精品91| 久久综合中文色婷婷| 中文在线资源观看视频网站免费不卡| 亚洲激情午夜| 欧美a级片网| 亚洲国产成人tv| 一区二区精品国产| 亚洲欧美日本视频在线观看| 亚洲美女精品久久| 香蕉亚洲视频| 免费欧美日韩| 黄色成人在线网址| 欧美一区二区视频在线观看| 亚洲人午夜精品免费| 午夜久久美女| 欧美大片一区| 欧美极品在线观看| 国产精品视频大全| 一区二区自拍| 蜜臀av国产精品久久久久| 欧美亚洲三区| 国产精品分类| 久久亚洲图片| 欧美福利在线观看| 欧美美女福利视频| 亚洲视频精品| 欧美—级在线免费片| 欧美专区在线| 久久亚洲精品网站| 欧美视频免费看| 欧美在线三级| 欧美日韩高清不卡| 久久婷婷激情| 欧美激情第9页| 欧美在线3区| 欧美wwwwww| 欧美一区二区三区四区在线观看地址 | 久久精品夜色噜噜亚洲aⅴ| 一区二区三区**美女毛片| 国产一区二区三区的电影 | 午夜在线电影亚洲一区| 久久国产免费看| 亚洲国产精品一区二区久| 欧美久久一区| 亚洲欧美综合一区| 欧美xxx在线观看| 中文在线不卡| 国产欧美va欧美va香蕉在| 久久久精品一区二区三区| 亚洲国产日韩欧美一区二区三区| 99这里只有久久精品视频| 国产伦精品一区二区三区高清版| 久久久久久久久蜜桃| 亚洲免费成人av| 久久亚洲精品伦理| 亚洲一区二区三区在线观看视频| 狠狠色噜噜狠狠狠狠色吗综合| 欧美激情一区二区三区四区 | 欧美日韩成人一区| 欧美一进一出视频| 亚洲人成网站色ww在线| 欧美在线国产| 99视频一区二区| 一区在线影院| 国产精品视频自拍| 欧美va天堂| 久久精品夜色噜噜亚洲aⅴ| 一本色道久久综合狠狠躁篇怎么玩| 久久久久久欧美| 亚洲欧美日韩一区| 一区二区精品国产| 亚洲黄色成人久久久| 国精品一区二区| 国产日韩精品一区二区浪潮av | 亚洲欧洲日韩在线| 韩日精品视频一区| 国产精品爽黄69| 欧美四级在线观看|