Návrh riešenia
Vývojové nástroje ktoré používam:
- Windows xp
- Windows 2003 ddk - dá sa objednať za poštovné z Microsoftu. Slúži na
kompilovanie ovládačov, sú tam aj rozne pomocné ladiace prostriedky.
- Pre niektoré špeciálne funkcie (napr.
IoRegisterFileSystem) chýba hlavičkový súbor a teda sa nedajú prilinkovať aj
keď ich ddk obsahuje. Riešenie je buď získať windows 2003 ifs ddk kit ktorý
naviac obsahuje aj príklady skutočných fs z windowsu (fastfat a cdfs) a
dokumentáciu. Bohužial však stojí ~ 1000$ a nie je ani časťou MSDN predplatného.
Existuje však gnu vertzia ntifs.h ktorá zatiaľ celkom postačuje.
-
Používam potom ďalšie pomocné nástroje ako osrloader - nainštaluje ovládač do
systému, dbgview - zobrazuje ladiace správy ktoré posielajú ovládače, irptracker
- zobrazuje informácia o v/v(irp) požiadavkách os.
-
Programovací jazyk je c (štandartne sa v jadre použíca on) + výnimky(SEH).
-
Emulátor Bochs. V ňom je nainštalované FreeBSD.
-
Virtuálny disk. Na ňom je ffs ktoré používa win aj bsd. Na tomto disku
sa testuje ovládač.
Požiadavky na cieľovú platformu - i32 kompaktiblný počítač s Windows xp.
Hodila by sa aj nejaká patrícia s ffs.
Postup riešenia:
Postupovať sa
bude postupným rozširovaním prototypu o jednotlivé moduly s testovacími dátami
(budú vracať nejaké dopredu nadefinované výsledky)-
vlastne implementáciu požadovaných rozraní (Create, Read, Queryvolumeinformation, ..)
, ktoré sú pomerme
oddelené. Spájajú ich len spoločné dátové štruktúry ktorých návrh je veľmi
dôležitý. Po ich vytvorení sa už vytvorené procedúry zmodifikujú tak začali
pracovať so skutočným diskom. Potom už naleduje len testovanie a testovanie a
dokončovanie zvyšných modulov.
Na záver sa vyrobí inštalátor, odinštalátor, príp. nastavovací program (ak bude treba).
Program po nainštalovaní by mal fungovať vlastne automaticky a nemal by vyžadovať
žiadnu interakciu zo strany používateľa.