DE69534867T2 - Verfahren und System zur Lieferung geschützter Gerätetreiber - Google Patents

Verfahren und System zur Lieferung geschützter Gerätetreiber Download PDF

Info

Publication number
DE69534867T2
DE69534867T2 DE69534867T DE69534867T DE69534867T2 DE 69534867 T2 DE69534867 T2 DE 69534867T2 DE 69534867 T DE69534867 T DE 69534867T DE 69534867 T DE69534867 T DE 69534867T DE 69534867 T2 DE69534867 T2 DE 69534867T2
Authority
DE
Germany
Prior art keywords
mode
driver
real
protected
disk
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69534867T
Other languages
English (en)
Other versions
DE69534867D1 (de
Inventor
Harish Redmond Naidu
William G. Bellevue Parry
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Application granted granted Critical
Publication of DE69534867D1 publication Critical patent/DE69534867D1/de
Publication of DE69534867T2 publication Critical patent/DE69534867T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00—Arrangements for program control, e.g. control units
    • G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44—Arrangements for executing specific programs
    • G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601—Interfaces specially adapted for storage systems
    • G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062—Securing storage systems
    • G06F3/0622—Securing storage systems in relation to access
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601—Interfaces specially adapted for storage systems
    • G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629—Configuration or reconfiguration of storage systems
    • G06F3/0637—Permissions
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601—Interfaces specially adapted for storage systems
    • G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671—In-line storage system
    • G06F3/0673—Single storage device
    • G06F3/0674—Disk device
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601—Interfaces specially adapted for storage systems
    • G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671—In-line storage system
    • G06F3/0683—Plurality of storage devices
    • G06F3/0689—Disk arrays, e.g. RAID, JBOD
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00—Arrangements for program control, e.g. control units
    • G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46—Multiprogramming arrangements
    • G06F9/54—Interprogram communication
    • G06F9/541—Interprogram communication via adapters, e.g. between incompatible applications
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00—Arrangements for program control, e.g. control units
    • G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46—Multiprogramming arrangements
    • G06F9/54—Interprogram communication
    • G06F9/545—Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2105—Dual mode as a secondary aspect

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)

