7.1 Optionen in der Datei BOOT.INI
/DEBUG - aktiviert Kernel-Mode Debugging
/NODEBUG - Debugging ausgeschaltet (Standard)
/DEBUGPORT=X - gibt den seriellen Port an
(bei 80x86 Rechnern ist COM2 Standard)
/BAUDRATE=X - gibt die Baudrate der Verbindung an
(19200 Baud ist Standard)
/CRASHDEBUG - Debugger wird nur im Fall eines Systemcrashs aktiviert
/MAXMEM=X - gibt die maximale Größe des Speichers für das System an
(X darf die Größe des wirklichen Speichers nicht über-
schreiten, Angabe in MB)
/SOS - Anzeige jedes geladenen Moduls während des Bootvorgangs
/BASEVIDEO - Sytem benutzt den Standard VGA Treiber
Beispiel einer boot.ini
[boot loader] timeout=30 default=multi(0)disk(0)rdisk(0)partition(2)\WINNT40 [operating systems] ; normale Version multi(0)disk(0)rdisk(0)partition(2)\WINNT40="Windows NT Workstation, Version 4.0" ; normale Version mit Standard VGA Treiber und Anzeige aller geladenen Module multi(0)disk(0)rdisk(0)partition(2)\WINNT40="Windows NT Workstation, Version 4.0 [VGA-Modus]" /basevideo /sos ; Debug Version, Verbindung über COM2 mit 115200 Baud multi(0)disk(0)rdisk(0)partition(3)\WINNT40A="Windows NT Workstation (Checked)" /DEBUG /DEBUGPORT=COM2 /BAUDRATE=115200 ; Debug Version, Verbindung über COM2 mit 19200 Baud, Anzeige aller ; geladenen Module, Benutzung des Standard VGA Treibers multi(0)disk(0)rdisk(0)partition(3)\WINNT40A="Windows NT Workstation (Checked) [VGA mode]" /DEBUG /basevideo /sos ; startet Windows 95 C:\="Microsoft Windows 95"
7.2 Daten von IDT_Look
Aladin BasysGate BIG_WWW Hugo_C STAT_02 STAT_13 OTTO SanderD Notebook IRQL 1 3D 3D 2 41 41 3 4 51 51 51 5 61 61 61 6 71 71 7 81/82 81/82 81 8 91/92 91/92 91/92 9 A2 A2 A1 10 B1 B1 B1/B2 11 12 3F 13 3E 3E 3E 3E 14 15 3C 3C 3C 3C 3C 16 3B 3B 3B 17 3A 3A 18 39 39 19 20 37 37 37 21 36 36 36 36 36 36 22 35 35 23 34 34 34 34 34 34 24 33 25 26 31 31 31 31 31 31 27 C1 38 C1 38 38 38 38 C1 38 28 D1 30 D1 30 30 30 30 D1 30 29 E1 E1 E1 30 FE/FD FD/FE FD/FE 31 1F/FF 32 1F/FF 32 32 32 32 1F/FF 32 255 50 50 50 DPL3 2A-2E 2A-2E 2A-2E 2A-2E 2A-2E 2A-2E 2A-2E 2A-2E 2A-2E Systeme: ALADIN - Dual Pentium II 266 MHz, NT 4.0 (free) SP3 BasysGate - Pentium II 233 MHz, NT 4.0 (free) SP3 BIG_WWW - Dual Pentium II 266 Mhz, NT 4.0 (free) SP3 Hugo_C - AMD K6 200 Mhz, NT 4.0 (checked) SP1 Stat_02 - Pentium 166 MHz, NT 4.0 (free) SP3 Stat_13 - Pentium Pro 200 Mhz, NT 4.0 (free) SP2 OTTO - Pentium II 300 MHz, NT 4.0 (free) SP4 SanderD - Dual Pentium 166 MHz, NT 4.0 (free), SP3 Notebook - Pentium 200 MHz, NT 4.0 (free), SP3 SP - Service Pack Es wurden weitere Einprozessorsysteme getestet, die Ergebnisse unterscheiden sich jedoch nicht von den anderen Systemen.
7.3 Quellcodes
Die Quellcodes aller Programme und Treiber befinden sich auf der beigelegten CD. Zusätzlich wurden die ausführbaren Versionen der Programme mit auf die CD kopiert.
In der Internetversion findet man den Inhalt der CD unter Downloads.
7.4 Abkürzungen
ACL
Access Control List
APC
Asynchronous Procedure Call – Asynchroner Prozeduraufruf
API
Application Programming Interface
DMA
Direct Memory Access
DPC
Deferred Procedure Call – Verzögerter Prozeduraufruf
DPL
Descriptor Privilege Level
FSD
Files System Driver - Dateisystemtreiber
IDT
Interrupt Descriptor Table
IDTR
Interrupt Descriptor Table Register
ISR
Interrupt Service Routine
IRQL
Interrupt Request Level
IOCTL
I/O Control Code
MDL
Memory Descriptor List
NMI
Non Maskable Interrupt – Nicht Maskierbarer Interrupt
SEH
Structured Execption Handling – strukturierte Ausnahmebehandlung
VDD
Virtual Device Driver oder auch Virtual DOS Driver
7.5 Literaturverzeichnis
Baker, Art: "The Windows NT Device Driver Book"; Prentice Hall PTR; New Jersey 1997; ISBN 0-13-184474-1
Brunelco Electronic Engineering: "8 – Channel PC-Timer Revision 3.1 - User Manual"; 1996
Custer, Helen: "Inside Windows NT"; Microsoft Press; Redmont 1993;
ISBN 1-55615-481-X
Microsoft: "Windows NT DKK Getting Started"; Hilfedatei ddkstart.hlp im Verzeichnis \ddk\hlp; 1996
Hamilton, David; Williams, Mickey: "Windows NT 4 Programmierung für Insider";
Sams; Haar bei München 1996; ISBN 3-87791-886-7
http://windowsnt.miningco.com; 15.09.1998
Intel: "Intel Architecture Software Developer‘s Manual, Volume 2: Instruction Set Reference"; Intel Corporation 1996,1997
Intel: "Intel Architecture Software Developer‘s Manual, Volume 3: System Programming Guide"; Intel Corporation 1996,1997
Microsoft: "Kernel-Mode Drivers"; aus der Windows NT DDK Dokumentation;1996
Lauer, Thomas: "Professionelle Win32-Programmierung"; International Thomson Publishing; Bonn 1996; ISBN 3-8266-2664-8
Osterholt, Wim: "XT, AT and PS/2 I/O port addresses"; 1995
Open System Ressources; http://www.osr.com; 05.11.1998
Microsoft: "Programmer‘s Guide"; aus der Windows NT DDK Dokumentation;1996
Microsoft: "Technical Reference to the Windows Registry"; aus dem "Microsoft Windows NT Server Resource Kit"; 1997
Roberts, Dale: "Direct Port I/O and Windows NT"; Dr. Dobb’s Journal Mai 1996
Roberts, Dale: "Interrupt Behavior in Windows NT"; Dr. Dobb’s Journal; April 1998
Russinovich, Mark: "Inside NT’s Interrupt Handling"; Windows NT Magazine; Ausgabe November 1997
Russinovich, Mark: "Inside the Blue Screen"; Windows NT Magazine; Ausgabe Dezember 1997
Solomon, David: "Inside Microsoft Windows NT" 2.Auflage; Microsoft Press; Unterschleißheim 1998; ISBN 3-86063-435-6
Andreas Stiller, Matthias Withkopf: "Direkte Zugriffe unter Windows NT 4.0 und ein entfesselter Cyrix 6x86"; c’t – Magazin für Computer Technik; Ausgabe 1/1997; Verlag Heinz Heise
http://www.sysinternals.com; 01.12.1998
Tennberg, Patrick: "Windows NT Device Driver Toolkits", Dr. Dobb’s Journal; März 1998
Tischer, Michael: "PC intern 3.0"; Data Becker; Düsseldorf 1992; ISBN 3-89011-591-8
Microsoft: "MSDN Library Visual Studio 6.0"; 1998
Savill, John: "Windows NT Frequently Asked Questions; http://www.ntfaq.com;01.12.1998
"Windows ins System geschaut"; win Windows NT Special; Vogel Verlag und Druck GmbH & Co. KG; 1998
Microsoft: "Windows NT Workstation Resource Guide"; aus dem "Microsoft Windows NT Workstation Resource Kit"; 1997
7.6 Abbildungsverzeichnis
Abbildung 2.2.1-1: Aufbau Windows NT
Abbildung 2.2.5-1: Ablauf der Ausnahmebehandlung
Abbildung 3.3.3-1: Interrupt Behandlung
Abbildung 3.3.4-1: IDT Descriptor und IDT Register
Abbildung 3.3.6-1: I/O Verarbeitung unter Windows NT
Abbildung 4.1.2-1: Verzeichnisstruktur des Build Tools
Abbildung 4.4.1-1: IRP Aufbau
Abbildung 4.4.2-1: Das Treiberobjekt
Abbildung 4.4.3-1: Das Geräteobjekt
Abbildung 4.5.1-1: Aktivierung des Kerneldebuggings in WinDbg
Abbildung 4.5.2-1: Der Blue Screen of Death
Abbildung 4.5.2-1: Eventlogging
Abbildung 4.6.1-1: Aufbau der Message Codes
Abbildung 4.6.5-1: Das IO_ERROR_LOG_PACKET
Abbildung 5.3.4-1: Das Brunelco Control Center
7.7 Tabellenverzeichnis
Tabelle 3.3.1-1: IRQLs (Vergleich Alpha - x86)
Tabelle 4.1.1-1: Systemvoraussetzungen der Entwicklungsrechner
Tabelle 4.1.3-1: Registry Einträge
Tabelle 4.5.1-1: WinDbg Kommandos
Tabelle 4.6.5-1: Betriebssystemfunktionen im Kernelmodus (aus [Baker97])
Tabelle 5.3.2-1: Funktionscodes der Brunelco Timer Card
7.8 Hilfsmittel zur Erstellung der Diplomarbeit
Zur Erstellung der Anwendungen und Treiber wurden folgende Werkzeuge eingesetzt:
Folgende Rechnersysteme standen zur Entwicklung der Treiber zur Verfügung:
Entwicklungssystem:
Zielsystem:
Die Diplomarbeit wurde mit Microsoft Word 97 geschrieben. Alle Grafiken wurden mit Paint Shop Pro 5.0 erstellt.