BILGI: DLL'leri bulmak için Windows NT/2000/XP kullanır KnownDLLs kayıt defteri girdisi

Makale çevirileri Makale çevirileri
Makale numarası: 164501 - Bu makalenin geçerli olduğu ürünleri görün.
ÖNEMLI: Bu makale kayıt defterini değiştirmeyle ilgili bilgiler içermektedir. Kayıt defterini değiştirmeden önce yedeklediğinizden ve bir sorun çıkması durumunda kayıt defterini geri nasıl yükleyeceğinizi anladığınızdan emin olun. Kayıt defterini yedekleme, geri yükleme ve düzenleme ile ilgili bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
256986Microsoft Windows Kayıt Defteri'nin Açıklaması
Hepsini aç | Hepsini kapa

Bu Sayfada

Özet

Microsoft Windows NT, Windows 2000 ve Windows XP 32-bit veya 16-bit bir DLL için DLL yüklenirken aranacak KnownDLLs</a0> kayıt defteri girdileri kullanır. KnownDLLs 32 bit DLL için kayıt defteri girdisi, yalnızca arama için örtülü olarak yüklenen DLL'leri etkiler. KnownDLLs 16 bit DLL için kayıt defteri girdisi, arama için her iki açık ve örtülü olarak yüklenen DLL'leri etkiler. KnownDLLs kayıt defteri girdisinde hatalı bir DLL adı eklerseniz, uygulamanın geçerli dizinde yer alan bir DLL yüklenemedi, Windows NT/2000/XP WOW LoadLibrary başarısız olur.

Daha fazla bilgi

Windows NT/2000/XP KnownDLLs</a0> kayıt defteri girdisi, DLL bir uygulamanın kullanacağı belirlemek için kullanır. Iki farklı KnownDLLs kayıt defteri girişleri vardır: bir 32 bit dll dosyasının etkiler ve bir 16 bit dll dosyasının etkiler. KnownDLLs kayıt defteri girdisinde listelenen BIR DLL bazen bu makalenin "KnownDLL" olarak adlandırılır.

DLL: 16 bit

16 Bit DLL dosyaları da <a0>KnownDLLs</a0> kayıt defteri değerini aşağıdaki anahtarında bulunan:
   HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\WOW
				
DLL adları 8.3 biçiminde, bir boşlukla ayırarak bir REG_SZ dizesi The KnownDLLs kayıt defteri değeridir. KnownDLLs</a0> değeri, her iki açık ve örtülü olarak yüklenen DLL'leri etkiler.

KnownDLLs kayıt defteri değeri olmadan Windows NT WOW dll DOSYASıNı bulmak için aşağıdaki arama sırası kullanır:
  1. Dll DOSYASıNı kullanarak bir görevin geçerli dizin.
  2. \WINNT dizin.
  3. \WINNT\SYSTEM dizin.
  4. \WINNT\SYSTEM32 dizin.
  5. Dll DOSYASıNı kullanarak görevin yürütülebilir dizin.
  6. Bir dizin, PATH ortam değişkeninde listelenen.
KnownDLLs kayıt defteri değeri ile Windows NT WOW yalnızca \WINNT\SYSTEM32 dizininde dll DOSYASıNı bulmak için arama yapar. KnownDLLs \WINNT\SYSTEM32 dizininde bulunan bir DLL DOSYASı için bir girdi içeriyorsa, DLL 5 diğer konumlarda yukarıdaki birinin bulunduğu olsa bile, DLL yüklenemedi LoadLibrary başarısız olur.

Dll DOSYASıNı bulmak, Windows NT/2000/XP WOW başarısız olursa, LoadLibrary 2 (dosya bulunamadı) hata kodu döndürür veya örtülü bağlama üst modülü yüklenemedi başarısız olmasına neden olur.

Windows 95 16 bit DLL KnownDLLs kaydettirir nasıl çalıştığı hakkında bilgi için Microsoft Knowledge Base'de aşağıdaki makaleye bakın:
14196916 Bit dll dosyalarını bulmak için Windows 95 kullanır Known16DLLs kayıt defteri anahtarı

DLL: 32 bit

32 Bit dll dosyalarını KnownDLLs adresindeki kayıt defteri anahtarı bulundu:
   HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager
				
The REG_SZ kayıt defteri değeri adı uzantısı olmadan DLL adıdır. Kayıt defteri değer verisi, DLL uzantılı adıdır. Bu girdi yalnızca örtülü olarak yüklenen DLL'leri, LoadLibrary() API kullanılarak yüklenen DLL'leri etkiler.

Bu girdi Windows NT dll DOSYASıNı bulmak için aşağıdaki arama sırası kullanır:
  1. DLL yükleniyor işlemin yürütülebilir dizin.
  2. DLL yükleniyor işlemin geçerli dizini.
  3. \WINNT\SYSTEM32 dizin.
  4. \WINNT dizin.
  5. Yol ortam değişkeninde listelenen BIR dizin.
