Haydovchi fayl tizimi filtr menejeri ishlamayapti.
Golovna Ierarxiyada ko'proq rol o'ynaydigan filtr drayveri, pastki haydovchi fayl tizimi , chaqirildi Fayl tizimi filtri drayveri (fayl tizimi filtri drayveri).(Filtr drayverlari haqida, 9-bo'lim.) Siz barcha fayllarni fayl tizimiga yuklab olishingiz va agar kerak bo'lsa, ularni o'zgartirishingiz yoki o'chirishingiz mumkin, siz c masofaviy fayllar uchun replikatsiya xizmatlari, fayllarni shifrlash,
zaxira va litsenziyalash."Lota" uchun fayllarni tekshiradigan har qanday tijorat antivirus skaneri dastur faylni ochganda ko'rinadigan IRP_MJ_CREATE buyruqlari bilan IRP paketlarini skanerlaydigan fayl tizimi drayverini o'z ichiga oladi.
Bunday IRP birinchi marta buyruq yuborilgan fayl tizimi drayveriga uzatilganda, virusga qarshi skaner faylni viruslarga tekshiradi. Windows XP Service Pack 2 va Windows Server 2003 fayl tizimi filtri drayverlari uchun portdan multiportga modelning bir qismi sifatida Fayl tizimi filtri menejerini (\Windows\System32\Drivers\Fltmgr.sys) o'z ichiga oladi.
Ushbu komponent Windows 2000 uchun mavjud bo'ladi. Fayl tizimi filtri menejeri filtr drayveri interfeysini Windows I/U quyi tizimiga kengaytirish orqali filtr drayverlarini ishlab chiqishni tubdan soddalashtiradi, shuningdek, fayl nomlarini kiritish, hajmlarga ulanish va o'zaro ta'sirlarni qo'llab-quvvatlaydi. boshqa filtrlar. Sotuvchi kompaniyalar, shu jumladan Microsoft, Fayl tizimi filtri menejeri tomonidan taqdim etilgan infratuzilma asosida yangi fayl tizimi filtrlarini yozadi va mavjud filtrlarni unga ko'chiradi..
Ba'zi filtermanager.dll tuzatishlari va boshqa tizim DLL tuzatishlari Windows ro'yxatga olish kitobidagi muammolar tufayli bo'lishi mumkin.
Bir nechta dasturlar filtermanager.dll faylini buzishi mumkin, ammo agar dasturlar o'chirilsa yoki o'zgartirilsa, ba'zilari "etim" (hibn) yozuvlarini yo'qotadi.
Bunday xavf bilan bog'liq holda, filtermanager.dll bilan bog'liq muammolarni skanerlash va tuzatish uchun WinThruster (Microsoft Gold Certified Partner qismi) kabi ishonchli ro'yxatga olish kitobini tozalash vositasidan foydalanishni tavsiya qilamiz.
Ro'yxatga olish kitobini Vikorist bilan tozalash orqali siz noto'g'ri ro'yxatga olish yozuvlarini qidirish, ularni kundalik fayllarga yuborish (masalan, filtermanager.dll-ni bosing) va ishlamaydiganlarni ro'yxatga olish kitobining o'rtasiga yuborish jarayonini avtomatlashtirishingiz mumkin. Har bir skanerlashdan oldin avtomatik ravishda zaxira nusxasi yaratiladi, bu sizga bir marta bosish bilan har qanday o'zgarishlarni amalga oshirishga imkon beradi va sizni kompyuteringizga mumkin bo'lgan zararlardan himoya qiladi. Eng muhimi, registrga ruxsatlarni kamaytirish tizimning ravonligi va unumdorligini keskin oshirishi mumkin. Oldindan:
Shaxsiy kompyuteringiz bilan tanish bo'lmaganingiz uchun Windows registrini qo'lda tahrirlashni tavsiya etmaymiz.
- Ro'yxatga olish kitobi muharriridan noto'g'ri foydalanish jiddiy muammolar va zararlarga olib kelishi mumkin Windowsni qayta o'rnatish.
- . Ro'yxatga olish kitobi muharriridan noto'g'ri foydalanish natijasida yuzaga keladigan muammolarni tuzatishga kafolat bera olmaymiz." Ro'yxatga olish kitobi muharriri bilan bog'laning. Windows ro'yxatga olish kitobini qo'lda yangilashdan oldin, registrning filtermanager.dll bilan bog'langan qismini eksport qiluvchi zaxira nusxasini yaratishingiz kerak (masalan, uchinchi tomon ilovasi):!
- Tugmani bosing Boshlash Kirish " Windows ro'yxatga olish kitobini qo'lda yangilashdan oldin, registrning filtermanager.dll bilan bog'langan qismini eksport qiluvchi zaxira nusxasini yaratishingiz kerak (masalan, uchinchi tomon ilovasi):.
- buyruq
- ketma-ket qidiring... HAZI BOSIMAN KIRISH.
- Yumshoq tugmalar
- . CTRL-Shift klaviaturada bosing Windows ro'yxatga olish kitobini qo'lda yangilashdan oldin, registrning filtermanager.dll bilan bog'langan qismini eksport qiluvchi zaxira nusxasini yaratishingiz kerak (masalan, uchinchi tomon ilovasi):.
- Kirish uchun dialog oynasi ko'rsatiladi.
- bosing Shunday qilib Qora quti miltillovchi kursor bilan ochiladi. regedit.
- " va bosing Ro'yxatga olish kitobi muharririda filtermanager.dll bilan bog'langan kalitni tanlang (masalan, uchinchi tomon ilovasi), buning uchun siz zaxira nusxasini yaratishingiz kerak. Menyuda
- Fayl Tanlang Eksport
- Ro'yxatda dan himoya qiling Uchinchi tomon ilovalari kalitining zaxira nusxasini saqlashingiz kerak bo'lgan jildni tanlang. Maydonda.
- ketma-ket qidiring... HAZI BOSIMAN Fayl nomi.
- Zaxira faylining nomini kiriting, masalan, "Uchinchi tomon ilovalari zaxirasi". Undan o‘ting, dala yonida nima bor?.
- Eksport oralig'i
vibrano ma'nosi
Men sizning davom etish majburiyatingizni tekshirmasdan, har qanday noaniqliklarga duch kelmasdan, o'zingizning uy kompyuteringizga antivirus dasturini mustaqil ravishda o'rnatishga qaror qildim. O'rnatuvchi www.avast.com/ua rasmiy veb-saytida joylashgan bo'lib, keyin uy kompyuteringizga o'rnatiladi qiu dasturi
, Va u hali ro'yxatdan o'tish uchun zarur bo'lgan ko'rinadi.
Men buni yengib chiqdim va endi tuzatishlarga qaytolmayapman. Qayd etish kerak bo'lgan eng muhim narsa Sandbox funktsiyasi yoki sandbox, bu haqda ko'p gapirish mumkin, bu butun tizimni yuqtirishdan qo'rqmasdan har qanday shubhali dasturni ishga tushirishingiz mumkin bo'lgan o'ziga xos virtual vositadir. Shunday qilib, o'tmishda hech qanday sabab yo'q, lekin ishdan men tushunmayman. Va men hali ham sehrlanganda skanerlash kabi foydali funksiyani topa olmayapman, lekin bu bannerlardan juda yaxshi foydalanishga o'xshaydi va agar u yoqilgan bo'lsa, Avast shifrlangan fayllarni Windowsning o'zi shifrlanmaguncha tekshiradi. Agar imkoningiz bo'lsa, albatta yordam beraman. Maksim. Avast bepul antivirusni qanday o'rnatish kerak
Ushbu maqola qaysi antivirus eng samarali ekanligi haqidagi maqolaning davomi sifatida yozilgan bo'lib, biz qaysi printsip asosida deyarli barcha antivirus mahsulotlarini, ham pullik, ham bepul himoya qilishini ishlab chiqdik. Qanday qilib hidlar bir-biri bilan kurashadi va boshqa ko'p narsalar, masalan, o'zingizni qanday himoya qilish kerak uy kompyuteri
viruslar turlari va antivirusdan boshqa narsalar, buning uchun dasturlardan foydalanishingiz kerak. Sizni o'ziga jalb qilish uchun o'sha yerda ovqatni ko'rib chiqamiz o'rnatish xarajatsiz antivirus Avast
. Biz dasturlarning asosiy sozlamalari, texnik xizmat ko'rsatish, viruslarni skanerlash va hokazolarni ko'rib chiqamiz. Eslatma: Do'stlar, Avast antivirus dasturini o'chirmoqchi bo'lsangiz, shoshiling.
Yaxshi ko'rinish
Avval o'rnating AVAST! Bepul antivirus Siz uni faqat uyda vikorizatsiya qilishingiz mumkinligini bilishingiz kerak. Antivirusni veb-saytdan yuklab olishingiz mumkin
www.avast.com/ua
.
Agar siz Avast antivirusini yuklab olishda muammoga duch kelsangiz, uni "Avsoft" rasmiy distribyutorining veb-saytidan, quyidagi manzilda yuklab oling: www.avsoft.ru/avast/Free_Avast_home_edition_download.htm Xo'sh, biz sizga rasmiy veb-saytimizda antivirusimizni ko'rsatamiz
www.avast.com/ru-ru/free-antivirus-download.
Tanlang
Bepul antivirus
va yuklab olish tugmasini bosing, Xush kelibsiz Avast Free Antivirus foydalanuvchilari yorlig'ida Hozir yuklab olish tugmasini bosing. Sehrlangan holda biz dastur o'rnatuvchisini ishga tushiramiz.
Ushbu versiyada siz standart o'rnatish va boshqa antivirus kabi o'rnatishni tanlashingiz mumkin.
Agar sizda birinchi antivirus Kasperskiy o'rnatilgan bo'lsa, ziddiyat bo'lishi mumkin.
Siz tezkor o'rnatishni tanlashingiz mumkin.
Sizga nima kerak
Google brauzeri Chrome, katakchani belgilang. O'rnatish bir yoki ikkita ipni cho'zishni talab qiladi.
Oʻrnatish tugallandi. Bo'rttirma tayyor. Dasturlar bilan bosh og'rig'ini yo'qotgan ko'plab odamlar AVAST antivirusini ro'yxatdan o'tkazish kerakligiga hayron qolishadi, aks holda bu to'g'ri emas. Ro'yxatdan o'tish yanada sodda. Biz ro'yxatdan o'tishimiz uchun bosim ostidamiz. Obiraemo AVAST asosiy himoyasi! Bepul antivirus.
Hatto oddiy shaklni ham eslaylik.
Bepul litsenziyani ro'yxatdan o'tkazish muhri bilan bosiladi.
Bizning antivirus versiyamiz ro'yxatdan o'tgan
Kompyuteringizni virusga tekshirishning ko'plab usullari mavjud. Tugmani bosing Scanuvati kompyuter
. I, masalan, kerakli variantni tanlang Ekspress skanerlash- autorun ob'ektlari va bo'limning barcha joylari skanerdan o'tkaziladi
operatsion tizim, viruslar uyaga joylashsin
Kompyuterni tashqi skanerlash(izohlarsiz)
Chuqur burunlarni skanerlash- flesh-disklaringiz, USB qattiq disklaringiz va boshqalar tekshiriladi
Skanerlash uchun jildni tanlang , Siz mustaqil ravishda viruslar mavjudligini tekshirish uchun papkani tanlaysiz. Yoki sichqonchaning o'ng tugmasi bilan istalgan dadani bosishingiz va menyudan Scan-ni tanlashingiz mumkin
berilgan papka
virus borligi tekshiriladi.
OS soati ostida skanerlash. Agar siz, masalan, uzoq vaqt davomida Internetni kezayotgan bo'lsangiz, keyinchalik buzilgan fayllarni va tizim buzilganda skanerlashni yoqishingiz mumkin. Avast Windows-ning o'zini, ayniqsa shunga o'xshash funktsiyalarni chetlab o'tib, tizimning normal zaxira nusxasini yaratishga to'sqinlik qiladigan barcha fayllarni Avast haqida hech qanday joyda eslatmasdan tekshiradi. Bu haqiqatan ham yaxshi ovqat, bu 100% hollarda bo'lmasa-da, salomatlik bannerlari bilan yordam beradi. Avast antivirusi Windows-ning asosiy xususiyatlaridan oldin foydalidir. Avtomatik sinov muhiti (" AutoSandbox
").
Shubhali qo'shimchalarni ishga tushiradi virtual muhit, oddiy tizimda tabiiy ravishda mustahkamlangan Biz siz bilan AVASTning mushuksiz versiyasini taqdim etamiz! Bepul antivirus faqat Avast shubhali deb tan olgan dasturlarni ishga tushiradi, agar dastur noto'g'ri ko'rinsa, dasturlar shunchaki yopiladi. U
<= IRP_MJ_MAXIMUM_FUNCTION; ++i) { DriverObject->pullik versiyalar
AVAST!
Pro Antivirus va AVAST!
// // DriverEntry - drayverning NTSTATUS nuqtasini kiriting DriverEntry(__inout PDRIVER_OBJECT DriverObject, __inout PDRIVER_OBJECT DriverObject, __inout PUNICODE_STRING RegistryPath) ( ... // // Drayvni yuklash tartibini o'rnating (faqat disk raskadrovka maqsadida). // DriverObject->
< numDevices; ++i) { FsFilterDetachFromDevice(devList[i]); ObDereferenceObject(devList[i]); } KeDelayExecutionThread(KernelMode, FALSE, &interval); } }
IrpDispatch.c
Jo'natish orqali o'tish
// // PassThrough IRP ishlov beruvchisi NTSTATUS FsFilterDispatchPassThrough(__PDEVICE_OBJECT DeviceObject, __PIRP Irp ichida) ( PFSFILTER_DEVICE_EXTENSION pDevExt = (PFSFILTER_DEVICE_DEVICE_EXTENSION-)
Yuborishni yaratish
// // IRP_MJ_CREATE IRP ishlov beruvchisi NTSTATUS FsFilterDispatchCreate(__PDEVICE_OBJECT DeviceObject, __PIRP Irp ichida) ( PFILE_OBJECT pFileObject = IoGetCurrentIrpStackLocation(Irp)->File;
FastIo.c
// FAST_IO_DISPATCH bilan ishlash tartibi toʻgʻri yoki yoʻqligini tekshirish uchun soʻl ( FIELD_OFFSET(FAST_IO_DISPATCH, _FieldName) + sizeof(void *))) && \ ((_FastIoDispatchPtr)->_FieldName != NULL))
Tez kirish/chiqarish orqali o'tish
BOOLEAN FsFilterFastIoQueryBasicInfo(__PFILE_OBJECT FileObject, __BOOLEAN Wait, __out PFILE_BASIC_INFORMATION Bufer, __out PIO_STATUS_BLOCK IoStatus, __In log of PDEVICE_O//bu PDEVICE_b uchun). PDEVICE_OBJECT keyingiDeviceObject = ( (PFSFILTER_DEVICE_EXTENSION) DeviceObject- >DeviceExtension)->AttachedToDeviceObject PFAST_IO_DISPATCH fastIoDispatch = nextDeviceObject->DriverObject ->FastIoDispatch;
Tez kirish/chiqarish qurilmasi
Bildirishnoma.c
AttachDetach.c
Biriktirilmoqda
Ajratish
bekor FsFilterDetachFromDevice(__da PDEVICE_OBJECT DeviceObject) ( PFSFILTER_DEVICE_EXTENSION pDevExt = (PFSFILTER_DEVICE_EXTENSION) DeviceObject->DeviceExtension; IoDetachExtension-(pDev)
// // Boshqa BOOLEAN FsFilterIsMyDeviceObject(__da PDEVICE_OBJECT DeviceObject) ( DeviceObject->ni qaytaring
Manbalar va makefile
Fayllar tarkibi:
Makefile standart hisoblanadi:
SC.EXE umumiy ko'rinishi
FsFilterni ishga tushiring
Fayl tizimi drayverini to'xtatish
Sc stop FsFilter
FsFilterni o'chirib tashlang
Natijadagi skript
Ko'proq rivojlangan
Xulosa
Bizning adabiyotimizda biz sizga fayl drayverini yaratish uchun oddiy qadamlarni taqdim etdik.
Boshqa fayl drayverlari muammolari ham muhokama qilindi.
- Biz biriktirilgan filtrlar bilan fayl tizimi qurilmalari toʻplamini koʻrib chiqdik va drayverdan disk raskadrovka chiqishini qanday kuzatishni muhokama qildik. Siz ushbu maqoladagi manbalardan oʻzingizning fayl tizimi filtri drayverini ishlab chiqish va uning xatti-harakatlariga talablarni oʻzgartirish uchun skelet sifatida foydalanishingiz mumkin.
- Ma'lumotnomalar
Fayl tizimi yoki fayl tizimi filtrini ishlab chiquvchilar uchun kontent
sfilter DDK namunasi
Windows drayverlarini ishlab chiqish bo'yicha qo'llanmamiz sizga yoqdi degan umiddamiz.
Fayl tizimi filtri drayverini ishlab chiqish kabi loyihangiz ustida ishlash uchun tajribali jamoani yollashga tayyormisiz?
Faqat biz bilan bog'laning va biz sizga barcha ma'lumotlarni taqdim etamiz!
Ushbu o'quv qo'llanma sizga oddiy fayl tizimi fayl drayverini ishlab chiqish haqida qisqacha ma'lumot beradi.
Demo drayveri, sizning fikringizcha, qulfni ochish uchun yashirin fayllardan boshqa nomlar yaratishi mumkin.
Ushbu material asosiy Windows drayverlarini ishlab chiqish tajribasiga ega, shuningdek C/C++ tilini biladigan muhandislar uchun yozilgan.
Bundan tashqari, sizda Windows drayverlarini ishlab chiqish bo'yicha keng bilimga ega bo'lmagan odamlar uchun qo'llanma ham bo'lishi mumkin.
Muallif:
Sergey Podobriy,
Haydovchilar jamoasi rahbari Windows fayl tizimi filtri drayveri nima?
Windows fayl tizimi Filtr drayveri fayl tizimining har bir kiritish-chiqarish operatsiyasi (yaratish, o'qish, yozish, nomini o'zgartirish va h.k.) vaqtida chaqiriladi.
U erda tizim faylini o'zgartirishdan oldin yaratilgan fayl mavjud.
Fayl tizimi filtri drayverlarini eski drayverlarga solishtirish mumkin, ular bir nechta maxsus ishlab chiqish bosqichlarini talab qiladi.
// // Global ma'lumotlar PDRIVER_OBJECT g_fsFilterDriverObject = NULL;
// // DriverEntry - drayver nuqtasini kiriting NTSTATUS DriverEntry (__inout PDRIVER_OBJECT DriverObject, __inout PDRIVER_OBJECT DriverObject, __ in PUNICODE_STRING RegistryPath) ( NTSTATUS status = STATUS_SUCCESS; ULONG i = 0; // ASSERT (bizning drayverni FALSE); // / Bu do'kon. g_fsFilterDriverObject = DriverObject ... )
IRP jo'natish jadvalini o'rnatish
Fayl filtri fayl tizimini ishlab chiqishning oxirgi muddati IRP dispetcherlik jadvalini IRP ishlov beruvchilariga funktsiya ko'rsatgichlari bilan to'ldirishdir.<= IRP_MJ_MAXIMUM_FUNCTION; ++i) { DriverObject->Bizning ofitser drayverimizda bitta o'tish-o'tish IRP ishlov beruvchisi bor yoki yo'qmi, keyin so'rovlarni yuboradi.
IRP ishlov beruvchilarini amalga oshirishni keyinroq ko'rib chiqamiz.
// // DriverEntry - drayverning NTSTATUS DriverEntry nuqtasini kiriting (__inout PDRIVER_OBJECT DriverObject, __inout PUNICODE_STRING RegistryPath) ( ... // // Drayv ob'ektlarini jo'natish jadvalini ishga tushiring. // uchun (i = 0; i)
MajorFunction[i] = FsFilterDispatchPassThrough;
) DriverObject->MajorFunction = FsFilterDispatchCreate;
...)
Tez kiritish/chiqarish jo'natish jadvalini o'rnatish
Pro Antivirus va AVAST!
Fayl tizimi drayverini ishga tushirishning yashirin qismi yukni tushirish tartibini o'rnatmoqda.
Ushbu tartib sizga nima istayotganingizni aytib beradi va fayl tizimingizni qayta ishga tushirishni talab qilmasdan ishga tushiradi.
Salbiy tomoni shundaki, bu drayver resurslarni ochish uchun juda og'ir, ammo telefon fayl tizimlariga xavfsiz kirish mumkin emas.
// // DriverEntry - Kirish elementi drayveri NTSTATUS DriverEntry(__inout PDRIVER_OBJECT DriverObject, __inout PDRIVER_OBJECT DriverObject, __in PUNICODE_STRING RegistryPath) ( ... // // Drayvni yuklash tartibini o'rnating (faqat disk raskadrovka maqsadida). // DriverObject->DriverUnload STATUS_SUC;)SUC
Fayl tizimi drayverini yuklab olishni amalga oshirish
Haydovchi yukni tushirish tartibi resurslarni tozalaydi va ularni taqsimlaydi.
Fayl tizimi drayverini ishlab chiqishdagi keyingi qadam fayl tizimidagi o'zgarishlar to'g'risida ro'yxatdan o'tishni bekor qilishdir.< numDevices; ++i) { FsFilterDetachFromDevice(devList[i]); ObDereferenceObject(devList[i]); } KeDelayExecutionThread(KernelMode, FALSE, &interval); } }
IrpDispatch.c
Jo'natish orqali o'tish
// // VOID FsFilterUnload(__in PDRIVER_OBJECT DriverObject) ( ... // // Fayl o'zgarishlari uchun ro'yxatdan o'tmagan qayta qo'ng'iroq qilish tartibi. // IoUnregisterFsRegistrationChange(DriverObject, FsFilterNotificationCallback); ... )
Bildirishnomani ro'yxatdan o'tkazganingizdan so'ng siz sozlamalar va sozlashlardan o'tishingiz va ularni o'chirib qo'yishingiz kerak.
Yuborishni yaratish
Barcha ajoyib IRPlar eshitilmaguncha, hid olti soniya davom etadi.
// // IRP_MJ_CREATE IRP ishlov beruvchisi NTSTATUS FsFilterDispatchCreate(__PDEVICE_OBJECT DeviceObject-da, __PIRP Irp-da) ( Irp);
FastIo.c
Barcha tezkor kiritish/chiqarish tartib-qoidalari fayl tizimi chegaralari orqasida joylashganligi sababli, keyingi drayver uchun tezkor kiritish/chiqarish jadvalining haqiqiyligini quyidagi makros yordamida kuzatib boramiz:
// FAST_IO_DISPATCH bilan ishlash tartibi toʻgʻri yoki yoʻqligini tekshirish uchun soʻl ( FIELD_OFFSET(FAST_IO_DISPATCH, _FieldName) + sizeof(void *))) && \ ((_FastIoDispatchPtr)->_FieldName != NULL))
Tez kirish/chiqarish orqali o'tish
IRP so'rovlaridan farqli o'laroq, tezkor IO so'rovlari orqali o'tish juda katta miqdordagi kodni talab qiladi, chunki har bir tezkor kiritish/chiqarish funktsiyasi o'z parametrlariga ega.
Shundan so'ng, yashirin o'tish funksiyasini qanday bilish mumkin:
Tez kirish/chiqarish qurilmasi
BOOLEAN FsFilterFastIoQueryBasicInfo(__PFILE_OBJECT FileObject, __BOOLEAN Wait, __out PFILE_BASIC_INFORMATION Bufer, __out PIO_STATUS_BLOCK IoStatus, __In log of PDEVICE_O//bu PDEVICE_b uchun). PDEVICE_OBJECT keyingiDeviceObject = ( (PFSFILTER_DEVICE_EXTENSION) DeviceObject- >DeviceExtension)->AttachedToDeviceObject: PFAST_IO_DISPATCH fastIoDispatch = nextDeviceObject->DriverObject ->FastIoDispatch, agar (VALID_FAST_IO_DISPATCH_HANDLER(fastIoDispatch, FastIoDispatch) (BasIfo) eryBasicInfo)(Fayl obyekti, Kutish, Bufer, IoStatus, nextDeviceObject ) FALSE ni qaytaradi; )
Qurilmani ajratib olish - bu keyingi drayverni chaqirmasdan bajarishimiz kerak bo'lgan tezkor kiritish-chiqarish so'rovidir.
Bildirishnoma.c
Filtr qurilmamizni qurilma stek fayl tizimidan ajratgandan so'ng uni tezda bog'lash sizning mas'uliyatingizdir.
Shundan so'ng, ushbu so'rovni qanday oson boshqarishni ko'rsatadigan misol kodini qo'shishingiz mumkin:
// // Ushbu tartib fayl tizimi faol fayl tizimi sifatida ro'yxatdan o'tgan yoki // ro'yxatdan o'chirilgan bo'lsa, ishga tushadi.
AttachDetach.c
VOID FsFilterNotificationCallback(__PDEVICE_OBJECT DeviceObjectda;
Biriktirilmoqda
Ushbu faylda filtrimizga o'xshash ulanish, aniqlash va qayta ishlash uchun qo'shimcha tartiblar mavjud.
Kengaytma qurilmasi bilan yangi qurilma obyektini yaratish uchun IoCreateDevice’ga qo‘ng‘iroq qilishingiz va keyin sozlamalarni tezlashtirish uchun qurilma qurilmasiga qurilma obyekti bayroqlarini tarqatishingiz kerakligini unutmang (DO_BUFFERED_IO, DO_DIRECT_IO, FILE_DEVICE sukut bo‘yicha IoAttachDeviceToDeviceStackSafe kechikish holatlarida. Muvaffaqiyatsiz bo'lishimiz mumkin, chunki qurilma ishga tushirishni yakunlay olmaydi, men ob'ektni qurilma kengaytmasiga qo'shaman va men qila olaman sizga ushbu qurilma kengaytmalari haqida aytib bering:
Ajratish
// // Strukturalar typedef struct _FSFILTER_DEVICE_EXTENSION ( PDEVICE_OBJECT AttachedToDeviceObject; ) FSFILTER_DEVICE_EXTENSION, *PFSFILTER_DEVICE_EXTENSION;
Ajratish juda oddiy.
Qurilma kengaytmasidan biz ulangan qurilmani va IoDetachDevice va IoDeleteDevice chaqiruvini olamiz.
bekor FsFilterDetachFromDevice(__in PDEVICE_OBJECT DeviceObject) ( PFSFILTER_DEVICE_EXTENSION pDevExt = (PFSFILTER_DEVICE_EXTENSION) DeviceObject->DeviceExtension; IoDetachDevice-Tob(ADevDevice-Tob)
Qurilmamiz ulanganligini tekshirish
Manbalar va makefile
Shunday qilib, agar siz qurilmadan tezda foydalanmoqchi bo'lsangiz yoki yo'q bo'lsangiz, bizning qurilmalarimizga ko'rinadigan IoGetAttachedDeviceReference va IoGetLowerDeviceObject-dan foydalanish uchun qurilmadan tezda foydalanishingiz kerak.
Fayllar tarkibi:
Siz o'rnatishimizni qo'shimcha qurilma drayveri ob'ekti orqasida bizning drayverimiz (g_fsFilterDriverObject) bilan ko'rishingiz mumkin.
Makefile standart hisoblanadi:
// // Boshqa BOOLEAN FsFilterIsMyDeviceObject(__in PDEVICE_OBJECT DeviceObject) ( Qaytish DeviceObject->DriverObject == g_fsFilterDriverObject; )
Drayv, vikorista dzherela va fayl fayllarini yaratadigan yordamchi dastur.
$(WINDDK)\bin\setenv.bat $(WINDDK) chk wxp cd /d $(ProjectDir) build.exe –I ga qo'ng'iroq qiling
Fayl tizimi filtri drayverini qanday o'rnatish kerak
SC.EXE umumiy ko'rinishi
Biz drayverimizni boshqarish uchun sc.exe (sc - service control) dan foydalanamiz.
Ma'lumotlar bazasi xizmatlarini qidirish yoki o'rnatishni o'zgartirish uchun asbobning ushbu buyruq qatoridan foydalanishingiz mumkin.
U Windows XP va yuqori versiyalarida ishlaydi yoki Windows SDK/DDK da bo'lishi mumkin.
Fayl tizimi filtri drayverini o'rnating
Fayl tizimini, fayl drayverini sozlash uchun qo'ng'iroq qiling:
Sc yaratish FsFilter type=filesys binPath=c:\FSFilter.sys
Fayl tizimining xizmat turi va c:\FsFilter.sys ikkilik yo'li bilan FsFilter nomi bilan yangi xizmat ko'rsatish markazi yaratiladi.
FsFilterni ishga tushiring
Fayl tizimi filtri drayverini ishga tushiring
Fayl tizimi drayverini to'xtatish
Fayl fayl filtri drayveri tugmachasini bosing, qo'ng'iroq qiling:
Sc stop FsFilter
FsFilter xizmati ishga tushadi.
Fayl tizimining fayl drayveriga o'ting, qo'ng'iroq qiling:
FsFilter xizmati to'xtatildi.
FsFilterni o'chirib tashlang
Fayl tizimi filtri drayverini olib tashlang
Natijadagi skript
Fayl drayverining fayl tizimini sozlash uchun qo'ng'iroq qiling:
Ushbu buyruq menejer xizmatini o'rnatadi, FsFilter nomi bilan xizmat yozuvini olib tashlaydi.
Haydovchilarni sinovdan o'tkazishni osonlashtirishdan oldin siz ushbu buyruqlarning barchasini bitta ommaviy ish faylida bajarishingiz mumkin.
Install.cmd buyruq faylimizning boshqa mazmuni:
Sc yaratish FsFilter type=filesys binPath=c:\FsFilter.sys sc start FsFilter pauza sc stop FsFilter sc o'chirish FsFilter pauza
Fayl tizimi filtri drayverining namunasini ishga tushirish
Quyida siz fayl robot tizimining fayli sifatida displeyga o'tasiz.
Buning uchun biz monitor disk raskadrovka chiqishi uchun Windows uchun Sysinternals DebugView-dan, shuningdek qurilmalar va drayverlarni ko'rish uchun OSR Device Tree-dan foydalanamiz.
Birinchidan, haydovchini yarataylik.
Shundan so'ng, FsFilter.sys fayli kiritiladi.
Fayl tizimi filtri drayveri va skriptni C diskiga o'rnating.
Endi biz fayl tizimi drayverini o'rnatadigan va ko'chiradigan Install.cmd dasturini ishga tushiramiz va foydalanuvchi kiritishini kutamiz.
Fayl fayl filtri drayveri muvaffaqiyatli sozlangan va ishga tushirilgan bo'lishi mumkin.
Endi biz DebugView yordam dasturini ishga tushirishimiz kerak.
Nihoyat, qanday fayllar ochilganini ko'rishimiz mumkin!
Qanday bo'lmasin, biz skriptni sozlashni davom ettirish, drayverni to'xtatish va o'chirishni davom ettirish uchun istalgan tugmani bosishimiz mumkin.
Bizning haydovchi filtri fayl tizimlari ko'chiriladi va sozlanmaydi.
Qurilmalar daraxti ro'yxatini yangilash uchun F5 tugmasini bosishimiz mumkin:
Bizning filtr qurilmalarimiz endi qurilma daraxtida yo'q.
Sizning fayl tizimingiz drayveri yo'qoldi va tizim fayl tizimi avvalgidek.
Ko'proq rivojlangan
Yuqorida tavsiflangan fayl tizimi filtri drayveri juda oddiy va unda umumiy drayver uchun zarur bo'lgan bir qator funktsiyalar mavjud emas.