ข้อมูล: Windows NT/2000/XP ใช้รีจิสทรี KnownDLLs รายการค้นหา DLLs

การแปลบทความ การแปลบทความ
หมายเลขบทความ (Article ID): 164501 - ผลิตภัณฑ์ที่เกี่ยวข้องในบทความนี้
สิ่งสำคัญ: บทความนี้ประกอบด้วยข้อมูลเกี่ยวกับการปรับเปลี่ยนรีจิสทรี ก่อนที่จะแก้ไขรีจิสตรี คุณต้องสำรองข้อมูลนี้ไว้ และต้องทราบวิธีเรียกข้อมูลรีจิสตรีกลับคืน กรณีที่มีปัญหาเกิดขึ้น สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีสำรอง คืนค่า และแก้ไขรีจิสทรี โปรดคลิกที่หมายเลขบทความต่อไปนี้ เพื่อดูบทความในฐานความรู้ของ Microsoft::
256986คำอธิบายสำหรับ Microsoft Windows Registry
ขยายทั้งหมด | ยุบทั้งหมด

เนื้อหาบนหน้านี้

สรุป

Microsoft Windows NT, Windows 2000 และ Windows XP ใช้รายการรีจิสทรี KnownDLLs เพื่อค้นหา DLLs 32 บิต หรือโปรแกรม 16 บิตเมื่อโหลด DLL มีผลสำหรับรุ่น 32 บิต DLLs KnownDLLs รายการรีจิสทรีเท่านั้นต่อการค้นหาสำหรับ DLLs implicitly โหลด สำหรับ DLLs 16 บิต KnownDLLs รายการรีจิสทรีมีผลต่อการค้นหาสำหรับทั้ง DLLs implicitly และต่างหากโหลด ถ้าคุณไม่ถูกต้องรวมชื่อ DLL อยู่ในรายการรีจิสทรี KnownDLLs, LoadLibrary ใน Windows NT/2000/XP WOW ไม่สามารถโหลด DLL ที่อยู่ในไดเรกทอรีปัจจุบันของโปรแกรมประยุกต์

ข้อมูลเพิ่มเติม

windows NT/2000/XP ใช้รายการรีจิสทรี KnownDLLs เพื่อตรวจสอบที่ DLL ข้อแอพลิเคชันที่จะใช้ มีสองอื่น KnownDLLs รายการรีจิสทรี: หนึ่งที่มีผลต่อการโหลดของ DLLs 32 บิต และที่มีผลต่อการโหลดของ DLLs 16 บิต DLL ที่ระบุไว้ในรายการรีจิสทรี KnownDLLs เป็นบางครั้งเรียกว่า "KnownDLL" ในบทความนี้

DLLs: 16 บิต

สำหรับ DLLs 16 บิต ค่ารีจิสทรี KnownDLLs อยู่ในคีย์ต่อไปนี้:
   HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\WOW
				
ค่ารีจิสทรี KnownDLLs เป็นสตริงที่ REG_SZ มี DLL ชื่อแบบ 8.3 คั่น ด้วยช่องว่าง ค่า KnownDLLs มีผลต่อทั้ง DLLs implicitly และต่างหากโหลด

ไม่ มีค่ารีจิสทรี KnownDLLs, Windows NT WOW ใช้ใบสั่งการค้นหาต่อไปนี้เพื่อค้นหา DLL:
  1. ไดเรกทอรีปัจจุบันของงานที่ใช้ DLL
  2. ไดเรกทอรี \WINNT
  3. ไดเรกทอรี \WINNT\SYSTEM
  4. ไดเรกทอรี \WINNT\SYSTEM32
  5. ไดเรกทอรีปฏิบัติงานที่ใช้ DLL
  6. ไดเรกทอรีระบุไว้ในตัวแปรสภาพแวดล้อมของเส้นทาง
