Pornirea procesului din consola de recuperare Windows

În Windows, există o consolă de recuperare - un mod special de linie de comandă pentru diagnosticarea și remedierea accidentelor. Acest mod poate fi pornit de pe discul de instalare Windows și poate fi instalat pe partiția de sistem și poate rula acest mod ca opțiune de descărcare. Consola de recuperare în acest caz este prescrisă în boot.ini ca opțiune de încărcare pentru computer.







Consola de recuperare este linia de comandă de pe ecranul negru. Se pare că modul de afișare a boot-ului (care în versiunile moderne de Windows este negru), în care aplicațiile native rulează înainte de fereastra de conectare (cum ar fi verificarea partiției de disc după repornire). Am decis să verific dacă este posibilă pornirea și rularea aplicațiilor native din cadrul Consolei de recuperare. Pur și simplu, este posibil să executați programul în Consola de recuperare. De asemenea, am încercat să încep aplicația nativă în ReactOS.

Pentru a face acest lucru, trebuie să instalați consola de recuperare de pe hard disk. Inserat discul de instalare Windows, comanda X: \ i386 \ Winnt32.exe / cmdcons, iar Consola de recuperare este instalat în directorul C: \ Cmdcons. Puteți deduce imediat că acest dosar conține două fișiere .exe, și anume autochk.exe și autofmt.exe. Acest lucru nu este nimic mai mult decât versiunile native ale chkdsk și utilitare de format pentru verificarea și formatarea discurilor. Odată ce în dosarul Consola de recuperare există aplicații native, funcția corespunzătoare a consolei este realizată prin lansarea lor.







În general, fișierul spcmdcon.sys răspunde la consola de recuperare pentru procesarea comenzilor. Acesta este un driver, nu o aplicație nativă. Modulul folosește funcțiile celuilalt șofer, setupdd.sys, care conține o funcție cu un nume care vorbește SpvidDisplayString, WriteNtfsBootSector și așa mai departe. N. Ar fi tentant să folosească aceste funcții și să scrie spcmdcon.sys sale de înlocuire, dar API-ul acestor funcții este necunoscută.

A fost necesar să verificați ce s-ar întâmpla dacă înlocuiți programul autochk.exe cu programul dvs. Scrierea native Hello World, introdusă în folderul cmdcons în loc de autochk.exe, pornită în modul Consola de recuperare.

Am introdus comanda chkdsk C: / P în Consola de recuperare, care ar trebui să apeleze procesul autochk.exe pentru a efectua o verificare pe disc. Consola de recuperare mi-a dat un mesaj despre imposibilitatea verificării. Șirul "Bună ziua, lumea!" Nu a apărut pe ecran. Apoi am presupus că procesul este pornit, doar nu funcționează ieșirea pe ecran, deoarece ieșirea mesajelor este implementată diferit, nu ca în modul ecran albastru. Apoi am compilat o altă aplicație care ar fi trebuit să oprească calculatorul:

Puneți-l în loc de autochk.exe, reporniți la Consola de recuperare, tastați chkdsk C: / P. Computerul este oprit.

Apoi am încercat să-mi conduc Naftă Shell în același mod. Am aflat că reacționează la intrarea comenzilor de la tastatură, dar de asemenea nu afișează nimic.

Concluziile din experiment sunt următoarele: este posibil să porniți procesul nativ din Consola de recuperare. Ieșirea nu funcționează, deoarece mecanismul de ieșire nu permite utilizarea funcției NtDisplayString. Versiunile de programe și Autochk.exe autofmt.exe, situată în consola de recuperare director - aceleași nativi-aplicații care sunt în folderul System32 Windows. Dar ieșirea de mesaje atunci când funcționează aceste aplicații nu coincide cu ieșirea în cazul pornirii de la Windows. Prin urmare, ieșirea din Consola de recuperare este generată de Consola de recuperare în sine. În timp ce învață despre etapele de verificare, nu știu. Dar mesajul de pe ecran afișează spcmdcon.sys, nu autochk.exe.

Ar fi interesant de a găsi o modalitate de a afișa mesaje pe ecran în Consola de recuperare, și rula imediat propria aplicație, fără a trece prin spcmdcon.sys linia de comandă.







Articole similare

Trimiteți-le prietenilor: