დრაივერი არის ბირთვის მოძველებული აბონენტი. ენერგიის მართვა Windows-ში

ჩემს მთავარ ლეპტოპში სხვადასხვა პრობლემებიელექტროენერგიის მიწოდება ხშირად ხდება, რაც აიხსნება შიდა შეკრებებში მუშაობით. თუმცა, 1803 წლის სტაბილურ გამოშვებაშიც კი შევამჩნიე, რომ ჩემმა სისტემამ შეწყვიტა დაძინება. ამ შემთხვევაში, მონიტორი გამორთულია გარკვეული პერიოდის შემდეგ, რაც მიუთითებს სისტემის მიერ უმოქმედობის მდგომარეობის სწორად განსაზღვრაზე.

ძილზე გადასვლის მცირე პერიოდი დავადგინე 1-2 წუთი და დავიწყე დიაგნოსტიკა.

აპლიკაციებისა და დრაივერების დენის მოთხოვნების შემოწმება

პირველი ნაბიჯი არის ჩახედვა powercfg, რომელიც ხელს უშლის OS-ს დაძინებას. ელექტროენერგიის ქვესისტემაზე წვდომის პროცესები და დრაივერები ჩანს ბრძანების ხაზიროგორც ადმინისტრატორი:

Powercfg - ითხოვს

თქვენ დაუყოვნებლივ ხედავთ, რომ მოთხოვნა SYSTEM-ზე მოდის DRIVER-ისგან - ამ შემთხვევაში Realtek იყენებს აუდიო ნაკადს.

სია შეიძლება ასევე შეიცავდეს WebRTC-ს Chrome-დან და სისტემის გადატვირთვისთანავე შეგიძლიათ იხილოთ ჩამოტვირთვის ოპტიმიზაციის მოთხოვნები, ძიების ინდექსი, მაგრამ ისინი სწრაფად ქრება. თქვენ შეგიძლიათ დაამატოთ პროცესი ან დრაივერი გამორიცხვის სიაში და ეს არ შეგიშლით ხელს დაძინებაში.

Powercfg - requestsoverride DRIVER "Realtek High Definition Audio (HDAUDIO \ FUNC_01 & VEN_10EC & DEV_0269 & SUBSYS_17AA2204 & REV_1002 \ 4 & d00657 & 0 & 0001)" SYST

ბრძანება იკითხება, როგორც "იგნორირება მოთხოვნის DRIVER-ისგან [ სრული სახელიმძღოლი] SYSTEM-ზე“.

გამონაკლისების სია ინახება რეესტრის გასაღებში

HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Power \ PowerRequestOverride

და გამოდის ბრძანებით

Powercfg - მოთხოვნის გადაფარვა

გადავტვირთე, რომ დარწმუნებულიყო, მაგრამ სისტემამ უარი თქვა დაძინებაზე. გამონაკლისების და მოთხოვნის სიის შემოწმების შემდეგ აღმოვაჩინე ეს Realtek მძღოლიგანაგრძო აუდიო ნაკადის გამოყენება, თუმცა გამორიცხული იყო.

გამონაკლისების გარშემო ტამბურით ცოტა ვიცეკვე, მაგრამ არ გამომივიდა. სწრაფმა გუგლმა დაადასტურა, რომ ზოგიერთ შემთხვევაში ისინი არ მუშაობდნენ. ეს ტიპიურია მემკვიდრეობითი მოთხოვნებისთვის, მაგრამ ეს სხვა შემთხვევა იყო და მე არ ვარ პირველი, ვინც ამას ვაწყდები.

საბოლოოდ მოვხსენი Realtek სიიდან. თქვენ შეგიძლიათ წაშალოთ ჩანაწერები რეესტრის რედაქტორში ან კონსოლში. ბრძანება თითქმის იგივეა რაც დამატებისას, უბრალოდ არ მიუთითებს სად მიდის მოთხოვნა, ე.ი. ამ შემთხვევაში, ბრძანების ბოლოს არ არის SYSTEM:

Powercfg - requestsoverride DRIVER "Realtek High Definition Audio (HDAUDIO \ FUNC_01 & VEN_10EC & DEV_0269 & SUBSYS_17AA2204 & REV_1002 \ 4 & d00657 & 0 & 0001)"

ჩვენ სხვა გზას მივადგებით

პროცესის გამოთვლა ხმის ქვესისტემის გამოყენებით

ცნობილია, რომ Realtek-ის მძღოლი ბინძურ საქმეებს ეწევა. ცხადია, ის იტვირთება სისტემის გაშვებისას, ამიტომ ფაილის სახელის გარკვევა მარტივია Autoruns-ის გამოყენებით.

სამი ჩანაწერი ეხება ორ ფაილს, რომელთაგან ერთი არის მართვის პანელი, როგორც სახელიდან ჩანს. ამიტომ, ინტერესის ობიექტი იყო ravbg64.exe.

Microsoft დიდ ყურადღებას უთმობს Windows 10 ოპერაციულ სისტემაში უსაფრთხოებას. სისტემის ერთ-ერთი მნიშვნელოვანი ელემენტია Windows Defender, მაგრამ ის ვერ უმკლავდება ყველა საფრთხეს. კერძოდ, ბოლო დროს პოპულარობას იძენს Ransomware ვირუსები, რომელთა ყველაზე ცნობილი რეინკარნაციებია. მავნე პროგრამაპეტია და. Microsoft-მა დანერგა ბირთვის იზოლაციისა და მეხსიერების მთლიანობის ფუნქციები Windows 10-ში Ransomware ვირუსებთან საბრძოლველად. ისინი ნაგულისხმევად გამორთულია.

Სარჩევი:

რა არის ბირთვის იზოლაცია და მეხსიერების მთლიანობა

ბირთვის იზოლაციაარის დამატებითი დაცვის პროცესი, რომელიც უზრუნველყოფილია კომპიუტერული პროცესების დაცვის მეთოდით ოპერაციული სისტემადა მოწყობილობები. ამ ქმედებების გამო, კომპიუტერში ვირუსების მოხვედრისას შესაძლებელია ოპერაციული სისტემის მუშაობის შეფერხების თავიდან აცილება.

მეხსიერების მთლიანობაარის დამცავი ფუნქცია, რომელიც თან ახლავს ბირთვის იზოლაციას, რომელიც მიზნად ისახავს უცნობი პოტენციურად საშიში პროგრამების მიერ უსაფრთხოების მაღალი დონის მქონე პროცესებზე წვდომის შეზღუდვას.

მნიშვნელოვანია: ბირთვის იზოლაციის ფუნქცია შეიძლება იმუშაოს მხოლოდ იმ შემთხვევაში, თუ ამისათვის საკმარისი პირობებია კომპიუტერის აპარატურის მხრიდან. ვ BIOS პარამეტრებივირტუალიზაციის ტექნოლოგია უნდა იყოს აქტიური, რის გამოც Windows 10-ზე მომუშავე კომპიუტერს შეუძლია სხვადასხვა აპლიკაციების გაშვება ვირტუალურ კონტეინერში, რაც ზღუდავს მათ წვდომას სისტემის ძირითადი კომპონენტებიდან.

როგორ ჩართოთ ბირთვის იზოლაცია და მეხსიერების მთლიანობა

საოპერაციო ოთახის პარამეტრები ვინდოუსის სისტემები 10 საშუალებას გაძლევთ სრულად მართოთ თქვენი კომპიუტერის უსაფრთხოების ფუნქციები. Windows 10-ის პარამეტრების საშუალებით შეგიძლიათ ჩართოთ ბირთვის იზოლაცია და მეხსიერების მთლიანობა შემდეგნაირად:


როგორც ზემოთ აღინიშნა, თუ თქვენი კომპიუტერის აპარატურა არ უჭერს მხარს ვირტუალიზაციას, ამ ფუნქციასარ იმუშავებს. როდესაც ჩართულია, მომხმარებელი დაინახავს შეტყობინებას „მეხსიერების მთლიანობის უზრუნველყოფა ვერ ხერხდება. შესაძლო შეუთავსებლობა. ” თუ ეს შეტყობინება გამოჩნდება, რეკომენდირებულია გადახვიდეთ BIOS-ში და ნახოთ, ჩართულია თუ არა უსაფრთხო ჩატვირთვის (ჩატვირთვის რეჟიმი) ფუნქცია.

როგორ გამორთოთ ბირთვის იზოლაცია და მეხსიერების მთლიანობა

