Condividi tramite


Windows Confidential Rilevamento dei collegamenti

Raymond Chen

Se si sposta la destinazione di un collegamento, la shell di Windows tenterà di individuare la nuova posizione;Questo processo è noto come "Risoluzione"il collegamento. Ma quale algoritmo la shell utilizza per trovare la destinazione?

La risposta è: Dipende.

Windows 95

Quando i tasti di scelta rapida sono stati introdotti in Windows 95, file System non dispone di numerose strutturarne associato all'oggetto di verifica. La shell di Windows 95 viene utilizzato un algoritmo di ricerca semplice per trovare la destinazione del collegamento persi: Quando viene creato un collegamento, varie proprietà della destinazione del collegamento vengono registrati nel file collegamento stesso, le proprietà, ad esempio il nome del file, dimensioni del file, ora di creazione e l'ora ultima modifica, così come informazioni sull'unità contenente il file.

Queste proprietà vengono aggiornate periodicamente quando viene utilizzato il collegamento e la destinazione del collegamento passa manca, la shell inizia a cercare un file con tante proprietà minor in comune con il file di destinazione. Quando viene trovato un file che è abbastanza simile a destinazione originale, esso viene dichiarata la destinazione come con stato trovato.

Proprietà diverse con priorità diverse, ma ora di creazione ha il peso maggiore, poiché tale proprietà tende a rimanere connessi ad un file anche dopo la modifica e anche rinominato. Tunneling di file di sistema consente di mantenere queste informazioni associate al file, anche quando programmi involontariamente funzionare in modo che in genere necessario eliminare le informazioni.

La ricerca inizia nella directory che è stato il percorso del file ultimo noti. Ma anche di individuare il punto di partenza può richiedere un po' di lavoro se l'unità è stato modificato;ad esempio, se la destinazione del collegamento è stata su un'unità di rete mappata all'unità "O"ma è ora associato all'unità "p".

Dopo la ricerca della directory ultima nota, la ricerca deriva in sottodirectory;quindi viene espanso verso l'esterno alla directory di padre e la directory di pari livello;verrà quindi la directory padre, zie, uncles e il cugini, piuttosto molto ogni relativo noto mankind. Se la ricerca continua per due minuti con nessun fortuna, l'impegno è stato abbandonato (anche se non tutti i candidati directory dispone di ricerca eseguita).

Il metodo di NT

Il personale di sistema del file verrà esaminato l'algoritmo di risoluzione scelta rapida di Windows 95 e scoffed. " È possibile eseguire meglio di che: Siamo orientata!" Ogni oggetto NTFS è un identificatore di oggettoun collegamento con una destinazione di un volume NTFS registra anche l'identificatore di oggetto della destinazione del collegamento, così come l'identificatore di oggetto dell'unità stessa.

Quando si tratta di tempo per risolvere il collegamento, la shell richiede il collegamento Gestione servizio distribuito per cercare l'oggetto originale. In un dominio, questo può produrre risultati sorprendente, come trovare il file anche se di un computer e la installato in un altro di unità.

Esistono diversi modi gli amministratori possono influenzare l'algoritmo che la shell si sceglie di utilizzare. Se si attiva l'azione non verificare i collegamenti di shell durante comuni dei criteri (LinkResolveIgnoreLinkInfo), la shell non verrà provare individuare l'unità originale. Se la destinazione del collegamento è stato in un'unità di rete, la shell non tenterà di individuare la risorsa di rete originale quando si determina la posizione iniziale per la ricerca di stile di Windows 95. Presupporrà che solo la lettera di unità non è corretta;in caso contrario, cosa accade, si verifica.

Questo criterio è stato creato per ambienti che dispone di un pool di risorse di rete identici, dove il carico viene distribuito dalla presenza di uno script di accesso collegare l'unità "O", ad esempio, un server diverso a seconda dell'utente. Anche se due utenti si connettono a due server diversi fisicamente, sono identici dal punto di vista logico. Se si impostano questo criterio, un collegamento a O:\program.exe sarà possibile eseguire il programma attualmente unità "O",anche se l'unità "O"non è connesso alla stessa risorsa di rete come quando viene creato il collegamento.

Esistono anche una coppia di criteri che consentono di disattivare i due algoritmi posizione oggetto una volta determinato il punto di partenza: di non utilizzare il metodo basato sulla verifica risoluzione dei criteri di scelta rapida (NoResolveTrack) shell disattiva l'algoritmo di oggetto di verifica NTFS decorativo;di non utilizzare il metodo basato sulla ricerca risoluzione dei criteri di scelta rapida (NoResolveSearch) shell disattiva l'algoritmo di ricerca di Windows 95 low-tech.

Ripristinare collegamenti interrotti è uno di tali processi estenuante della shell: Persone sbaglio anche che si sta affidarsi la funzionalità fino a quando non smette di funzionare.

Raymond Chen's Web site, The Old New Thing, and identically titled book (Addison-Wesley 2007) deal with Windows history and Win32 programming. Informazioni talvolta codifica, convertendo in tedesco ().