-
Hintergrund der Erfindung
-
1. Gebiet der Erfindung
-
Die
vorliegende Erfindung betrifft das Gebiet der Computergraphik und
Bildverarbeitung, und insbesondere ein Verfahren zum Erfassen von
Windows Graphikvorrichtungsschnittstellen (GDI – Graphics Device Interface)
und DirectX Daten, wobei DirectX Funktionen verfügbar bleiben.
-
2. Beschreibung des Standes
der Technik
-
Nachdem
3D und Videoverarbeitung in gewöhnliche
Rechenarbeitsvorgänge
von Computern aufgenommen wurden taucht die Notwendigkeit auf, dass
GDI Daten und DirectX Daten, sowie 3D und Video, gleichzeitig in
Echtzeitfernanwendungen abgefangen werden. Existierende Verfahren
zum Erfassen von Daten eines Computerbildschirms werden nachfolgend
erläutert:
- (1) Bei dem ersten Verfahren wird in einem
Nutzermodus jede in einem System vorhandene Anwendung mit Hilfe
eines Zuschalters zugeschaltet, und jede Funktion hinsichtlich eines
Bildwechsels gefiltert und verarbeitet. Unglücklicherweise macht bei dem
Betrieb eines Graphiksystems die große Menge von Daten dieses Verfahren
relativ ineffektiv und bei synchronem und schnellem Erfassen von
Graphikausgaben schwierig. Auch die Synchronisation ist aufgrund
des Zuschaltens zu jedem Prozess schwierig. Dieses Verfahren wird bei
einer frühen
Version des Fernhilfsprogramms wie VNC (Virtual Network Computing)
verwendet.
- (2) Das zweite Verfahren benutzt das in Windows definierte Mirrorsystem
(Spiegelsystem) und kann somit jede synchrone Änderung auf eine effiziente Weise
erfassen. Dieses Verfahren hat jedoch den Nachteil, dass DirectX
Anwendungen automatisch von dem System verhindert werden und somit
keine DirectX Daten erfasst werden können.
- (3) Das dritte Verfahren umfasst das Erfassen von DirectX Daten
auf eine solche Weise, dass die DirectX COM Schnittstelle in einem
Nutzermodus abgefangen wird. Dieses Verfahren kann aber keine GDI
Daten verarbeiten.
- (4) Das vierte Verfahren umfasst das Erfassen von GDI Daten
mit Hilfe eines Filtertreibers. Bei diesem Verfahren kann die Verfügbarkeit
der DirectX Schnittstelle beibehalten werden, und die GDI und DirectX
Daten können
auch komplett in Zusammenarbeit mit dem dritten Verfahren abgefangen
werden. Obwohl sowohl GDI als auch DirectX Daten durch eine Kombination
des dritten und vierten Verfahrens abgefangen werden können, ist
ein solcher Ansatz mühevoll
zu verwenden. Darüber
hinaus, da das dritte Verfahren an einer komplexen DirectX COM Schnittstelle
arbeitet ist es schwierig, das direkt durch DirectX ausgeführte Bildschirmspeicherabfangen
zu bestimmen.
-
Aus
diesem Grund ist eine Technik zum Erfassen von Windows GDI und DirectX
Daten, während
DirectX Funktionen verfügbar
bleiben, erwünscht.
-
Zusammenfassung der Erfindung
-
Die
vorliegende Erfindung wurde hinsichtlich der oben genannten Probleme
erdacht. Die Aufgabe der vorliegenden Erfindung ist es, ein Verfahren
zum Erfassen von Windows GDI und DirectX Daten, während DirectX
Funktionen verfügbar
bleiben, bereitzustellen.
-
Gemäß eines
Gesichtspunktes der vorliegenden Erfindung wird ein Verfahren zum
Erfassen von Graphikvorrichtungsschnittstellendaten und DirectX
Daten unter Benutzung eines Filtertreibers, der für eine Graphikvorrichtungsschnittstellenmaschine, einen
DirectX Kernel (Kern) und einen echten Bildschirmtreiber transparent
ist, bereitgestellt, aufweisend die Schritte: Aktualisieren der
Graphikvorrichtungsschnittstelle und Erfassen der Graphikvorrichtungsschnittstellendaten
unter Benutzung einer entsprechenden Graphikvorrichtungsschnittstellenfunktion
in dem Filtertreiber; Erfassen, für DirectDraw in DirectX, von
DirectDraw Anwendungs- und Videoaktualisierungsdaten durch Abfangen
von Seitenumschalt- und Bitblocktransfer-Funktionen des DirectDraw-Teils;
Erfassen, für
Direct3D in DirectX, von Daten von Direct3D Anwendungen durch Abfangen
der Aktualisierungsschnittstelle des Direct3D Teils.
-
Bevorzugt
umfasst das Verfahren des weiteren Laden eines Bildschirmfiltertreibers
auf eine statische oder dynamische Weise vor dem obigen Erfassen.
-
Bevorzugt
wird der DirectDraw Teil in DirectX an einer Stelle vor einem Bildschirmpuffer
und nach dem Dekodieren von Daten/einem Transformationspuffer abgefangen.
-
Bevorzugt
wird der Direkt3D Teil in DirectX an einer Stelle vor einem Bildschirmpuffer
und nach einem Transformationspuffer abgefangen.
-
Bevorzugt
wird das Abfangen des DirectDraw Teils in DirectX durch Abfangen
der Aktualisierungsschnittstellen von Flip und Blit (Block Image Transfer-Blockbildverschiebung)
ausgeführt.
-
Bevorzugt
wird das Abfangen des Direct3D Teils in DirectX durch Abfangen der
Aktualisierungsschnittstellen von DDFlip und DDBlit ausgeführt.
-
Bevorzugt
weist das Verfahren des weiteren auf, Speichern in einem Aktualisierungspufferbereich von
Aktualisierungen der Graphikvorrichtungsschnittstelle, Aktualisierungen
des DirectDraw Teils in DirectX und Aktualisierungen des Direct3D
Teils in Direct).
-
Bevorzugt
wird eine verlustfreie Komprimierung der Aktualisierungen der Graphikvorrichtungsschnittstelle
ausgeführt,
während
eine verlustbehaftete Komprimierung der Aktualisierungen des DirectDraw
Teils in DirectX und der Aktualisierung des Direct3D Teils in DirectX
ausgeführt
wird.
-
Mit
dem Verfahren gemäß der vorliegenden Erfindung
wird ein virtueller Graphiktreiber definiert. Dieser Bildschirmfiltertreiber
stellt GDI und DirectX Funktionen für ein Graphiksystem bereit
und fängt jede
Schnittstelle, die in eine lokale Bildschirmaktualisierung eingebunden
ist, ab. Wenn die abgefangene Schnittstelle aufgerufen wird, wird
basierend darauf, ob eine lokale Anzeige benötigt wird, ein echter Treiber
aufgerufen, um zuerst eine lokale Aktualisierung auszuführen. Anschließend wird
die Aktualisierung in einer Aktualisierungsliste zur Nachverarbeitung
gespeichert. Dieses Schema behält
die DirectX Funktion einer Videokarte bei und ermöglicht,
dass DirectX Anwendungen des Systems normal arbeiten.
-
Darüber hinaus
werden GDI Funktionen über Schnittstellen
wie Bitblocktransfer und Bitblockverdoppelung abgefangen und DirectX
wird über Schnittstellen
wie Seitenumschaltung und Seitenwiedergabe abgefangen. Da eine lokale
Aktualisierung des Graphiksystems unter Benutzung dieser Schnittstellen
fertiggestellt wird, können
GDI und DirectX Aktualisierungen zu der selben Zeit nach dem Abfangen
der zwei Arten von Schnittstellen abgefangen werden. Außerdem befinden
sich alle abgefangenen Schnittstellen in dem selben Modul und deshalb
ist es möglich,
ein ganzheitliches Abfangen und eine einfache Verarbeitung zu realisieren.
Darüber
hinaus wird die Synchronisation zwischen GDI und DirectX Teilen mit
einer hohen Effizienz verbessert.
-
Kurze Beschreibung der Zeichnungen
-
Die
obigen Merkmale und Vorteile der vorliegenden Erfindung werden durch
die nachfolgende detaillierte Beschreibung unter Bezugnahme auf
die Zeichnungen offenkundiger, in denen:
-
1 zeigt
ein logisches Verhältnis
zwischen einem Bildschirmfiltertreiber und einer GDI Maschine, einem
echten Bildschirmtreiber und einem DirectX Kernel, die in dem Verfahren
gemäß einer Ausführungsform
der vorliegenden Erfindung verwendet werden;
-
2 zeigt
ein Gesamtflussdiagramm des Verfahrens der vorliegenden Erfindung;
-
3 zeigt
ein schematisches Diagramm, welches erklärt, wie Bildschirmdaten in
dem Fall von DirectDraw abgefangen werden können;
-
4 zeigt
ein schematisches Diagramm, welches erklärt, wie Bildschirmdaten in
dem Fall von Direct3D abgefangen werden können; und
-
5 zeigt
ein Verarbeitungsflussdiagramm, welches DDBlit als ein Beispiel
in dem Fall von DDI zeigt.
-
Ausführliche Beschreibung der bevorzugten
Ausführungsformen
-
Nachfolgend
werden spezielle Ausführungsformen
der vorliegenden Erfindung unter Bezugnahme auf die Figuren näher erläutert. In
der folgenden Darstellung werden Details mancher aus dem Stand der
Technik bekannter Techniken weggelassen, da ansonsten eine solche
konkrete Beschreibung wohlbekannter Techniken die Merkmale und Vorteile
der vorliegenden Erfindung unklar macht.
-
1 zeigt
ein logisches Verhältnis
zwischen einem Bildschirmfiltertreiber 150 und einer GDI
Maschine 100, einem echten Bildschirmtreiber 200 und
einem DirectX Kernel 500, die in dem Verfahren gemäß einer
Ausführungsform
der vorliegenden Erfindung verwendet werden.
-
Wie
in 1 gezeigt, wird bei der Ausführungsform der vorliegenden
Erfindung eine Filterschicht, auf die als Bildschirmfiltertreiber 150 Bezug genommen
wird, zwischen GDI Maschine 100 und DirectX Kernel 500,
sowie dem echten Bildschirmtreiber 200 hinzugefügt. Dieser
Filtertreiber fungiert als zwei Arten von Schnittstellen, d. h.
zum Anzeigen der Bildschirmtreiberschnittstelle (DDI – Display
Driver Interface) und von DirectX, die von dem existierenden Benutzeroberflächenanzeigesystem
unterstützt werden.
Durch die Installation des Bildschirmtreibers 150 und die
Initialisierung des Systems verhält
sich die Filterschicht hinsichtlich der Windows GDI Maschine 100 und
dem DirectX Kernel 500 wie ein echter Bildschirmtreiber 200,
während
er sich hinsichtlich des echten Bildschirmtreibers 200 wie
eine Windows GDI Maschine 100 und ein DirectX Kernel 500 verhält. In anderen
Worten, der Bildschirmfiltertreiber 150 ist hier für die GDI
Maschine 100 und den DirectX Kernel 500 transparent.
-
2 zeigt
ein Gesamtflussdiagramm des Verfahrens gemäß der vorliegenden Erfindung.
Wie in 2 gezeigt, wird der Bildschirmfiltertreiber 150 zuerst
geladen (S110). Anschließend
werden die Bildschirmdaten unter DDI, DirectDraw und Direct3D auf
eine Echtzeitweise während
des Betriebs des Betriebssystems abgefangen (S120), und Aktualisierungsverarbeitung
wird ausgeführt
(S130).
-
Zum
Zeitpunkt der Installation wird der Bildschirmfiltertreiber 150 in
der Systemkonfiguration als der gegenwärtige Treiber für eine physikalische
Videokarte gesetzt, oder ein Modulladeeingang des Systems wird abgefangen.
Falls während
der Laufzeit herausgefunden wird, dass das Lademodul der Treiber
für eine
physikalische Videokarte ist, so wird der Bildschirmfiltertreiber 150 zuerst
geladen, und dann fängt
das System die Schnittstelle des echten Treibers nach dem Laden
des Bildschirmfiltertreibers 150 ab. Insbesondere fängt der
Bildschirmfiltertreiber 150 Aktualisierungen der Windows
GDI unter Benutzung einer entsprechenden DDI ab. Für DirectDraw
in DirectX fängt
der Bildschirmfiltertreiber 150 DirectDraw Anwendungs-
und Videoak tualisierungs-Daten durch Abfangen von Seitenumschalt-
und Bitblocktransferfunktionen des DirectDraw Teils des Bildschirmtreiberkerns
ab. Für
Direct3D in DirectX fängt
der Bildschirmfiltertreiber 150 die Daten für Direct3D
Anwendungen durch Abfangen solcher Aktualisierungsschnittstellen,
wie Present in Direct3D des Bildschirmtreiberkerns, ab.
-
Während des
Systemkonfigurationsprozesses, bei dem das System Bildschirmfiltertreiber 150 für die gegenwärtige Videokarte
lädt, können zwei Verfahren,
nämlich
ein statisches und ein dynamisches Verfahren, für die Systemkonfiguration verwendet
werden.
-
Statischer Ansatz
-
Das
Installationsprogramm erfasst die sofort anzeigebereite Vorrichtungsidentifikation
(PND DeviceID – Plug-and-Display
Device Identification) der Hauptanzeigevorrichtung in dem gegenwärtigen System,
und zählt
auf und gleicht ab die Vorrichtungsidentifikation (DeviceID) jeder
Registereinheit der Videokartenregistereinheit {4d36e968-e325-11ce-bfc1-08002be10318}.
Für eine
abgeglichene Registereinheit wird die Registereinheit des installierten
Bildschirmtreibers (InstalledDisplayDrivers) unter seinem Schlüssel von
Settings (Einstellungen) modifiziert und der Wert des Schlüssels wird
in den Namen des Bildschirmfiltertreibers 150 geändert. Das
Betriebssystem erhält
den Modulnamen des Videokartentreibers von dem obigen Namen und
lädt das
Modul in das System. Auf diese Weise wird der Bildschirmfiltertreiber 150 in
das System geladen.
-
Dynamischer Ansatz
-
Die
Modulladefunktion des Systems wird abgefangen. Wenn herausgefunden
wird, dass das geladene Modul der Videokartentreiber ist, wird der Bildschirmfiltertreiber 150 zuerst
geladen, und dann wird der Videokartentreiber von dem Bildschirmfiltertreiber 150 geladen.
-
Nun
wird erläutert,
wie Bildschirmdaten unter DDI, DirectDraw und Direct3D abgefangen
werden.
-
Nachdem
das System den Bildschirmfiltertreiber 150 geladen hat,
lädt der
Bildschirmfiltertreiber 150 einen echten Treiber in einen
DrvEnableDriver (Treibereingabetreiber) und erstellt eine Kopie der
von dem echten Treiber zurückgesandten
DDI Schnittstellenfunktionstabelle. Hinsichtlich der für das Abfangen
der Bildschirmaktualisierung benötigten
DDI Funktion wird ihr Wert in der Funktionstabelle auf einen Zeiger,
der auf eine entsprechende Funktion des Filtertreibers zeigt, modifiziert.
Währenddessen
wird der ursprüngliche
Funktionszeiger gespeichert. Als solche stellt der Bildschirmfiltertreiber 150 die
Filterfunktion bei dem Aufruf des echten Bildschirmtreibers 200 fertig.
-
3 zeigt
ein schematisches Diagramm, welches erklärt, wie Bildschirmdaten in
dem Fall von DirectDraw abgefangen werden. Wie in 3 gezeigt,
ist der Abfangpunkt, bei dem das Verfahren der vorliegenden Erfindung
einen Abfangvorgang auslöst,
bei dem gemeinsamen Verarbeiten von Videos und Spielen vor einem
Bildschirmpuffer und nach dem Dekodieren von Daten/einem Transformationspuffer
angeordnet. Die Daten beim Dekodieren von Daten/dem Transformationspuffer
sind Videodaten und/oder Spielszenen.
-
Für DirectDraw
wird das Abfangen von Bildschirmdaten durch Modifizieren des Zeigers
der DirectDraw Funktionstabelle ausgeführt. Bei DirectDraw handelt
es sich um einen erweiterten Satz, da DrvEnableDirectDraw in der
DDI Funktionstabelle eine Erweiterung der DirectDraw Funktion ist.
Während
des Aufrufs von DrvEnableDirectDraw werden die Zeiger der Rückruffunktionen
in den Strukturen von DD_CALLBACKS, DD_SURFACECALLBACKS und DD_PALETTECALLBACKS
so ausgerichtet, dass sie auf die in der vorliegenden Erfindung
bereitgestellten Funktionen zeigen, so dass der Aufruf der Funktionen
an den entsprechenden Schnittstellen der Surface-(Oberflächen)Erzeugung,
Anzeige und Verwaltung erreicht werden, wobei der Aufruf der Funktionen
auch erreicht werden kann, wenn Palettenänderungen auftreten. Zwei besonders
kritische, abzufangende Aktualisierungsschnittstellen sind Flip und
Blit. Die entsprechenden Namen der DDI Schnittstellen sind DDFlip
und DDBlit.
-
In 3 werden
anzuzeigende Video- und Spielprogrammverarbeitungsinhalte, so wie
Dekodieren komprimierter Videodaten, oder berechnen einer nächsten Szene
in einem Spiel, und Platzieren der erzeugten Daten in einen Puffer,
gezeigt. Falls das gegenwärtige
Spiel oder Video in einem Vollbildschirmmodus läuft, so wird eine Flipfunktionen
von DirectX zum Aktualisieren der Bildschirmdaten aufgerufen. Andererseits
wird Blit zum Aktualisieren aufgerufen, falls das Spiel oder das
Video in einem Fenstermodus läuft.
Die Ausgangsverarbeitung der zwei Nutzerprogramme wird möglicherweise
in von dem Bildschirmtreiber bereitgestellten DDFlip und DDBlit
Schnittstellen aufgerufen, und der Filtertreiber kann solche Aufrufe
in diesem Mo ment erhalten. Der Bildschirmfiltertreiber 150 speichert
diesen Aktualisierungsaufruf zur Nachverarbeitung 400 in
der Aktualisierungsaufrufliste 300.
-
4 zeigt
ein schematisches Diagramm, welches erklärt, wie man Bildschirmdaten
in dem Fall von Direct3D erfassen kann. Die in 4 gezeigte Verarbeitung
ist ähnlich
der von DirectDraw, außer dass
das komplexe Verarbeiten an einem 3D Objekt, so wie das Transformieren
von Material, Shape (Form) und Texture (Textur), schließlich als
ein Ausgangspuffer, nämlich
ein Transformationspuffer erscheint. In diesem Fall ist der Abfangpunkt
von Bildschirmdaten vor dem Anzeigepuffer und nach dem Transformationspuffer
angeordnet. Das Abfangen von Direct3D kann so lange erreicht werden,
wie DDFlip und DDBlit Schnittstellen von DirectDraw abgefangen werden
können.
-
Die
Verarbeitung von Direct3D ähnelt
der obigen Beschreibung. Direct3D erlaubt eine Überlagerung von Material und
Textur, welche ein Modell eines 3D Objekts bilden, eine Transformation
von Koordinaten, Positionen und dergleichen, sowie Schattenverarbeitung.
Das Ergebnis dieser komplexen Arbeitsabläufe erscheint letztendlich
als ein Pufferbereich, der auf Anzeige wartet. Der Unterschied zu
DirectX Anwendungsschnittstellen (API – Application Programming Interface)
ist, dass die Anzeige des Present Schnittstellenpufferbereichs einheitlich
in Direct3D Anwendungen benutzt wird, wohingegen solche Present
Schnittstellen nicht in dem echten Treiber existieren und somit
DDFlip und DDBlit immer noch zum Ausgeben benutzt werden. Solange DDFlip
und DDBlit abgefangen wurden kann die Direct3D Ausgabe ohne ein
Abfangen irgendeiner anderen Schnittstelle, die sich auf 3D Modelltransformation
bezieht, abgefangen werden.
-
Wenn
die Aktualisierung verarbeitet wird, so wird die Abfangschnittstelle
des Bildschirmfiltertreibers 150 zuerst aufgerufen, falls
ein lokaler Bildschirm benötigt
wird. Unterschiedliche Arten von Aktualisierungsverarbeitung und
Nachverarbeitung werden für
GDI und DirectX Daten benötigt,
da sie verschieden voneinander sind.
-
Verarbeitung von GDI Aktualisierungen
-
GDI
Daten arbeiten mit einem kumulativen Aktualisierungsansatz, bei
dem nur der geänderte Teil
aktualisiert wird, und somit umfasst der Aktualisierungsmechanismus
zum Verarbeiten von GDI Speichern von Bereichen und Funktionen,
welche die Änderung
des GDI Bilds verursachen, Back-up (eine Sicherungskopie erstellen)
von Quelldaten, die von den Funktionen benötigt werden und zusammen Speichern
die ser Elemente in einer Aktualisierungsliste. Da GDI insgesamt
eine kleine Menge von Aktualisierungen aufweist, können mehrere Änderungen normalerweise
kontinuierlich gespeichert werden.
-
Verarbeitung von DirectDraw und Direct3D
Aktualisierungen
-
Die
Aktualisierung von DirectDraw und Direct3D unterscheidet sich von
der GDI Aktualisierung indem bei den ersteren oft die ganze Seite
aktualisiert wird, d. h., die gesamten Daten innerhalb eines geänderten
Bereichs werden vollständig
aktualisiert, obwohl viele Teile in dem Bereich genau gleich denen
in der vorangegangenen Seite bleiben. Dies erfolgt, da ein solches
aktualisiertes Bild gewöhnlicherweise
aus mehreren Teilen besteht, wobei diese Teile, bevor sie auf den
Bildschirm ausgegeben werden, um gewisse spezielle Effekte auszuführen, transformiert
und synthetisiert werden müssen.
Deshalb weisen die Daten für
die obigen Anwendungen gewöhnlicherweise
eine Aktualisierung des gesamten Bildschirms eines Videos oder eines
3D Spiels auf der Basis der Seite auf. Diese Art von Aktualisierung
wird auch in der Aktualisierungsliste 300 gespeichert.
Nur die letzte oder mehrere Aktualisierungen werden aufgrund der
Grenzen der Systemressourcen und Bandbreite gespeichert, und die
vorangegangene Aktualisierung wird von nachfolgenden überschrieben,
falls die Verarbeitung nicht rechtzeitig ausgeführt werden kann.
-
Gemäß einer
Ausführungsform
werden die gespeicherte GDI Aktualisierung und DirectX Aktualisierung
synchron in der Aktualisierungsliste gespeichert, und jede von Ihnen
wird in einer zeitlichen Reihenfolge nummeriert. Verlustfreie Komprimierung wird
an der GDI Aktualisierung ausgeführt,
während eine
schnelle verlustbehaftete Komprimierung für die DirectX Aktualisierung
ausgeführt
wird. In einem Beispiel werden die komprimierten Daten an eines
oder mehrere entfernte Endgeräte
gesendet, und die Mausfunktion der entfernten Endgeräte wird
zurückgeführt, um
eine Fernprojektion oder eine Fernsteuerung durchzuführen.
-
5 zeigt
ein Verarbeitungsflussdiagramm, welches DDBlit als ein Beispiel
im Fall von DDI zeigt.
-
Als
erstes wird die DDBlit Funktion aufgerufen (S210). Anschließend wird
bestimmt, ob der Betriebsmodus ein lokales Anzeigen benötigt (S220).
-
Die
Aktualisierungsfunktion des echten Treibers wird aufgerufen, falls
der gegenwärtige
Betriebsmodus lokales Anzeigen benötigt (S220: JA). Ansonsten
kann das lokale Anzeigen in manchen Anwendungen nicht notwendig
sein (S220: NEIN), so dass das Verfahren des Aufrufens von DDBlit
des echten Treibers übersprungen
wird.
-
Als
nächstes
wird bestimmt, ob es sich bei dem Ziel des Aktualisierungspufferbereichs 300 um einen
physikalischen Anzeigebereich handelt (S240). Falls es sich nicht
um einen physikalischen Anzeigebereich handelt (S240: NEIN), so
muss es sich bei der gegenwärtigen
Funktion um einen Zwischenschritt handeln, und der Fluss kehrt zurück. Andererseits,
falls es sich bei dem Ziel um einen physikalischen Anzeigebereich
handelt (S240: JA), so werden Gitterdaten in den Aktualisierungspufferbereich
kopiert (S250) und in der Aktualisierungsliste gespeichert.
-
Zum
Schluss werden die erhaltenen Gitterdaten einer Nachverarbeitung 400 unterzogen (S260),
wobei der Schritt synchron mit dem Aufruf von DDBlit oder auf eine
asynchrone Weise, wie benötigt,
ausgeführt
werden kann.
-
Es
ist beabsichtigt, dass die vorangegangene Beschreibung nur die Ausführungsformen
der vorliegenden Erfindung veranschaulicht. Fachleute werden verstehen,
dass jegliche Modifikation und teilweise Ersetzung, die innerhalb
des Umfangs der vorliegenden Erfindung gemacht wurde, von dem Schutzbereich
der vorliegenden Erfindung gemäß den Ansprüchen umfasst
sein soll. Folglich soll der Schutzbereich der vorliegenden Erfindung
durch die beigefügten
Ansprüche
definiert werden.