ოპერაციულ სისტემაში ახალი ფუნქციები, რომლებიც სერიოზულად მოქმედებს მის მუშაობაზე, ყოველთვის ემუქრება კომპიუტერთან დაკავშირებული პრობლემების გამოწვევის რისკი. გამონაკლისი არ არის ბირთვის იზოლაციის ფუნქცია. მომხმარებლები, რომლებმაც უკვე სცადეს ის, აღნიშნავენ მაიკროსოფტის ფორუმებზე, რომ პრობლემები ექმნებათ რიგი თამაშებისა და პროგრამების გაშვებისას. გადაჭრის ერთადერთი გზა ეს პრობლემა, ეს არის ბირთვის იზოლაციისა და მეხსიერების მთლიანობის გამორთვა. შესაძლოა, მომავალ განახლებებში აპლიკაციის შემქმნელებმა ან Microsoft-მა მოაგვარონ ეს შეუთავსებლობა.

ბირთვის იზოლაციისა და მეხსიერების მთლიანობის გამორთვის სამი გზა არსებობს:


ბირთვის რეჟიმის დრაივერები: ნაწილი 1: ცნებები - WASM.RU არქივი

არქიტექტურის მიმოხილვა

Windows 2000-ის შიდა სამყარო დაყოფილია ორ ნაწილად, მკაფიოდ განსაზღვრული საზღვრებით, როგორც მისამართების სივრცის, ასევე შემსრულებლის ამ მისამართების სივრცეში კოდის უფლებებისა და მოვალეობების თვალსაზრისით.

მისამართების სივრცის გაყოფით, ყველაფერი საოცრად მარტივია. ოთხივე, ხელმისაწვდომი 32-ბიტიანი არქიტექტურით, გიგაბაიტი იყოფა ორ თანაბარ ნაწილად (მე გამოვტოვებ 4GT RAM Tuning-ს და Physical Address Extension-ს, როგორც ეგზოტიკას). ქვედა ნახევარი ეძღვნება მომხმარებლის რეჟიმში პროცესებს, ზედა ეკუთვნის ბირთვს.

უფლებებისა და მოვალეობების გამიჯვნა ცოტა უფრო რთულია.

მომხმარებლის პროცესები მოიცავს შემდეგ პროცესებს:

  • სისტემის მხარდაჭერის პროცესები - მაგალითად, Winlogon შესვლის პროცესი (განხორციელებული \% SystemRoot% \ System32 \ Winlogon.exe);
  • სერვისის პროცესები - მაგალითად, ბეჭდვის სპულერი;
  • მომხმარებლის აპლიკაციები - არსებობს ხუთი ტიპი: Win32, Windows 3.1, MS-DOS, POSIX და OS / 2;
  • გარემოს ქვესისტემები - მხარდაჭერილია სამი გარემოს ქვესისტემა: Win32 (დანერგილი \% SystemRoot% \ System32 \ Csrss.exe), POSIX (დანერგილი \% SystemRoot% \ System32 \ Psxss.exe), OS / 2 (დანერგილი \% SystemRoot-ში % \ System32 \ os2ss.exe).

ბირთვი შედგება შემდეგი კომპონენტებისგან:

    Executive system (Executive) - მეხსიერების მართვა, პროცესები და ძაფები და ა.შ.;
  • ბირთვი - ძაფების დაგეგმვა, შეწყვეტის და გამონაკლისის გაგზავნა და ა.შ. (განხორციელებული \% SystemRoot% \ System32 \ Ntoskrnl.exe-ში);
  • მოწყობილობის დრაივერები - აპარატურის დრაივერები, ქსელის დრაივერები, ფაილური სისტემის დრაივერები;
  • Hardware Abstraction Layer (HAL) - გამოყოფს ზემოაღნიშნულ სამ კომპონენტს ტექნიკის არქიტექტურებს შორის განსხვავებებისაგან (დანერგილი \% SystemRoot% \ System32 \ Hal.dll-ში);
  • Windowing And Graphics System - გრაფიკული ფუნქციები მომხმარებლის ინტერფეისი(გრაფიკული მომხმარებლის ინტერფეისი, GUI) (დანერგილია \% SystemRoot% \ System32 \ Win32k.sys).

ბრინჯი. 1-1. გამარტივებული Windows 2000 არქიტექტურა

მომხმარებლის რეჟიმი და ბირთვის რეჟიმი

მიუხედავად იმისა, რომ Intel x86 პროცესორების ოჯახი მხარს უჭერს პრივილეგიების ოთხ დონეს (ე.წ. უსაფრთხოების რგოლები), Windows იყენებს მხოლოდ ორს: 0-ს ბირთვის რეჟიმში და 3-ს მომხმარებლის რეჟიმისთვის. ეს გამოწვეულია სხვა პროცესორების მხარდაჭერით (ალფა, mips), რომლებსაც აქვთ მხოლოდ ორი პრივილეგიის დონე. Windows NT-ის წინა გამოშვებები მხარს უჭერდა ამ არქიტექტურებს, მაგრამ Windows 2000-მა შეინარჩუნა მხოლოდ x86 მხარდაჭერა.

მომხმარებლის რეჟიმის კომპონენტებს აქვთ საკუთარი დაცული მისამართების სივრცეები, ამ პროცესების ძაფები მუშაობს არაპრივილეგირებულ პროცესორის რეჟიმში (მომხმარებლის რეჟიმში), არ შეუძლიათ პროცესორის პრივილეგირებული ბრძანებების შესრულება, აქვთ შეზღუდული და არაპირდაპირი წვდომა სისტემის მონაცემებზე და სისტემის მისამართების სივრცეში. არ აქვს პირდაპირი წვდომა აპარატურაზე... მართალია, მათი მუშაობის პროცესში, ამ პროცესების ძაფები, სისტემის სერვისების გამოძახება, გადადის ბირთვის რეჟიმში, მაგრამ ამ შემთხვევაში ისინი მთლიანად კარგავენ კონტროლს შესრულებაზე, სანამ არ დაბრუნდებიან მომხმარებლის რეჟიმში.

მომხმარებლის რეჟიმში პროცესები განიხილება პოტენციურად საშიში სისტემის სტაბილურობის თვალსაზრისით. მათი უფლებები შეზღუდულია. და ამ შეზღუდვების მიღმა გასვლის ყველა მცდელობა მკაცრად არის ჩახშობილი.

ბირთვის კომპონენტები იზიარებენ ერთი მისამართის სივრცეს, მუშაობს პრივილეგირებულ პროცესორის რეჟიმში (ე.წ. ბირთვის რეჟიმში), შეუძლიათ შეასრულონ ყველა, მათ შორის პრივილეგირებული, პროცესორის ბრძანებები, აქვთ შეუზღუდავი და პირდაპირი წვდომა სისტემის მონაცემებსა და კოდებზე, აქვთ პირდაპირი ან HAL-ის მეშვეობით წვდომა აღჭურვილობა.

ბირთვის კოდი (ფაქტობრივად, ეს არის თავად სისტემა) ითვლება სრულიად სანდო. ამიტომ, სისტემის მისამართების სივრცეში ჩატვირთვისას, დრაივერი ხდება სისტემის ნაწილი და არ ექვემდებარება რაიმე შეზღუდვას.

ამრიგად, მომხმარებლის აპლიკაციები გამოყოფილია ფაქტობრივი ოპერაციული სისტემისგან. თუ თქვენ აპირებთ რაიმე სერიოზული აპლიკაციის დაწერას, რომელიც მოითხოვს წვდომას სისტემის შიდა ფუნქციებზე ან მონაცემთა სტრუქტურებზე, მაშინ შეხვდებით ბევრ შეზღუდვას, რომელთა გადალახვა შესაძლებელია მხოლოდ თქვენი კოდის სისტემის მისამართების სივრცეში განთავსებით. ამის გაკეთების ერთადერთი დოკუმენტირებული გზა არის მოწყობილობის დრაივერის დაყენება. ეს მეთოდი შედარებით მარტივი, საიმედო და რაც მთავარია, სრულად არის მხარდაჭერილი თავად ოპერაციული სისტემის მიერ.

Windows 2000 დრაივერი

Windows 2000 მხარს უჭერს მრავალი ტიპის მოწყობილობის დრაივერებს.

არსებობს ორი ძირითადი, რომელსაც ჰყავს თავისი წარმომადგენლები:

  • მომხმარებლის რეჟიმის დრაივერები:
    • მძღოლები ვირტუალური მოწყობილობები(ვირტუალური მოწყობილობის დრაივერები, VDD) - გამოიყენება MS-DOS პროგრამების მხარდასაჭერად (არ უნდა აგვერიოს VxD დრაივერებთან Windows 95/98 - ეს არის სრულიად განსხვავებული რამ, თუმცა მათ აქვთ იგივე სახელი);
    • პრინტერის დრაივერები
  • ბირთვის რეჟიმის დრაივერები:
    • მძღოლები ფაილების სისტემა(ფაილური სისტემის დრაივერები) - I/O დანერგვა ლოკალურ და ქსელურ დისკებზე;
    • Legacy Drivers - დაწერილი Windows NT-ის წინა ვერსიებისთვის;
    • დრაივერები ვიდეო გადამყვანებისთვის (Video Drivers) - გრაფიკული ოპერაციების განხორციელება;
    • სტრიმინგის დრაივერები - ვიდეო და აუდიო შეყვანა/გამომავალი დანერგვა;
    • WDM (Windows Driver Model, WDM) დრაივერები - მხარს უჭერს Plag and Play ტექნოლოგიას და ენერგიის მართვას. მათი გამორჩეული თვისებაარის თავსებადობა დონეზე საწყისი კოდი Windows 98, Windows ME და Windows 2000 შორის.

