0x0002, mentre la parola meno significativa Š conservata nella sezione
PM_Abstract:Objects in OS2.INI, assieme ai dati relativi
all'oggetto.
Agli oggetti astratti Š sempre assegnato un marcatore ("handle"), dato che essi non hanno altrimenti un nome file proprio ed il marcatore Š l'unico sistema per farvi riferimento.
0x0003,
mentre la parola meno significativa
Š immagazzinata nel database dei marcatori, nella sezione PM_Workplace:HandlesX
del file OS2SYS.INI.
Si noti che vi sono due diverse sezioni PM_Workplace:HandlesX (dove X
pu• essere 0 o 1). La Workplace Shell conserva permanentemente in memoria una lista
aggiornata dei marcatori file, salvandola di tanto in tanto nel file OS2SYS.INI;
al momento del salvataggio controlla quale delle due sezioni Š attiva in quel momento,
verificando lo stato della chiave PM_Workplace:ActiveHandles,
dopodich‚ salva nell'altra sezione i marcatori ed infine modifica la chiave
in modo che punti all'altra sezione. Il complicato meccanismo Š reso necessario dal fatto che
le singole voci nei file INI &os2; non possono contenere pi— di 64 KB di dati e
perci• la WPS ha bisogno di pi— blocchi per poter immagazzinare l'intera tabella
marcatori.
La Workplace Shell infatti dovrebbe in teoria creare marcatori per gli oggetti file system (file dati e cartelle) solo quando questo Š realmente necessario, quando cioŠ da qualche parte vi si fa riferimento.
Tali marcatori file-system possono anche causare problemi. Pi— ve ne sono e pi— la WPS in generale diventa lenta. Ma pi— importante ancora Š il fatto che il numero complessivo dei marcatori file-system non pu• crescere illimitatamente: se i marcatori diventano troppi la WPS pu• diventare instabile.
I marcatori file vengono creati, tra l'altro, nelle occasioni seguenti
Quando, per esempio, si inserisce nel blocco appunti impostazioni di un oggetto programma il percorso del file eseguibile, l'oggetto programma fa riferimento all'eseguibile attraverso un marcatore, che viene generato automaticamente se ancora non ne era stato assegnato uno. Lo stesso vale per le copie collegate.
<WP_DESKTOP>);
le IDentit… oggetto sono conservate nella sezione
PM_Workplace:Location del file OS2.INI assieme ai
marcatori oggetto, e possono evidentemente essere risolte solo se il marcatore Š valido.
Il problema principale di questa implementazione Š che, se la tabella dei marcatori
file si corrompe, la WPS non Š pi— in grado di riconoscere la Scrivania, solitamente
individuata grazie alla IDentit… oggetto <WP_DESKTOP> all'avvio
del sistema.
Il messaggio di errore "Impossibile trovare la Scrivania" Š nel 95% dei casi dovuto
alla tabella marcatori file corrotta.
Win* per creare oggetti della
Scrivania o per modificarli. E' un comportamento generalmente tollerabile,
dato che di norma riguarda un numero limitato di file. Alcune di queste API,
ad es. WinMoveObject,
richiedono sfortunatamente proprio un marcatore oggetto come input.
OS2.INI, la posizione
di apertura della cartella sullo schermo
e poterla ricordare anche se la cartella viene spostata.
WP_OBJHANDLE sul marcatore
del file dati aperto. Questo Š utile per certi programmi, ma ha l'effetto indesiderato
di generare un marcatore ogni volta che si fa doppio clic su di un oggetto, anche quando l'applicazione
non ne fa alcun uso.
&xwp; permette di eliminare questo comportamento facendo uso delle associazioni file estese.
Un semplice test consiste nello scompattare un file ZIP all'interno di una cartella aperta. Questa operazione crea una serie di marcatori file system che non saranno probabilmente mai pi— usati. Sono numerosissimi i marcatori relativi a oggetti file system creati a causa di questo difetto.
Inoltre, lo ripetiamo, dato che tali marcatori non vengono mai cancellati, sono destinati a restare per sempre nel sistema pur essendo del tutto inutili.
La funzione sostitutiva di aggiornamento cartelle di &xwp; elimina il problema.