0x0002 und ihr niederwertiges Wort ist in der
Sektion
PM_Abstract:Objects der Datei
OS2.INI mit den Daten des Objekts aufgef�hrt.
F�r abstrakte Objekte wird immer ein Handle angelegt, da sie keinen Dateinamen besitzen und das Handle der einzige Weg ist, um auf sie zuzugreifen, sofern ihnen nicht auch eine Objekt-ID zugewiesen wurde.
0x0003. Das niederwertige Wort stammt aus der Datei-Handle-Datenbank
in der Sektion PM_Workplace:HandlesX der OS2SYS.INI.
Beachten Sie, daá es zwei Sektionen namens PM_Workplace:HandlesX
gibt (wobei X eine 0 oder 1 ist).
Die WPS h„lt die Liste der Dateisystem-Handles die ganze Zeit im Speicher und
schreibt sie nur von Zeit zu Zeit in die OS2SYS.INI.
Dabei �berpr�ft sie zuvor den Schl�ssel PM_Workplace:ActiveHandles
um herauszufinden, welche der zwei Sektionen zur Zeit aktiv ist, schreibt die Handles
zur anderen Sektion und modifiziert diesen Schl�ssel so, das er anschlieáend
zur anderen Sektion zeigt.
Das ist notwendig, da die Eintr„ge in &os2;-INI-Dateien nicht mehr als 64 KB an Daten
enthalten d�rfen. Deshalb muá die WPS mehrere Bl”cke benutzen, um die ganze
Handle-Tabelle speichern zu k”nnen.
In der Theorie sollte die WPS ein Handle f�r ein Dateisystem-Objekt nur anlegen, wenn dieses wirklich gebraucht wird, z.B. wenn auf das Objekt wirklich irgendwo verwiesen wurde.
Handles des Dateisystems k”nnen jedoch auch Probleme verursachen. Je mehr Handles existieren, desto langsamer wird die WPS im allgemeinen. Was am wichtigsten ist: die Gesamtzahl der Handles ist begrenzt. Falls zu viele Dateisystem-Handles vorhanden sind, kann die WPS instabil werden.
Unter anderem werden Datei-Handles in den folgenden Situationen erzeugt:
Wenn Sie beispielsweise im Einstellungsnotizbuch eines Programmobjektes einen Pfad zu einer ausf�hrbaren Datei eingeben, fordert das Programmobjekt ein Handle an, weswegen es ein neues erhalten sollte, falls noch keines existiert. Das gleiche gilt, wenn man eine Referenz eines Objektes anlegt.
<WP_DESKTOP>).
Objekt-IDs werden in der Sektion
PM_Workplace:Location der OS2.INI
zusammen mit dem Objekt-Handle abgelegt und k”nnen nur aufgel”st werden, wenn das
Handle g�ltig ist.
Das Hauptproblem an dieser Implementation ist, daá die WPS die Arbeitsoberfl„che
nicht mehr findet, sobald die Datei-Handles-Tabelle besch„digt ist, weil
sie die Objekt-ID <WP_DESKTOP> benutzt, um sie beim Hochfahren
zu lokalisieren. Wenn Sie den Dialog "Arbeitsoberfl„che konnte nicht gefunden werden"
erhalten, ist in 95% der F„lle die Datei-Handles-Tabelle besch„digt.
Win*-APIs benutzen, um WPS-Objekte
anzulegen oder mit diesen zu arbeiten. Das ist normalerweise tolerierbar, wenn es nur
einige Dateien betrifft. Leider ben”tigen einige dieser APIs (solche wie
WinMoveObject) Objekt-Handles als Eingabe.
OS2.INI
festzuhalten, so daá die Position des Ordners nicht verloren geht, wenn dieser
verschoben wird.
WP_OBJHANDLE
zum Handle der Datendatei setzt, die ge”ffnet wurde. Einige Programme sind darauf
angewiesen, es hat jedoch den ungewollten Effekt, das jedesmal ein Handle angelegt
wird, wenn Sie auf eine Datendatei doppelklicken, auch wenn die Anwendung dieses Handle
nicht ben”tigt.
&xwp; erlaubt durch seine erweiterten Dateizuordnungen, dieses Verhalten abzuschalten.
Ein einfacher Testfall daf�r ist, eine ZIP-Datei in einem offenen Ordner zu entpacken. Das wird viele Dateisystem-Handles erzeugen, die wahrscheinlich nie wieder benutzt werden. Als Ergebnis dieses Verhaltens wird eine groáe Anzahl von Dateisystem-Handles erzeugt.
Nochmals, da diese Objekt-Handles niemals entfernt werden, verbleiben diese �berfl�ssigen Handles f�r immer im System.
Dieses Problem wird durch &xwp;s automatische Aktualisierung von Ordnern behoben.