Bạn hiện đang ngoại tuyến, hãy chờ internet để kết nối lại

Thông tin: Windows NT/2000/XP sử dụng KnownDLLs Registry Entry để tìm DLLs

QUAN TRỌNG: Bài viết này được dịch bằng phần mềm dịch máy của Microsoft chứ không phải do con người dịch. Microsoft cung cấp các bài viết do con người dịch và cả các bài viết do máy dịch để bạn có thể truy cập vào tất cả các bài viết trong Cơ sở Kiến thức của chúng tôi bằng ngôn ngữ của bạn. Tuy nhiên, bài viết do máy dịch không phải lúc nào cũng hoàn hảo. Loại bài viết này có thể chứa các sai sót về từ vựng, cú pháp hoặc ngữ pháp, giống như một người nước ngoài có thể mắc sai sót khi nói ngôn ngữ của bạn. Microsoft không chịu trách nhiệm về bất kỳ sự thiếu chính xác, sai sót hoặc thiệt hại nào do việc dịch sai nội dung hoặc do hoạt động sử dụng của khách hàng gây ra. Microsoft cũng thường xuyên cập nhật phần mềm dịch máy này.

Nhấp chuột vào đây để xem bản tiếng Anh của bài viết này:164501
QUAN TRỌNG: Bài viết này chứa thông tin về việc sửa đổi registry. Trước khi bạn chỉnh sửa registry, hãy chắc chắn để trở lại nó lên và đảm bảo rằng bạn hiểu làm thế nào để khôi phục sổ đăng ký nếu một vấn đề xảy ra. Thông tin về làm thế nào để sao lưu, khôi phục và chỉnh sửa registry, nhấp vào số bài viết sau để xem bài viết trong cơ sở kiến thức Microsoft:
256986 Mô tả của Microsoft Windows Registry
TÓM TẮT
Microsoft Windows NT, Windows 2000 và Windows XP sử dụng các mục đăng ký KnownDLLs để tìm kiếm hoặc là 32-bit hoặc 16-bit DLLs khi nạp DLL. Cho 32-bit DLLs KnownDLLs các mục nhập registry chỉ ảnh hưởng đến việc tìm kiếm ngầm nạp DLL. Cho 16-bit DLLs KnownDLLs các mục nhập registry ảnh hưởng đến việc tìm kiếm cả hai ngầm và rõ ràng nạp DLL. Nếu bạn không chính xác bao gồm một tên DLL trong các mục nhập registry KnownDLLs, LoadLibrary trong Windows NT/2000/XP WOW không tải một DLL trong thư mục hiện hành của ứng dụng.
THÔNG TIN THÊM
Windows NT/2000/XP sử dụng các mục nhập registry KnownDLLs để xác định DLL một ứng dụng sẽ sử dụng. Có hai khác nhau KnownDLLs mục đăng ký: một trong những ảnh hưởng đến nạp DLL 32-bit, và là một trong đó ảnh hưởng đến nạp 16-bit DLLs. Một DLL được liệt kê trong các mục nhập registry KnownDLLs làđôi khi được gọi là một KnownDLL"" trong bài viết này.

DLL: 16-bit

Cho 16-bit DLLs, giá trị đăng ký KnownDLLs được tìm thấy ở đâykhóa:
   HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\WOW				
Giá trị đăng ký KnownDLLs là một REG_SZ chuỗi với DLL tên trong 8.3định dạng, cách nhau bởi khoảng trắng. Giá trị KnownDLLs ảnh hưởng đến cả hai ngầmvà rõ ràng nạp DLL.

Nếu không có giá trị đăng ký KnownDLLs, Windows NT WOW sử dụng sau đâytìm kiếm để xác định vị trí tệp DLL:
  1. Thư mục hiện hành của nhiệm vụ đang dùng tệp DLL.
  2. Thư mục \WINNT.
  3. Thư mục \WINNT\SYSTEM.
  4. Thư mục \WINNT\SYSTEM32.
  5. Các thư mục của trình thực hiện cho tác vụ đang dùng tệp DLL.
  6. Thư mục được liệt kê trong các biến môi trường của con đường.
Với giá trị đăng ký KnownDLLs, Windows NT WOW chỉ trông các\WINNT\SYSTEM32 thư mục để xác định vị trí tệp DLL. Nếu KnownDLLs bao gồm mộtmục nhập cho một DLL này không nằm trong thư mục \WINNT\SYSTEM32,LoadLibrary không nạp DLL ngay cả khi DLL nằm ở bất kỳcác 5 nơi khác ở trên.

Nếu Windows NT/2000/XP WOW không xác định vị trí tệp DLL, LoadLibrary trở về mã lỗi 2 (File không tìm thấy), hoặc liên kết tiềm ẩn gây ra phụ huynhmô-đun để không tải.

Để biết thông tin về làm thế nào Windows 95 đăng ký 16-Bit DLLs như KnownDLLsXem bài viết sau trong cơ sở kiến thức Microsoft:
141969Windows 95 sử dụng Known16DLLs khóa Registry để tìm 16-bit Dll

DLL: 32-bit

Cho 32-bit DLLs khóa sổ đăng ký KnownDLLs được tìm thấy tại:
   HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager				