სხვადასხვა წყაროებიშეიძლება წააწყდეთ კლასიფიკაციას, რომელიც ოდნავ განსხვავდება ზემოაღნიშნულისგან, ეს არ არის მნიშვნელოვანი. მნიშვნელოვანია, რომ დრაივერები, რომლებსაც ჩვენ დავწერთ, არ მოხვდეს ამ კლასიფიკაციის რომელიმე პუნქტში. ეს არ არის არც ფაილური სისტემის დრაივერები, არც ძველი დრაივერები, არც ვიდეო ბარათის დრაივერები, ან ხმის ბარათებიარც WDM დრაივერები, რადგან არ აქვს Plag "n" Play და Power Management-ის მხარდაჭერა. ეს არ არის მომხმარებლის რეჟიმის დრაივერები (საერთოდ საინტერესო არ არის). სინამდვილეში, უბრალოდ ეშმაკმა იცის რა არის, ტკ. თავად სისტემა საშუალებას გაძლევთ მარტივად და მარტივად დაამატოთ კოდი გაუგებარი მოწყობილობისთვის და გააკეთოთ ის, რაც გინდათ! თითქოს ღამით კარზე სრულიად უცნობმა ადამიანმა დააკაკუნა და უსიტყვოდ შეუშვი ღამით და შენს საწოლშიც კი დააწვინე! თუმცა, ეს არ არის რაიმე სახის შეცდომა ან უსაფრთხოების ხვრელი. სისტემა უბრალოდ მუშაობს ისე, როგორც მუშაობს. სხვაგვარად არ შეიძლება, რადგან გარემოსთან ურთიერთქმედებისას სისტემა იძულებულია უზრუნველყოს წვდომა საკუთარ თავზე. და ეს რომ ასე არ იყოს, მაშინ ეს იქნებოდა სრულიად დახურული, რაც ნიშნავს, უსარგებლო სისტემა.

როგორც სახელი გულისხმობს, მოწყობილობის დრაივერი არის პროგრამა, რომელიც შექმნილია მოწყობილობის გასაკონტროლებლად და ეს მოწყობილობა არ უნდა იყოს ფიზიკური. ეს შეიძლება იყოს ლოგიკური ან, როგორც ჩვენს შემთხვევაში, ვირტუალური.

მოწყობილობის დრაივერის სტრუქტურა სხვა არაფერია, თუ არა პორტატული შესრულებადი (PE) ფორმატის ფაილი. იგივეა, რაც ჩვეულებრივი exe და dll. ის მხოლოდ იტვირთება და მუშაობს სხვადასხვა წესების მიხედვით. დრაივერები შეიძლება მივიჩნიოთ, როგორც ბირთვის რეჟიმის DLL-ები, რომლებიც შექმნილია ამოცანების შესასრულებლად, რომელთა გადაჭრა შეუძლებელია მომხმარებლის რეჟიმიდან. ფუნდამენტური განსხვავება აქ (გარდა პრივილეგიების დონისა) არის ის, რომ ჩვენ ვერ შევძლებთ უშუალოდ წვდომას დრაივერზე, ვერც მის კოდზე და ვერც მის მონაცემებზე, მაგრამ გამოვიყენებთ სპეციალურ მექანიზმს, რომელიც მოწოდებულია შეყვანის/გამოსვლის მენეჯერის მიერ. I/O მენეჯერი უზრუნველყოფს დრაივერების ფუნქციონირების გარემოს და ასევე უზრუნველყოფს მექანიზმებს მათი ჩატვირთვის, გადმოტვირთვისა და მართვისთვის.

როდესაც დაიწყებთ ბირთვის რეჟიმის დრაივერების შემუშავებას, თავს სრულიად ახალბედად იგრძნობთ. API-ს გამოყენების მთელი წინა გამოცდილება აქ არ დაგვეხმარება - ბირთვი უზრუნველყოფს სრულიად განსხვავებულ ფუნქციებს. თქვენ ასევე მოგიწევთ ცუდად დოკუმენტირებული (განსაზღვრული მხოლოდ სათაურის ფაილებში) ან სრულიად დაუსაბუთებელი ფუნქციებისა და მონაცემთა სტრუქტურების გამოყენება.

ერთი და მრავალ დონის მძღოლები

ფიზიკური მოწყობილობის მართვის დრაივერების უმეტესობა ფენიანი დრაივერებია. I/O მოთხოვნის დამუშავება გაზიარებულია რამდენიმე დრაივერზე. ყველა თავის საქმეს აკეთებს. მაგალითად, ფაილის წაკითხვის მოთხოვნა გადაეცემა ფაილური სისტემის დრაივერს, რომელიც გარკვეული ოპერაციების შესრულების შემდეგ (მაგალითად, მოთხოვნის რამდენიმე ნაწილად დაყოფა) გადასცემს მას დისკის დრაივერს, რომელიც, თავის მხრივ, აგზავნის მოთხოვნა ავტობუსის მძღოლთან. გარდა ამისა, ამ დრაივერებს შორის შეგიძლიათ დაამატოთ ნებისმიერი რაოდენობის ფილტრის დრაივერი (მაგალითად, მონაცემთა დაშიფვრა). მოთხოვნის შესრულების შემდეგ, ქვედა დონის დრაივერი გადასცემს თავის შედეგებს "ზემოთ" - უფრო მაღალი დონის დრაივერს. მაგრამ, საბედნიეროდ, ჩვენთან ყველაფერი ბევრად უფრო ადვილი იქნება. ჩვენი დრაივერები ყოველთვის იქნებიან მონოლითური დრაივერები, რაც მნიშვნელოვნად გაამარტივებს მათ ჩაწერის და გამართვის მთელ პროცესს.

ნაკადის კონტექსტი

ვინაიდან, უმეტეს შემთხვევაში, ჩვენ გვაქვს მხოლოდ ერთი პროცესორი და არის მრავალი აპლიკაცია, რომელიც უნდა შესრულდეს, ბუნებრივია, რომ მათი ერთდროული შესრულების ილუზიის შესაქმნელად, ეს აპლიკაციები თანმიმდევრულად უნდა იყოს დაკავშირებული პროცესორთან და ძალიან სწრაფად. ამ პროცედურას ეწოდება ძაფების კონტექსტის გადართვა. თუ სისტემა ცვლის ძაფების კონტექსტს, რომლებიც მიეკუთვნება იმავე პროცესს, მაშინ აუცილებელია შეინახოთ გათიშული ძაფის პროცესორის რეგისტრების მნიშვნელობა და ჩატვირთოთ დაკავშირებული ძაფის პროცესორის რეგისტრების ადრე შენახული მნიშვნელობები. და განაახლეთ ზოგიერთი მონაცემთა სტრუქტურა. თუ დასაკავშირებელი ძაფი ეკუთვნის სხვა პროცესს, მაშინ აუცილებელია პროცესის გვერდის დირექტორიაში მაჩვენებლის ჩატვირთვა პროცესორის CR3 რეესტრში. ვინაიდან თითოეული მომხმარებლის პროცესი უზრუნველყოფილია პირადი მისამართის სივრცით, სხვადასხვა პროცესს აქვს მისამართების სივრცის განსხვავებული პროგნოზები და, შესაბამისად, სხვადასხვა გვერდის დირექტორიები და გვერდების ცხრილების ნაკრები, რომლებისთვისაც პროცესორი თარგმნის ვირტუალურ მისამართებს ფიზიკურად. ეს ყველაფერი პირდაპირ არ არის დაკავშირებული დრაივერის პროგრამირებასთან. მაგრამ ამას შეგახსენებთ შემდეგთან დაკავშირებით. ვინაიდან კონტექსტის გადართვა არ არის ყველაზე სწრაფი ოპერაცია, დრაივერები, მიზეზების გამო უკეთესი შესრულება, როგორც წესი, არ ქმნიან საკუთარ ნაკადებს. მაგრამ მძღოლის კოდი ჯერ კიდევ უნდა შესრულდეს. ამიტომ, კონტექსტების გადართვისთვის დროის დაზოგვის მიზნით, დრაივერები შესრულებულია ბირთვის რეჟიმში სამი კონტექსტიდან ერთ-ერთში:

  • მომხმარებლის თემის კონტექსტში, რომელმაც წამოიწყო I/O მოთხოვნა;
  • ბირთვის რეჟიმის სისტემის ძაფის კონტექსტში (ეს ძაფები მიეკუთვნება სისტემის პროცესს);
  • შეფერხების შედეგად (და შესაბამისად არა რაიმე პროცესის ან ძაფის კონტექსტში, რომელიც მიმდინარეობდა შეწყვეტის დროს).

