INFORMAZIONI: voce del Registro di sistema KnownDLL Windows NT/2000/XP utilizza per trovare la DLL

Traduzione articoli Traduzione articoli
Identificativo articolo: 164501 - Visualizza i prodotti a cui si riferisce l?articolo.
importante : questo articolo contiene informazioni sulla modifica del Registro di sistema. Prima di modificare il Registro di sistema, eseguire una copia di backup e assicurarsi di sapere come ripristinarlo in caso di problemi. Per ulteriori informazioni su come eseguire il backup, ripristinare e modificare il Registro di sistema, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito:
256986Descrizione del Registro di sistema di Microsoft Windows
Espandi tutto | Chiudi tutto

In questa pagina

Sommario

Microsoft Windows NT, Windows 2000 e Windows XP č possibile utilizza le voci del Registro di sistema KnownDLL per cercare le DLL a 32 o 16 bit quando il caricamento della DLL. Per le DLL a 32 bit le KnownDLL voce del Registro di sistema riguarda solo la ricerca per le DLL caricate in modo implicito. Per le DLL a 16 bit il KnownDLL voce del Registro di sistema ha effetto la ricerca per entrambi le DLL caricate in modo implicito e in modo esplicito. Se si include in modo non corretto di un nome DLL nella voce del Registro di sistema KnownDLL, il LoadLibrary in Windows NT/2000/XP WOW non viene caricata una DLL nella directory corrente dell'applicazione.

Informazioni

Windows NT/2000/XP utilizza la voce del Registro di sistema KnownDLL per determinare che verrā utilizzato DLL un'applicazione. Esistono due diversi movimenti di registro di sistema KnownDLL: uno che interessa il caricamento di DLL a 32 bit e uno che interessa il caricamento di DLL a 16 bit. Una DLL nell'elenco la voce del Registro di sistema KnownDLL č noto come "KnownDLL" in questo articolo.

DLL: 16-bit

Per le DLL a 16 bit, il valore di registro di sistema di KnownDLL viene trovato nella seguente chiave:
   HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\WOW
				
valore del Registro di sistema KnownDLL il č una stringa REG_SZ con nomi DLL in formato 8.3, separati da uno spazio. Il valore di KnownDLL influenza sia DLL caricata in modo implicito e in modo esplicito.

Senza il valore del Registro di sistema KnownDLL, Windows NT WOW utilizzato il seguente ordine di ricerca per individuare la DLL:
  1. La directory corrente dell'attivitā che utilizza la DLL.
  2. La directory \winnt.
  3. La directory \WINNT\SYSTEM.
  4. La directory \WINNT\SYSTEM32.
  5. La directory del file eseguibile per l'attivitā che utilizza la DLL.
  6. Una directory elencata nella variabile di ambiente PATH.
Con il valore del Registro di sistema KnownDLL, Windows NT WOW ricerca effettuata solo nella directory \WINNT\SYSTEM32 individuare la DLL. Se KnownDLL include una voce per una DLL che non si trova nella directory \WINNT\SYSTEM32, LoadLibrary non riesce caricare la DLL anche se la DLL si trova in uno dei 5 altri percorsi precedenti.

Se Windows NT/2000/XP WOW non riesce a individuare la DLL, LoadLibrary restituisce il codice di errore 2 (file non trovato) o il collegamento implicito causa Impossibile caricare il modulo padre.

Per informazioni su come Windows 95 Registra DLL a 16 bit come KnownDLL vedere il seguente articolo della Microsoft Knowledge Base riportato di seguito:
141969Windows 95 utilizza Known16DLLs Registry Key per trovare la DLL a 16 bit

DLL: 32-bit

Per le DLL a 32 bit le KnownDLL si trova chiave del Registro di sistema:
   HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager
				
nome valore di REG_SZ il Registro di sistema č il nome della DLL senza l'estensione. I dati del valore del Registro di sistema sono il nome della DLL con estensione. Questa voce ha effetto solo in modo implicito caricata dll, non le DLL caricate utilizzando l'API LoadLibrary().

Senza questa voce, verrā utilizzato il seguente ordine di ricerca per individuare la DLL:
  1. La directory del file eseguibile per il processo che č il caricamento della DLL.
  2. Directory corrente del processo che č il caricamento della DLL.
  3. La directory \WINNT\SYSTEM32.
  4. La directory \winnt.
  5. Una directory elencata nel variabile di ambiente path.