Description

  • Technisches Gebiet
  • Die vorliegende Erfindung bezieht sich auf das Gebiet von Gerätetreibern und insbesondere aus ein Betriebssystem, das Protected-Mode-Gerätetreiber bereitstellt.
  • Hintergrund der Erfindung
  • Ein typisches. Computersystem enthält einen Computer der mit mehreren Peripheriegeräten verbunden ist. Auf die Peripheriegeräte kann mit einem Betriebssystem zugegriffen werden, das auf dem Computer ausgeführt wird, oder mit Applikationsprogrammen, die auf dem Computer über eine geeignete Schnittstelle ausgeführt werden. Ein derartiger Zugriff auf die Geräte wird mit Softwareprogrammen gesteuert, die als Gerätetreiber bekannt sind. Viele Gerätetreiber, wie etwa jene, die durch das Microsoft MS-DOS-Betriebssystem bereitgestellt werden, sind Real-Mode-Gerätetreiber, die in einer Prozessorbetriebsart arbeiten, die als Real-Mode bekannt ist. Real-Mode ist die einzige Betriebsart, die durch den Intel-8086-Mikroprozessor bereitgestellt wird, auf dem das Microsoft MS-DOS-Betriebssystem ursprünglich ausgeführt werden sollte.
  • Neuere Mikroprozessoren, wie etwa der Intel 80826, 80386 und 80486, die von der Intel Corporation in Cupertino, Kalifornien vertrieben werden, sind aufwärtskompatibel mit dem 8086 und somit darauf ausgelegt, Real-Mode zu unterstützen, wobei sie jedoch auch in einer erweiterten Betriebsart arbeiten können, die als "Protected-Mode" bekannt ist. Protected-Mode hat gegenüber Real-Mode Vorteile. Beispielsweise bietet der Protected Mode einen größeren virtuellen Adressraum gegenüber Real-Mode. Protected-Mode bietet zudem die Hardwareunterstützung für Multitasking und Datensicherheit, was Real-Mode nicht tut. (Der Schutzmecha nismus, der die Datensicherheit im 80386 und 80486 bereitstellt, ist auf den Seiten 101–133 von "Microsoft's 80386/80486 Programming Guide" beschreiben, veröffentlicht von Microsoft press, 1991.)
  • EP 0 288 606 A2 beschreibt ein Computersystem, das eine Zentralverarbeitungseinheit (CPU) und einen Speicher enthält, wobei die CPU eine erste und eine zweite zueinander inkompatible Betriebsart zum Adressieren des Speichers hat, weiterhin enthaltend eine Einrichtung zum Erstellen einer ersten und einer zweiten Tabelle im Speicher, die funktional äquivalente Verweise auf vorbestimmte Bereiche im Speicher und Geräte haben, die am System angebracht sind, eine Einrichtung (3) zum Zugreifen auf die erste Tabelle in der ersten CPU-Betriebsart und eine Einrichtung (4) zum Zugreifen auf die zweite Tabelle in der zweiten CPU-Betriebsart. Darüber hinaus beschreibt EP 0 288 606 A2 ein Verfahren zum Betrieben eines Computersystems, das einen Speicher und eine CPU hat, die in einer von zwei zueinander inkompatiblen Speicheradressier-Betriebsarten arbeiten können, enthaltend folgende Schritte: Zuweisen von Platz im Speicher für einen ersten und einen zweiten gemeinsamen Datenbereich jeweils entsprechend der ersten und der zweiten Betriebsart; Laden des ersten Befehlsdatenbereiches mit einer Tabelle, die erste Verweise auf vorbestimmte Bereiche des Speichers und auf Geräte enthält, die am System angebracht sind, wobei die ersten Positionen eine erste Betriebsartadresse enthalten; und Laden des zweiten Befehlsdatenbereiches mit einer Tabelle, die Verweise enthält, die zu jenen der ersten Tabelle funktional äquivalent sind, jedoch Adressen der zweiten Betriebsart enthalten, wobei sich die CPU nacheinander auf die erste Tabelle für die Adressierung der ersten Betriebsart und die zweite Tabelle für die Adressierung der zweiten Betriebsart bezieht.
  • Das Ziel der vorliegenden Erfindung besteht darin, ein Verfahren und ein Computersystem anzugeben, die einen einfachen und zuverlässigen Zugriff auf Geräte durch Real-Mode-Gerätetreiber und Protected-Mode-Gerätetreiber ermöglichen.
  • Das Ziel wird durch den Gegenstand der Ansprüche 1, 9 und 16 erreicht.
  • Bevorzugte Ausführungsformen sind Gegenstand der abhängigen Ansprüche.
  • Ein erster Aspekt der vorliegenden Erfindung gibt Protected-Mode-Gerätetreiber an, die mit Real-Mode-Gerätetreibern kompatibel sind, die auf dasselbe Gerät zugreifen. Die Protected-Mode-Gerätetreiber sind mit den Real-Mode-Gerätetreibern in dem Sinne kompatibel, dass sie dieselben Bezugwerte verwenden, um auf dieselben Geräte zuzugreifen. Bei einer bevorzugten Ausführungsform gibt die Erfindung ein Betriebssystem an, das in der Lage ist, im Protected-Mode zu arbeiten, und über die Protected-Mode-Gerätetreiber verfügt. Während des Betriebs des Betriebssystem im Protected-Mode, greifen die Gerätetreiber auf die Geräte zu, wenn dies vom Betriebssystem oder einem Applikationsprogramm verlangt wird. Real-Mode-Gerätetreiber sind ebenfalls vorgesehen, die auf die Geräte im Real-Mode zugreifen, wenn dies von einem Betriebssystem oder einem Applikationsprogramm verlangt wird, das den Real-Mode-Betrieb erfordert. Die Protected-Mode-Gerätetreiber weisen den Geräten dieselben Bezugswerte zu, wie sie die Real-Mode-Gerätetreiber denselben Geräten zuweisen. Die Erfindung stellt eine Kompatibilität hinsichtlich dieser Bezugswerte sicher, indem sie zahlreiche Aspekte der Erfindung vorsieht, die im folgenden beschrieben sind.
  • Ein zweiter Aspekt der Erfindung gibt eine konsistente Zuweisung der Laufwerkseinheitsnummern an, mit denen auf dieselben physikalischen Platten durch die Real-Mode- und die Protected-Mode-Plattentreiber zugegriffen wird. Die Real-Mode-Plattentreiber, die auf physikalische Platten zugreifen, weisen womöglich nicht dieselben Laufwerkseinheitsnummern jenen physikalischen Platten zu, wie die Protected-Mode-Plattentreiber, die auf dieselben physikalischen Platten zugreifen. Das Problem besteht darin, dass die Real-Mode-Plattentreiber andere Laufwerksnummern haben können als die Laufwerksnummern, die den entsprechenden Protected-Mode-Plattentreibern für BIOS-INT-13h-Interrupts zugeordnet sind. Beim ersten Aspekt der Erfindung sieht die bevorzugte Ausführungsform eine konsistente Zuweisung der Laufwerkseinheitsnummern vor, mit denen auf dieselben physikalischen Platten über INT-13h-Interrupts sowohl durch die Real-Mode- als auch die Protected-Mode-Treiber für physikalische Platten zugegriffen wird. Infolgedessen wird der Zugriff auf dieselben physikalischen Platten sowohl durch die Real-Mode-Plattentreiber als auch die Protected-Mode-Plattentreiber in kompatibler Art ermöglicht.
  • Ein dritter Aspekt der Erfindung gibt eine konsistente Zuweisung logischer Datenträgereinheitsnummern an, mit denen auf dieselben logischen Datenträger durch die Real-Mode- und die Protected-Mode-Datenträgertreiber zugegriffen wird. Die Real-Mode-Datenträgertreiber, die den Zugriff auf logische Datenträger auf Platten steuern, weisen möglicherweise nicht dieselben Datenträgereinheitsnummern jenen logischen Datenträgern zu, wie die Protected-Mode-Datenträgertreiber, die den Zugriff auf dieselben logischen Datenträger steuern. Insbesondere können die Real-Mode-Datenträgertreiber andere Datenträgernummern haben, als die Datenträgernummern, die entsprechenden Protected-Mode-Datenträgertreibern für BIOS-INT-25h-Interrupts zugeordnet sind. Beim zweiten Aspekt der Erfindung sieht die bevorzugte Ausführungsform eine konsistente Zuordnung der Datenträgereinheitsnummern vor, mit denen auf dieselben logischen Datenträger über INT-25h-Interrupts sowohl durch die Real-Mode- als auch die Protected-Mode-Treiber für logische Datenträger zugegriffen wird. Somit wird der Zugriff auf dieselben logischen Datenträger sowohl durch die Real-Made-Datenträgertreiber als auch die Protected-Mode-Datenträgertreiber ermöglicht.
  • Ein vierter Aspekt der vorliegenden Erfindung gibt eine konsistente Zuordnung von Adapternummern an, mit denen dieselben Adapter durch Real-Mode- und Protected-Mode-Adaptertreiber gesteuert werden, um auf die Peripheriegeräte zuzugreifen, die mit diesen Adaptern verbunden sind. Die Real-Mode-Adaptertreiber, die auf Peripheriegeräte über Adapter zugreifen, weisen möglicherweise nicht dieselben Adapternummern diesen Adaptern zu, wie sie das Protected-Mode-Betriebssystem Protected-Mode-Adaptertreibern zuweist, um auf dieselben Peripheriegeräte zuzugreifen. Beim dritten Aspekt der Erfindung sieht die bevorzugte Ausführungsform eine konsistente Zuweisung der Adapternummern vor, mit denen dieselben Adapter sowohl durch die Real-Mode- als auch die Protected-Mode-Adaptertreiber gesteuert werden, um auf dieselben Peripheriegeräte zuzugreifen. Der dritte Aspekt der Erfindung sieht zudem eine Abbildung von Anfragen, um auf die Peripheriegeräte über Real-Mode-Adaptertreiber zuzugreifen, auf Anfragen vor, um auf die Peripheriegeräte über Protected-Mode-Adaptertreiber zuzugreifen, die dieselben Adapter steuern. Anfragen von Applikationsprogrammen, um auf die Peripheriegeräte zuzugreifen, können zu den Real-Mode- Adaptertreibern selbst während des Betriebs des Protected-Mode-Betriebssystems gleitet werden, solange sie nicht anderweitig geleitet werden. Die bevorzugte Ausführungsform sieht eine Abbildung der Applikationsprogramm-Anfragen, um auf die Peripheriegeräte über Real-Mode-Adaptertreiber zuzugreifen, auf Anfragen vor, um auf die Peripheriegeräte über Protected-Mode-Adaptertreiber zuzugreifen, die dieselben Adapter steuern.
  • Die bevorzugte Ausführungsform gibt zudem einen Protected-Mode-Betrieb für Funktionen an, die von Real-Mode-Funktionsgeräten bereitgestellt werden, wenn die Real-Mode-Gerätetreiber ausgeführt werden. Somit gibt ein vierter Aspekt der Erfindung die Erfassung und die Anpassung des Protected-Mode von Real-Mode-Funktionstreibern an, die zusätzlich zu den Real-Mode-Gerätetreibern bereitgestellt wurden. Die Real-Mode-Funktionstreiber können hinzugefügt worden sein, um die Real-Mode-Gerätetreiber zu vervollständigen, indem zusätzliche Funktionen bereitgestellt werden. Diese Funktionen können oder können nicht von beliebigen Protected-Mode-Funktionstreibern im Protected-Mode-Betriebssystem bereitgestellt werden. Solange diese Real-Mode-Funktionstreiber nicht vom Betriebssystem angepasst werden, wenn im Protected-Mode gearbeitet wird, sind die Protected-Mode-Gerätetreiber zu den Real-Mode-Gerätetreibern nicht kompatibel. Beim vierten Aspekt der Erfindung sieht die bevorzugte Ausführungsform eine Erfassung und Anpassung des Protected-Mode der Real-Mode-Funktionstreiber vor, die zusätzlich zu den Real-Mode-Gerätetreibern im Real-Mode-Betriebssystem bereitgestellt werden. Infolge der oben genannten vier Aspekte der Erfindung, gibt die bevorzugte Ausführungsform Protected-Mode-Gerätetreiber an, die zu Real-Mode-Gerätetreibern kompatibel sind und dennoch die Vorteile des Protected-Mode-Betriebs haben.
  • Kurze Beschreibung der Zeichnungen
  • 1 ist ein Blockschaltbild eines typischen Computersystems, bei dem ein Computer mit Plattenlaufwerken und anderen Peripheriegeräten verbunden ist.
  • 2 ist eine Darstellung der Funktionsbeziehung zwischen den Real-Mode- und Protected-Mode-Gerätetreibern und den Funktionstreibern sowie den Geräten, die von diesen gesteuert werden.
  • 3 ist eine Darstellung der Funktionsbeziehung zwischen den Real-Mode-Laufwerkstreibern und den Protected-Mode-Laufwerkstreibern der bevorzugten Ausführungsform der vorliegenden Erfindung.
  • 4 ist ein Flussdiagramm des Vorgangs zur Erzeugung einer Laufwerkstabelle in der bevorzugten Ausführungsform.
  • 5 ist eine Darstellung des Vorgangs zur Erzeugung einer Laufwerkstabelle in den Inhalten eines Abschnittes eines Master-Boot-Records einer Platte in der bevorzugten Ausführungsform.
  • 6 ist eine Darstellung der Laufwerkstabelle, die bei der bevorzugten Ausführungsform erzeugt wird.
  • 7 ist ein Flussdiagramm des Vorgangs der Zuweisung einer Laufwerkseinheitsnummer bei der bevorzugten Ausführungsform.
  • 8 ist eine Darstellung der Funktionsbeziehung zwischen den Real-Mode-Datenträgertreibern und den Protected-Mode-Datenträgertreibern der bevorzugten Ausführungsform.
  • 9 ist ein Flussdiagramm des Vorgangs der Erstellung einer Datenträgertabelle bei der bevorzugten Ausführungsform.
  • 10 ist eine Darstellung eines Partitions-Boot-Record und eines Datenträger-Boot-Record eines Datenträgers auf einer Platte bei der bevorzugten Ausführungsform.
  • 11 ist eine Darstellung der Datenträgertabelle, die bei der bevorzugten Ausführungsform erzeugt wird.
  • 12 ist ein Flussdiagramm des Vorgangs der Zuweisung einer Datenträgereinheitsnummer bei der bevorzugten Ausführungsform.
  • 13 ist eine Darstellung der Real-Mode-Adaptertreiber und der Protected-Mode-Adaptertreiber der bevorzugten Ausführungsform.
  • 14 ist ein Flussdiagramm des Vorgangs zur Erzeugung einer Real-Mode-Datenstruktur bei der bevorzugten Ausführungsform.
  • 15 ist eine Darstellung der Real-Mode-Datenstruktur, die bei der bevorzugten Ausführungsform erzeugt wird, und eines Einheitsspezifikationselementes, das jeder Real-Mode-Datenstruktur zugeordnet ist.
  • 16 ist eine Darstellung von Peripheriedaten in jedem Einheitsspezifikationselement, das bei der bevorzugten Ausführungsform erzeugt wird.
  • 17 ist ein Flussdiagramm des Vorgangs zur Erzeugung von Datensteuerblöcken bei der bevorzugten Ausführungsform.
  • 18 ist eine Darstellung des Datensteuerblocks, der bei der bevorzugten Ausführungsform erzeugt wird.
  • 19 ist ein Flussdiagramm des Vorgangs zur Zuweisung von Adapternummern bei der bevorzugten Ausführungsform.
  • 20 ist ein Flussdiagramm des Vorgangs zur Anpassung von Real-Mode-Funktionstreibern bei der bevorzugten Ausführungsform.
  • 21 ist ein Flussdiagramm des Vorgangs zum Erfassen eines Real-Mode-Funktionstreibers bei der bevorzugten Ausführungsform.
  • 22 ist eine Darstellung eines Datenparameterblocks, der Inhalte eines Abschnittes desselben und der Real-Mode-Gerätetreiber oder der Funktionstreiber die darin festgelegt sind.
  • 23 ist eine Darstellung eines originalen Treiberaufbaus der bevorzugten Ausführungsform.
  • 24 ist eine Darstellung einer Liste sicherer Treiber der bevorzugten Ausführungsform.
  • 25 ist ein Flussdiagramm des Vorgangs zur Angleichung eines Real-Mode-Funktionstreibers in der bevorzugten Ausführungsform.
  • Detaillierte Beschreibung der Erfindung
  • Die bevorzugte Ausführungsform der vorliegenden Erfindung ersetzt Protected-Mode-Gerätetreiber für Real-Mode-Gerätetreiber, wann immer dies möglich ist. Die Protected-Mode-Gerätetreiber werden so eingesetzt, dass sie mit den Real-Mode-Gerätetreibern kompatibel sind. Insbesondere greifen die Protected-Mode-Gerätetreiber auf Geräte zu, denen Bezugswerte zugeordnet, die dieselben Geräte in derselben Art identifizieren, wie die Real-Mode-Gerätetreiber. Die bevorzugte Ausführungsform stellt, soweit dies möglich ist, weiterhin einen Protected-Mode-Betrieb von Funktionen bereit, die von den Real-Mode-Funktionsgeräten bereitgestellt werden, wenn die Real-Mode-Gerätetreiber ausgeführt werden.
  • Die oben genannten Merkmale sind durch vier separate Aspekte der Erfindung angegeben, die unten beschrieben sind. Ein erster Aspekt der Erfindung gibt eine konsistente Zuweisung von Geräteeinheitsnummern an, mit denen auf dieselben physikalischen Platten durch Real-Mode- und Protected-Mode-Gerätetreiber zugegriffen wird. Ein zweiter Aspekt der Erfindung gibt die konsistente Zuweisung logischer Datenträgereinheitsnummern an, mit denen auf dieselben logischen Datenträger durch die Real-Mode- und die Protected-Mode-Datenträgertreiber zugegriffen wird. Ein dritter Aspekt der Erfindung gibt die konsistente Zuweisung von Adapternummern an, mit denen dieselben Adapter durch die Real-Mode- und die Protected-Mode-Adaptertreiber gesteuert werden, um auf die Peripheriegeräte zuzugreifen, die mit diesen Adaptern verbunden sind. Der dritte Aspekt der Erfindung gibt zudem eine Zuordnung von Anfragen, um auf die Peripherievorrichtungen über Real-Mode-Adaptertreiber zuzugreifen, zu Anfragen an, um auf die Peripheriegeräte über Protected-Mode-Adaptertreiber zuzugreifen, die dieselben Adapter steuern. Ein vierter Aspekt der Erfindung gibt die Erfassung und die Anpassung des Protected-Mode von Real-Mode-Funktionstreibern an, die zusätzlich zu den Real-Mode-Gerätetreibern vorgesehen sind.
  • Ein Computersystem, das sich zur Ausführung der bevorzugten Ausführungsform eignet, ist in 1 dargestellt. 1 ist ein Blockschaltbild eines Computersystems mit einem Computer 100, der mit Plattenlaufwerken 110 und Peripheriegeräten 120 verbunden ist. Der Computer 100 verfügt über einen internen Speicher 102, der ein Betriebssystem 210 speichert. Der Speicher 102 speichert zudem Real-Mode- und Protected-Mode-Gerätetreiber. Diese Treiber können Teil des Betriebssystems 210 oder vom Betriebssystem getrennt sein. Die Gerätetreiber laufen auf einer Zentralverarbeitungseinheit (CPU) 104, um den Zugriff auf die Geräte 110 und 120 zu steuern, wie es vom Betriebssystem 210 oder von einem Applikationsprogramm verlangt wird. Die Gerätetreiber beinhalten Plattentreiber und Datenträgertreiber, die die Plattenlaufwerke 110 über einen I/O-Controller 106 steuern. Die Gerätetreiber für die Platten gestatten einen Zugriff auf die physikalischen Platten und auf logische Datenträger auf Platten, die sich in den Plattenlaufwerken 110 befinden. Die Gerätetreiber enthalten zudem Adaptertreiber, die die Adapter 108 steuern, durch die auf die Peripheriegeräte 120 zugegriffen wird.
  • Der Speicher 102 speichert zudem Real-Mode- und Protected-Mode-Funktionstreiber, die von der CPU 104 ausgeführt werden, um funktionale Erweiterungen zu den Gerätetreibern, wie etwa Verschlüsselung und Datenkompression, hinzuzufügen.
  • Die Funktionsbeziehung zwischen den Geräten, den Gerätetreibern und den Funktionstreibern bei der bevorzugten Ausführungsform ist in 2 dargestellt. Das Betriebssystem 210 enthält Real-Mode- (RM-) Gerätetreiber 202 für die Peripheriegeräte 120. Das Betriebssystem 210 enthält zudem Protected-Mode- (PM-) Gerätetreiber 212, die dieselben Geräte steuern, wie die Real-Mode-Gerätetreiber 202. Bei der bevorzugten Ausführungsform enthält das Betriebssystem weiterhin Real-Mode-Funktionstreiber 204, die die Real-Mode-Gerätetreiber 202 ergänzen, und Protected-Mode-Funktionstreiber 214, die die Protected-Mode-Gerätetreiber 212 ergänzen. Die Funktionstreiber 204 können Teil der Gerätetreiber 202 sein. Bei der bevorzugten Ausführungsform besteht das Betriebssystem aus einer ausgeschmückten Version des Microsoft WINDOWS 3.1 Betriebsystems, das von der Microsoft Corporation aus Redmond, Washington vertrieben wird, ausgeführt auf einer Plattform des Microsoft MS-DOS 5.0 Betriebssystems, das ebenfalls von der Microsoft Corporation vertrieben wird. Der Microsoft MS-DOS-Betriebssystemteil des Betriebssystems 210 wird während der Boot-Zeit des Computers geladen. Der Microsoft WINDOWS-Betriebssystemabschnitt des Betriebssystems 210 wird anschließend geladen. Obwohl der MS-DOS-Betriebssystemabschnitt des Betriebssystems 210 in der Lage ist, nur im Real-Mode zu arbeiten, ist der Microsoft WINDOWS-Betriebssystemabschnitt des Betriebssystems 210 in der Lage, entweder im Real-Mode oder im Protected-Mode zu arbeiten.
  • Beim ersten Aspekt der Erfindung sorgt die bevorzugte Ausführungsform für eine Übereinstimmung bei der Zuordnung der Laufwerkseinheitsnummer für Festplatten durch die Real-Mode-Gerätetreiber 202 und die Protected-Mode-Gerätetreiber 212. Wird auf einen physikalischen Sektor einer Platte entweder durch die Real-Mode-Gerätetreiber 202 oder die Protected-Mode-Gerätetreiber 212 zugegriffen, muss den Real-Mode-Gerätetreibern 202 und den Protected-Mode-Gerätetreibern 212 die Laufwerkseinheitsnummer bekannt sein, um auf den Sektor der Platte zuzugreifen. Das Betriebssystem 210 enthält als Teil des MS-DOS-Betriebssystems ein Basic-Input/Output-Systemsoftwaremodul (BIOS). Das BIOS enthält einen Satz vordefinierter Funktionen, die von Betriebssystemen oder Applikationen aufgerufen werden können, um Aufgaben auszuführen. Die Funktionen werden durch Software-Interrupts aufgerufen. Einer dieser Interrupts ist der INT-13h-Interrupt ("h" steht für hexadezimal). Normalerweise verwendet ein Datenträgertreiber den INT-13h-Interrupt, um die Ausführung unterschiedlicher Operationen auf einer Platte anzufragen, die durch eine Laufwerkseinheitsnummer identifiziert ist. Die Laufwerkseinheitsnummer wird zum Zeitpunkt des Interrupts in ein Prozessorregister geladen.
  • Damit die Protected-Mode-Plattentreiber 310 (1) den Zugriff auf physikalische Platten 320 in einer Art steuern können, die mit den Real-Mode-Plattentreibern 300 kompatibel ist, müssen die Protected-Mode-Plattentreiber 310 dieselben Laufwerks-INT-13h-Einheitsnummern zuweisen, wie sie die Real-Mode-Plattentreiber 300 des physikalischen Platten 320 zuweisen. Das heißt, es muss beispielsweise die Laufwerkseinheitsnummer 0, die einer ersten Festplatte für einen Real-Mode-Plattentreiber 300 zugewiesen ist, ebenfalls durch den Protected-Mode-Plattentreiber 310 für die Festplatte zugewiesen werden, wie es in 3 gezeigt ist. Wenn die INT-13h-Laufwerkseinheitsnummer 0 bei einer Anfrage für einen Zugriff auf eine physikalische Platte über den Real-Mode-Plattentreiber 300 oder den Protected-Mode-Plattentreiber 310 festgelegt ist, wird auf dieselbe Platte 320 durch einen der Plattentreiber zugegriffen, der die Laufwerkseinheitsnummer 0 dem Plattentreiber 110 zugeordnet hat, den er steuert. Ebenso muss die ähnliche Parität der INT-13h-Einheitsnummernzuweisungen für den Rest der Festplatten 320 existieren. Dies wird nicht dadurch sichergestellt, dass lediglich die INT-13h-Laufwerkseinheitsnummern den Protected-Mode-Festplattentreibern 310 in der Reihenfolge zugeordnet werden, in der die Protected-Mode-Festplattentreiber 310 geladen werden, da die Protected-Mode-Festplattentreiber 310 nicht notwendigerweise in der selben Reihenfolge geladen werden, wie die Real-Mode-Festplattentreiber 300.
  • Um konsistente Laufwerkseinheitsnummern sicherzustellen, wie es oben erwähnt wurde, erzeugt die bevorzugte Ausführungsform zunächst eine Laufwerks tabelle 600, die im folgenden detaillierter unter Bezugnahme auf 6 erläutert wird. Die Laufwerkstabelle 600 weist die Laufwerkseinheitsnummer, die vom Real-Mode-Festplattentreiber 300 verwendet wird, einzigartigen Informationen zu, die auf der physikalischen Festplatte gespeichert sind, auf die durch diesen Real-Mode-Festplattentreiber 300 zugegriffen wird. Anschließend weisen die Protected-Mode-Festplattentreiber 310 die Laufwerkseinheitsnummern derselben physikalischen Festplatte 320 unter Verwendung der Treibertabelle zu. Jeder Protected-Mode-Plattentreiber liest einen gewählten Abschnitt der physikalischen Platte, um die einzigartigen Informationen zu erhalten, und extrahiert anschließend aus der Treibertabelle die Laufwrerkseinheitsnummer, die den einzigartigen Informationen zugeordnet ist, die von der physikalischen Festplatte gelesen werden. Anschließend wird die extrahierte Laufwerkseinheitsnummer der physikalischen Festplatte durch den Protected-Mode-Festplattentreiber zugeordnet.
  • 4 ist ein Flussdiagramm des Vorgangs, der die oben beschriebene Laufwerkstabelle erstellt, der im folgenden mit Laufwerkstabellen-Erstellungsvorgang bezeichnet wird. Der Laufwerkstabellen-Erstellungsvorgang kann als Software implementiert sein, die im Speicher 102 gespeichert ist und von der CPU 104 ausgeführt wird, wenn das Betriebssystem 210 geladen wird. In Schritt 405 initialisiert der Laufwerkstabellen-Erstellungsvorgang einen Festplattenzähler n auf 0, wobei sämtliche Prüfsummenkennzeichen (bzw. -flags)(die unten detaillierter beschrieben werden) in der Laufwerkstabelle ebenfalls auf 0 initialisiert werden. In Schritt 410 initiiert der Laufwerkstabellen-Erstellungsvorgang einen INT-13h-Interrupt für die CPU 104, um eine erste physikalische Festplatte 320 zu lesen. Der Laufwerkstabellen-Erstellungsvorgang stellt den Festplattenlaufwerks-Zählerwert n als die Laufwerkseinheitsnummer (zu Beginn 0), ein Wert der festlegt, dass eine Lesefunktion ausgeführt werden soll, und die Sektornummer des Sektors bereit, in dem der Master-Boot-Record auf der Platte gespeichert ist. In Schritt 415 ermittelt der Laufwerkstabellen-Erstellungsvorgang, ob der Master-Boot-Record, der in Schritt 410 gelesen wurde, ein Standardformat hat, das vom MS-DOS-Betriebssystem 200 verwendet wird. Ist dies der Fall, wird ein Ort auf der Festplatte vorgesehen, an dem eine einzigartige Signatur (die im folgenden erläutert wird) gespeichert werden kann. Der Laufwerkstabellen-Erstellungsvorgang ermittelt, dass der Master-Boot-Record ein Standardformat hat, wenn das Byte DAh des Master-Boot-Records einen Wert null enthält. Ermittelt der Laufwerkstabellen-Erstellungsvorgang in Schritt 415, dass der Master-Boot-Record, der in Schritt 410 gelesen wurde, ein Standardformat hat, schreitet die Steuerung zu Schritt 420 fort.
  • In Schritt 420 ermittelt der Laufwerkstabellen-Erstellungsvorgang, ob die Signatur, die an einem speziellen Ort der Master-Boot-Records gespeichert ist einen Wert ungleich null hat. 5 zeigt den Master-Boot-Record (MBR) bei Sektor 0 der physikalischen Festplatte, der in Schritt 410 gelesen wurde, und die darin befindliche Signatur. Die Signatur befindet sich bei aufeinander folgenden Bytes DCh und DDh des Sektors 0. Wenn der Laufwerkstabellen-Erstellungsvorgang in Schritt 420 ermittelt, dass die Signatur im Master-Boot-Record einen Wert ungleich null hat, schreitet der Vorgang zu Schritt 425 fort. In Schritt 425 wird die Signatur, die bei den Bytes DCh und DDh gespeichert ist, in einen Eintrag in einer Laufwerkstabelle geschrieben. 6 zeigt die Tabelle, in die die Signatur bei Schritt 425 geschrieben wird. In 6 enthält die Laufwerkstabelle 600 einen Laufwerkstabelleneintrag 610 für jedes Plattenlaufwerk 110. Der Laufwerkstabelleneintrag 610 enthält ein Laufwerkseinheitsnummernfeld 612, ein Signaturfeld 614, in das die Signatur bei Schritt 425 geschrieben wurde, und ein Prüfsummenkennzeichen 616. Die Steuerung schreitet anschließend zu Schritt 430 fort. Bei Schritt 430 wird die Laufwerkseinheitsnummer n in das Laufwerkseinheitsnummernfeld 612 desselben Laufwerkstabelleneintrags 610 geschrieben, bei dem die Signatur in das Signaturfeld 614 geschrieben wurde.
  • Wenn der Laufwerkstabellen-Erstellungsvorgang in Schritt 420 ermittelt, das die Signatur in den Bytes DCh und DDh des Master-Boot-Record 0 ist, zweigt die Steuerung zu Schritt 435 ab. In Schritt 435 ermittelt der Laufwerkstabellen-Erstellungsvorgang, ob die Festplatte, die dem Plattenlaufwerk 110 entspricht, schreibgeschützt ist. Ist dies der Fall, kann keine neue Signatur auf die Festplatte geschrieben werden. Ermittelt der Laufwerkstabellen-Erstellungsvorgang in Schritt 435, dass die Festplatte nicht schreibgeschützt ist, schreitet die Steuerung zu Schritt 440 fort. In Schritt 440 erzeugt der Laufwerkstabellen-Erstellungsvorgang eine neue einzigartige Signatur und schreibt die neue Signatur in Bytes DCh und DDh des Master-Boot-Records.
  • Wenn der Laufwerkstabellen-Erstellungsvorgang in Schritt 435 ermittelt, dass die Festplatte schreibgeschützt ist, oder wenn der Laufwerkstabellen-Erstellungsvorgang in Schritt 415 ermittelt, dass der Master-Boot-Record kein Standardformat hat, zweigt die Steuerung zu Schritt 445 ab. In Schritt 445 berechnet der Laufwerkstabellen-Erstellungsvorgang eine Prüfsumme der Inhalte des ersten Sektors der Festplatte, die in Schritt 410 gelesen wurde. Die Steuerung schreitet daraufhin zu Schritt 450 fort, bei dem der Laufwerkstabellen-Erstellungsvorgang die berechnete Prüfsumme in das Signaturfeld 614 (6) des Laufwerkstabelleneintrages 610 schreibt, der für das Plattenlaufwerk 110 vorgesehen ist. In Schritt 455 (4) wird ein Prüfsummenkennzeichen, das im Prüfsummenkennzeichenfeld 616 des Laufwerkstabelleneintrages 610 für die Festplatte 110 gespeichert ist (und auf 0 initialisiert ist) auf 1 gestellt. Die Steuerung schreitet daraufhin zu Schritt 430 fort, bei dem, wie es oben erläutert wurde, die Laufwerkseinheitsnummer n in die Laufwerkstabelle 610 geschrieben wird, die für das Plattenlaufwerk 110 vorgesehen ist. Anschließend wird in Schritt 465 der Festplattenlaufwerkszähler n erhöht. Die Steuerung schreitet daraufhin zu Schritt 470 fort, bei dem ermittelt wird, ob sämtliche Festplattenlaufwerke 110 verarbeitet wurden. Wenn nicht, kehrt der Laufwerkstabellen-Erstellungsvorgang zu Schritt 410 zurück. Wenn ja, endet der Laufwerkstabellen-Erstellungsvorgang.
  • Die Laufwerkstabelle 600, die vom Laufwerkstabellen-Erstellungsvorgang aus 4 erzeugt wurde, wird anschließend verwendet, um die korrekte Laufwerkseinheitsnummer zu ermitteln, die von jedem der Protected-Mode-Gerätetreiber 310 verwendet werden soll. 7 ist ein Flussdiagramm, der Vorgangs, durch den die Protected-Mode-Plattentreiber 310 die Laufwerkseinheitsnummern den physikalischen Festplatten zuweisen, der im folgenden als Laufwerkseinheitsnummern-Zuweisungsvorgang bezeichnet wird. Der Laufwerkseinheitsnummern-Zuweisungsvorgang kann als Software implementiert sein, die im Speicher 102 gespeichert ist und von der CPU 104 ausgeführt wird, wenn das Betriebssystem 210 geladen wird, während jeder Protected-Mode-Plattentreiber 310 geladen wird, und nachdem der Laufwerkstabellen-Erstellungsvorgang ausgeführt wurde.
  • In Schritt 700 des Laufwerkseinheitsnummern-Zuweisungsvorgangs wird ein Protected-Mode-Plattentreiber 310 geladen. Anschließend schreitet die Steuerung zu Schritt 705 fort. Daraufhin ermittelt der Vorgang, ob der Master-Boot-Record ein Standardformat hat oder nicht (Schritt 701). Hat der Master-Boot-Record kein Standardformat, wird eine Prüfsumme des Master-Boot-Record berechnet (Schritt 702). Die resultierende Prüfsumme wird als Index in die Treibertabelle verwendet, um eine Treibereintragstabelle aufzufinden. Wenn im Gegensatz dazu der Master-Boot-Record ein Standardformat hat, liest der Laufwerkseinheitsnummern-Zuweisungsvorgang die Signatur, die in den Bytes DCh und DDh des Master-Boot-Records der physikalischen Festplatte gespeichert ist (Schritt 705). Die Steuerung schreitet zu Schritt 710 fort. In Schritt 710 findet der Laufwerkseinheitsnummern-Zuweisungsvorgang den Laufwerkstabelleneintrag 610, der in seinem Signaturfeld 614 die Signatur hat, die in Schritt 705 gelesen wurde. Anschließend schreitet die Steuerung zu Schritt 715 fort. In Schritt 715 wird die Laufwerkseinheitsnummer, die im Laufwerkseinheitsnummernfeld 612 des Laufwerkstabelleneintrages 610 gespeichert ist, der in Schritt 710 gefunden wurde, extrahiert und die extrahierte Laufwerkseinheitsnummer der physikalischen Festplatte durch den geladenen Protected-Mode-Plattentreiber 310 zugewiesen. Anschließend schreitet die Steuerung zu Schritt fort, bei dem ermittelt wird, ob es weitere Protected-Mode-Plattentreiber 310 gibt, die geladen werden sollen. Sofern es weitere zu ladende Protected-Mode-Plattentreiber 310 gibt, kehr die Steuerung zu Schritt 700 zurück. Andernfalls endet die Routine. Als Ergebnis des oben beschriebenen Vorgangs weisen die Real-Mode-Plattentreiber 300 und die Protected-Mode-Plattentreiber 310, die dieselben Festplattenlaufwerke 110 steuern, dieselben Laufwerkseinheitsnummern denselben physikalischen Festplatten zu.
  • Es wird nun der zweite Aspekt der Erfindung erläutert. Beim zweiten Aspekt der Erfindung erzeugt die bevorzugte Ausführungsform eine Übereinstimmung zwischen den Datenträgereinheitsnummern für logische Datenträger, die von den Real-Mode-Gerätetreibern 202 und den Protected-Mode-Gerätetreibern 212 verwendet werden. Ein logischer Datenträger ist ein vollständiges oder ein Teil des unveränderlichen Speichermediums, wie etwa einer Platte oder eines Bandes. Jeder logische Datenträger enthält ein eigenständiges Dateisystem, das wenigstens ein Verzeichnis mit null oder mehr Dateien enthält und sämtliche Infor mationen beinhaltet, die erforderlich sind, um diese Dateien und Verzeichnisse zu finden. Das Betriebssystem 210 und die Applikationsprogramme beziehen sich auf einen logischen Datenträger mit einem logischen Laufwerksbuchstaben, wie etwa "A:", "B:", wenn eine Datei oder ein Verzeichnis bestimmt werden soll, die auf diesem gespeichert sind. Wenngleich in vielen Fällen logische Datenträger einem Plattenlaufwerk 110 entsprechen, kann eine Platte mehr als einen logischen Datenträger enthalten. Wenn auf einen logischen Datenträger entweder durch Real-Mode-Gerätetreiber 202 oder durch Protected-Mode-Gerätetreiber 212 zugegriffen wird, muss die Datenträgereinheitsnummer (die einem logischen Laufwerksbuchstaben entspricht) bekannt sein, um auf den im einzelnen gewünschte Datenträger zugreifen zu können. Das BIOS-Modul, das oben beschrieben wurde, stellt eine INT-25h-Interrupt-Handhabungseinrichtung bereit, durch die ein Betriebssystem oder ein Applikationsprogramm die Ausführung einer LESEN-Funktion für den logischen Datenträger anfragt, die einen speziellen logischen Datenträger auf einer Platte liest. Das BIOS-Modul stellt zudem eine INT-26h-Interrupt-Handhabungseinrichtung bereit, durch die ein Betriebssystem oder ein Applikationsprogramm eine logische SCHREIBEN-Funktion für den logischen Datenträger anfragt, die einen speziellen Datenträger auf der Festplatte beschreibt. Wenn INT-25h-LESEN oder INT-26h-SCHREIBEN angefragt werden, muss die Datenträgereinheitsnummer festgelegt werden, um festzulegen ob der spezifische logische Datenträger gelesen oder beschrieben werden soll.
  • Wie die Laufwerkseinheitsnummern, die oben erläutert wurden, werden die Datenträgereinheitsnummern den logischen Datenträgern durch Real-Mode-Gerätetreiber 202 zugeordnet, die den Zugriff auf die logischen Datenträger (Real-Mode-Datenträgertreiber) in einer Reihenfolge steuern, die durch das Betriebssystem (wie etwa das MS-DOS-Betriebssystem von der Microsoft Corporation) festgelegt wird. Wenn das Betriebssystem 210 anschließend geladen wird, werden Protected-Mode-Datenträgertreiber geladen, die die Datenträgereinheitsnummern denselben logischen Datenträgern zuordnen, die die Protected-Mode-Datenträgertreiber steuern. Ein Blockschaltbild, das diese Beziehung darstellt, ist in 8 gezeigt. Damit die Protected-Mode-Datenträgertreiber 810, die in 8 dargestellt sind, mit den Real-Mode-Datenträgertreibern 800 kompatibel sind, müssen die Protected-Mode-Datenträgertreiber 810 dieselben Datenträgerein heitsnummern wie die Real-Mode-Datenträgertreiber 800 zuordnen, die denselben logischen Datenträgern 830 zugeordnet sind. Somit wird, wie es in 8 gezeigt ist, eine Datenträgereinheitsnummer 0 einem ersten logischen Datenträger durch den Real-Mode-Datenträgertreiber 800 und den Protected-Mode-Datenträgertreiber 810 zugeordnet, die auf den ersten logischen Datenträger zugreifen. Die Datenträgereinheitsnummer 1 wird durch den Real-Mode-Datenträgertreiber 800 und den Protected-Mode-Datenträgertreiber 810 zugewiesen, die auf den nächsten logischen Datenträger zugreifen, und jedem nachfolgenden logischen Datenträger wird eine Datenträgereinheitszahl eines sequentiell größeren Wertes zugeordnet, bis die letzte Datenträgereinheitsnummer n zugeordnet worden ist.
  • Um eine konsistente Zuweisung der oben beschriebenen Datenträgereinheitsnummern zu erreichen, erzeugt die bevorzugte Ausführungsform zunächst eine Datenträgertabelle 1100, was im folgenden unter Bezugnahme auf 11 detaillierter erläutert wird. Die Datenträgertabelle weist der Datenträgereinheitsnummer, die durch jeden Real-Mode-Datenträgertreiber 800 zugeordnet wurde, eine einzigartige serielle Nummer zu, die im logischen Datenträger 830 gespeichert ist, auf den durch diesen Real-Mode-Datenträgertreiber 800 zugegriffen wird. Die Protected-Mode-Datenträgertreiber 810 weisen dieselben Datenträgereinheitsnummern demselben logischen Datenträger 830 unter Verwendung der Datenträgertabelle zu. Jeder Protected-Mode-Datenträgertreiber liest die einzigartige serielle Nummer aus dem logischen Datenträger 830 über den Protected-Mode-Datenträgertreiber und extrahiert aus der Datenträgertabelle die Datenträgereinheitsnummer, die der einzigartigen seriellen Nummer zugeordnet ist, die vom logischen Datenträger gelesen wird.
  • 9 ist ein Flussdiagramm eines Vorgangs, der die oben beschriebene Datenträgertabelle erstellt und im folgenden Datenträgertabellen-Erstellungsvorgang genannt wird. Der Datenträgertabellen-Erstellungsvorgang kann als Software implementiert sein, die im Speicher 102 gespeichert ist und von der CPU 104 ausgeführt, wenn das Betriebssystem 210 geladen wird. In Schritt 900 initialisiert der Datenträgertabellen-Erstellungsvorgang einen logischen Datenträgerzähler m auf null, der im folgenden detaillierter beschrieben wird. Anschließend schreitet die Steuerung zu Schritt 910 fort. In Schritt 910 initiiert der Datenträgertabellen-Erstellungsvorgang eine INT-25h-Interrupt. Der logische Datenträgerzähler m wird als Datenträgereinheitsnummer festgelegt. Der Datenträgertabellen-Erstellungsvorgang legt zudem den logischen Sektor des logischen Datenträgers, der den Datenträger-Boot-Record speichert, als Interrupt-Parameter fest. Der INT-25h bewirkt, dass ein logisches LESEN ausgeführt wird. Das logische LESEN liest den gekennzeichnet logischen Sektor, der über den festgelegten Datenträger-Boot-Record verfügt. Dieser logische Sektor enthält eine einzigartige serielle Nummer, die an einem vorbestimmten Ort im Datenträger-Boot-Record gespeichert ist. Den Ort des Datenträger-Boot-Records und die darin gespeicherte serielle Nummer erhält man, wie es in 10 gezeigt ist. In 10 enthält der Master-Boot-Record (MBR) der Platte, auf der sich der logische Datenträger befindet, einen Verweis zu einem Partitions-Boot-Record (PBR). Der Partitions-Boot-Record enthält einen Verweis zu einem ersten (VBR), der eine serielle Nummer speichert, die einzigartig einen ersten logischen Datenträger identifiziert. Befinden sich zusätzliche logische Datenträger im Computersystem, enthält der Partitions-Boot-Record einen Verweis zu einem zweiten Partitions-Boot-Record, wie es dargestellt ist. Der zweite Partitions-Boot-Record enthält einen Verweis zum zweiten Datenträger-Boot-Record, der eine andere serielle Nummer enthält, die einzigartig den zweiten Datenträger identifiziert. Zusätzliche logische Datenträger sind in derselben Art und Weise dargestellt.
  • Die Steuerung schreitet anschließend zu Schritt 920 fort. In Schritt 920 schreibt der Datenträgertabellen-Erstellungsvorgang die serielle Nummer, die er im Datenträger-Boot-Record erhalten hat, in eine Datenträgertabelle 1100, die in 11 gezeigt ist. Die Datenträgertabelle 1100 enthält einen Datenträgertabelleneintrag 1110 für jeden logischen Datenträger, der Bestandteil des Computersystems ist. Jeder Datenträgertabelleneintrag 1110 enthält ein Datenträgereinheitsnummernfeld 1112 und ein Seriellnummernfeld 1114. Der Datenträgertabellen-Erstellungsvorgang schreibt die serielle Nummer in das Seriellnummernfeld 1114 des Datenträgertabelleneintrages 1110, der für den logischen Datenträger vorgesehen ist, der vom Real-Mode-Datenträgertreiber 800 gesteuert wird, dem die Datenträgereinheitsnummer m zugeordnet ist. Die Steuerung schreitet anschließend zu Schritt 930 fort. In Schritt 930 schreibt der Datenträgertabellen- Erstellungsvorgang die Datenträgereinheitsnummer min das Datenträgereinheitsnummernfeld 1112 des Datenträgertabelleneintrages 1110, in den die serielle Nummer bei Schritt 920 geschrieben wurde. Die Steuerung schreitet anschließend zu Schritt 940 fort, bei dem der Datenträgerzähler m erhöht wird. Anschließend wird in Schritt 950 ermittelt, ob sämtliche der logischen Datenträger verarbeitet wurden. Wenn nicht, kehrt die Steuerung zu Schritt 900 zurück. Wenn ja, endet der Datenträgertabellen-Erstellungsvorgang.
  • Die erhaltenen Datenträgereinheitsnummern werden anschließend dem korrekten logischen Datenträger zugeordnet. Ein Flussdiagramm des Vorgangs, durch den die Datenträgereinheitsnummern zugewiesen werden und der im folgenden Datenträgereinheitsnummern-Zuweisungsvorgang genannt wird, ist in 12 dargestellt. Der Datenträgereinheitsnummern-Zuweisungsvorgang, der in 12 dargestellt ist, kann als Software implementiert sein, die im Speicher 102 gespeichert ist und von der CPU 104 ausgeführt wird, wenn das Betriebssystem 210 geladen wird. In Schritt 1200 des Datenträgereinheitsnummern-Zuweisungsvorgangs wird ein Protected-Mode-Datenträgertreiber 810 geladen. Die Steuerung schreitet anschließend zu Schritt 1202 fort. In Schritt 1202 liest der Datenträgereinheitsnummern-Zuweisungsvorgang die serielle Nummer (durch Folgen des Pfades vom Master-Boot-Record zum Partitions-Boot-Record zum Datenträger-Boot-Record) aus dem Datenträger-Boot-Record des logischen Datenträgers. Anschließend schreitet die Steuerung zu Schritt 1204 fort. In Schritt 1204 lokalisiert der Datenträgereinheitsnummern-Zuweisungsvorgang den Da- tenträgertabelleneintrag 1110 in der Datenträgertabelle 1100, die die serielle Nummer enthält, die in Schritt 1202 gelesen wurde. In Schritt 1206 wird die Datenträgereinheitsnummer, die im Datenträgereinheitsnummernfeld 1112 des Datenträgertabelleneintrages 1110 gespeichert ist, den man in Schritt 1204 erhalten hat, dem logischen Datenträger durch den geladenen Protected-Mode-Datenträgertreiber 810 zugewiesen. In Schritt 1208 ermittelt der Datenträgereinheitsnummern-Zuweisungsvorgang, ob es weitere Datenträger-Boot-Records (VBR) gibt, die verarbeitet werden sollen. Ist dies der Fall, kehrt die Steuerung zu Schritt 1200 zurück. Andernfalls endet der Datenträgereinheitsnummern-Zuweisungsvorgang. Infolgedessen benutzen die Real-Mode-Datenträgertreiber 800 und die Protected-Mode-Datenträgertreiber 810 dieselben Laufwerkseinheitsnummern für die Datenträger, auf die sie zugreifen.
  • Es wird nun der dritte Aspekt der Erfindung beschrieben. Beim dritten Aspekt der Erfindung erzeugt die bevorzugte Ausführungsform eine Übereinstimmung zwischen den Adapternummern für die Adapter 108 (1). Diese Adapternummern werden von den Real-Mode-Gerätetreibern 202 und den Protected-Modegerätetreibern 212 verwendet, um die Adapter zu steuern und so auf die Peripheriegeräte 120 zuzugreifen, die mit diesen verbunden sind. Beispielsweise sind die Adapter 108 SCSI-Adapter, und das MS-DOS-Betriebssystem stellt Real-Mode-SCSI-Adaptertreiber bereit. Die SCSI-Adaptertreiber beinhalten beispielsweise ASPI- (Advanced SCSI Programming Interface) und CAM- (Common Access Method) Treiber. Wird das Betriebssystem 210 anschließend geladen, werden Protected-Mode-Adaptertreiber bereitgestellt, die dieselben Adapter 108 steuern, wie die Real-Mode-Adaptertreiber.
  • Es ist ein Blockschaltbild in 13 dargestellt, das die Beziehung zwischen den Adaptertreibern und den Adaptern 108 darstellt, die oben beschrieben wurden. Damit die Protected-Mode-Adaptertreiber 1310, die in 13 dargestellt sind, die Adapter 108 in einer Art und Weise steuern, die mit den Real-Mode-Adaptertreibern 1300 kompatibel ist, die die Adapter 108 steuern, müssen dieselben Adapternummern durch die Protected-Mode-Adaptertreiber 1310 zugewiesen werden, die die Real-Mode-Adaptertreiber 1300 denselben Adaptern 108 zuordnen. Die Adapternummern werden von den Real-Mode-Adaptertreibern 1300 in einer Reihenfolge zugeordnet. Wenn sie beispielsweise durch das MS-DOS-Betriebssystem geladen werden, werden die Adapternummern in der Reihenfolge zugeordnet, in der die Real-Mode-Adaptertreiber 1300 geladen werden. Das Betriebssystem muss jedoch die Protected-Mode-Adaptertreiber 1310 nicht unbedingt in derselben Reihenfolge wie die entsprechenden Real-Mode-Adaptertreiber 1300 laden. Somit kann nicht sichergestellt werden, dass dieselben Adapternummern den Real-Mode-Adaptertreibern 1300 und den Protected-Mode-Adaptertreibern 1310 zugewiesen werden, die dieselben Adapter 108 steuern.
  • Darüber hinaus können einige Applikationsprogramme die Verwendung von Real-Mode-Adaptertreibern 1300 verlangen, selbst wenn Protected-Mode-Adaptertreiber vorhanden sind. Eine weitere Schwierigkeit besteht darin, dass eine Schnittstellen-Abbildungseinrichtung 1320 vorahnden sein kann, die Anfragen nach einem Zugriff auf Peripheriegeräte über einen Real-Mode-Adaptertreiber 1300 eines Schnittstellentyps (wie etwa ASPI) einem Real-Mode-Adaptertreiber 1300 eines anderen Schnittstellentyps (wie etwa CAM) abbildet. Somit müssen Anfragen der Applikationsprogramme, auf die Real-Mode-Adaptertreiber zuzugreifen, auf die Protected-Mode-Adaptertreiber 1310 abgebildet werden, die dieselben Adapter 108 steuern. Weiterhin müssen Anfragen, um auf Real-Mode-Adaptertreiber 1300 zuzugreifen, die durch eine Schnittstellen-Abbildungseinrichtung 1320 auf einen Bestimmungs-Real-Mode-Adaptertreiber 1300 abgebildet werden, ebenfalls auf einen Protected-Mode-Adaptertreiber 1310 abgebildet werden, der dem Bestimmungs-Real-Mude-Adaptertreiber 1300 entspricht.
  • Um eine konsistente Zuweisung von Adapternummern und eine Abbildung der Anfragen auf den korrekten Protected-Mode-Adaptertreiber 1310 zu erzeugen, erstellt die bevorzugte Ausführungsform zunächst für jeden Adapter 108 eine Real-Mode-Datenstruktur 1500, die im folgenden detaillierter unter Bezugnahme auf 15 erläutert wird. Die Real-Mode-Datenstruktur weist der Adapternummer, die durch einen Real-Mode-Adaptertreiber 1330 dem Adapter 108 zugeordnet wird, den der Real-Mode-Adaptertreiber steuert, Peripherieinformationen zu, die man aus jedem Peripheriegerät 120 erhält, das mit demselben Adapter 108 verbunden ist. Wenn eine Schnittstellen-Abbildungseinrichtung 1320 vorhanden ist, weist die Real-Mode-Datenstruktur zudem der Adapternummer und den Peripherieinformationen einen Schnittstellentyp zu. Der Schnittstellentyp definiert den Typ der Schnittstelle des Bestimmungs-Real-Mode-Adaptertreibers 1300, auf den Anfragen auf den Real-Mode-Adaptertreiber 1300 durch die Schnittstellen-Abbildungseinrichtung 1320 abgebildet werden.
  • Wenn die Protected-Mode-Adaptertreiber 1310 anschließend geladen werden, wird ein Datensteuerblock 1800 für jedes Peripheriegerät 120 erzeugt, das mit einem Adapter verbunden ist. Der Datensteuerblock 1800 wird im folgenden unter Bezugnahme auf 18 detaillierter beschrieben. Der Datensteuerblock enthält Peripherieinformationen, die man aus jedem Peripheriegerät 120 über den Adapter 108 erhält, der vom Protected-Mode-Adaptertreiber 1310 gesteuert wird.
  • Die Peripherieinformationen in jedem Datensteuerblock werden anschließend mit den Peripherieinformationen verglichen, die in den Real-Mode-Datenstrukturen 1500 gespeichert sind. Sind die Peripherieinformationen dieselben, wird die Adapternummer aus der Real-Mode-Datenstruktur 1500 extrahiert. Die extrahierte Adapternummer wird dem Adapter 108, der mit dem Peripheriegerät 120 verbunden ist, für das der Datensteuerblock vorgesehen ist, durch en Protected-Mode-Adaptertreiber 1310 zugeordnet, der den Adapter 108 steuert.
  • Für den Fall, dass eine Schnittstellen-Abbildungseinrichtung 1320 vorhanden ist, können die Peripherieinformationen in mehr als einer Real-Mode-Datenstruktur mit den Peripherieinformationen im Datensteuerblock 1800 übereinstimmen. In diesem Fall wird die Adapternummer, die dem Bestimmungs-Real-Mode-Adaptertreiber 1300 entspricht, dem Adapter 108, der mit dem Peripheriegerät 120 entsprechend dem Datensteuerblock verbunden ist, durch den Protected-Mode-Adaptertreiber zugeordnet, der diesen Adapter 108 steuert. Diese Adapternummer erhält man aus der Real-Mode-Datenstruktur, die die Adapternummer einem Schnittstellentyp zuordnet (d.h. dem Schnittstellentyp des Bestimmungs-Real-Mode-Adaptertreibers 1300).
  • Ein Flussdiagramm des Vorgangs, der die oben beschriebenen Real-Mode-Datenstrukturen erzeugt und im folgenden als Real-Mode-Datenstruktur-Erstellungsvorgang (RMD-Ersiellungsvorgang) bezeichnet wird, ist in 14 dargestellt. Der RMD-Erstellungsvorgang kann als Software implementiert sein, die im Speicher 102 gespeichert ist und von der CPU 104 ausgeführt wird. In Schritt 1400 initialisiert der RMD-Erstellungsvorgang den Schnittstellentyp, den Adapterzähler, den Peripheriezähler und die Real-Mode-Datenstruktur (die allesamt im folgenden detaillierter beschrieben werden). In Schritt 1402 erzeugt der RMD-Erstellungsvorgang einen SCSI-Abfragebefehl über den Real-Mode-Adaptertreiber 1300, dem die Adapternummer, die durch den Adapterzähler angezeigt wird (zu Beginn 0), zugeordnet ist. Der SCSI-Abfragebefehl bezieht Peripherieinformationen von der Peripherievorrichtung 120, die durch den Peripherieeinheitszähler (zu Beginn 0 für jeden Adapter) gekennzeichnet ist. Anschließend speichert der RMD- Erstellungsvorgang in Schritt 1404 die Peripherieinformationen und die Adapternummer zusammen in einem Einheitsspezifikationselement, das dem Peripheriegerät 120 entspricht und der Real-Mode-Datenstruktur zugeordnet ist, die dem Adapter 108 entspricht.
  • Die Real-Mode-Datenstruktur und das Einheitsspezifikationselement sind im Detail in 15 dargestellt. Jede RMD 1500 enthält einen Nächst-RMD-Verweis 502 und einen Einheitsverweis 1504. Der Nächst-RMD-Verweis 1502 verweist auf eine nächste RMD entsprechend einem nächsten Real-Mode-Adaptertreiber 1300. Der nächste Real-Mode-Adaptertreiber 1300 ist der Adaptertreiber, der als nächstes nach dem Real-Mode-Adaptertreiber 1330 geladen wurde, dem die RMD 1500 entspricht. Der Einheitsverweis 1504 verweist auf ein erstes Einheitsspezifikationselement 1510, das ein Peripheriedatenfeld 1512 und einen Einheitsverweis 1514 hat. Der Einheitsverweis 1514 verweist auf ein nächstes Einheitsverweiselement 1510 entsprechend einem nächsten Peripheriegerät 120, das mit dem Adapter 108 verbunden ist, der der RMD 1500 entspricht. Die spezifischen Inhalte des Peripheriedatenfeldes 1512 sind in 16 dargestellt. Das Peripheriedatenfeld 1512 enthält Peripherieinformationen 1600, die eine Ziel-ID 1602, eine logische Einheitsnummer 1604 und eine Prüfsumme 1606 beinhalten, die aus dem Peripheriegerät 120 bezogen wird, dem das Einheitsspezifikationselement 1510 entspricht. Das Peripheriedatenfeld 1512 enthält weiterhin einen Schnittstellentyp 1610 und eine Adapternummer 1620, die dem Adapter 108 entspricht, dem die RMD 1500 entspricht.
  • Nachdem die Peripherieinformationen bei Schritt 1404 des RMD-Erstellungsvorgangs gespeichert wurden, schreitet die Steuerung zu Schritt 1406 fort. In Schritt 1406 ermittelt der RMD-Erstellungsvorgang, ob ein Real-Mode-Adaptertreiber 1300 beim Ausführen des SCSI-Abfragebefehls aufgerufen wurde, der sich vom Schnittstellentyp, der zuvor festgelegt wurde, unterscheidet. Beispielsweise ist der Schnittstellentyp zu Beginn auf ASPI eingestellt, so dass der SCSI-Abfragebefehl zunächst über sämtliche Real-Mode-Adaptertreiber 1300 bereitgestellt ist, die ASPI-Treiber sind. In eine derartigen Fall ermittelt der RMD-Erstellungsvorgang zu Beginn in Schritt 1406, ob ein Real-Mode-Adaptertreiber 1300 mit einem anderen Schnittstellentyp als ASPI aufgerufen wurden. Ein Real- Mode-Adaptertreiber 1300 mit einem anderen Schnittstellentyp wird immer dann aufgerufen, wenn eine Schnittstellen-Abbildungseinrichtung 1320 vorhanden ist, die Anfragen an einen Real-Mode-Adaptertreiber 1300 auf einen anderen Bestimmungs-Real-Mode-Adaptertreiber 1300 abbildet. Wenn in Schritt 1406 der RMD-Erstellungsvorgang ermittelt, dass ein andere Schnittstellentyp aufgerufen wurde, zweigt die Steuerung zu Schritt 1408 ab. Bei Schritt 1408 speichert der RMD-Erstellungsvorgang den Schnittstellentyp des Bestimmungs-Real-Mode-Adaptertreibers 1300 als Schnittstellentyp 1610 im Peripheriedatenfeld 1512 der RMD 1500, wobei die Nullwerte ersetzt werden, die zu Beginn im Peripheriedatenfeld 1512 gespeichert wurden. Die RMD 1500, in die der Schnittstelletyp gespeichert wird, entspricht dem Real-Mode-Adaptertreiber 1300, dem die Adapternummer zugeordnet ist, die durch den Adapterzähler dargestellt ist.
  • Wenn in Schritt 1406 der RMD-Erstellungsvorgang ermittelt, dass ein anderer Schnittstellentyp nicht aufgerufen ist, schreitet die Steuerung zu Schritt 1410 fort. Die Steuerung schreitet auch zu 1410 fort, nachdem 1408 ausgeführt wurde. In Schritt 1410 wird der Peripheriezähler erhöht und das nächste Einheitsspezifikationselement 1510 bezogen. Die Steuerung schreitet zu Schritt 1412 fort. In Schritt 1412 ermittelt der RMD-Erstellungsvorgang, ob sämtliche Peripheriegeräte 120, die mit dem Adapter 108 verbunden sind, verarbeitet wurden. Ist dies der Fall, kehrt die Steuerung zu Schritt 1402 zurück. Wenn nein, zweigt die Steuerung zu Schritt 1414 ab, bei dem der Adapterzähler erhöht wird.
  • Die Steuerung schreitet anschließend zu Schritt 1416 fort, bei dem der Peripheriezähler auf 0 zurückgesetzt wird und die nächste RMD bezogen wird. In Schritt 1418 ermittelt der RMD-Erstellungsvorgang, ob alle Adapter 108 verarbeitet wurden. Ist dies der Fall endet der RMD-Erstellungsvorgang. Wenn nicht, zweigt die Steuerung zu Schritt 1420 ab, bei dem die RMD-Erstellungsvorgangroutine ermittelt, ob der Schnittstellentyp des letzten Real-Mode-Adaptertreiber 1300 ASPI ist. Ist dies der Fall, ermittelt die RMD-Erstellungsvorgangroutine in Schritt 1422, ob sämtliche der ASPI-Treiber verarbeitet wurden. Wenn nicht, kehrt die Steuerung zu Schritt 1402 zurück. Wenn ja, schreitet die Steuerung zu Schritt 1424 fort, bei dem der Schnittstellentyp auf CAM eingestellt wird. Anschließend kehrt die Steuerung zu Schritt 1402 zurück. Wenn in Schritt 1420 der RMD-Erstellungsvorgang ermittelt, dass der Schnittstelentyp nicht ASPI ist, zweigt die Steuerung zu Schritt 1426 ab, bei dem der RMD-Erstellungsvorgang ermittelt, ob der Schnittstellentyp des letzten Real-Mode-Adaptertreibers 1300 CAM. Ist dies der Fall, schreitet die Steuerung zu Schritt 1426 fort, bei dem der RMD-Erstellungsvorgang ermittelt, ob sämtliche CAM-Treiber bearbeitet wurden. Wenn nicht, kehrt die Steuerung zu Schritt 1402 zurück. Wenn ja, schreitet die Steuerung zu Schritt 1430 fort, bei dem der Schnittstellentyp auf INT 4B eingestellt wird. Anschließend kehrt die Steuerung zu Schritt 1402 zurück.
  • Der Vorgang, der die Gerätesteuerblöcke erzeugt und im folgenden als Gerä testeuerblock- (DCB-) Erstellungsvorgang bezeichnet wird, ist in 17 dargestellt. Der DCB-Erstellungsvorgang kann als Software implementiert sein, die im Speicher 102 gespeichert ist und von der CPU 104 ausgeführt wird, wenn das Betriebssystem 210 geladen wird. In Schritt 1700 lädt der DCB-Erstellungsvorgang einen Protected-Mode-Adaptertreiber 1310. Die Steuerung. schreitet anschließend zu Schritt 1705 fort. In Schritt 1705 tastet der DCB-Erstellungsvorgang die Peripherieinformationen über den geladenen Protected-Mode-Treiber 1310 von einem Peripheriegerät 120 ab, das mit dem Adapter 108 verbunden ist, der vom geladenen Protected-Mode-Adaptertreiber 1310 gesteuert wird. Anschließend schreitet die Steuerung zu Schritt 1710 fort. In Schritt 1710 speichert der DCB-Erstellungsvorgang die Peripherieinformationen, die in Schritt 1705 abgetastet wurden, in einem Gerätesteuerblock (DCB), der dem geladenen Protected-Mode-Adaptertreiber 1310 entspricht. Der Gerätesteuerblock (DCB), in den die Peripherieinformationen gespeichert werden, ist in 18 dargestellt. Wie in 18 gezeigt, enthält der Gerätesteuerblock 1800 eine Ziel-ID 1802, die das Peripheriegerät identifiziert, eine logische Einheitsnummer 1804 und eine Prüfsumme auf der Basis der Peripherieinformationen, die aus dem Peripheriegerät 120 abgetastet wurden, das mit dem Adapter verbunden ist, der vom geladenen Protected-Mode-Adaptertreiber 1310 gesteuert wird.
  • Anschließend schreitet die Steuerung zu Schritt 1715 fort. In Schritt 1715 ermittelt der DCB-Erstellungsvorgang, ob zusätzliche Peripheriegeräte 120 mit dem Adapter 108 verbunden sind, der vom geladenen Protected-Mode-Adaptertreiber 1310 gesteuert wird. Ist dies der Fall, kehrt die Steuerung zu Schritt 1700 zurück. An dernfalls schreitet die Steuerung zu Schritt 1720 fort, bei dem der DCB-Erstellungsvorgang ermittelt, ob zusätzliche Protected-Mode-Adaptertreiber geladen werden sollen. Wenn die DCB-Erstellungsvorgangsroutine in Schritt 1720 ermittelt, dass zusätzliche Protected-Mode-Adaptertreiber 1310 zu laden sind, kehrt die Steuerung zu Schritt 1700 zurück. Andernfalls endet der DCB-Erstellungsvorgang.
  • Ein Flussdiagramm des Vorgangs, der die Adapternummern der Protected-Mode-Adaptertreiber 1310 zuweist und hier als Adapternummern-Zuweisungsvorgang bezeichnet wird, ist in 19 gezeigt. Der Adapternummern-Zuweisungsvorgang kann als Software implementiert sein, die im Speicher 102 gespeichert ist und von der CPU 104 ausgeführt wird. IN Schritt 1900 initialisiert der Adapternummern-Zuweisungsvorgang die DCB 1800, die RMD 1500 und die Einheitsspezifikationselemente 1510, was im folgenden erläutert wird. In Schritt 1902 wird ein "Übereinstimmungs"-Zähler zunächst auf 0 gestellt, was ebenfalls erläutert wird. In Schritt 1904 werden die Peripherieinformationen, die in einem Einheitsspezifikationselement 1510 einer RMD 1500 gespeichert sind, mit den Peripherieinformationen verglichen, die in einem DCB 1800 gespeichert sind. Anschließend schreitet die Steuerung zu Schritt 1906 fort. In Schritt 1906 ermittelt der Adapternummern-Zuweisungsvorgang, ob die Peripherieinformationen im Einheitsspezifikationselement 1510 dieselben sind, wie die Peripherieinformationen im DCB 1800.
  • Wird in Schritt 1906 ermittelt, dass die Peripherieinformationen übereinstimmen, schreitet die Steuerung zu Schritt 1908 fort. In Schritt 1908 wird der Übereinstimmungszähler erhöht. Anschließend schreitet die Steuerung zu Schritt 1910 fort, in dem ein Bestimmungskennzeichen, das durch den Wert des Übereinstimmungszählers indiziert wird, zu Beginn auf nicht zutreffend eingestellt wird. Die Steuerung schreitet anschließend zu Schritt 1912 fort. In Schritt 1912 wird die Adapternummer, die im Einheitsspezifikationselement 1510 gespeichert ist, einer "Treiber"-Variablen zugeordnet, die durch den Wert des Übereinstimmungszählers indiziert ist. Die Treibervariable enthält vorübergehend die Adapterzahl des Protected-Mode-Adaptertreibers 1310, der dem DCB 1800 entspricht. Anschließend schreitet die Steuerung zu Schritt 1914 fort. In Schritt 1914 wird ermittelt, ob ein Schnitt stellentyp 1610 (ein Nicht-Null-Wert) im Peripheriedatenfeld 1512 des Einheitsspezifikationselementes 15010 gespeichert ist. Der Schnittstellentyp 1610 ist zu Beginn ein Nullwert und wird auf einen Schnittstellentyp nur dann eingestellt, wenn er in Schritt 1408 des RMD-Erstellungsvorgangs in Fig. gespeichert wird. Schritt 1408 wird nur dann ausgeführt, wenn eine Schnittstellen-Abbildungseinrichtung 1320 vorgesehen ist, die eine Anfrage an einen Real-Mode-Adaptertreiber 1300 auf einen anderen Bestimmungs-Real-Mode-Adaptertreiber 1300 abbildet. Wenn in Schritt 1914 ermittelt wird, dass ein Nicht-Nullwert als Schnitstellentyp 1610 im Peripheriedatenfeld 1512 des Einheitsspezifikationselementes 1510 gespeichert ist, schreitet die Steuerung zu Schritt 1916 fort. In Schritt 1916 wird das Bestimmungskennzeichen, das durch den Wert des Übereinstimmungszählers indiziert ist, auf zutreffend eingestellt.
  • Die Steuerung schreitet anschließend zu Schritt 1922 fort, bei dem der Adapternummern-Zuweisungsvorgang ermittelt, ob zusätzliche Einheitsspezifikationselemente 1510 der RMD 1500 entsprechen. Ist dies der Fall, schreitet die Steue- rung zu Schritt 1924 fort, bei dem das nächste Einheitsspezifikationselement 1510 bezogen wird, worauf die Steuerung zu Schritt 1902 zurückkehrt. Andernfalls zweigt die Steuerung zu Schritt 1926 ab, bei dem ermittelt wird, ob es zusätzliche RMD 1500 gibt. Ist dies der Fall, wird die nächste RMD 1500 bezogen und die Steuerung kehrt zu Schritt 1902 zurück. Andernfalls zweigt die Steuerung zu Schritt 1930 ab. Bei Schritt 1930 wird die Adapterzahl der übereinstimmenden RMD dem Adapter 108 für den Protected-Mode-Adaptertreiber 1310 zugeordnet, der dem DCB entspricht, der mit dieser RMD übereinstimmt. Wenn mehr als eine RMD mit dem DCB übereinstimmen, wird die Adapternummer, die in der RMD gespeichert ist, die einem Schnittstellentyp (jenem des Bestimmungs-Real-Mode-Adaptertreibers) zugeordnet ist, durch den Protected-Mode-Adaptertreiber 1310 zugeordnet. Diese Zuordnung kann durch den folgenden Pseudocode dargestellt werden:
  • Figure 00260001
  • Figure 00270001
  • Die Steuerung schreitet anschließend zu Schritt 1932 fort, bei dem ermittelt wird, ob es zusätzliche DCB gibt, die verarbeitet werden sollen. Ist dies der Fall, schreitet die Steuerung zu Schritt 1934 fort, bei dem der nächste DCB bezogen wird, worauf die Steuerung zu Schritt 1902 zurückkehrt. Wenn nicht, endet die Routine.
  • Bei einem vierten Aspekt der. Erfindung nimmt die bevorzugte Ausführungsform eine Protected-Mode-Anpassung der Real-Mode-Funktionstreiber 204 vor, die bereitgestellt wurden. Beim vierten Aspekt der Erfindung erfasst die bevorzugte Ausführungsform zunächst die Verwendung derartiger Real-Mode-Funktionstreiber 204. Die bevorzugte Ausführungsform ermittelt, ob die Funktionalität der erfassten Real-Mode-Funktionstreiber 204 durch einen vorhandenen Protected-Mode-Funktionstreiber bereitgestellt ist. Ist dies der Fall, werden Anfragen auf die Real-Mode-Funktionstreiber auf die Protected-Mode-Funktionstreiber 214 abgebildet. Wenn nicht, passt die bevorzugte Ausführungsform die Real-Mode-Funktionstreiber 204 an, damit diese mit den Protected-Mode-Gerätetreibern 212 anstelle der Real-Mode-Gerätetreiber 202 arbeiten.
  • Der Vorgang, der die Real-Mode-Funktionstreiber anpasst und hier als Real-Mode- (RM-) Funktionstreiber-Anpassungsvorgang bezeichnet wird, ist in 20 dargestellt. Der Real-Mode-Funktionstreiber-Anpassungsvorgang kann als Software implementiert sein, die im Speicher 102 gespeichert ist und von der CPU 104 ausgeführt wird. In Schritt 2000 des Real-Mode-Funktionstreiber-Anpassungsvorgangs führt der Real-Mode-Funktionstreiber-Anpassungsvorgang einen Real-Mode-Funktionstreiber-Erfassungsvorgang, der den Real-Mode-Funktionstreiber erfasst. Der Real-Mode-Funktionstreiber-Erfassungsvorgang ist in 21 dargestellt. In Schritt 2100 des Real-Mode-Funktionstreiber-Erfassungsvorgang wird der "erfasste" boole'sche Wert zunächst auf nicht zutreffend gestellt. Anschließend schreitet die Steuerung zu Schritt 2105 fort. In Schritt 2105 bezieht der Real-Mode-Funktionstreiber-Erfassungsvorgang momentane Treiberinformationen aus einem Plattenparameterblock, der für einen logischen Real-Mode-Treiber bereitgestellt ist.
  • Der Plattenparameterblock ist in 22 dargestellt. Wie in 22 gezeigt, enthält der Datenparameterblock 2200 Momentantreiberinformationen 2202 und einen Verweis 2204 auf einen ersten auszuführenden Treiber. Zu Beginn verweist der Verweis 2204 im Datenparameterblock 2200 auf einen Real-Mode-Gerätetreiber 2210, der ein Gerät 2220 steuert, das ebenfalls von einem Protected-Mode-Gerätetreiber 2230 gesteuert wird. Ist jedoch ein Real-Mode-Funktionstreiber 2240 vorhanden, um den Real-Mode-Gerätetreiber 2210 zu ergänzen, werden die Aufrufe in den Real-Mode-Funktionstreiber 2240 derart eingehakt, dass der Verweis 2204 zum Real-Mode-Funktionstreiber 2240 verweist. In diesem Fall beschreiben die Momentantreiberinformationen 2202 den Real-Mode-Funktionstreiber 2240 anstelle des Real-Mode-Gerätetreibers 2210, der ursprünglich dadurch beschrieben wird. Es wird darauf hingewiesen, dass die Funktionstreiber Teil der Real-Mode-Treiber sein können, anstelle separate Treiber zu sein.
  • Anschließend schreitet die Steuerung zu Schritt 2110 fort. In Schritt 2110 bezieht der Real-Mode-Funktionstreiber-Erfassungsvorgang eine ursprüngliche Treiberstruktur aus dem IO.SYS-Modul. Das IO.SYS-Softwaremodul ist ein hinlänglich bekanntes Modul von einem Hardwarehersteller des Computersystems, um das MS-DOS-Betriebssystem 200 zu starten. Die ursprüngliche Treiberstruktur ist in 23 dargestellt. Die ursprüngliche Treiberstruktur enthält einen Real-Mode-Treibernamen, eine Anzahl gesteuerter Einheiten und eine Real-Mode-Treiber-Headeradresse. Anschließend schreitet die Steuerung zu Schritt 2115 fort, bei dem der Real-Mode-Treibername, eine Anzahl gesteuerter Einheiten und die Real-Mode-Treiber-Headeradresse in der ursprünglichen Treiberstruktur 2300 mit den Momentantreiberinformationen vergleichen werden, die demselben Gerät 2220 entsprechen. Gibt es einen Real-Mode-Funktionstreiber 2240, stimmen die Informationen in der ursprünglichen Treiberstruktur 2300 nicht mit den Momentantreiberinformationen 2202 im Datenparameterblock 2200 überein. Wenn somit in Schritt 2115 ermittelt wird, dass die Momentantreiberinformationen nicht übereinstimmen, schreitet die Steuerung zu Schritt 2120 fort, bei dem das "erfasste" Kennzeichen auf zutreffend eingestellt wird. Andernfalls bleibt das erfasste Kennzeichen nicht zutreffend. Der Vorgang kehrt daraufhin zurück, um den Real-Mode-Funktionstreiber-Anpassungsvorgang fortzuführen, der in 20 gezeigt ist.
  • Nachdem in Schritt 2000 der Real-Mode-Funktionstreiber-Erfassungsvorgang des Real-Mode-Funktionstreiber-Anpassungsvorgangs ausgeführt wurde, schreitet die Steuerung zu Schritt 2010 fort. In Schritt 2010 wird durch den Real-Mode-Funktionstreiber-Erfassungsvorgang ermittelt, ob das erfasste Kennzeichen auf zutreffend gesetzt war. ist dies der Fall, schreitet der Vorgang zu Schritt 2015 fort. In Schritt 2015 wird ermittelt, ob sich der Real-Mode-Funktionstreibername in einer Liste "Sicherer Treiber" befindet. Die Liste Sicherer Treiber ist in 24 dargestellt. In 24 enthält die Liste Sicherer Treiber 2400 eine. Liste von Real-Mode-Funktionstreibernamen 2402. Wenn in Schritt 2015 der Real-Mode-Funktionstreibername in der Liste Sicherer Treiber gefunden wird, schreitet die Steuerung zu Schritt 2025 fort. in Schritt 2025 bildet der Real-Mode-Funktionstreiber-Anpassungsvorgang die Real-Mode-Funktionstreiberanfragen auf den Protected-Mode-Treiber ab, der in der Liste Sicherer Treiber identifiziert ist.
  • Wird der Real-Mode-Funktionstreibername in Schritt 2015 nicht in der Liste Sicherer Treiber gefunden, zweigt die Steuerung zu Schritt 2030 ab, bei dem der Real-Mode-Funktionstreiber-Anpassungsvorgang ausgeführt wird. Anschließend schreitet die Steuerung zu Schritt 2035 fort, bei dem der Real-Mode-Funktionstreiber-Anpassungsvorgang ermittelt, ob zusätzliche logische Real-Mode-Treiber vorhanden sind. Ist dies der Fall, schreitet die Steuerung zu Schritt 2040 fort, bei dem der nächste logische Real-Mode-Treiber bezogen wird, worauf die Steuerung zu Schritt 200 zurückkehrt. Wenn nicht, endet der Real-Mode-Funktionstreiber-Anpassungsvorgang.
  • 25 zeigt zahlreiche der Hauptfunktionsschritte, die durch den Real-Mode-Funktionstreiber-Anpassungsvorgang ausgeführt werden. Dieser Vorgang wird durch eine Software durchgeführt, die im Speicher 102 gespeichert ist und von der CPU 104 ausgeführt wird. Dieser Vorgang wird aufgerufen, wenn sich der Protected-Mode-Treiber nicht auf der Liste Sicherer Treiber befindet, weshalb man auf den Real-Mode-Funktionstreiber angewiesen ist, um die gewünschte Funktiona lität zu erzeugen. Somit werden, wie in 25 gezeigt, die logischen Anfragen auf den Protected-Mode-Treiber über eine Real-Mode-Abbildungseinrichtung zu einem Real-Mode-Funktionstreiber umgeleitet (Schritt 2500). Diese Anfrage wird anschließend die Real-Mode-Treiberkette abwärts geleitet, bis die Anfrage den letzten Treiber in der Kette erreicht (Schritt 2502). API-Aufrufe vom Real-Mode-Treiber werden in den Protected-Mode eingehakt (Schritt 2504). Somit werden ASPI-, CAM-, oder INT-13h-API-Aufrufe in den Protected Mode eingehakt. Gibt es keine API-Aufrufe, so gibt es kein Einhaken in den Protected Mode.

