0x0002,
och deras l†ga-ord „r listade i
PM_Abstract:Objects sektionen i OS2.INI med objektets data.
Abstrakta objekt har alltid en handtag skapat f”r dem d„rf”r att de har inga filnamn och handtaget „r det enda s„ttet att referera till dem.
0x0003. Det l†ga-ordet kommer sedan fr†n filhandtagsdatabasen i
PM_Workplace:HandlesX sektionen hos OS2SYS.INI.
Notera att det finns tv† PM_Workplace:HandlesX sektioner (med X
varande 0 eller 1). WPS h†ller filsystemshandtag i minnet hela tiden och
t”mmer det till OS2SYS.INI endast fr†n tid till tid. N„r det g”r s†,
kontrollerar det PM_Workplace:ActiveHandles nyckeln f”r att r„kna ut vilken av
de tv† sektionerna som f”r n„rvarande „r aktiv, t”mmer handtagen till den andra sektionen, och
modifierar nyckeln s† att den pekar p† den andra sektionen. Detta „r n”dv„ndigt eftersom
poster i &os2; INI filer inte kan inneh†lla mer „n 64 KB data och att WPS d„rf”r m†ste
anv„nda †tskilliga block f”r att h†lla hela handtagstabellen.
I teorin, skall WPS endast skapa ett handtag f”r ett filsystemsobjekt om det verkligen „r n”dv„ndigt, t.ex. om objektet verkligen refererades n†gonstans.
Emellertid, filsystemshandtag kan ocks† orsaka problem. Ju fler filsystemshandtag som finns, ju sl”are blir WPS i allm„nhet. Viktigast, det totala antalet filsystemshandtag „r begr„nsat. Om det finns f”r m†nga filsystemshandtag, kan WPS bli ostabilt.
Bland annat, skapas filhandtag i f”ljande situationer:
Till exempel, om du anger en s”kv„g till en exekverbar fil i ett programobjekts notbok med egenskaper, vill programobjektet ha ett handtag, s† det b”r f† ett n„r inga objekt „nnu existerar. Samma sak g„ller n„r du skapar en skugga f”r ett objekt.
<WP_DESKTOP>). Objekt ID's „r lagrade i
PM_Workplace:Location sektionen i OS2.INI tillsammans med
objekthandtagen och kan endast sp†ras upp om handtaget „r giltigt.
Det stora problemet med h„r implementationen „r att om filhandtagstabellen „r bruten,
kommer WPS inte att hitta Skrivbordet n†gon mer g†ng d„rf”r att det anv„nder
<WP_DESKTOP> objekt ID f”r att hitta det under startup. Om du f†r
dialogen "Kan inte hitta Skrivbordet", „r i 95% av alla fall filhandtagstabellen bruten.
Win* API'er f”r att skapa
Skrivbordsobjekt eller arbeta med dem. Detta „r normalt tolerabelt om det endast p†verkar
n†gra f† filer. Olyckligtvis, kr„ver vissa av dessa API'er (s†dana som WinMoveObject)
objekthandtag som inmatning.
OS2.INI s† att
mappens position inte f”rloras n„r mappen flyttas.
WP_OBJHANDLE milj”variabeln till handtaget hos datafilen
n„r det ”ppnades. Vissa program bygger p† det, men det har ocks† en olycklig effekt att ett
handtag skapas varje g†ng du dubbelklickar p† en datafil „ven om applikationen inte beh”ver
det handtaget.
&xwp; till†ter dig att avaktivera detta beteende med dess ut”kade filassociationer.
Ett enkelt testfall f”r detta „r att zippa upp en ZIP fil till en ”ppen mapp. Detta kommer att skapa massor av filhandtag som troligtvis aldrig kommer att anv„ndas igen. Ett ganska stort antal filsystemshandtag kommer att skapas som ett resultat av det h„r beteendet.
Och igen, eftersom objekthandtag aldrig tas bort, kommer dessa on”diga handtag att stanna p† systemet i evighet.
Detta problem har †tg„rdats med &xwp;'s utbyte av mappars f”rnyelse.