
DOS: unload driver
Ahoj lidičky,
komunikuju s jedním člověkem a dostali jsme se do fáze, že potřebuje v DOSu (MS DOS, ale mohl by být snad použit i FreeDOS) v jednu chvíli odstranit v paměti zavedenej ovladač, prostě cosi jako "unload" toho ovladače.
Vy staří harcovníci, neznáte něco takovýho?
Pavel
Ten ovladac nema moznost odinstalovani ? Co je to za ovladac ?
Bojim se, ze pokud je to nejaky systemovy ovladac (*.sys), budes mit smulu.
Pak by bylo resenim udelat pres Autoexe.bat a config.sys alternatini konfiguraci a restart do konfigurace bez ovladace.
Jedná se ovladač USB v DOSu, kterej se musí zavést, z USB zařízení se načte pár souborů a pak se musí ten ovladač "unload" z paměti. On sám to nepodporuje.
Pavel
Musi sa vyjadrit konkretnejsie. Vseobecna odpoved: edit config.sys a pred prislusny riadok napis REM alebo ho zmaz, file-save, exit, restart
Ne, to si nerozumíme, tady nejde o nenačtení ovladače, ale nejprve je zaveden do paměti a po nějaké době je třeba ho z té paměti dostat, prostě jeho unload. Nemůžu přes gůgl nic najít.
Pavel
Já mám nějaké obdobné programy na DOSu u PDA, tuším, že se jmenují Mark.exe a Release.exe, ale vždy je potřeba spustit ten Mark.exe ještě před tím později unloadovaným programem. Jediným problémem je, že nevím, zda to funguje i na ovladače. Podívám se a dám Ti vědět.
Tak bohužel to není ono. Jak jsem pochopil, tyhle dva prográmky fungují toliko na odstraňování residentních programů typu *.com.
Nevadí, ale děkuju za pomoc.
Pavel
A musí to být konkrétně přesně ten ovladač?
Jinak bys mohl použít třeba DUSE USB Driver, ten umožňuje unload.
duse_4_9.zip
To já nevím, musím se zeptat. Ten člověk je němec a komunikujeme anglicky
Za ten odkaz dík, zeptám se zda se hodí.
Pavel
Cha cháááá,
to Ti můžu poradit aby jsi ten ovladač disassembloval programem sourcer (bacha je to z r. 1990
), hodil na to voko, připrogramoval funkci unloadingu, znova zkompiloval ... jak jednoduché.
http://data1.edisk.cz/stahni/13464/SR.ZIP_80.7kB.ht ml
Já tím kdysi (never more!) disassembloval nějakej rezidenťák na překlad kódování češtiny při tisku a upravoval pro specifické použití, zdrojáček je nádhera, dokocne okomentovanej
),něco jako:
No tak konec srandy, že.
Obávám se, žes mírně přecenil moje schopnosti, ale jako tip je to dobrý, zkusím mu to navrhnout (nevím ale, zda zvládá assembler).
Pavel
Ten napad s DisAssemblerem je vyborny, ale mnohem jednodussi a casove nenarocne reseni je pouzit nekterou ze starsich verzi Volkov Commanderu, v nem spustit ten ovladac, ktery se nacte do pameti a pokud ho bude potreba unloadovat, staci ve Volkovu pouzit ALT+F5 a sipkama si vybrat z nabidky jmeno toho ovladace, pote uz pouze ENTER a mozna ze to jeste bude chtit potvrzeni (YES), tim se ovladac spolehlive unloaduje, protoze Volkov ve starsich verzich vsechna TSRka nacita pomoci vlastniho handleru a uklada si offset i velikost, cili v podstate se jedna o primitivni hookovani DOSovych funkci, ktere by nemelo byt prilis slozite naprogramovat.
Takze pokud se tu nekdo z vas jeste stale v roce 2006 zabyva systemovym programovanim, muzete nakouknout do AtHelpu, SysManu, TechHelpu, nebo neceho podobneho a vytvorit si vlastni rezident, ktery se povesi na preruseni 21h a bude kontrolovat zda se neco chce ukoncit a zustat rezidentni (keep).
Pokud ano, tak naalokujeme par KB konvencni pameti a rezidentu vratime jeji offset a mozna i rozsah (dle potreby), ten nas programek muze napr. po stisknuti ALT+U unloadovat vse, co se od jeho spusteni nacetlo, vycistit pametovou oblast i uvolnit.
Asi jedina slozitejsi vec by v tomto pripade byla prace s konvencni pameti v DOSu, kterou uz si osobne prilis nepamatuji, hodne stesti pri hratkach s DOSem, nebo Volkovem =)
Jak jsem psal, nepracuju na to já, ale komunikuju anglicky s němcem co se o tyhle věci zajímá. Pošlu mu to jako tip: Volkov, driver, Alt F5, výběr, unload. Díky moc, třeba se mu to hodí.
Pavel
A kto napravi vektory prerusenia na ktore sa to zavesilo, prip. dalsie veci ktore si ten ovladac urobil v HW? (napr. taky emm386 prepne CPU do protected modu a pomeni milion dalsich veci s tym suvisiace).
Vektory preruseni by si sice mohol volkov nikde ulozit, ale ak ten ovladac nieco pomenil v HW to uz volkov neuprace.
Inac je rozdiel ovladac (*.sys) a klasicky rezident (*.com/*.exe), *.sys ak sa nemylim nespustis z beziaceho systemu, da sa dat len do config.sys.
Odporucam pouzit ovladac ktory sa vie korektne unloadovat alebo povedat nemcovi nech sa konecne spamata zo standardnej nemeckej naivity/blbosti...
Naco mu je ten ovladac? Ak to je len nejaky USB stick alebo co neda sa mu na to pouzit USB legacy support BIOSu?
Tak teďs ho urazil. Pracuje na speciální věci, ale bez jeho souhlasu o tom nebudu mluvit.
Pavel
Heh, namiesto urazania by mohol robit veci poriadne. Poznam taketo problemy, myslis ze za mnou s takymito vecami nechodia? Clovek az niekedy zasne co za katastrofy su schopni lepit v DOSe, namiesto toho aby urobili nieco poriadne.
P.S. nenapisal si ani v com konkretne je problem. Malo zakladnej RAM? Ak ano tak nacital ten ovladac do high memory (ak sa da) pouzitim LH?
Vseobecne je najlepsie ak sa rezident odinstaluje a uprace po sebe sam, ako uz bolo pisane vyssie/nizsie znovuspustenim s prislusnym parametrom.
P.S.2. narazal som aj na toto
- BIOSy zvyknu mat uz dnes legacy support pre USB storage (Edit: t.j. USB floppy, USB HDD, USB stick, USB CDROM, USB citacka pamatovych kariet, by bohla ist v DOSe aj bez specialnych USB ovladacov, zavisi ale od toho co vsetko z toho podporuje BIOS), takze som chcel tym prispevkom hore naznacit nech sa namiesto urazania pozre aj do BIOSu ci tam nahodou nema legacy support na disabled
Ten němec o kterým mluví se pokouší přemluvit aby pracovalo něco jako: zavede ovladač usb, vytvoří ramdisk, do ramdisku načte spouštěcí soubory operačního systému, spustí Grub (grub4dos), a pokouší se z toho ramdisku nabootovat. Ale zřejmě (pokud jsem ho dobře pochopil) "se tam něco hádá" a vypadá to, že by pomohlo "unloadovat" ten driver pro usb z paměti. Tak a teď to posuď, jestli vyvádí ptákoviny.
Pavel
Ano, vyvadza ptakoviny
To nemoze dat grub do MBR toho z coho bootuje ten DOS? Resp. radsej to ani nechcem vediet 
a) BIOS nema legacy support? (nepotreboval by ten USB ovladac. P.S. support pre USB sticky a floppy a CDROM byva v BIOSoch uz roky).
b) vyskusal nacitat tie subory s niecim co nie je na USB - nebude potrebovat ovladac USB, vtedy mu to funguje? (problem je naozaj USB ovladac?) Ja tam vidim tak trochu problemov viac...
P.S. ten RAM-disk dufam vytvara tym grubom, a ten OS co chce bootovat potom z RAMdisku, by mal pouzivat LEN int13h funkcie na pristup k disku, inac nebude schopny vidiet ten RAMdisk...
No já do toho zas tolik nevidím, abych ti mohl odpovědět. Myslím ale, že jde právě o PC bez podpory zsb v BIOSu (opakuji: myslím). Detaily momentálně nevím, budu s ním komunikovat až později. S tím int13hex už jsem kdysi taky cosi zahlídl, to mi něco vzdáleně připomíná.
Pavel
Ak chce robit take nieco musi dokonale vediet co robi. Najvacsi problem vidim v tom ze ak sa zacne bootovat ten novy OS cez grub, tak prevezme kontrolu nad RAM, a rezidenty co boli v DOSe mozu byt novym OS premazane, ale vektory preruseni stale ukazuju na nich. ten grub sa nejako ochrani inac by nemohol fungovat samotny grub, ale rezidenty ktore bezali v DOSe asi budu robit problem (to chce nastudovat poriadne dokumentaciu k tomu grub4dos ze co a ako presne funguje, aby vedel co moze a co nemoze).
Je mozne ze problem je v int13h (alebo aj v inych sluzbach) na ktorych je zaveseny ten USB ovladac, akonahle sa bootuje novy system a ak nahodou premaze usek pamati kde bol ten USB ovladac tak ten vektor prerusenia ukazuje doprazdna. Ak je ten USB ovladac .exe/.com tak nech skusi utility co uz pisali vyssie/nizsie, mohli by obnovit povodne vektory preruseni (na take ake boli pred nacitanim USB ovladaca), co by malo stacit (predpokladam ze v tom DOSe nema ziadne ine rezidenty), a skusit to. Vektor prerusenia sa da zmenit v DOSe aj rucne cez debug.exe (vektory prerusenia v realnom mode CPU zacinaju na adrese 0:0, 4byty na vektor).
P.S. ale v prvom rade odporucam pozriet si BIOS, a potom USB ovladac ktory sa vie sam odstranit, ak nejaky najde, aby pri odstranovani nastavil registre USB controllera aby neposielal vkuse IRQ na ktore nikto nebude reagovat, az sa USB ovladac odstrani...
No klobouk dolů, tohle mi přijde jako zatraceně dobrá rada. Zkusím to přetlumočit
Pavel
No, je to dost komplikovana zalezitost... Ja sam neviem ako funguje ten grub4dos, treba najprv nastudovat dokumentaciu ku grub4dos ze ako to presne funguje, co ostane po nabootovani noveho OS, apod...
Potom ako som uz pisal najlepsie by bolo skusit nacitat tie subory do ramdisku z niecoho co nie je na USB (z diskety alebo HDD apod.), bez USB ovladaca, aby sa zistilo ci je problem len ten USB ovladac, alebo ci je problem niekde inde (napr. v tom aky OS potom bootuje - ci ten OS pouziva int13h, alebo ci sa snazi liezt na HW sam - v tom pripade si "odpili pod sebou konar" = nebude vediet citat svoje vlastne subory z RAMdisku)...
TSR ovladače mívají i parametr na odstranění z paměti.
Bývá to např.
Zkusil bych, jestli u něj není nápověda:
driver.exe /h
driver.exe /?
driver.exe ?
...nebo tak nějak....
Jo, to je fakt, některý měly implementovanej unload pomocí parametru /u. Dám mu vědět, díky.
Pavel
Potvrzuji unload parametrem /u, ale nevím zda to platí i v tomto případě pro ovladač. Já to používal pro některé menší prográmky a pod.
Sys nelze dobře odinstalovat, exe nebo com se odinstalit dá, až na případné změny v nastavení hdwr. Používám na takové věci utilitku z r. 1989. Zabere 6k paměti a funguje tak, že jsem zatím nikdy nepocítil nutnost shánět něco jiného. Kdo chce ať vyzkouší.
http://data1.edisk.cz/stahni/22084/RF.ZIP_5.76kB.ht ml
(help = C:\>rf ?)