ntdll.dll — это модуль, входящий в состав динамических библиотек, необходимых для обработки API и для выполнения функций, которые используются для вызова прикладных программ. Говоря простым языком, функции: копирования, перемещения, сравнение и не только, используют эту dll-(ку). Windows еще на стадии загрузки, при работе программы smss.exe, запускающей подсистему Win32, начинает использовать эту библиотеку.
Описание библиотеки:
Язык файла: English
Размер файла dll: 1.22 Мб
Размер архива: 0.58 Мб
Версия: 6.1.7601.18247
Формат документа: .zip архив
Версия ОС: Windows 10 | Windows 8 | Windows 7 | Windows XP
Будут появляться в случае повреждения или отсутствия модуля в системе, блокируя возможность запуска программы или игры. В 30% случаев повреждение этого (и не только) файла вызванно резким отключение электропитания, в момент когда жесткий диск обращается к нему и пытается либо считать его с HDD либо записать его на HDD. В остальных 70% случаев из-за заражения вирусом. В обеих случаях, при попытке запустить игру или программу, в ответ получите одну из следующих ошибок:
Мы постараемся помочь Вам исправить ошибки связанные с этой dll-(кой). Для это делаем следующее:
Ntdll.dll – использует файлы динамической библиотеки, которые отвечают за совместимость различных программ, приложении или игр с текущей операционной системой. Если компонент не актуален, работа на компьютере будет невозможна, что вызывает частые ошибки проводника и отказ программ запускаться. При попытке открыть файл, перейти в папку, выполнить другие действия, система выдаст информационное окно: работа программы невозможна, не удается найти файл и т.д.
Как исправить ошибку быстро и эффективно? Прежде всего, необходимо выяснить, по какой причине произошел сбой. «Поиск проблемы» при выдаче информационного окна может занять сутки и более, а в итоге система так и не определит точно причину. Вызвать неполадку могли повреждения ключевых элементов библиотеки, устаревшая версия файла или отсутствие компонентов. Основная же причина заключается в несовместимости ─ особенно если операционная система давно не обновлялась. Таким образом, новые программы или браузер, работающие с последними версиями библиотеки, не запустятся.
Для решения проблемы не требуется снова устанавливать или обновлять Виндовс ─ всего в течение пары минут проблему можно решить самостоятельно. Для этого потребуется скачать для Windows/7/8/10 x32 x64, отправить файл в необходимую корневую папку, зарегистрировать его и перезагрузить компьютер. Полученный файл не спешите удалять, его актуальная и рабочая версия еще могут пригодиться. В тех случаях, когда новые программы перезапишут элементы, повредят или удалят, вы сможете быстро заменить текущим компонентом необходимый файл, таким образом восстановив работоспособность. Вам не потребуется скачать ntdll.dll снова, ведь он уже будет у вас на диске. Важно знать: компонент выбирается точно в соответствии с версией виндовса и его разрядностью, для каждого поколения свои параметры и актуальная версия, иначе работоспособность не возобновится.
Повреждение или удаление файла ntdll.dll влечёт за собой массу неприятных последствий. Система использует эту библиотеку для сравнения, копирования, перемещения и многих других полезных вещей. Ошибки, связанные с отсутствием или повреждением ntdll.dll обычно возникают во время установки или работы программы, несовместимой с Windows 7. Такие программы не запускаются сами и приводят к ряду ошибок в системе, иногда даже к сбоям в работе проводника. Сама библиотека может быть повреждена в результате резкого выключения компьютера или заражения вирусом.
Если проблема затрагивает одну программу и не мешает остальным, то, скорее всего, она обращается к старой версии файла ntdll.dll. В этом случае следует зайти в свойства проблемного файла и выбрать там вкладку «Совместимость». В ней поставьте галочку в графе «Запустить программу в режиме совместимости с:» и выберите Windows XP(пакет обновления 3). Также желательно поставить галочку «Выполнять эту программу от имени администратора».
Зачастую несовместимая программа не только сама работает плохо, но и мешает нормальной работе других приложений. В этом случае важно найти и удалить проблемный продукт. Помните, что сбои могут быть вызваны даже работой драйверов, а также новой версией программы, старые версии которой работали нормально. Нужно постепенно удалять программы одну за другой, пока проблема не исчезнет. Перезагружайте компьютер после каждого удаления. Если библиотека повреждена или отсутствует, то можно попробовать самостоятельно поместить её в системную папку. Файл ntdll.dll скачать для Windows/7/8/10 x32 x64 вы можете у нас. Замена испорченного файла должна наверняка решить проблему, но это - крайняя мера, сперва попробуйте первые два способа.
Пользователи операционной системы Windows в процессе работы за компьютером в один день могут обнаружить ошибку ntdll.dll, которая связана с одноименной библиотекой в системе. К счастью, как и все ошибки этого рода, она не приводит ни к какой критической проблеме, а ее устранение не требует глубоких познаний во всех тонкостях операционной системы. В этой статье будет рассказано, из-за чего она происходит, что такое вообще ntdll.dll и как исправить ошибку ntdll.dll в Windows 7.
Перед тем как рассказывать о способе устранения проблемы, следует дать пояснение, что такое вообще ошибка ntdll.dll и из-за чего она происходит в системе.
Разумно будет начать с определения. Итак, ntdll.dll - это системная библиотека, которая отвечает за перемещение, копирование, сравнение и другие похожие операции в операционной системе. И как несложно догадаться, если она у вас произошла, то вы не сможете корректно выполнять вышеперечисленные операции.
Хорошо, с определением разобрались, но осталось разобраться, почему она возникает. А тут есть множество вариантов. Первоначально следует понимать, что системное сообщение с указанием ошибки возникает лишь в том случае, если система не может обнаружить на компьютере представленную библиотеку, а отсутствовать или некорректно работать она может по многим причинам. Чаще всего виною этому становятся антивирусы, призванные защищать ОС от вирусов. Они могут по ошибке счесть данную библиотеку зараженной и поместить ее в карантин, а то и вовсе удалить с компьютера.
К счастью, ошибка приложения ntdll.dll довольно просто устраняется. И так как мы разобрались с определением и причиной, то можно смело переходить непосредственно к решениям проблемы.
Начнем мы с самого простого способа, который не требует от пользователя никаких знаний в области системных компонентов и в настройке отдельных параметров. Он будет подразумевать использование специального программного обеспечения, которое после указания неисправности самостоятельно решит проблему.
Ниже будет приложена подробная инструкция по использованию программы для решения ошибки ntdll.dll, однако от вас изначально требуется самостоятельно загрузить и установить программу на свой компьютер. Сделав это, запустите ее и выполните следующие действия:
В поисковой строке, расположенной по центру окна, пропишите наименование отсутствующей или поврежденной библиотеки. В данном случае это ntdll.dll.
Нажмите кнопку "Выполнить поиск".
В появившихся результатах кликните левой кнопкой мыши по нужному варианту с названием dll.
Нажмите на кнопку "Установить".
Как только вы выполните все действия, программа самостоятельно загрузит и установит библиотеку в нужную директорию, а вы после завершения операции можете дальше пользоваться всеми инструментами системы без появляющейся ошибки.
Вот вы и узнали, как исправить ошибку ntdll.dll, но вполне возможно, что данный способ вам не помог, или же вы в процессе его выполнения столкнулись с трудностями. В этом случае перейдем непосредственно ко второму методу, который, возможно, поможет вам добиться желаемого результата.
На самом деле второй способ мало чем отличается от первого: вы точно так же будете использовать специальную программу, которая поможет вам устранить проблему. Да даже последовательность действий практически такая же, но все же именно она вам может помочь исправить ошибку в системе.
Итак, как и в прошлый раз, вам предварительно нужно будет скачать и загрузить программу DLL Suite. Стоит сказать, что загружать ее следует с официального сайта, так как именно в этом случае вы можете быть уверены, что не подхватите вирус на свой компьютер.
После установки программы запустите ее и проделайте следующие манипуляции:
На левой панели перейдите в раздел "Загрузить DLL".
В центральной части окна введите запрос ntdll.dll в поисковую строку.
Нажмите кнопку "Поиск".
В результатах поиска кликните по найденной библиотеке.
Разверните скрытый список, нажав кнопку "Прочие файлы".
Нажмите кнопку "Загрузить" рядом с тем файлом, путь установки которого соответствует C:\Windows\System32\.
В появившемся окне нажмите на кнопку "ОК".
После выполнения всех действий начнется процесс загрузки и установки. По завершении, а об этом будет свидетельствовать зеленая галочка рядом с кнопкой "Открыть папку", вы можете смело проверять, исправилась ли ошибка в системе.
Если модуль с ошибкой ntdll.dll после выполнения всех вышеперечисленных предписаний у вас все равно появляется, то остается третий вариант, как его можно исправить, и выполняется он вручную.
Итак, изначально вам необходимо скачать саму библиотеку ntdll.dll с интернета. Однако не спешите ее устанавливать, разумно будет проверить ее на вирусы, так как злоумышленники часто используют такой способ распространения вредоносного ПО. Если антивирус не выявил проблем, то вам необходимо просто переместить файл в папку System32, находящуюся по пути C:\Windows\Systems32.
Заметьте, что на 64-битных системах порой файл необходимо переместить в папку SysWOW64, находящуюся в той же папке Windows, в корневом каталоге.
Ntdll.dll - специальная библиотека системной поддержки, нужная при использовании DLL подсистем. Она содержит функции двух типов:
■ интерфейсы диспетчера системных сервисов (system service dispatch stubs) к сервисам исполнительной системы Windows;
■ внутренние функции поддержки, используемые подсистемами, DLL под¬систем и другими компонентами операционной системы.
Первая группа функций предоставляет интерфейс к сервисам исполни¬тельной системы Windows, которые можно вызывать из пользовательского режима. Таких функций более 200, например NtCreateFile и т. д. Большинство из них доступно через Windows API (од¬нако некоторые из них предназначены только для применения внутри са¬мой операционной системы).
Для каждой из этих функций в Ntdll существует точка входа с тем же име¬нем. Код внутри функции содержит специфичную для конкретной аппарат¬ной архитектуры команду перехода в режим ядра для вызова диспетчера системных сервисов, который после про¬верки некоторых параметров вызывает уже настоящий сервис режима ядра из Ntoskrnl.exe.
Ntdll включает множество функций поддержки, например функции для взаимодействия с процессом подсистемы Windows (функции, имена которых начинаются с Csr). Там же находится диспетчер АРС (asynchronous procedure call) пользователь¬ского режима и диспетчер исключений
Подсистема Windows
Подсистема POSIX
Подсистема OS/2
Эта подсистема состоит из следующих основных элементов.
■ Процесса подсистемы окружения (Csrss.exe), предоставляющего:
■ поддержку консольных (текстовых) окон;
■ поддержку создания и удаления процессов и потоков;
■ частичную поддержку процессов 16-разрядной виртуальной DOS-машины (VDM);
■ множество других функций, например GetTempFile , DefineDosDevice , а также несколько функций поддержки естественных языков.
■ Драйвера режима ядра (Win32k.sys), включающего:
■ диспетчер окон, который управляет отрисовкой и выводом окон на экран, принимает ввод с клавиатуры, мыши и других устройств, передает пользовательские сообщения приложениям;
■ Graphics Device Interface (GDI) - представляет собой библиотеку функций для устройств графического вывода. В GDI входят функции для манипуляций с графикой и отрисовки линий, текста и фигур.
■ DLL-модулей подсистем (Kernel32.dll, Advapi32.dll, User32.dll и Gdi32.dll), транслирующих вызовы документированных функций Windows API в вызовы соответствующих (и в большинстве своем недокументированных) сервисов режима ядра из Ntoskrnl.exe и Win32k.sys.
■ Драйверов графических устройств, представляющих собой специфичные для конкретного оборудования драйверы графического дисплея, принтера и минипорт-драйверы видеоплат.
Для формирования элементов управления пользовательского интерфейса на экране, например окон и кнопок, приложения могут вызывать стандартные функции USER. Диспетчер окон передает эти вызовы GDI, а тот - драйверам графических устройств, где они форматируются для дисплея. Драйвер дисплея работает в паре с соответствующим минипорт-драйвером видеоплаты, обеспечивая полную поддержку видео.
GDI предоставляет набор стандартных функций двухмерной графики, которые позволяют приложениям, не имеющим представления о графических устройствах, обращаться к ним. GDI-функции играют роль посредника между приложениями и драйверами дисплея и принтера. GDI интерпретирует запросы приложений на вывод графики и посылает соответствующие запросы драйверам. Он также предоставляет приложениям стандартный унифицированный интерфейс для использования самых разнообразных устройств графического вывода. Этот интерфейс обеспечивает независимость кода приложений от конкретного оборудования и его драйверов. GDI выдает свои запросы с учетом возможностей конкретного устройства, часто разделяя запрос на несколько частей для обработки. Так, некоторые устройства сами умеют формировать эллипсы, а другие требуют от GDI интерпретировать эллипсы как набор пикселов с определенными координатами. Подробнее об архитектуре подсистемы вывода графики и драйвере дисплея см. раздел «Design Guide» в книге «Graphics Drivers» из Windows DDK.
До Windows NT 4 диспетчер окон и графические сервисы были частью процесса подсистемы Windows пользовательского режима. В Windows NT 4 основная часть кода, ответственного за обработку окон и графики, перенесена из контекста процесса подсистемы Windows в набор вызываемых сервисов, выполняемых в режиме ядра (в файл Win32k.sys). Этот перенос был осуществлен в основном для повышения общей производительности системы. Отдельный серверный процесс, содержащий графическую подсистему, требовал многочисленных переключений контекста потоков и процессов, что отнимало большое количество тактов процессора и значительные ресурсы памяти, даже несмотря на высокую оптимизацию исходной архитектуры этой подсистемы.
Например, каждый клиентский поток обслуживается парным серверным потоком в процессе подсистемы Windows, ожидающем запросов от клиентского потока. Для передачи сообщений между потоками используется специальный механизм взаимодействия между процессами, так называемый быстрый LPC (fast LPC). В отличие от обычного переключения контекста потоков передача данных между парными потоками через быстрый LPC не вызывает в ядре события перепланирования, что позволяет серверному потоку выполняться в течение оставшегося кванта времени клиентского потока (вне очереди, определенной планировщиком). Более того, для быстрой передачи больших структур данных, например битовых карт, используются разделяемые буферы памяти, и клиенты получают прямой доступ (только для чтения) к ключевым структурам данных сервера, а это сводит к минимуму необходимость в частом переключении контекста между клиентами и сервером Windows.
GDI-операции выполняются в пакетном режиме. При этом серия графических объектов, запрошенных Windows-приложениями, не обрабатывается сервером и не прорисовывается на устройстве вывода до тех пор, пока не будет заполнена вся очередь GDI. Размер очереди можно установить через Windows-функцию GdiSetBatchLimit . В любой момент все объекты из очереди можно сбросить вызовом функции GdiFlush . С другой стороны, неизменяемые свойства и структуры данных GDI после получения от процессов подсистемы Windows кэшируются клиентскими процессами для ускорения последующего доступа к ним.
Однако, несмотря на такую оптимизацию, общая производительность системы по-прежнему не соответствовала требованиям приложений, интенсивно работающих с графикой. Очевидным решением проблемы стал перевод подсистемы поддержки окон и графики в режим ядра, что позволило избежать потребности в дополнительных потоках и связанных с ними переключениями контекста. Кроме того, как только приложения вызывают диспетчер окон и GDI, эти подсистемы теперь получают прямой доступ к компонентам исполнительной системы Windows без перехода из пользовательского режима в режим ядра и обратно. Прямой доступ особенно важен в случае вызова GDI через видеодрайверы, когда взаимодействие с видеооборудованием требует высокой пропускной способности.
Так что же остается в той части процесса подсистемы Windows, которая работает в пользовательском режиме? Поскольку консольные программы не перерисовывают окна, все операции по отрисовке и обновлению консольных и текстовых окон проводятся именно этой частью Windows. Увидеть ее деятельность несложно: просто откройте окно командной строки и перетащите поверх него другое окно. Вы увидите, что процесс подсистемы Windows начинает расходовать процессорное время, перерисовывая консольное окно. Кроме поддержки консольных окон, только небольшая часть Windows-функций посылает сообщения процессу подсистемы Windows. К ним относятся функции, отвечающие за создание и завершение процессов и потоков, назначение букв сетевым дискам, создание временных файлов. Как правило, Windows-приложение нечасто переключает (если вообще переключает) контекст в процесс подсистемы Windows.
Не пострадала ли стабильность Windows от перевода USER и GDI в режим ядра?
Некоторые интересуются, не повлияет ли на стабильность системы перевод такой значительной части кода в режим ядра. Но риск снижения стабильности системы минимален. Дело в том, что до Windows NT 4 (равно как и в настоящее время) ошибка вроде нарушения доступа (access violation) в процессе подсистемы Windows пользовательского режима (Csrss.exe) приводила к краху системы, потому что процесс подсистемы Windows был и остается жизненно важным для функционирования всей системы. Поскольку структуры данных, определяющие окна на экране, содержатся именно в этом процессе, его гибель приводит к уничтожению пользовательского интерфейса. Однако даже при функционировании Windows в качестве сервера без интерактивных процессов система не могла бы работать без Csrss, поскольку серверные процессы иногда используют оконные сообщения для контроля внутреннего состояния приложений. Так что в Windows ошибки вроде нарушения доступа в том же коде, только выполняемом в режиме ядра, просто быстрее приводят к краху - исключения в режиме ядра требуют прекращения работы системы.
Теоретически появляется другая опасность. Поскольку этот код выполняется в режиме ядра, ошибка (например, применение неверного указателя) может повредить защищенные структуры данных режима ядра. До Windows NT 4 это могло привести к нарушению доступа, так как запись в страницы режима ядра из пользовательского режима не разрешается. Но результатом стал бы крах системы. Теперь же при выполнении кода в режиме ядра запись на какую-либо страницу памяти по неверному указателю не обязательно вызовет немедленный крах системы. Но, если при этом будут повреждены какие-то структуры данных, крах скорее всего произойдет. Тем не менее возникает риск, что из-за такого указателя будет повреждена не структура данных, а буфер памяти, и это приведет к возврату пользовательской программе или записи на диск неверных данных.
Еще одно негативное последствие перевода графических драйверов в режим ядра. Ранее некоторые части графического драйвера выполнялись в Csrss, а остальные части - в режиме ядра. Теперь весь драйвер работает только в режиме ядра. Так как не все драйверы поддерживаемых Windows графических устройств разрабатываются Microsoft, она тесно сотрудничает с производителями оборудования, чтобы гарантировать разработку ими надежных и эффективных драйверов. Все поставляемые с системой драйверы тестируются так же тщательно, как и другие компоненты исполнительной системы.
Схема, при которой подсистема поддержки окон и графики выполняется в режиме ядра, не является принципиально рискованной.
В заключение отметим, что повышение производительности в результате перевода диспетчера окон и GDI из пользовательского режима в режим ядра достигнуто без сколько-нибудь значимого снижения стабильности и надежности системы - даже в случае нескольких сеансов, созданных в конфигурации с поддержкой Terminal Services.