มีค่ารีจิสทรี KnownDLLs, Windows NT WOW เท่านั้นปรากฏในไดเรกทอรี \WINNT\SYSTEM32 เพื่อค้นหา DLL ถ้า KnownDLLs รวมรายการบัญชีสำหรับ DLL ที่ไม่อยู่ในไดเรกทอรี \WINNT\SYSTEM32, LoadLibrary ไม่สามารถโหลด DLL ได้แม้ว่า DLL จะอยู่ที่มี 5 อื่น ๆ ตำแหน่งด้านบน

หาก Windows NT/2000/XP WOW ล้มเหลวในการค้นหา DLL, LoadLibrary ส่งกลับรหัสข้อผิดพลาด 2 (แฟ้มไม่พบ), หรือเชื่อมโยง implicit สาเหตุหลักในโมดูลล้มเหลวในการโหลด

สำหรับข้อมูลเกี่ยวกับวิธี Windows 95 ลงทะเบียน DLLs 16 บิตเป็น KnownDLLs ดูบทความในฐานความรู้ของ Microsoft ต่อไปนี้:
141969windows 95 ใช้ Known16DLLs รีจิสทรีคีย์ในการค้นหา DLLs 16 บิต

DLLs: 32 บิต

สำหรับรุ่น 32 บิต DLLs คีย์รีจิสทรี KnownDLLs พบใน:
   HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager
				
ชื่อของค่ารีจิสทรี REG_SZ คือ ชื่อของ DLL โดยไม่มีส่วนขยาย ข้อมูลของค่ารีจิสทรีคือ ชื่อของ DLL ที่มีนามสกุล รายการนี้มีผลต่อ DLLs โหลด implicitly เฉพาะ ไม่ DLLs ที่โหลดการใช้ LoadLibrary() API

ไม่ มีรายการนี้ Windows NT ใช้ใบสั่งการค้นหาต่อไปนี้เพื่อค้นหา DLL:
  1. ไดเรกทอรีปฏิบัติสำหรับกระบวนการที่จะโหลด DLL
  2. ไดเรกทอรีปัจจุบันของกระบวนการที่จะโหลด DLL
  3. ไดเรกทอรี \WINNT\SYSTEM32
  4. ไดเรกทอรี \WINNT
  5. ไดเรกทอรีระบุไว้ในตัวแปรสภาพแวดล้อมของเส้นทาง
มีรายการรีจิสทรี KnownDLLs, Windows NT ใช้ใบสั่งการค้นหาต่อไปนี้เพื่อค้นหา DLL:
  1. ไดเรกทอรี \WINNT\SYSTEM32
  2. ไดเรกทอรีปฏิบัติสำหรับกระบวนการที่จะโหลด DLL
  3. ไดเรกทอรีปัจจุบันของกระบวนการที่จะโหลด DLL
  4. ไดเรกทอรี \WINNT
  5. ไดเรกทอรีระบุไว้ในตัวแปรสภาพแวดล้อมของเส้นทาง
ถ้า DLL ไม่อยู่ในตำแหน่งที่ตั้งกล่าวไว้ข้างต้น เชื่อมโยง implicit สาเหตุหลักในโมดูลล้มเหลวในการโหลด

DLL จะถือว่าเป็นการ KnownDLL แบบถ้า KnownDLL แบบ implicitly เชื่อมโยงดังกล่าว ตัวอย่างเช่น MAIN.DLL ใช้ฟังก์ชันจาก CHILD.DLL ถ้า MAIN.DLL แสดงอยู่ในคีย์รีจิสทรี KnownDLLs จากนั้น Windows NT ยังใช้ CHILD.DLL เป็น KnownDLL แบบ โปรแกรมประยุกต์หรือ DLL ที่ใช้ CHILD.DLL อื่นจะใช้ DLL ที่ถูกลิงค์ไปยัง MAIN.DLL

