В настоящее время вы работаете в автономном режиме; ожидается повторное подключение к Интернету

ИНФОРМАЦИЯ: Windows NT, 2000 и XP запись реестра KnownDLLs использует для поиска библиотек DLL

ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.

Эта статья на английском языке: 164501
ВАЖНЫЕ: Эта статья содержит сведения об изменении реестра. Перед изменением реестра убедитесь, что его резервное копирование и убедитесь, что вы знаете, как восстановить реестр в случае возникновения проблем. Сведения о том, как резервное копирование, восстановление и редактирования реестра щелкните следующий номер статьи базы знаний Майкрософт:
256986 Описание реестра Microsoft Windows
Аннотация
Windows NT Microsoft Windows 2000 и Windows XP использует записи реестра KnownDLLs поиск 32- или 16-разрядные библиотеки DLL при загрузке библиотеки DLL. Для 32-разрядных библиотеках DLL KnownDLLs реестра затрагивает только поиск неявно загружаемые DLL. Для 16-разрядных библиотек DLL KnownDLLs реестра влияет на поиск обе явно и неявно загрузки библиотеки DLL. Если неправильно включать имя библиотеки DLL в записи реестра KnownDLLs, LoadLibrary в WOW Windows NT, 2000 и XP не удается загрузить DLL-ФАЙЛ находится в текущем каталоге приложения.
Дополнительная информация
Windows NT, 2000 и XP использует запись реестра KnownDLLs, чтобы определить, какие библиотеки DLL, приложение будет использовать. Существует две разных записи реестра KnownDLLs: один, влияет на загрузку 32-разрядных библиотеках DLL и один, который влияет на загрузку 16-разрядных библиотеках DLL. DLL, перечисленных в записи реестра KnownDLLsиногда называют «KnownDLL» в этой статье.

DLL: 16-бит

Для 16-разрядных библиотеках DLL значение реестра KnownDLLs находится нижеключ:
   HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\WOW				
Значение реестра KnownDLLs является строкой REG_SZ с DLL имена в формате 8.3формат, разделенные пробелом. Значение KnownDLLs влияет на неявнои явно загрузить DLL.

Без значение реестра KnownDLLs WOW Windows NT использует следующиеПорядок поиска для обнаружения библиотеки DLL:
  1. Текущий каталог задачи, использующей библиотеку DLL.
  2. В каталоге \WINNT.
  3. Каталог \WINNT\SYSTEM.
  4. Каталог \WINNT\SYSTEM32.
  5. Каталог исполняемого файла для задачи, использующего библиотеку DLL.
  6. Каталог, указанный в переменной среды PATH.
С значение реестра KnownDLLs WOW Windows NT только выглядитКаталог \WINNT\SYSTEM32 найдите библиотеку DLL. Если KnownDLLs включаетзаписи для библиотеки DLL, которая не находится в папке \WINNT\SYSTEM32Не удается загрузить DLL, даже если расположен на любом из библиотеки DLL LoadLibrary5 других местах выше.

Если WOW Windows NT, 2000 и XP не удается найти библиотеку DLL, функция LoadLibrary возвращает код ошибки 2 (файл не найден) или неявное связывание вызывает родительскийСбой загрузки модуля.

Сведения о том, как Windows 95 регистрирует как KnownDLLs 16-разрядных библиотеках DLLследующую статью базы знаний Майкрософт:
141969Windows 95 использует Known16DLLs реестра найти 16 бит Библиотеки DLL

DLL: 32-разрядные

Для 32-разрядных библиотеках DLL раздела реестра KnownDLLs найти по адресу:
   HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager				
Имя значения реестра REG_SZ является имя библиотеки DLL безрасширение. Значение параметра реестра — это имя библиотеки DLL с помощьюрасширение. Эта операция затрагивает только неявно загружаемые DLL, не библиотеки DLL загружаютсяс помощью LoadLibrary() API.

Без этой операции Windows NT использует следующий порядок поиска дляНайдите библиотеку DLL:
  1. Каталог исполняемого файла процесса, который загружает библиотеку DLL.
  2. Текущий каталог процесс, который загружает библиотеку DLL.
  3. Каталог \WINNT\SYSTEM32.
  4. В каталоге \WINNT.
  5. Каталог, указанный в переменной среды path.
С помощью реестра KnownDLLs Windows NT использует следующий поискЧтобы обнаружить библиотеку DLL:
  1. Каталог \WINNT\SYSTEM32.
  2. Каталог исполняемого файла процесса, который загружает библиотеку DLL.
  3. Текущий каталог процесс, который загружает библиотеку DLL.
  4. В каталоге \WINNT.
  5. Каталог, указанный в переменной среды PATH.
Если библиотека DLL не находится в местах, указанных выше,неявное связывание вызывает родительский модуль сбой загрузки.

Библиотеки DLL рассматривается как KnownDLL, если KnownDLL неявно содержит ссылки на него. Дляв примере MAIN.Библиотека DLL использует функции из ДОЧЕРНИХ.DLL. Если MAIN.DLL присутствует враздел реестра KnownDLLs, затем Windows NT также рассматривает ДОЧЕРНИХ.Библиотеки DLL в качествеKnownDLL. Другое приложение или библиотека DLL, использующая ДОЧЕРНИХ.Библиотека 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 содержит имена библиотек DLL в формате 8.3 формат одногоDLL в строке. Если библиотека DLL в ExcludeFromKnownDlls, а затем Windows NTне обрабатывать DLL как KnownDLL, даже если он указан вРаздел реестра KnownDLLs. Это полезно при разработке библиотеки DLL, который используетсямного других KnownDLLs и его необходимо заменить и тестирования новогоСтроит без перезагрузки Windows NT.

Внесение изменений в вышеупомянутую реестра требует административныхпривилегии на локальном компьютере. Использование KnownDLLs защищает системыот кого-либо обманчиво замены интерфейсов API, поместив незарегистрированные библиотеки DLL вкаталог приложения.

Сведения о том, как Windows 95 регистрирует как KnownDLLs 32-разрядных библиотеках DLLследующую статью базы знаний Майкрософт:
151646Раздел реестра KnownDLLs использует 95 Windows найти 32-разрядных библиотеках DLL
Предупреждение: Неправильное использование редактора реестра может привести к серьезным проблемамможет потребоваться переустановка операционной системы. Корпорация Майкрософт не можетгарантирует, что проблем, связанных с неправильным использованием редактора реестраможет быть решена. Используйте редактор реестра на свой страх и риск.

Сведения о редактировании реестра просмотра "Изменение разделов иЗначения» справки редактора реестра (Regedit.exe) или "Добавление и удалениеСведения в реестре"и"Редактирование данных реестра"разделы справки вRegedt32.exe. Обратите внимание, что следует резервной копии реестра перед его изменением.При работе с Windows NT следует также обновить ваш аварийногоДиск восстановления (ERD).

Внимание! Эта статья переведена автоматически

Свойства

Номер статьи: 164501 — последний просмотр: 10/27/2012 22:01:00 — редакция: 6.0

Microsoft Win32 Application Programming Interface

  • kbdll kbinfo kbkernbase kbregistry kbmt KB164501 KbMtru
Отзывы и предложения