Claims (17)

  1. Verfahren, das durch einen Computer (100) durchgeführt wird, der eine Verbindung mit einem Gerät (120), einen Prozessor, der in Real-Mode-Betriebsart und Protected-Mode-Betriebsart arbeiten kann, einen Real-Mode-Gerätetreiber (202) für das Gerät und einen Protected-Mode-Gerätetreiber (212) für das Gerät hat, wobei das Verfahren die folgenden Schritte umfasst: a) mit dem Real-Mode-Gerätetreiber (202) Zuweisen eines eindeutigen Bezugswertes zu dem Gerät, auf das durch den Real-Mode-Gerätetreiber zugegriffen wird; b) Zugreifen auf das Gerät (120) durch den Real-Mode-Gerätetreiber, um eine Geräteinformationen zu lesen, die das Gerät eindeutig identifizieren; c) Speichern (425) des dem Gerät durch den Real-Mode-Gerätetreiber zugewiesenen Bezugswertes an einem Speicherplatz, der mit den aus dem Gerät gelesenen Geräteinformationen verknüpft ist; d) mit dem Protected-Mode-Gerätetreiber Zugreifen auf das Gerät, um die Geräteinformationen zu lesen (705); e) Abrufen (710) des Bezugswertes, der an dem mit den Geräteinformationen verknüpften Speicherplatz gespeichert wurde; und f) mit dem Protected-Mode-Gerätetreiber Zuweisen (715) des in Schritt e) ermittelten Bezugswertes zu dem Gerät, auf das durch den Protected-Mode-Gerätetreiber zugegriffen wird, so dass sowohl der Real-Mode-Gerätetreiber als auch der Protected-Mode-Gerätetreiber das Gerät mit dem Bezugswert identifizieren.
  2. Verfahren nach Anspruch 1, wobei Schritt c) Speichern des Bezugswertes und der Geräteinformationen in ein und demselben Eintrag in einer Datenstruktur umfasst, die einen Eintrag für jedes mit dem Computer verbundene Gerät hat.
  3. Verfahren nach Anspruch 1, wobei das Gerät eine Platte ist, der Real-Mode-Gerätetreiber ein Plattentreiber ist, der Protected-Mode-Gerätetreiber ein Plattentreiber ist, die Geräteinformationen Platteninformationen enthalten und der Bezugswert eine Laufwerkseinheitsnummer ist, wobei: Schritt b) Lesen eines eindeutigen Wertes umfasst, der an einem vorgegebenen Platz auf der Platte als die Platteninformationen gespeichert ist, und wobei Schritt c) Speichern der Laufwerkeinheitsnummer mit dem eindeutigen Wert in ein und demselben Eintrag in einer Tabellen-Datenstruktur umfasst, die einen Eintrag für jedes mit dem Computer verbundene Plattenlaufwerk hat.
  4. Verfahren nach Anspruch 3, das des Weiteren die folgenden Schritte umfasst: g) Feststellen, ob die Platte den eindeutigen Wert an dem vorgegebenen Platz speichert, und h) Schreiben des eindeutigen Wertes an die vorgegebene Position, wenn in Schritt g) festgestellt wird, dass die Platte den eindeutigen Wert nicht an dem vorgegebenen Platz speichert.
  5. Verfahren nach Anspruch 3, wobei Schritt c) Speichern der Laufwerkeinheitsnummer an einem Speicherplatz umfasst, der mit einer Prüfsumme der Platteninformationen verknüpft ist.
  6. Verfahren nach Anspruch 3, das des Weiteren den Schritt g) des Feststellens umfasst, ob die Platte ein vorgegebenes Format hat, und wobei Schritt c) die folgenden Schritte umfasst: I) Speichern der Laufwerkeinheitsnummer an einem Speicherplatz, der mit einem eindeutigen Wert verknüpft ist, der von einem vorgegebenen Platz auf der Platte gelesen wird, wenn in Schritt g) festgestellt wird, dass die Platte ein vorgegebenes Format von Daten aufweist, die an einem bestimmten Platz gespeichert sind, und II) Speichern der Laufwerkeinheitsnummer an einem Speicherplatz, der mit einer Prüfsumme den Platteninformationen verknüpft ist, wenn in Schritt g) festgestellt wird, dass die Platte nicht das vorgegebene Format an Daten aufweist, die an dem bestimmten Platz gespeichert sind.
  7. Verfahren nach Anspruch 6, wobei Schritt c) des Weiteren umfasst: III) Speichern der Laufwerkeinheitsnummer an einem Speicherplatz, der mit einem Flag verknüpft ist, das anzeigt, ob die Platte ein vorgegebenes Format hat und wobei Schritt e) die folgenden Schritte umfasst: I) Lesen des Flags II) Ermitteln der Laufwerkeinheitsnummer, die an dem Speicherplatz gespeichert ist, der mit dem eindeutigen Wert verknüpft ist, wenn das Flag anzeigt, dass die Platte das vorgegebene Format hat, und III) Ermitteln der Laufwerkeinheitsnummer, die an dem Speicherplatz gespeichert ist, der mit der Prüfsumme verknüpft ist, wenn das Flag anzeigt, dass die Platte nicht das vorgegebene Format hat.
  8. Verfahren nach Anspruch 3, wobei die Platte einen Master-Boot-Record enthält, der zum Zeitpunkt des Bootens verwendet wird, und wobei die Platteninformationen in dem Master-Boot-Record der Platte gespeichert sind.
  9. Computer-System, das umfasst: einen Computer (100) mit einem Prozessor (104), der in Real-Mode-Betriebsart und Protected-Mode-Betriebsart arbeiten kann, und einem Speicher (210), wobei er mit einem oder mehreren Geräten (120) verbunden ist; einen Real-Mode-Gerätetreiber (202), der in dem Speicher gespeichert ist und durch den Prozessor ausgeführt wird und dem Gerät, auf das der Real-Mode-Gerätetreiber zugreift, einen eindeutigen Bezugswert zuweist und auf das Gerät zugreift, um Geräteinformationen zu lesen, die das Gerät eindeutig identifizieren, wobei der Bezugswert an einem Speicherplatz gespeichert wird, der mit den Geräteinformationen verknüpft ist; einen Protected-Mode-Gerätetreiber (212), der in dem Speicher gespeichert ist und durch den Prozessor ausgeführt wird und auf das Gerät zugreift, um die Geräteinformationen zu lesen; und eine Einrichtung für den Protected-Mode-Gerätetreiber zum Zuweisen des von dem mit der gelesenen Geräteinformationen verknüpften Speicherplatz abgerufenen Bezugswertes zu dem Gerät, auf das der Protected-Mode-Gerätetreiber zugreift, so dass der Bezugswert derselbe ist wie der, den der Real-Mode-Gerätetreiber demselben Gerät zuweist.
  10. Computersystem nach Anspruch 9, wobei: das Gerät ein Plattenlaufwerk (320) umfasst, auf dem eine physikalische Platte resident ist, wobei der Real-Mode-Gerätetreiber ein Real-Mode-Plattentreiber ist, der das Plattenlaufwerk so steuert, dass es auf die physikalische Platte in Real-Mode-Betriebsart zugreift, und der Protected-Mode-Gerätetreiber ein Protected-Mode-Plattentreiber ist, der das Plattenlaufwerk so steuert, dass es auf die physikalische Platte in Protected-Mode-Betriebsart zugreift und wobei: die Einrichtung für den Protected-Mode-Gerätetreiber zum Zuweisen desselben Bezugswertes den Protected-Mode-Plattentreiber umfasst, der dem Plattenlauf werk ein und dieselbe Laufwerkeinheitsnummer zuweist wie der Real-Mode-Plattentreiber, der auf dieselbe physikalische Platte zugreift.
  11. Computersystem nach Anspruch 10, wobei die Einrichtung für den Protected-Mode-Gerätetreiber zum Zuweisen desselben Bezugswertes umfasst: eine Laufwerkstabelle, die einen Eintrag (430) für jeden Real-Mode-Plattentreiber hat, wobei der Eintrag einen eindeutigen Wert enthält, der auf der physikalischen Platte gespeichert ist, auf die der Real-Mode-Plattentreiber zugreift, und eine Laufwerkeinheitsnummer enthält, die zuvor durch den Real-Mode-Plattentreiber zugewiesen worden ist, und eine Einrichtung für den Protected-Mode-Plattentreiber zum Zuweisen des in dem Eintrag enthaltenen Bezugswertes zu der physikalischen Platte, die den eindeutigen Wert speichert, der auch in dem Eintrag enthalten ist.
  12. Computersystem nach Anspruch 9, wobei: das Gerät ein Plattenlaufwerk umfasst, auf dem ein logischer Datenträger resident ist, wobei der Real-Mode-Gerätetreiber ein Real-Mode-Datenträgertreiber ist, der das Plattenlaufwerk so steuert, dass es auf den logischen Datenträger in Real-Mode-Betriebsart zugreift, und der Protected-Mode-Gerätetreiber ein Protected-Mode-Datenträgertreiber ist, der das Plattenlaufwerk so steuert, dass es auf den logischen Datenträger in Protected-Mode-Betriebsart zugreift, und wobei: die Einrichtung für den Protected-Mode-Gerätetreiber zum Zuweisen desselben Bezugswertes den Protected-Mode-Plattentreiber umfasst, dem Datenträger ein dieselbe Plattenträgereinheitsnummer zuweist wie der Real-Mode-Datenträgertreiber, der auf denselben logischen Datenträger zugreift.
  13. Computersystem nach Anspruch 12, wobei die Einrichtung für den Protected-Mode-Gerätetreiber zum Zuweisen desselben Bezugswertes umfasst: eine Laufwerktabelle, die einen Eintrag für jeden Real-Mode-Datenträgertreiber hat, wobei der Eintrag einen eindeutigen Wert enthält, der auf dem logischen Datenträger gespeichert ist, auf den durch den Real-Mode-Datenträgertreiber zugegriffen wird, und eine Datenträgereinheitsnummer enthält, die zuvor durch den Real-Mode-Datenträgertreiber zugewiesen worden ist, und eine Einrichtung für den Protected-Mode-Datenträgertreiber zum Zuweisen des in dem Eintrag enthaltenen Bezugswertes zu dem logischen Datenträger, der den eindeutigen Wert speichert, der auch in dem Eintrag enthalten ist.
  14. Computersystem nach Anspruch 9, wobei: das Gerät einen Adapter umfasst, an dem ein oder mehrere Peripheriegeräte angebracht sind, der Real-Mode-Gerätetreiber ein Real-Mode-Adaptertreiber ist, der den Adapter so steuert, dass er auf die Peripheriegeräte in Real-Mode-Betriebsart zugreift, und der Protected-Made-Gerätetreiber ein Protected-Mode-Adaptertreiber ist, der die Adapter so steuert, dass sie auf die Peripheriegeräte in Protected-Mode-Betriebsart zugreifen, und wobei: die Einrichtung für den Protected-Mode-Adaptertreiber zum Zuweisen desselben Bezugswertes den Protected-Mode-Adaptertreiber umfasst, der dem Adapter dieselbe Adapternummer zuweist, wie der Real-Mode-Adaptertreiber, der denselben Adapter steuert, um auf dieselben Peripheriegeräte zuzugreifen.
  15. Computersystem nach Anspruch 14, wobei die Einrichtung für den Protected-Mode-Adaptertreiber zum Zuweisen derselben Adapternummer umfasst: eine Real-Mode-Datenstruktur, die für jeden Real-Mode-Adaptertreiber vorhanden ist, wobei die Real-Mode-Datenstruktur für jedes Peripheriegerät, das an dem Adapter angebracht ist, der durch den Real-Mode-Adaptertreiber gesteuert wird, für den die Real-Mode-Datenstruktur vorhanden ist, eindeutige Peripheriegerätinformationen, die von dem Peripheriegerät abgetastet werden, das mit dem Adapter verbunden ist, der durch den Real-Mode-Adaptertreiber gesteuert wird, mit einer Adapternummer verknüpft, die zuvor durch den Real-Mode-Adaptertreiber zugewiesen worden ist, und eine Einrichtung für den Protected-Mode-Adaptertreiber zum Zuweisen der mit der eindeutigen Peripheriegeräteinformation verknüpften Adapternummer zu dem Adapter, der auf das Peripheriegerät zugreift, von dem die eindeutige Peripheriegerätinformation abgetastet wird.
  16. Computerlesbares Medium, das durch Computer ausführbare Befehle zum Durchführen eines Verfahrens durch einen Computer enthält, der eine Verbindung zu einem Gerät, einen Prozessor, der in Real-Mode-Betriebsart und Protected-Mode-Betriebsart arbeiten kann, einen Real-Mode-Gerätetreiber für das Gerät und einen Protected-Mode-Gerätetreiber für das Gerät hat, wobei das Verfahren die folgenden Schritte umfasst: a) mit dem Real-Mode-Gerätetreiber Zuweisen eines eindeutigen Bezugswertes zu dem Gerät, auf das durch den Real-Mode-Gerätetreiber zugegriffen wird; b) Zugreifen auf das Gerät durch den Real-Mode-Gerätetreiber, um eine Geräteinformation zu lesen, die das Gerät eindeutig identifiziert; c) Speichern des dem Gerät durch den Real-Mode-Gerätetreiber zugewiesenen Bezugswertes an einem Speicherplatz, der mit der aus dem Gerät gelesenen Geräteinformation verknüpft ist; d) mit dem Protected-Mode-Gerätetreiber Zugreifen auf das Gerät, um die Geräteinformation zu lesen; e) Abrufen des Bezugswertes, der an dem mit der Geräteinformation verknüpften Speicherplatz gespeichert wurde; und f) mit dem Protected-Mode-Gerätetreiber Zuweisen des in Schritt e) ermittelten Bezugswertes zu dem Gerät, auf das durch den Protected-Mode-Gerätetreiber zugegriffen wird.
  17. Computerlesbares Medium nach Anspruch 16, wobei Schritt c) Speichern des Bezugswertes und der Geräteinformation in ein und demselben Eintrag in einer Datenstruktur umfasst, die einen Eintrag für jedes mit dem Computer verbundene Gerät hat.