Tên giá trị sổ đăng ký REG_SZ là tên của DLL mà không có cácphần mở rộng. Dữ liệu giá trị sổ đăng ký là tên của DLL với cácphần mở rộng. Mục nhập này ảnh hưởng đến chỉ ngầm nạp DLL, không DLLs cất cánhbằng cách sử dụng LoadLibrary() API.

Nếu không có cụm từ này, Windows NT sử dụng để tìm kiếm sau đây đểxác định vị trí tệp DLL:
  1. Danh mục tập tin thực thi cho tiến trình nạp DLL.
  2. Thư mục hiện hành của các quá trình đó nạp DLL.
  3. Thư mục \WINNT\SYSTEM32.
  4. Thư mục \WINNT.
  5. Thư mục được liệt kê trong các biến môi trường của con đường.
Với các mục nhập registry KnownDLLs, Windows NT sử dụng tìm kiếm sau đâybộ định vị DLL:
  1. Thư mục \WINNT\SYSTEM32.
  2. Danh mục tập tin thực thi cho tiến trình nạp DLL.
  3. Thư mục hiện hành của các quá trình đó nạp DLL.
  4. Thư mục \WINNT.
  5. Thư mục được liệt kê trong các biến môi trường của con đường.
Nếu tệp DLL không nằm ở bất cứ địa điểm được đề cập ở trên, cácliên kết tiềm ẩn gây ra các phân hệ phụ huynh để không tải.

Một DLL được coi như một KnownDLL nếu một KnownDLL ngầm liên kết đến nó. ChoVí dụ, chính.DLL sử dụng chức năng từ trẻ em.DLL. nếu chính.DLL được liệt kê trongkhóa sổ đăng ký KnownDLLs, sau đó Windows NT cũng coi con.DLL như mộtKnownDLL. Một ứng dụng hoặc DLL có sử dụng trẻ em.DLL sẽ sử dụng DLLmà được liên kết với chính.DLL.

Windows NT đồ 32-bit KnownDLLs lúc khởi động. Đổi tên hoặc di chuyển tệp DLLkhông có bất kỳ tác dụng trên đó DLL ứng dụng sẽ tải; nó vẫn cònsử dụng một trong đó đã ở \WINNT\SYSTEM32 vào lúc khởi động.

Để thay đổi như thế nào Windows NT tải KnownDLLs sử dụng các ExcludeFromKnownDllsgiá trị đăng ký nằm ở vị trí:
   HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager				
Lưu Ý: Sử dụng RegEdt32 thay vì của RegEdit để thay đổi giá trị đăng ký này.

Giá trị sổ đăng ký REG_MULTI_SZ này chứa tên của dll trong 8.3 định dạng, một trong nhữngDLL mỗi chuỗi. Nếu một DLL được liệt kê trong ExcludeFromKnownDlls, sau đó Windows NTkhông xử lý DLL như một KnownDLL, ngay cả khi nó được liệt kê trong cácKhóa sổ đăng ký KnownDLLs. Điều này là hữu ích khi bạn phát triển một DLL được sử dụngbởi rất nhiều KnownDLLs khác và nó là quan trọng để thay thế và thử nghiệm mớixây dựng mà không cần khởi động lại Windows NT.

Thực hiện thay đổi để khóa registry nói trên yêu cầu quản trịđặc quyền để máy địa phương. Việc sử dụng của KnownDLLs an toàn hệ thốngtừ một ai đó deceptively thay thế các API bằng cách đặt một rogue DLL trong cácthư mục ứng dụng.

Để biết thông tin về làm thế nào Windows 95 thanh ghi 32-Bit DLLs như KnownDLLsXem bài viết sau trong cơ sở kiến thức Microsoft:
151646Windows 95 sử dụng KnownDLLs khóa Registry để tìm 32-bit DLLs
Cảnh báo: Bằng cách sử dụng Registry Editor không đúng có thể gây vấn đề nghiêm trọng màcó thể yêu cầu bạn phải cài đặt lại hệ điều hành của bạn. Microsoft không thểđảm bảo rằng vấn đề phát sinh từ việc sử dụng sai của Registry Editorcó thể được giải quyết. Sử dụng Registry Editor nguy cơ của riêng bạn.

Thông tin về cách chỉnh sửa registry, xem "thay đổi phím vàChủ điểm trợ giúp các giá trị"trong Registry Editor (Regedit.exe) hoặc các"thêm và xoáThông tin trong đăng ký"và"Chỉnh sửa Registry Data"chủ điểm trợ giúp trongRegedt32.exe. lưu ý rằng bạn nên trở lại lên nhà đăng ký trước khi bạn chỉnh sửa nó.Nếu bạn đang chạy Windows NT, bạn cũng nên Cập Nhật khẩn cấp của bạnSửa chữa đĩa (ERD).

Cảnh báo: Bài viết này được dịch tự động

Thuộc tính

ID Bài viết: 164501 - Xem lại Lần cuối: 08/19/2011 07:13:00 - Bản sửa đổi: 2.0


  • kbdll kbinfo kbkernbase kbregistry kbmt KB164501 KbMtvi
Phản hồi