არ მესმის, როგორ შეიძლება რაღაცის გაკეთება „არა რაიმე პროცესის ან ნაკადის კონტექსტში“, მაგრამ იმ ადამიანების ავტორიტეტის გათვალისწინებით, ვინც ეს დაწერა (დ. სოლომონი და მ. რუსინოვიჩი) და ასევე, რომ ჩვენ ეს არ დაგვჭირდება. , იმიტომ რომ... ჩვენ არ გავუმკლავდებით პროგრამულ შეფერხებებს, რომ აღარაფერი ვთქვათ აპარატურულ შეფერხებებს, შეგიძლიათ დაუყოვნებლივ დაივიწყოთ მესამე შემთხვევა. რჩება პირველი ორი ვარიანტი. თუ I/O მოთხოვნა ინიცირებულია, მაშინ ჩვენ ვართ იმ თემის კონტექსტში, რომელმაც წამოიწყო ეს მოთხოვნა და, შესაბამისად, ჩვენ შეგვიძლია უშუალოდ შევიდეთ პროცესის მისამართების სივრცეში, რომელსაც ეს თემა ეკუთვნის. თუ ჩვენ ვიმყოფებით სისტემური ძაფების კონტექსტში, მაშინ ჩვენ არ შეგვიძლია უშუალოდ წვდომა რაიმე მომხმარებლის პროცესზე, მაგრამ ყოველთვის შეგვიძლია მივმართოთ სისტემის ძაფს. თუ თქვენ გჭირდებათ დრაივერისგან დანახვა, რა არის რაიმე პროცესისთვის ასეთ მისამართზე, მაშინ მოგიწევთ ან თავად შეცვალოთ კონტექსტი, ან გადათარგმნოთ მისამართები გვერდების ცხრილების საშუალებით.

მოთხოვნის დონის შეწყვეტა

შეფერხება ნებისმიერი ოპერაციული სისტემის განუყოფელი ნაწილია. შეფერხება საჭიროებს დამუშავებას, ამიტომ მიმდინარე კოდის შესრულება წყდება და კონტროლი გადაეცემა შეფერხების დამმუშავებელს. არსებობს როგორც აპარატურის, ასევე პროგრამული უზრუნველყოფის შეფერხებები. შეფერხებები ემსახურება მათი პრიორიტეტის მიხედვით. Windows 2000 იყენებს შეფერხების პრიორიტეტის სქემას, რომელიც ცნობილია როგორც შეფერხების მოთხოვნის დონე (IRQL). სულ არის 32 დონე, 0-დან (პასიური), რომელსაც აქვს ყველაზე დაბალი პრიორიტეტი, 31-მდე (მაღალი), რომელსაც აქვს უმაღლესი პრიორიტეტი. უფრო მეტიც, IRQL = 0 (პასიური) შეფერხებები IRQL = 2 (DPC \ dispatch) არის პროგრამული უზრუნველყოფა, ხოლო IRQL = 3 (მოწყობილობა 1) IRQL = 31 (მაღალი) არის აპარატურა. არ აურიოთ შეწყვეტის პრიორიტეტების დონეები ძაფების პრიორიტეტების დონეებთან - ისინი სრულიად განსხვავებული რამაა. შეწყვეტა IRQL = 0-ით, მკაცრად რომ ვთქვათ, არ არის შეწყვეტა, ვინაიდან მას არ შეუძლია შეაფერხოს ნებისმიერი კოდის მუშაობა (ბოლოს და ბოლოს, ამისათვის ეს კოდი უნდა შესრულდეს კიდევ უფრო დაბალ შეფერხების დონეზე და ასეთი დონე არ არსებობს). ამ IRQL მომხმარებლის რეჟიმში ძაფები შესრულებულია. და ჩვენი დრაივერების კოდი ასევე შესრულდება ამ IRQL-ზე. ეს არ ნიშნავს, რომ ნებისმიერი დრაივერის კოდი ყოველთვის შესრულებულია "პასიურ" დონეზე. ჩვენ უბრალოდ არ გავუმკლავდებით პროგრამულ შეფერხებებს, რომ აღარაფერი ვთქვათ ტექნიკის შეფერხებებს. და აქედან გამომდინარეობს მინიმუმ ორი ძალიან მნიშვნელოვანი დასკვნა.

პირველი: ჩვენი დრაივერების მუშაობა ნებისმიერ დროს შეიძლება შეწყდეს, რათა მოხდეს შეფერხების უფრო მაღალი პრიორიტეტით დამუშავება (მაგალითად, ტაიმერიდან, როდესაც დამგეგმავი თვლის, რომ ჩვენს თემას დიდი ხანია აქვს პროცესორი და დროა, დასვენება). ამიტომ, ამ თვალსაზრისით, ჩვენი დრაივერების კოდი არის შეფერხებადი და პრევენციული (პროცესორი გადაეცემა სხვა ძაფს), ისევე როგორც ნებისმიერი მომხმარებლის თემის კოდი. არსებობს ბირთვის ფუნქციები, რომლებიც საშუალებას გაძლევთ გაარკვიოთ მიმდინარე შეფერხების დონე, ასევე გაზარდოთ ან შეამციროთ იგი.

მეორე მნიშვნელოვანი წერტილი: პასიურ შეფერხების დონეზე შეგიძლიათ გამოიძახოთ ბირთვის ნებისმიერი ფუნქცია (DDK-ში, თითოეული ფუნქციის აღწერაში აუცილებელია მიუთითოთ, რომელ შეფერხების დონეზე შეიძლება გამოიძახოთ), ასევე წვდომა მეხსიერების გვერდებზე, რომლებიც გადაყრილია პეიჯინგში. ფაილი. შეფერხების უფრო მაღალ დონეზე (DPC / dispath და უფრო მაღალი), მცდელობა შეხვიდეთ გვერდზე, რომელიც არ არის ფიზიკური მეხსიერებაიწვევს სისტემის ავარიას, რადგან მეხსიერების მენეჯერი ვერ უმკლავდება გვერდის შეცდომას.

"სიკვდილის ლურჯი ეკრანი"

ვფიქრობ, ყველას ერთხელ მაინც უნახავს ამაღელვებელი სურათი სახელწოდებით "სიკვდილის ცისფერი ეკრანი" (BSOD). ალბათ არ არის საჭირო იმის ახსნა, თუ რა არის და რატომ ჩნდება. აქ მთავარი ის არის, რომ როდესაც დაიწყებთ ბირთვის რეჟიმის დრაივერების შემუშავებას, მოემზადეთ იმისთვის, რომ BSOD საკმაოდ ხშირად გამოჩნდება თქვენი მონიტორის ეკრანზე.

მესამე რგოლში ყველაფერი მარტივი იყო: მე შევადგინე ნიმუშის კოდი, მოვათავსე int3 სადაც საჭირო იყო, გავუშვი და ... დებუგერში უკვე ხვდები რა არის. თუ რამე არასწორია, დავაფიქსირე, დავაფიქსირე შეცდომები, გადავაწყვე... და ასე შემდეგ, სანამ კოდი არ მუშაობს ისე, როგორც უნდა. თქვენ შეგიძლიათ დაივიწყოთ ეს ტექნიკა დრაივერების დაპროგრამებისას. აქ "საფარი" ერთხელ ცდება. ერთი არასწორი ნაბიჯი ... და შეგიძლიათ დაჯდეთ და დაისვენოთ ერთი წუთით.

იმისათვის, რომ ნახოთ BSOD რაც შეიძლება იშვიათად, თქვენ უნდა დაიჭიროთ ერთი ძალიან მარტივი წესი: "გაზომე შვიდჯერ - გაჭერი ერთი" ... მნიშვნელობით "შვიდჯერ შეამოწმე - გაუშვი ერთი". სათქმელი, რა თქმა უნდა, ადვილია, მაგრამ ბევრად უფრო რთული გასაკეთებელი. მაგრამ, როგორც წესი, იმის გათვალისწინებით, რომ დრაივერების სტრუქტურა, რომელსაც თქვენ დაწერთ (ამ სტატიების წაკითხვის შემდეგ) შედარებით მარტივია, შეცდომებს გაუმკლავდებით BSOD-ის გამოჩენამდეც კი. თუ ის ჯიუტად გამოჩნდება თქვენს თვალწინ და ვერ გაიგებთ მიზეზს, შესაძლო გზასიტუაციის გასარკვევად არის ავარიული ნაგავსაყრელის ანალიზი (crash dump). თქვენ შეგიძლიათ წაიკითხოთ იმის შესახებ, თუ რა არის, როგორ გააკეთოთ ის და გააანალიზოთ მარკ რუსინოვიჩის სტატიაში "მეხსიერების ავარიული ნაგავსაყრელის ანალიზი" http://www.osp.ru/win2000/2001/03/025.htm. ეს საკითხი (ანალიზი) ძალიან რთულია, მაგრამ ვფიქრობ, აქამდე არ მივა.