DE69534867T 1994-01-21 1995-01-17 Verfahren und System zur Lieferung geschützter Gerätetreiber Expired - Lifetime DE69534867T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US184668 1994-01-21
US08/184,668 US5604887A (en) 1994-01-21 1994-01-21 Method and system using dedicated location to share information between real and protected mode device drivers

Publications (2)

Publication Number Publication Date
DE69534867D1 DE69534867D1 (de) 2006-05-11
DE69534867T2 true DE69534867T2 (de) 2006-08-17

Family

ID=22677860

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69534867T Expired - Lifetime DE69534867T2 (de) 1994-01-21 1995-01-17 Verfahren und System zur Lieferung geschützter Gerätetreiber

Country Status (5)

Country Link
US (2) US5604887A (de)
EP (2) EP1526441A1 (de)
JP (1) JP3256100B2 (de)
CA (1) CA2140165C (de)
DE (1) DE69534867T2 (de)

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2734391B2 (ja) * 1995-01-18 1998-03-30 日本電気株式会社 不揮発性メモリのファイル管理装置
US5710941A (en) * 1995-02-28 1998-01-20 Microsoft Corporation System for substituting protected mode hard disk driver for real mode driver by trapping test transfers to verify matching geometric translation
US7720672B1 (en) 1995-12-29 2010-05-18 Wyse Technology Inc. Method and apparatus for display of windowing application programs on a terminal
US6424991B1 (en) 1996-07-01 2002-07-23 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server communication framework
US5848246A (en) 1996-07-01 1998-12-08 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server session manager in an interprise computing framework system
US6272555B1 (en) 1996-07-01 2001-08-07 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server-centric interprise computing framework system
US5987245A (en) 1996-07-01 1999-11-16 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture (#12) for a client-server state machine framework
US6304893B1 (en) 1996-07-01 2001-10-16 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server event driven message framework in an interprise computing framework system
US6266709B1 (en) 1996-07-01 2001-07-24 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server failure reporting process
US6434598B1 (en) 1996-07-01 2002-08-13 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server graphical user interface (#9) framework in an interprise computing framework system
US6038590A (en) 1996-07-01 2000-03-14 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server state machine in an interprise computing framework system
US5999972A (en) 1996-07-01 1999-12-07 Sun Microsystems, Inc. System, method and article of manufacture for a distributed computer system framework
US5966543A (en) * 1997-06-26 1999-10-12 International Business Machines Corporation Method of using collaborative spinlocks to provide exclusive access to a resource in a multiprocessor computer system
US6047124A (en) * 1997-10-31 2000-04-04 Sun Microsystems, Inc. System and method for tracing device drivers using a computer
JP3882321B2 (ja) * 1998-03-13 2007-02-14 株式会社日立製作所 オペレーティングシステムのモジュールプログラムを備えた計算機
US6360282B1 (en) 1998-03-25 2002-03-19 Network Appliance, Inc. Protected control of devices by user applications in multiprogramming environments
US6836885B1 (en) * 1998-09-21 2004-12-28 Wyse Technology Inc. Method and apparatus for display of windowing application programs on a terminal
US6470434B1 (en) * 1998-11-24 2002-10-22 Dell Usa, L.P. Computer system and method for accessing a computer-readable medium
US6314482B1 (en) * 1999-03-19 2001-11-06 International Business Machines Corporation Method and system for indexing adapters within a data processing system
US6820265B1 (en) * 1999-06-29 2004-11-16 Rare Limited System method and data storage medium for sharing data between video games
WO2001022238A1 (en) * 1999-09-21 2001-03-29 Wyse Technology Displaying windowing application programs on a terminal
US6636871B1 (en) 2000-07-13 2003-10-21 International Business Machines Corporation Control of multiple layer aggregation logical volume management data and boot record
US6711591B1 (en) 2000-07-13 2004-03-23 International Business Machines Corporation Top-down control of multiple layer aggregation logical volume management data and boot record
US6725294B1 (en) * 2001-02-20 2004-04-20 Lsi Logic Corporation Installation and access of a device handler for a peripheral device in a computer
US7552309B2 (en) * 2005-05-06 2009-06-23 International Business Machines Corporation Data storage methods for hierarchical copies
US7376968B2 (en) * 2003-11-20 2008-05-20 Microsoft Corporation BIOS integrated encryption
US7558723B2 (en) * 2003-12-12 2009-07-07 Microsoft Corporation Systems and methods for bimodal device virtualization of actual and idealized hardware-based devices
JP2005258493A (ja) * 2004-03-09 2005-09-22 Buffalo Inc 外部記憶装置
US20060005190A1 (en) * 2004-06-30 2006-01-05 Microsoft Corporation Systems and methods for implementing an operating system in a virtual machine environment
US7554682B2 (en) * 2004-12-28 2009-06-30 Microsoft Corporation Printer filter configuration
JP4945186B2 (ja) * 2006-07-28 2012-06-06 株式会社東芝 記憶装置およびこれを含むメモリシステム
US8028136B2 (en) 2007-03-09 2011-09-27 International Business Machines Corporation Retaining disk identification in operating system environment after a hardware-driven snapshot restore from a snapshot-LUN created using software-driven snapshot architecture
US20090259771A1 (en) * 2008-04-09 2009-10-15 Tanik Haluk K Identification of memory cards by host
US20110047614A1 (en) * 2009-08-19 2011-02-24 Chi-Feng Huang Permission management system for data accessing and method thereof
US9454676B2 (en) * 2014-06-27 2016-09-27 Intel Corporation Technologies for preventing hook-skipping attacks using processor virtualization features
US10203897B1 (en) * 2016-12-02 2019-02-12 Nutanix, Inc. Dynamic data compression
US10949537B2 (en) * 2017-12-01 2021-03-16 Stmicroelectronics, Inc. Secure firmware provisioning and device binding mechanism

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4799145A (en) * 1985-04-03 1989-01-17 Honeywell Bull Inc. Facility for passing data used by one operating system to a replacement operating system
US5027273A (en) * 1985-04-10 1991-06-25 Microsoft Corporation Method and operating system for executing programs in a multi-mode microprocessor
JPS6226535A (ja) * 1985-07-22 1987-02-04 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション プログラム内の変換テ−ブルの修正方法
US4928237A (en) * 1987-03-27 1990-05-22 International Business Machines Corp. Computer system having mode independent addressing
CA2010591C (en) * 1989-10-20 1999-01-26 Phillip M. Adams Kernels, description tables and device drivers
US5307491A (en) * 1991-02-12 1994-04-26 International Business Machines Corporation Layered SCSI device driver with error handling circuit providing sense data from device directly to the driver on the occurrence of an error
US5291585A (en) * 1991-07-29 1994-03-01 Dell Usa, L.P. Computer system having system feature extension software containing a self-describing feature table for accessing I/O devices according to machine-independent format
US5386524A (en) * 1992-04-16 1995-01-31 Digital Equipment Corporation System for accessing information in a data processing system
US5481709A (en) * 1992-06-22 1996-01-02 International Business Machines Corporation Method and apparatus for providing a modular ABIOS device support layer in a computer system

Also Published As

Publication number Publication date
JPH07244628A (ja) 1995-09-19
EP1526441A1 (de) 2005-04-27
US5796988A (en) 1998-08-18
CA2140165C (en) 2000-12-19
EP0664507B1 (de) 2006-03-15
CA2140165A1 (en) 1995-07-22
US5604887A (en) 1997-02-18
EP0664507A3 (de) 2001-11-28
EP0664507A2 (de) 1995-07-26
DE69534867D1 (de) 2006-05-11
JP3256100B2 (ja) 2002-02-12

Similar Documents

Publication Publication Date Title
DE69700574T2 (de) Verfahren zum Cache-Speichern von Netzwerk- und CD-ROM-Zugriffen unter Verwendung einer lokalen Festplatte
DE60210434T2 (de) Betriebssystemselektor und Datenplattenspeicher
DE10393920B4 (de) Verfahren und Systeme zur Steuerung virtueller Maschinen
DE69616987T2 (de) Manipulierungsverfahren und -vorrichtung für plattenpartitionen
DE69627814T2 (de) System zum bereitstellen eines bios für den hauptrechner
DE69503056T2 (de) Selbstkonfigurierendes rechnersystem
DE69603180T2 (de) Verfahren und vorrichtung zur freispeicherverwaltung und zum datenstrukturintegritätsschutz in nichtflüchtigen speichern
DE69721295T2 (de) Verfahren und gerät zur erweiterung des reservegebiets einer platteneinheit
DE69600754T2 (de) Aufteilung einer Teilung in einem Plattenspeichersystem
DE10003108B4 (de) Verfahren und Computersystem zum Durchführen einer Softwareinstallation
DE69330691T2 (de) Dynamisch konfigurierbares Kernsystem
DE60037606T2 (de) Rechner mit urladungsfähigem sicherem Programm
DE69429231T2 (de) Emulation von Speicherfunktionen eines ersten Systems auf einem zweiten System
DE19847676B4 (de) Modifizierbarer Partitionsstarteintrag für ein Computerspeichergerät
DE69023499T2 (de) Rechner mit erweitertem virtuellem Speicher.
EP0664507B1 (de) Verfahren und System zur Lieferung geschützter Gerätetreiber
DE10393859B4 (de) Entkoppelter Hardwarekonfigurationsmanager
DE68916853T2 (de) Unabhängige Programmlader für virtuelle Maschinenarchitektur.
DE4026912A1 (de) Computersystem
DE4026911A1 (de) Computersystem
DE10297281T5 (de) Verfahren zum elementaren Aktualisieren einer Vielzahl von Dateien
DE10225664A1 (de) System und Verfahren zum Prüfen von Systemabrufereignissen mit Systemabrufumhüllungen
DE69425937T2 (de) Computersystem und -verfahren zur Integration eines Datenkompressionssystems mit einem Betriebssystem
DE202010017644U1 (de) Hybridspeichervorrichtung
DE10002788A1 (de) System und Verfahren zum Starten des Betriebes eines Computersystems

Legal Events

Date Code Title Description
8364 No opposition during term of opposition