Con la voce del Registro di sistema KnownDLL, verrā utilizzato il seguente ordine di ricerca per individuare la DLL:
  1. La directory \WINNT\SYSTEM32.
  2. La directory del file eseguibile per il processo che č il caricamento della DLL.
  3. Directory corrente del processo che č il caricamento della DLL.
  4. La directory \winnt.
  5. Una directory elencata nella variabile di ambiente PATH.
Se la DLL non si trova in uno delle posizioni precedenti, il collegamento implicito, Impossibile caricare il modulo padre.

Una DLL viene considerata come un KnownDLL se un KnownDLL in modo implicito i collegamenti a esso. Ad esempio, MAIN.DLL utilizza le funzioni CHILD.DLL. Se MAIN.DLL č elencato nella chiave del Registro di sistema KnownDLL, quindi Windows considera inoltre CHILD.DLL come un KnownDLL. Un'altra applicazione o DLL che utilizza CHILD.DLL utilizzerā la DLL che č stata collegata a MAIN.DLL.

Windows esegue il mapping KnownDLL a 32 bit in fase di avvio del sistema. Rinominando o spostando la DLL non dispone di alcun effetto in cui verrā caricata la DLL di un'applicazione, utilizza ancora quella di \WINNT\SYSTEM32 al momento dell'avvio.

Modificare la modalitā Windows carica KnownDLL utilizzando il valore del Registro di sistema di ExcludeFromKnownDlls situato:
   HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager
				
Nota: utilizzare RegEdt32 invece di RegEdit per modificare questo valore del Registro di sistema.

Questo valore del Registro di sistema REG_MULTI_SZ contiene nomi di DLL in formato 8.3, ovvero una DLL per stringa. Se una DLL č elencata in ExcludeFromKnownDlls, quindi Windows non considera la DLL come un KnownDLL, anche se č elencato nella chiave di registro KnownDLL. Ciō risulta utile quando si sviluppa una DLL che viene utilizzata da numerosi altri KnownDLL ed č importante sostituire e testare nuove build senza il riavvio di Windows NT.

Apportare modifiche alle chiavi di registro citati in precedenza richiede privilegi amministrativi sul computer locale. L'utilizzo di KnownDLL protegge il sistema da un utente concentrerō sostituzione API, inserendo un inaffidabili DLL nel directory dell'applicazione.

Per informazioni su come Windows 95 Registra DLL a 32 bit come KnownDLL vedere il seguente articolo della Microsoft Knowledge Base riportato di seguito:
151646Windows 95 utilizza KnownDLL Registry Key per trovare la DLL a 32 bit
Avviso: Utilizzo non corretto scopo puō causare seri problemi che potrebbero richiedere la reinstallazione del sistema operativo. Microsoft non garantisce che i problemi derivanti dall'errato utilizzo dell'editor del registro possano essere risolti. Utilizzare Editor del Registro di sistema a proprio rischio.

Per informazioni su come modificare il Registro di sistema, vedere l'argomento della Guida "Modifica di chiavi e valori" Editor del Registro di sistema (Regedit.exe) oppure "Aggiungere ed Elimina di informazioni nel Registro di sistema" e "Modifica dei dati del Registro di sistema" nella Guida in linea di Regedt32.exe. Si raccomanda di eseguire una copia di backup del Registro di sistema prima di modificarlo. Se si utilizza Windows NT occorre inoltre aggiornare il disco di ripristino.

Proprietā

Identificativo articolo: 164501 - Ultima modifica: martedė 21 novembre 2006 - Revisione: 4.1
Le informazioni in questo articolo si applicano a:
  • Microsoft Win32 Application Programming Interface alle seguenti piattaforme
    • Microsoft Windows NT 4.0
    • the operating system: Microsoft Windows 2000
    • the operating system: Microsoft Windows XP
Chiavi: 
kbmt kbdll kbinfo kbkernbase kbregistry KB164501 KbMtit
Traduzione automatica articoli
Il presente articolo č stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell?utente. Tuttavia, un articolo tradotto in modo automatico non č sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, pių o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non č la sua. Microsoft non č responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell?utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.
Clicca qui per visualizzare la versione originale in inglese dell?articolo: 164501
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com