windows NT แมป KnownDLLs 32 บิตขณะเริ่มระบบ การเปลี่ยนชื่อ หรือย้าย DLL ไม่มีผลใด ๆ ที่จะสามารถโหลด DLL โปรแกรมประยุกต์ โปรแกรมจะยังคงใช้มีใน \WINNT\SYSTEM32 ขณะเริ่มระบบ

เมื่อต้องการเปลี่ยนแปลงวิธีที่ Windows NT โหลด KnownDLLs ใช้ค่ารีจิสทรี ExcludeFromKnownDlls ที่อยู่ที่:
   HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager
				
หมายเหตุ: RegEdt32 ใช้แทนการ RegEdit เพื่อปรับเปลี่ยนค่ารีจิสทรีนี้

ค่ารีจิสทรีนี้ REG_MULTI_SZ ประกอบด้วยชื่อของ DLLs ในรูปแบบ 8.3, DLL เดียวต่อสายอักขระ ถ้า DLL แสดงอยู่ใน ExcludeFromKnownDlls จากนั้น Windows NT ไม่ถือ DLL เป็น KnownDLL ถึงแม้ว่าจะแสดงอยู่ในคีย์รีจิสทรี KnownDLLs ซึ่งจะเป็นประโยชน์เมื่อคุณพัฒนา DLL คำที่ใช้ โดย KnownDLLs อื่น ๆ จำนวนมาก และต้องการแทน และทดสอบ builds ใหม่โดยไม่สามารถใช้ Windows NT

ทำการเปลี่ยนแปลงของคีย์รีจิสทรี aforementioned ต้องมีสิทธิ์ของผู้ดูแลระบบเพื่อภายในเครื่อง การใช้ KnownDLLs รักษาความปลอดภัยระบบจากบุคคล deceptively แทน APIs โดยทำ rogue DLL ในไดเรกทอรีแอพลิเคชัน

สำหรับข้อมูลเกี่ยวกับวิธี Windows 95 ลงทะเบียน DLLs 32-บิตเป็น KnownDLLs ดูบทความในฐานความรู้ของ Microsoft ต่อไปนี้:
151646windows 95 ใช้ KnownDLLs รีจิสทรีคีย์ในการค้นหา DLLs 32 บิต
คำเตือน: การใช้ตัวแก้ไขรีจิสทรีอย่างไม่ถูกต้องอาจทำให้เกิดปัญหาร้ายแรงซึ่งอาจทำให้คุณติดตั้งระบบปฏิบัติการของคุณ Microsoft ไม่รับประกันว่า ปัญหาที่เป็นผลจากการใช้ที่ไม่ถูกต้องของ'ตัวแก้ไขรีจิสทรี'สามารถแก้ไข โปรดใช้ Registry Editor โดยยอมรับความเสี่ยงที่อาจเกิดขึ้น

สำหรับข้อมูลเกี่ยวกับวิธีการแก้ไขรีจิสทรี ดูหัวข้อวิธีใช้ "เปลี่ยนคีย์และค่า" ในตัวแก้ไขรีจิสทรี (Regedit.exe) หรือหัวข้อ "เพิ่มและลบข้อมูลในใน Registry" และ "แก้ไขข้อมูลรีจิสทรี" วิธีใช้ต่าง ๆ ใน Regedt32.exe โปรดสังเกตว่า คุณควรสำรองรีจิสทรีก่อนที่คุณแก้ไข ถ้าคุณกำลังเรียกใช้ Windows NT คุณควรยังปรับปรุงของคุณ Emergency ซ่อมแซม Disk (ERD)

คุณสมบัติ

หมายเลขบทความ (Article ID): 164501 - รีวิวครั้งสุดท้าย: 12 ตุลาคม 2553 - Revision: 2.0
ใช้กับ
  • Microsoft Win32 Application Programming Interface
Keywords: 
kbdll kbinfo kbkernbase kbregistry kbmt KB164501 KbMtth
แปลโดยคอมพิวเตอร์
ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:164501

ให้ข้อเสนอแนะ

 

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