მე ვარ შიშის თეორეტიკოსი, ასე რომ თქვენ შეგიძლიათ განიხილოთ ყველაფერი, როგორც ძალიან ძირითადი ინფორმაციაპრინციპები, რომელთა გაგება აბსოლუტურად აუცილებელია. თქვენ არ შეგიძლიათ დაიწყოთ ბირთვის რეჟიმის დრაივერების შემუშავება, თუ არ იცით რა არის თემის კონტექსტი, შეფერხების დონეები და თემის პრიორიტეტები, ბირთვის / მომხმარებლის რეჟიმი და ა.შ. და ა.შ. იგრძენით გაურკვევლობა რაიმე შეკითხვაში - მითითებების სია ქვემოთ მოცემულია.

ახლა კიდევ რამდენიმე პრაქტიკულ რამეს გამოვყოფთ (ისინი სრულიად პრაქტიკული გახდება შემდეგ სტატიებში), კერძოდ, რა გვჭირდება მთელი ამ თეორიის პრაქტიკაში გადაქცევისთვის.

დრაივერის განვითარების ნაკრები

პირველი არის, რა თქმა უნდა, Device Driver Development Kit (Windows 2000 Driver Development Kit, 2KDDK), რომლის ჩამოტვირთვაც თავისუფლად შეიძლება Microsoft-ის ვებსაიტიდან (ნებისმიერ შემთხვევაში, მე სრულიად უფასოდ გავაერთიანე აქედან: http:// www.microsoft.com/ddk/). ეს პაკეტი მოიცავს დოკუმენტაციას, რომელიც წარმოადგენს ინფორმაციის მდიდარ წყაროს მონაცემთა შიდა სტრუქტურებისა და შიდა სისტემის ფუნქციების შესახებ, რომლებიც გამოიყენება მოწყობილობის დრაივერების მიერ.

დოკუმენტაციის გარდა, DDK შეიცავს ბიბლიოთეკის ფაილების კომპლექტს (* .lib), რომელიც შეუცვლელი იქნება ბმულისთვის. DDK შეიცავს ამ ფაილების ორ კომპლექტს: ფინალისთვის ვინდოუსის ვერსიები(ე.წ. უფასო build); და გამართვისთვის (ე.წ. შემოწმებული build). ეს ფაილები განთავსებულია დირექტორიაში% ddk% \ libfre \ i386 და% ddk% \ libchk \ i386, შესაბამისად. გამართვის ვერსიას აქვს შეცდომების უფრო მკაცრი შემოწმება. თქვენ უნდა გამოიყენოთ სისტემის თქვენი ვერსიის შესაბამისი ფაილები, მათი განთავსებით \ masm32 \ lib \ w2k დირექტორიაში.

ჩართეთ ფაილები

ჩვენ ასევე გვჭირდება (* .inc) ფაილები ფუნქციის პროტოტიპის განმარტებით. ჩვენც (უფრო სწორად მე) თავად მოგვიწევს მათი გაკეთება. მე გამოვცადე მრავალი სხვადასხვა კომუნალური პროგრამა, რომელიც გარდაქმნის * .lib -> * .inc, ორივე შედის masm32 by hutch პაკეტში და ჩემ მიერ შერწყმულია სხვადასხვა დროს ინტერნეტის უზარმაზარი ხარჯებიდან. რაც მაქვს მარაგში, მხოლოდ protoize.exe by f0dder გაართვა თავი თავის დავალებას და მე პრაქტიკულად არ მჭირდებოდა რაიმეს ხელით რედაქტირება. ეს შესანიშნავი ინსტრუმენტი განთავსდება \ tools \ protoize დირექტორიაში. ავტორის საიტი: http://f0dder.didjitalyphrozen.com/. მხოლოდ შენ ვერ იპოვი მას იქ. f0dder-მა რამდენჯერმე გამოაქვეყნა ეს პროგრამა http://board.win32asmcommunity.net/-ზე. Includes იქნება \ include \ w2k დირექტორიაში. ისინი უნდა განთავსდეს \ masm32 \ include \ w2k დირექტორიაში. კონვერტაციისთვის ჩვენ გამოვიყენეთ * .lib Windows 2000-ის უფასო გამოცემისთვის, რადგან მე მაქვს ეს ვარიანტი (და ალბათ თქვენც გაქვთ).

შემდეგი პრობლემა უფრო სერიოზულია. ეს არის ჩართული ფაილების თითქმის სრული არარსებობა აუცილებელი სტრუქტურების, სიმბოლური მუდმივებისა და მაკროების განმარტებით. ქსელში ძნელად თუ იპოვით რაიმე ღირებულს - ძალიან ეგზოტიკურია ბირთვის რეჟიმის დრაივერების დაწერა ასამბლერში. რაღაცის ნახვა შეგიძლიათ EliCZ-ზე http://www.anticracking.sk/EliCZ/. რაღაც Y0da-დან http://mitglied.lycos.de/yoda2k/index.htm (ნაწილობრივ თავად გააკეთა, ნაწილობრივ იგივე EliCZ-დან). მაგრამ ეს კეთდება ძალიან ცუდად (ჩემი დიდი პატივისცემით ჩვენი სლოვაკი და გერმანელი კოლეგების მიმართ): მრავალი სტრუქტურის წევრების სახელები განსხვავდება DDK-ის თავდაპირველ სათაურ ფაილებში განსაზღვრული სახელებისგან; წყობილ სტრუქტურებსა და გაერთიანებებს სახელები არ აქვთ; თუმცა ისინი დასახელებულია ორიგინალში. და საერთოდ, ყველაფერი რაღაც არეულობაშია და ნახვისას დამთრგუნველ შთაბეჭდილებას ახდენს. მხოლოდ ntstatus.inc არის კარგად გაკეთებული. ეს ნაწილობრივ განპირობებულია იმით, რომ EliCZ-მ დაიწყო საკუთარი ინკლუდების შექმნა DDK-ის არარსებობის შემთხვევაშიც კი (როგორც თავად ამბობს). ყოველ შემთხვევაში, არ გირჩევთ მათ გამოყენებას, ყოველ შემთხვევაში, საფუძვლიანი ტესტირების გარეშე. რაღაც, ერთ დროს, გაბრწყინდა კონფერენციაზე http://board.win32asmcommunity.net/, მაგრამ ხარისხი ასევე არ არის განსაკუთრებით შთამბეჭდავი. მოკლედ, ერთადერთი სწორი გამოსავალი ამ სიტუაციაში არის ყველაფრის გაკეთება თავად და ხელით, რადგან არ ვიცი რაიმე ინსტრუმენტი, რომელიც საშუალებას მოგცემთ ამ პროცესის ავტომატიზირება. თუ მოულოდნელად რაიმე ღირებულს წააწყდებით, არ ჩათვალოთ ეს ნაშრომად - შემატყობინეთ.

დრაივერების გამართვა

ჩვენ ასევე გვჭირდება debugger და რადგან ბირთვის რეჟიმის კოდი უნდა იყოს გამართული, საჭიროა შესაბამისი debugger. საუკეთესო არჩევანი იქნება SoftICE. ან შეგიძლიათ გამოიყენოთ Kernel Debugger, რომელიც შედის DDK-ში. ამ გამართვისთვის საჭიროა ორი კომპიუტერი, ოსტატი და მონა, რაც ყველას არ შეუძლია. მარკ რუსინოვიჩმა (http://www.sysinternals.com/) დაწერა LiveKd პროგრამა, რომელიც საშუალებას გაძლევთ გამოიყენოთ Kernel Debugger მეორე კომპიუტერთან დაკავშირების გარეშე. არ ვიცი არის თუ არა საიტზე (მე არ შემიმოწმებია), მაგრამ დისკზე წიგნზე "შიდა სტრუქტურა Microsoft Windows 2000 "ხელმისაწვდომია. ასევე, ეს გამართვა ძალზედ სასარგებლოა სისტემის შიდა სტრუქტურის შესასწავლად, იმ პირობით, რომ თქვენ გაქვთ დაინსტალირებული გამართვის სიმბოლოები, რომელთა ჩამოტვირთვა შესაძლებელია (ან შეიძლება) თავისუფლად იყოს Microsoft-ის ვებსაიტიდან.

  • დევიდ სოლომონი, მარკ რუსინოვიჩი, "მაიკროსოფტი Windows 2000-ის შიდა ნაწილები", რედ. პეტრე, 2001 წ.

    მიუხედავად იმისა, რომ ეს წიგნი არ შეიცავს კოდის ერთ ხაზს, ის ძირითადად პროგრამისტებისთვისაა განკუთვნილი.

  • სვენ შრაიბერი, "Windows 2000-ის დაუსაბუთებელი ფუნქციები", რედ. პეტრე, 2002 წ.

    წმინდა პრაქტიკული წიგნი, რომელიც ავლენს Windows 2000-ის ბევრ საიდუმლოს.

  • უოლტერ ონი, "Microsoft Driver Model-ის პროგრამირება", Microsoft Press, 1999 წ

    ეს წიგნი ყურადღებას ამახვილებს Plag "n" Play დრაივერებზე, მაგრამ ეს სულაც არ ამტკიცებს მის დამსახურებას, რადგან ძირითადი პრინციპებიდრაივერის დიზაინი მრავალმხრივია.

  • ჯეფრი რიხტერი, Windows პროფესიონალებისთვის: ეფექტური Win32 აპლიკაციების შექმნა Windows 64-ბიტისთვის, ed. პეტრე, 2000 წ.

    ამ წიგნს არაფერი აქვს საერთო დრაივერების პროგრამირებასთან, მაგრამ ასევე ძალიან საინტერესოა ;-)

    ეს სია არავითარ შემთხვევაში არ არის დასრულებული. ბევრი რამ, განსაკუთრებით ინგლისურად, შეგიძლიათ იხილოთ ინტერნეტში (შრაიბერის გარდა, ყველა წიგნი ელექტრონული ფორმითაა). რაც შეეხება წიგნებს, ისიც მინდა ვთქვა, რომ ისინი ყველა არის "must have" კატეგორიის. ნახავთ - იყიდეთ შეხედვის გარეშე. უოლტერის გარდა ყველა "და ონის" ითარგმნება ჩვენს "დიდი და ძლევამოსილი".

    და ბოლო რამ. მე არ ვარ მძღოლის განვითარების დიდი სპეციალისტი, ამიტომ შეცდომები ან უზუსტობები, როგორც ამ, ასევე ყველა შემდგომ სტატიაში, ძალიან სავარაუდოა. თუ იპოვე - თამამად აწიე ცხვირი. მადლობას მოგახსენებთ.

  • Windows Defender უსაფრთხოების ცენტრი, მათ შორის ახალი Device Security განყოფილება, რომელიც გთავაზობთ მოწინავე უსაფრთხოების ინსტრუმენტების მართვას, როგორიცაა Kernel Isolation.

    Core Isolation არის ვირტუალიზაციაზე დაფუძნებული უსაფრთხოების ტექნოლოგია, რომელიც უზრუნველყოფს დაცვის დამატებით ფენას ინტელექტუალური შეტევებისგან. მეხსიერების მთლიანობა ერთ-ერთია კომპონენტის ნაწილებიძირითადი იზოლაციის ტექნოლოგიები - ფუნქცია შექმნილია ჩასმის თავიდან ასაცილებლად მავნე კოდიმაღალი უსაფრთხოების პროცესებში. დაცვა გათვალისწინებულია იმის გამო, რომ გვერდი ვირტუალური მეხსიერებაბირთვები იწყებენ შესრულებას მხოლოდ კონსისტენციის შემოწმების წარმატებით გავლის შემდეგ.

    მოდით შევხედოთ, თუ როგორ უნდა ჩართოთ მეხსიერების მთლიანობა Windows 10 აპრილის 2018 წლის განახლებაში, რათა თქვენი კომპიუტერი უფრო დაცული იყოს.

    მეხსიერების მთლიანობის ჩართვა

    • გახსენით უსაფრთხოების ცენტრი Windows Defender.
    • აირჩიეთ "მოწყობილობის უსაფრთხოება" განყოფილება.
    • "ბირთის იზოლაციის" განყოფილებაში დააწკაპუნეთ ბმულზე "ბირთის იზოლაციის ინფორმაცია".
    • მოათავსეთ მეხსიერების მთლიანობის გადამრთველი აქტიურ მდგომარეობაში.

    ამ ნაბიჯების დასრულების შემდეგ, თქვენ უნდა გადატვირთოთ კომპიუტერი, რომ ცვლილებები ძალაში შევიდეს.

    შენიშვნა: ამ ფუნქციის მუშაობისთვის თქვენს პროცესორს უნდა ჰქონდეს ვირტუალიზაციის ტექნოლოგიების მხარდაჭერა. გარდა ამისა, ვირტუალიზაცია უნდა იყოს ჩართული BIOS-ში ან UEFI-ში. წინააღმდეგ შემთხვევაში, ფუნქცია მიუწვდომელი იქნება.

    ბირთვის იზოლაციასთან დაკავშირებული პრობლემების გამოსწორება

    ზოგიერთ შემთხვევაში, შეიძლება შეგექმნათ თავსებადობის პრობლემები ზოგიერთ აპლიკაციაში, თუ ჩართულია ბირთვის იზოლაცია. პრობლემის გადასაჭრელად, თქვენ უნდა გამორთოთ ფუნქცია.

    თუ ცდილობთ გამორთოთ მეხსიერების მთლიანობა Windows Defender Security Center-ში, მაგრამ ოფცია ნაცრისფერი გახდა და გამოჩნდება შეტყობინება „ამ პარამეტრს აკონტროლებს თქვენი ადმინისტრატორი“, თქვენ მაინც შეგიძლიათ გამორთოთ ფუნქცია სისტემის რეესტრის გამოყენებით.

    შენიშვნა: რეესტრის არასწორად შეცვლამ შეიძლება სერიოზული პრობლემები გამოიწვიოს. რეკომენდირებულია შექმნა სარეზერვო ვინდოუსის რეესტრისანამ გააგრძელებთ ამ ნაბიჯებს. რეესტრის რედაქტორის მენიუდან აირჩიეთ ფაილი> ექსპორტი სარეზერვო ასლის შესანახად.

    • პრესის კომბინაცია ვინდოუსის გასაღებები+ R Run ფანჯრის გასახსნელად.
    • ჩაწერეთ regedit და დააჭირეთ OK რეესტრის რედაქტორის გასაშვებად.
    • გადადით შემდეგ გზაზე:
    HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ DeviceGuard \ Scenarios \ HypervisorEnforcedCodeIntegrity
    • ორჯერ დააწკაპუნეთ ჩანაწერზე ჩართულია.
    • შეცვალეთ მნიშვნელობა 1-დან 0-მდე.
    • დააწკაპუნეთ OK.

    გამორთვისთვის, ასევე შეგიძლიათ გამოიყენოთ მზა

    კითხვა: როდის ხანგრძლივი მუშაობაკომპიუტერი ან ძილის რეჟიმიდან გაღვიძებისას შრიფტი იკარგება დაწყების მენიუში


    როდესაც კომპიუტერი დიდხანს მუშაობს ან ძილის რეჟიმიდან გამოდის, Start მენიუ ხდება ასეთი.

    როგორ გავასწორო ეს? Დამეხმარე, გთხოვ..

    პასუხი:უკვე ხელახლა დააინსტალირე და განახლდა (

    კითხვა: როგორ დავაყენო ჩემი კომპიუტერი ძილის რეჟიმში S1 ("Stand by")?


    ვერც სტაციონარულ კომპიუტერზე და ვერც ლეპტოპზე ვერ ვხვდები როგორ დავაყენო კომპიუტერი ძილის რეჟიმში S1.

    "powercfg / a" შესრულების შედეგი

    შემდეგი ჰიბერნაციის მდგომარეობები ხელმისაწვდომია ამ სისტემაში:
    ლოდინის (S3)

    შემდეგი ჰიბერნაციის მდგომარეობა არ არის ხელმისაწვდომი ამ სისტემაში:
    ლოდინის რეჟიმში (S1)

    ლოდინის რეჟიმში (S2)
    სისტემის firmware-ს არ აქვს ლოდინის მხარდაჭერა.

    ჰიბერნაცია
    Hibernation არ არის ჩართული.

    ლოდინის რეჟიმში (დაკავშირებული)
    სისტემის firmware-ს არ აქვს ლოდინის მხარდაჭერა.

    ძილის ჰიბრიდული რეჟიმი

    Სწრაფი დაწყება
    ჰიბერნაცია მიუწვდომელია.

    პასუხი:გააჩერეთ კომპიუტერი უმოქმედოდ რამდენიმე წუთის განმავლობაში, შემდეგ დააძინეთ და გააღვიძეთ.

    ღონისძიების ჟურნალში:
    მოქმედება => მორგებული ხედის შექმნა
    თარიღის პუნქტში დააყენეთ, მაგალითად, ორწუთიანი ინტერვალი და ნახეთ რა მოხდა.

    მეტი იდეები არ მაქვს.

    კარგად, შეამოწმეთ კომპიუტერთან დაკავშირებული დრაივერები და მოწყობილობები

    კითხვა: იღვიძებს დილის 4 საათზე


    თითქმის ყოველ ღამე კომპიუტერი მაღვიძებს და მაღვიძებს.
    მოწყობილობის მენეჯერში, ქსელის ადაპტერები, გააუქმეთ მონიშნული ველი „გაიღვიძე ჯადოსნური პაკეტებით“.
    გამორთულია გაღვიძების ტაიმერი დენის პარამეტრებში.
    ბრძანების ხაზზე, powercfg / waketimers ბრძანება აჩვენებს ამას.

    c: \> powercfg / waketimers
    Legacy Kernel Caller-ის მიერ დაყენებული ტაიმერი მოქმედებს 01/09/2016 4:14:46 საათამდე.
    მიზეზი:

    დახმარება. ვინ არის დამნაშავე და რა უნდა გააკეთოს?

    პასუხი:საბოლოოდ მან განკურნა ეს დაავადება:

    მართვის პანელი -> უსაფრთხოება და მოვლა -> მოვლა -> ავტომატური მოვლა -> შეცვალეთ ტექნიკური პარამეტრები -> მოხსენით მონიშვნა "დაუშვას ტექნიკური დავალების გაღვიძება ჩემს კომპიუტერში ..."

    კითხვა: კომპიუტერი სპონტანურად ირთვება ღამით


    ბოლო დროს (დაახლოებით 1 ... 2 თვე), დაახლოებით 30 ... 60 წუთის შემდეგ კომპიუტერი ძილის რეჟიმში გადაყვანიდან (ისე რომ შეგეძლოთ მუშაობა დილით გააგრძელოთ მისი შეწყვეტის მომენტიდან), ის სპონტანურად ირთვება. სამუშაოს დაახლოებით ღამის 12 საათზე ვამთავრებ, ე.ი. ჩართვა ხდება 0:30 ... 1:00 საათზე. თუმცა, მონიტორი ბნელი რჩება. ლოგინიდან ვდგები, მაუსს ვამოძრავებ - მონიტორი ირთვება, ნორმალურ რეჟიმში შევდივარ პროფილში, ისევ ძილის რეჟიმში ვაბრუნებ - ამაღამ აღარ ირთვება.

    Win7 კომპიუტერზე არის რეზიდენტი ანტივირუსი MS Cecurity Esentials. რამდენჯერმე გავუშვი აქტუალური (ახლად გადმოწერილი) სამკურნალო საშუალებები mbar და DrWeb Cureit - მათ წააწყდნენ რამდენიმე ბაიაკს, მაგრამ მაინც სპონტანური გააქტიურება დარჩა. ეს ჰგავს ვირუსს, რომელიც აკავშირებს ჩემს კომპიუტერს DDOS შეტევებთან. უფრო მეტიც, დროდადრო Google ბლოკავს წვდომას ჩემი IP-დან შემოსული საეჭვო ტრაფიკის გამო. ეს უკვე დიდი ხანია ხდება (წელზე მეტი), მაგრამ კომპიუტერის სპონტანური გაშვება სულ ახლახანს შევნიშნე.

    რეალურად საკითხავია: თუ პრობლემა ცნობილია და მისი მკურნალობა შედარებით ადვილია, მაშინ გადმოვტვირთავ რეკომენდებულ პროგრამულ უზრუნველყოფას, ვსკანირებს და ვდებ. თუ პრობლემა უფრო რთულია, მაშინ მე არ მოვიტყუებ ჩემს თავს და ადგილობრივ გურუს და სულელურად გადავაწყობ სისტემას.

    პასუხი: ფალკონისტირაღაც ვერ გავიგე...

    შეტყობინება ფალკონისტი

    კომპიუტერის ძილის რეჟიმში გადაყვანის შემდეგ... ის სპონტანურად ირთვება

    7 საათზე ძილი და ჰიბერნაცია სრულიად განსხვავებული რამ არის. ძილის რეჟიმში დასაყენებლად, უბრალოდ დააჭირეთ კლავიატურაზე Sleep ღილაკს. თუ დააწკაპუნებთ დაწყებას და მაუსის გადატანას დააწებებთ გამორთვის გვერდით მდებარე ისარს, გამოჩნდება მენიუ, რომელშიც ასევე არის Hibernation. და ჰიბერნაცია. ჰიბერნაციის დროს კომპიუტერი გამორთულია კვების წყაროდან ისევე, როგორც გამორთვისას, მაგრამ კომპიუტერის ჩართვისას შეგიძლიათ დაიწყოთ მუშაობა ისევე, როგორც ძილის რეჟიმის შემდეგ.
    მაგრამ შენ სხვა რამეზე გკითხე. შეამოწმეთ დავალების განრიგი?

    კითხვა: კომპიუტერი ღამით იღვიძებს ძილის რეჟიმიდან


    კარგი დღე ყველას. ამ პრობლემამ უკვე შემაწუხა. თავისთავად, კომპიუტერი გამოდის ძილის რეჟიმიდან ღამით, ეს არის Windows 10, მანამდე 7 იყო, ასეთი პრობლემა არ იყო, ამიტომ ავირჩიე ეს კონკრეტული განყოფილება.
    რაც უკვე გაკეთდა 2 დღის წინ:
    1. მოვლენის მაყურებელში აღმოვაჩინე მიზეზი: ტაიმერი - დაგეგმილი დავალება "NT TASK \ Microsoft \ Windows \ UpdateOrchestrator \ Reboot" შესრულდება, კომპიუტერს ძილის რეჟიმიდან გაღვიძების მოთხოვნით.
    მივედი Task Scheduler-ში, ვიპოვე ეს დავალება და ამოვიღე ჩამრთველი პუნქტიდან: Conditions - Wake up the computer to დაასრულოს დავალება.
    2. გადავედი powercfg.cpl-ზე - დენის სქემის პარამეტრები - შეცვალეთ ენერგიის გაფართოებული პარამეტრები - ძილი - გაღვიძების ტაიმერის დაშვება - გამორთვა.

    ამაღამ სიტუაცია განმეორდა, მაგრამ მოვლენების ყურებისას მხოლოდ:

    სისტემა გამოვიდა ჰიბერნაციის მდგომარეობიდან.

    ძილის დრო: 2016-10-29T21: 38: 38.657073700Z
    გაღვიძების დრო: 2016-10-29T21: 58: 34.625754700Z

    გამომავალი წყარო: მონაცემები არ არის

    3. მოწყობილობის მენეჯერში მაუსის, კლავიატურის, ქსელის ბარათიდან ამოიღეთ ჩამრთველი „დაუშვა ამ მოწყობილობას კომპიუტერის ლოდინის რეჟიმიდან გაღვიძება“ და სადაც კი ვიპოვე ...

    დამეხმარეთ ამ პრობლემის მოგვარებაში, აღარ ვიცი სად გავთხარო...

    პასუხი:

    შეტყობინება GoLeMjkeee

    ღირებულება ყოველდღიურად 2-00

    დღისით შეცვლა.

    შეტყობინება GoLeMjkeee

    მაგრამ ტკიპა .... არ ღირს.

    ის ასეთია, ხასიათით.

    შეკითხვა: ძილის რეჟიმიდან გასვლისას როგორ მოვიშოროთ ეკრანი „შესვლა“ ღილაკით?


    Windows 10 Pro 1607.
    ძილის რეჟიმიდან გამოსვლისას Windows გთხოვს დააჭიროთ "Enter". გაღვიძებისთანავე ჩნდება ლურჯი ეკრანიმომხმარებლის სახელის წარწერით და მის ქვეშ ღილაკით „შესვლა“. პაროლი არ არის დაყენებული, მომხმარებელი ერთადერთია სისტემაში, რომელსაც აქვს ადმინისტრატორის უფლებები. ჩატვირთვისას ყველაფერი კარგადაა, ეკრანები და ღილაკების დაწკაპუნება არ არის, მხოლოდ დესკტოპი.

    Options-Accounts-Login Options-ში არ არის „შესვლა საჭირო“ პუნქტი.
    მომხმარებლის ანგარიშების ფანჯარაში, მომხმარებლების ჩანართზე, მონიშნული ველი "მოითხოვეთ მომხმარებლის სახელი და პაროლი" მოხსნილია.
    ელექტროენერგიის გეგმის პარამეტრებში არ არის პუნქტი „პაროლის მოთხოვნა გაღვიძებისას“.

    როგორ წავშალო ღილაკი „შესვლა“ ძილის რეჟიმიდან გასვლისას, რათა კომპიუტერმა ავტომატურად დაიწყოს დესკტოპი ამ ფანჯრის გვერდის ავლით?

    პასუხი:ჰიბერაციის მოხსნა

    შეკითხვა: Windows 8.1 გამორთულია ძილის რეჟიმში


    გამარჯობა.
    ჰიბერნაციის პრობლემა მაქვს. ძილის დროს კომპიუტერი მთლიანად ითიშება. იმათ. ძალა მთლიანად ქრება. ადრე სისტემურ ერთეულზე ნათურა ციმციმებდა მძინარე კაცს, ახლა მაუსიც მთლიანად "გამქრალია" usb-ით, კლავიატურა გამოდის და მხოლოდ ჩართვის ღილაკით შეიძლება ჩართოთ და რათქმაუნდა ყველა ინფა არ შეინახება.
    ინტერნეტში ბევრი თემა წავიკითხე, მაგრამ არც ერთი პრობლემა არ არის ჩემი მსგავსი.
    სასწრაფოდ დავწერ კომპიუტერის მახასიათებლებს: ASUS p8h67 დედაპლატა, ვიდეო Radeon HD7850 (asus), intel i5 2550k, 8გბ ოპერატიული მეხსიერება, SSD სილიკონის სიმძლავრე s55 120 გბ, HDD WD 500 გბ.
    დაინსტალირებული Windows 8.1, უკვე დიდი ხანია დგას და ჰიბერნაცია ისე მუშაობდა, როგორც უნდა. ერთხელ მან შეწყვიტა მუშაობა, არც კი ვიცი ზუსტად რატომ და რა (გარკვეული მოქმედების) შემდეგ შეწყვიტა მუშაობა. მსგავსი არაფერი დამიყენებია, დრაივერი არ გამიახლოებია.
    ხშირად ჩვევის გამო, გამორთვის ნაცვლად, ძილის ღილაკს ვაჭერ და ერთხანს მუშაობდა და მუშაობდა რამდენიმე დღე, მაგრამ დროთა განმავლობაში შეწყვიტა მუშაობა.
    ვცადე დრაივერების განახლება ან დეინსტალაცია. ვცადე კომპიუტერიდან არასაჭირო მოწყობილობების გათიშვა (კარგი, არასოდეს იცი). ძილის წინ გამოვრთე სხვადასხვა პროგრამები. არაფერი ეშველა.
    ინტერნეტში ვიპოვე ერთადერთი ინფორმაცია, რომელიც ზუსტად ჩემსას ჰგავს (პუნქტი 8):

    რა თქმა უნდა, ვერ დავაყენე დრაივერები, სხვადასხვა პლატფორმები. ჩემთვის იგივე ვერ ვიპოვე.

    არ მინდა OS-ის ხელახლა ინსტალაცია. ყველაფერი (მძინარეს გარდა) კარგად მუშაობს.
    გაქვთ რაიმე იდეა, რა შეიძლება იყოს არასწორი?

    დამატებულია 17 წუთის შემდეგ
    დაგავიწყდა დამეწერა რა BIOS-ის გადატვირთვა და განახლება.

    პასუხი:შეამოწმეთ შემდეგ ან BP ან დედა. ჩვენ პროგრამულად დავაყენეთ ძილისა და ჰიბერნაციის რეჟიმი powercfg/h.

    კიდევ ერთი ვარიანტია შემოწმება (ჩანაცვლება). hiberfil.sys - ის პასუხისმგებელია ჰიბერნაციაზე.

    შეკითხვა: ჰიბერნაცია Windows 8-ში


    ჰიბერნაციიდან გასვლის შემდეგ Windows 8 იწყებს გადატვირთვას და შემდეგ windows ჩატვირთვაშემდეგი შეტყობინება იშლება
    მითხარი როგორ მოვიქცე?

    პასუხი:

    შეტყობინება azat145

    ჰიბერნაციიდან გასვლის შემდეგ Windows 8 იწყებს გადატვირთვას

    Პირველი.
    მოგვიანებით.

    კითხვა: ჰიბრიდული ძილი თუ ჰიბერნაცია? რა არის სასურველი დესკტოპზე?


    ზოგადად, კითხვა სათაურშია. როგორც საძიებო სისტემიდან მივხვდი, უფრო სწორად, ყველა საიტზე დაკოპირებული ერთი და იგივე სტატიიდან, ჰიბრიდული ძილის რეჟიმის უპირატესობა მხოლოდ ჩართვის, გაღვიძების სისწრაფეშია, შეიძლება ითქვას. და თუ მსურს გამოვიყენო Hibernation რეჟიმი ჩემს დესკტოპზე Windows 7 x64, არის თუ არა პრობლემები? მე უბრალოდ უნდა გამორთო დენი და უმჯობესია არ გავაკეთო ეს ჰიბრიდული ძილის რეჟიმში. მადლობა ყველას, ვინც გამოეხმაურება

    პასუხი:დღეს წავიკითხე. კარგი, ჩემი აზრით, არ არსებობს სხვა პასუხი ჩემს კითხვაზე, გარდა მოკლე ბრიფინგი Microsoft-ისგან. შემდეგ მე გაგიზიარებთ ჩემს დასკვნებს (მათთვის ვინც ამ თემაში ხვდება მსგავს კითხვაზე).
    Ისე:

    დადებითიჰიბრიდული ძილის რეჟიმი: 1. სწრაფი დაწყება, არ არის საჭირო კომპიუტერის სრული გამორთვა;
    მინუსები: 1. იტვირთება HDD(ერთ-ერთი მოდერატორის მიხედვით Windows დანაყოფი 7 ჩვენს ფორუმზე); 2. სრულად არ ითიშება, აგრძელებს დენის მოხმარებას, თუმცა ცოტა (თუმცა ზოგიერთისთვის ეს ნივთი პლუსია)

    მოკლედ, ჰიბერნაცია საჭიროა, თუ გსურთ მუდმივად გამორთოთ ქსელიდან, მაგრამ არ გსურთ OS-ის ჩატვირთვა/გამორთვა დიდი ხნის განმავლობაში.
    ჰიბრიდული ძილის რეჟიმი - მათთვის, ვინც კმაყოფილია კომპიუტერით, რომელიც მუდმივად არის ქსელში.

    კითხვა: ადრე ლეპტოპი გამორთული იყო გაშვებისას, ახლა ძილის რეჟიმში


    Ჩემი DELL ლეპტოპი INSPIRON 3521 Windows 8.1-ით ადრე გათიშული იყო გაშვებისას (DELL-ის ლოგო გამოჩნდა - გამორთვა - ხელახლა ჩართვა და ნორმალური მუშაობა). სისტემა 10 კ განაახლე, არ უშველა. ჩავიცვი სამთო-მომსახურების ცენტრში, ქალაქში ცნობილი და ვამაყობდი - იქ ლეპტოპი უსაფრთხოდ ისვენებდა ადამიანის ყურადღებისგან 2 კვირის განმავლობაში. მისი მიღების შემდეგ, მე მოვაგვარე პრობლემა სწრაფი ჩატვირთვის გამორთვით და, აღსანიშნავად, დავბრუნდი 8.1-ზე.
    ერთი თვე გავიდა და ახლა ლეპტოპის თავსახურს რომ ვხურავ, ის გადადის ძილის რეჟიმში (როგორც პარამეტრებში), მაგრამ 20 წუთის შემდეგ ან ცოტა მეტის შემდეგ საერთოდ ითიშება (ადრე ასე არ იყო და დენის პარამეტრები არ შეცვლილა). ჩართვისას, სიტუაცია, რომელიც ზემოთ აღვწერე: ჩართვა - ლოგო - გამორთვა. ნორმალური მუშაობა გადატვირთვის შემდეგ. ყველა მძღოლი განახლებულია. რა შეიძლება იყოს პრობლემა და როგორ გამოვასწორო? სამწუხაროა ღარიბი კაცისთვის - სულ წელიწადნახევარია, მაგრამ მე მაქვს დიპლომი და სახელმწიფო სერთიფიკატები - ახლა მას ვერ ვატან ოსტატებს ...

    პასუხი:როგორ გინდა რომ იმუშაოს? პირადად მე ვიყენებ ჰიბერნაციას და არა ჰიბერნაციას, ჰიბერნაციაზე გადასვლა ასევე ჩართულია უმოქმედობისას, პარამეტრები დანართში

    დენის პარამეტრების გადაცემა

    გააზიარე ეს