INFO: Windows NT/2000/XP verwendet KnownDLLs Registrierungseintrag zum Suchen von DLLs

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 164501 - Produkte anzeigen, auf die sich dieser Artikel bezieht
wichtig : Dieser Artikel enthält Informationen zum Bearbeiten der Registrierung. Bevor Sie die Registrierung bearbeiten, vergewissern Sie sich bitte, dass Sie die Registrierung wiederherstellen können, falls ein Problem auftritt. Weitere Informationen zum Erstellen einer Sicherungskopie, zum Wiederherstellen und Bearbeiten der Registrierung finden Sie in folgendem Artikel der Microsoft Knowledge Base:
256986Beschreibung der Microsoft Windows-Registrierung
Alles erweitern | Alles schließen

Auf dieser Seite

Zusammenfassung

Microsoft Windows NT, Windows 2000 und Windows XP verwendet die KnownDLLs-Registrierungseinträge, um nach 32-Bit- oder 16-Bit-DLL zu suchen, beim Laden der DLL. Für 32-Bit-DLLs der KnownDLLs betrifft Registrierungseintrag nur die Suche nach implizit geladene DLLs. 16-Bit-DLLs der KnownDLLs wirkt sich auf Eintrag in der Registrierung die Suche nach beide explizit und implizit geladenen DLLs. Wenn Sie fälschlicherweise eine DLL-Name im Registrierungsschlüssel KnownDLLs einschließen, wird die LoadLibrary in Windows NT/2000/XP WOW Laden einer DLL befindet sich im aktuellen Verzeichnis der Anwendung.

Weitere Informationen

Windows NT/2000/XP verwendet KnownDLLs-Registrierungseintrag, um die DLL einer Anwendung verwenden, werden zu bestimmen. Es sind zwei unterschiedliche KnownDLLs Registrierungseinträge: eine, die das Laden von 32-Bit-DLLs auswirkt und eine wirkt sich auf das Laden von 16-Bit-DLLs. Eine DLL in den Registrierungseintrag KnownDLLs aufgelisteten wird manchmal als "KnownDLL" in diesem Artikel bezeichnet.

-DLLs: 16-bit

Für 16-Bit-DLLs der KnownDLLs-Registrierungswert gefunden ist, in dem folgenden Schlüssel:
   HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\WOW
				
der KnownDLLs Registrierungswert ist eine REG_SZ-Zeichenfolge mit DLL-Namen im 8.3-Format durch ein Leerzeichen getrennt. Der Wert KnownDLLs wirkt sich auf beide explizit und implizit geladenen DLLs.

Ohne den Registrierungswert KnownDLLs verwendet Windows NT WOW die folgende Suche Reihenfolge zum Auffinden der DLL:
  1. Das aktuelle Verzeichnis der Aufgabe, die die DLL verwenden.
  2. Das Verzeichnis \Winnt.
  3. Das Verzeichnis \WINNT\SYSTEM.
  4. Das Verzeichnis \winnt\system32.
  5. Das Verzeichnis der ausführbaren Datei für die Aufgabe, die die DLL verwenden.
  6. Ein Verzeichnis, in der Umgebungsvariablen PATH aufgeführten.
Mit dem Registrierungswert KnownDLLs sucht Windows NT WOW nur im Verzeichnis \WinNT\System32, um die DLL zu suchen. Wenn KnownDLLs einen Eintrag für eine DLL, die nicht in das Verzeichnis \WinNT\System32 befindet enthält, schlägt LoadLibrary zum Laden der DLL selbst wenn die DLL über eines der 5 anderen Speicherorten oben befindet.

Wenn Windows NT/2000/XP WOW fehlschlägt, suchen die DLL LoadLibrary gibt Fehlercode 2 (Datei nicht gefunden) oder die implizite Verknüpfung bewirkt, dass das übergeordnete Modul konnte nicht geladen werden.

Informationen dazu, wie Windows 95 16-Bit-DLLs als KnownDLLs registriert finden Sie unter den folgenden Artikel der Microsoft Knowledge Base:
141969Windows 95 verwendet Known16DLLs Registrierungsschlüssel finden Sie 16-Bit-DLLs

-DLLs: 32-bit

Für 32-Bit-DLLs des KnownDLLs-Registrierungsschlüssel gefunden, am:
   HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager
				
der REG_SZ-Registrierungswertname ist der DLL ohne die Erweiterung. Die Registrierungsdaten Wert ist der Name der DLL mit der Erweiterung. Dieser Eintrag wirkt sich nur implizit geladenen DLLs, nicht geladen, mit der API LoadLibrary() DLLs.

