Haydovchi fayl tizimi filtr menejeri ishlamayapti.

topshirish / Men tozalovchi joy quraman

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.

  1. Ro'yxatga olish kitobi muharriridan noto'g'ri foydalanish jiddiy muammolar va zararlarga olib kelishi mumkin Windowsni qayta o'rnatish.
  2. . 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):!
  3. 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):.
  4. buyruq
  5. ketma-ket qidiring... HAZI BOSIMAN KIRISH.
  6. Yumshoq tugmalar
  7. . 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):.
  8. Kirish uchun dialog oynasi ko'rsatiladi.
  9. bosing Shunday qilib Qora quti miltillovchi kursor bilan ochiladi. regedit.
  10. " 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
  11. Fayl Tanlang Eksport
  12. Ro'yxatda dan himoya qiling Uchinchi tomon ilovalari kalitining zaxira nusxasini saqlashingiz kerak bo'lgan jildni tanlang. Maydonda.
  13. ketma-ket qidiring... HAZI BOSIMAN Fayl nomi.
  14. Zaxira faylining nomini kiriting, masalan, "Uchinchi tomon ilovalari zaxirasi". Undan o‘ting, dala yonida nima bor?.
  15. 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.

  1. 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.
  2. 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.

© 2022 androidas.ru - Android haqida hamma narsa