KnownDLLs kayıt defteri girdisi ile Windows NT, dll DOSYASıNıN yerini belirlemek için aşağıdaki arama sırası kullanır:
  1. \WINNT\SYSTEM32 dizin.
  2. DLL yükleniyor işlemin yürütülebilir dizin.
  3. DLL yükleniyor işlemin geçerli dizini.
  4. \WINNT dizin.
  5. Bir dizin, PATH ortam değişkeninde listelenen.
DLL, yukarıda belirtilen konumların hiçbirinde bulunmuyorsa örtülü bağlama üst modülü yüklenemedi başarısız olmasına neden olur.

Bir KnownDLL dolaylı olarak kendisine bağlanıyorsa, DLL bir KnownDLL nitelenir. Örneğin, MAIN.DLL CHILD.DLL işlevlerden kullanır. MAIN.DLL KnownDLLs kayıt defteri anahtarında listeleniyorsa, Windows NT CHILD.DLL de bir KnownDLL nitelendirir. Başka bir uygulama veya DLL CHILD.DLL kullandığı için MAIN.DLL bağlı, DLL kullanır.

Windows NT, önyükleme işlemi sırasında 32 bitlik KnownDLLs eşleştirir. Yeniden adlandırmak veya DLL taşıma DLL uygulama yükler; önyükleme sırasında \WINNT\SYSTEM32 içinde olan bir seçseniz herhangi bir etkisi yok.

Nasıl Windows NT yükler değiştirmek için şu adresteki ExcludeFromKnownDlls kayıt defteri değerini KnownDLLs kullanın:
   HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager
				
Not: Bu kayıt defteri değerini değiştirmek için regedit'i yerine kullan RegEdt32.

Bu <a0>REG_MULTI_SZ</a0> kayıt defteri değeri 8.3 biçiminde, bir DLL dize her DLL adını içerir. Bir DLL içinde ExcludeFromKnownDlls listeleniyorsa, KnownDLLs kayıt defteri anahtarında listelenen bile sonra Windows NT DLL bir KnownDLL kabul değil. Bu, çok sayıda diğer KnownDLLs tarafından kullanılan bir DLL geliştirmek ve değiştirmek ve Windows NT yeniden önyükleme yapmaya gerek kalmadan yeni yap?lar sınamanız önemlidir yararlıdır.

Sistemde yukarıda belirtilen kayıt defteri anahtarlarına değişiklik yapmadan, yerel makinede yönetici ayrıcalıkları gerektiriyor. Uygulama dizininde bir hata DLL yerleştirerek Apı deceptively değiştirme birinden sistem KnownDLLs kullanımını güvenlik altına alır.

Windows 95 32 bit DLL KnownDLLs kaydettirir nasıl çalıştığı hakkında bilgi için Microsoft Knowledge Base'de aşağıdaki makaleye bakın:
15164632 Bit dll dosyalarını bulmak için Windows 95 kullanır KnownDLLs kayıt defteri anahtarı
UYARı: Kayıt Defteri Düzenleyicisi'ni yanlış kullanmak, işletim sisteminizi yeniden yüklemenizi gerektirebilecek ciddi sorunlara neden olabilir. Microsoft, Kayıt Defteri Düzenleyicisi'nin yanlış kullanılmasından kaynaklanan sorunların çözülebileceğini garanti etmemektedir. Kayıt Defteri Düzenleyicisi'ni kullanmak kendi sorumluluğunuzdadır.

Kayıt defterini düzenlemekle ilgili bilgi için, Kayıt Defteri Düzenleyicisi'ndeki (Regedit.exe) "Anahtarları ve Değerleri Değiştirmek " veya Regedt32.exe dosyasındaki "Kayıt Defterine Bilgi Eklemek veya Bilgileri Silmek " ve "Kayıt Defteri verilerini Düzenlemek" adlı Yardım konularına bakın. Düzenlemeden önce kayıt defterini yedeklemeniz gerektiğiniz unutmayın. Windows NT çalıştırıyorsanız, Acil Durum Onarım Disketi (ERD) de güncelleştirmelisiniz.

Özellikler

Makale numarası: 164501 - Last Review: 21 Kasım 2006 Salı - Gözden geçirme: 4.1
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Win32 Uygulama Programlama Arabirimi, Ne zaman ne ile kullanilir:
    • Microsoft Windows NT 4.0
    • the operating system: Microsoft Windows 2000
    • the operating system: Microsoft Windows XP
Anahtar Kelimeler: 
kbmt kbdll kbinfo kbkernbase kbregistry KB164501 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:164501

Geri Bildirim Ver

 

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