Ohne diesen Eintrag verwendet Windows NT die folgende Suche Reihenfolge um die DLL zu finden:
  1. Das Verzeichnis der ausführbaren Datei für den Prozess, der die DLL geladen wird.
  2. Das aktuelle Verzeichnis des Prozesses, der die DLL geladen wird.
  3. Das Verzeichnis \winnt\system32.
  4. Das Verzeichnis \Winnt.
  5. Ein Verzeichnis, in der Umgebungsvariable Path aufgelistet.
Der Registrierungswert KnownDLLs verwendet Windows NT die folgende Suche Reihenfolge um die DLL zu finden:
  1. Das Verzeichnis \winnt\system32.
  2. Das Verzeichnis der ausführbaren Datei für den Prozess, der die DLL geladen wird.
  3. Das aktuelle Verzeichnis des Prozesses, der die DLL geladen wird.
  4. Das Verzeichnis \Winnt.
  5. Ein Verzeichnis, in der Umgebungsvariablen PATH aufgeführten.
Wenn die DLL nicht in einem der oben genannten Speicherorte befindet, bewirkt die implizite Verknüpfung das übergeordnete Modul konnte nicht geladen werden.

Eine DLL wird als eine KnownDLL behandelt, wenn Sie eine KnownDLL implizit zu Hyperlinks. MAIN.DLL werden z. B. Funktionen aus CHILD.DLL. Wenn MAIN.DLL im Registrierungsschlüssel KnownDLLs aufgeführt ist, behandelt Windows NT auch CHILD.DLL, als eine KnownDLL. Eine andere Anwendung oder DLL, die CHILD.DLL verwendet, die DLL verwenden, die mit MAIN.DLL verknüpft war.

Windows NT 32-Bit-KnownDLLs beim Systemstart zugeordnet. Umbenennen oder Verschieben der DLL verfügt über keine Auswirkungen für die DLL einer Anwendung wird geladen; verwendet weiterhin die beim Systemstart in \Winnt\System32 war.

So ändern, wie Windows NT lädt KnownDLLs den ExcludeFromKnownDlls-Registrierungswert am verwenden:
   HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager
				
Hinweis: Verwenden von RegEdt32 anstelle von RegEdit diesen Registrierungswert ändern.

Dieser Registrierungswert REG_MULTI_SZ enthält Namen der DLLs im 8.3-Format, eine DLL pro Zeichenfolge. Wenn eine DLL in ExcludeFromKnownDlls aufgeführt ist, dann behandelt Windows NT die DLL als eine KnownDLL nicht selbst wenn es im Registrierungsschlüssel KnownDLLs aufgeführt ist. Dies ist nützlich, wenn Sie entwickeln eine DLL durch zahlreiche andere KnownDLLs verwendet wird und es wichtig ist zu ersetzen, und Testen von neuen Builds ohne Neustart von Windows NT.

Änderungen an die oben genannten Registrierungsschlüssel erfordert Administratorrechte auf dem lokalen Computer. Die Verwendung des KnownDLLs schützt das System von einer Person trügerisch APIs ersetzen, indem eine Rogue-DLL im Anwendungsverzeichnis platzieren.

Informationen dazu, wie Windows 95 32-Bit-DLLs als KnownDLLs registriert finden Sie unter den folgenden Artikel der Microsoft Knowledge Base:
151646Windows 95 verwendet KnownDLLs Registrierungsschlüssel finden Sie 32-Bit-DLLs
Achtung: Durch das unkorrekte Verwendung des Registrierungseditors kann schwerwiegende Probleme verursachen, die eine Neuinstallation Ihres Betriebssystems erforderlich machen. Microsoft kann nicht garantieren, dass Probleme, die von einer falschen Verwendung des Registrierungseditors herrühren, behoben werden können. Benutzen Sie den Registrierungseditor auf eigene Verantwortung.

Weitere Informationen zum Bearbeiten der Registrierung Hilfethema "Ändern von Schlüsseln und Werten" in Registrierungs-Editor (Regedit.exe) oder in den Hilfethemen "Hinzufügen und Löschen von Informationen in der Registrierung" und "Bearbeiten der Registrierungsdaten" in Regedt32.exe. Es ist Ihr eigenes Risiko, den Windows- oder Windows NT-Registrierungseditor oder ähnliche Werkzeuge zur Manipulation der Windows- oder Windows NT-Registrierung zu verwenden. Wenn Sie mit Windows NT arbeiten, sollten Sie zudem Ihre Notfalldiskette (Emergency Recovery Disk - ERD) aktualisieren.

Eigenschaften

Artikel-ID: 164501 - Geändert am: Dienstag, 21. November 2006 - Version: 4.1
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft Win32 Application Programming Interface, wenn verwendet mit:
    • Microsoft Windows NT 4.0
    • the operating system: Microsoft Windows 2000
    • the operating system: Microsoft Windows XP
Keywords: 
kbmt kbdll kbinfo kbkernbase kbregistry KB164501 KbMtde
Maschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 164501
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

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