Windows Server 2008 R2 Enterprise Windows Server 2008 R2 Datacenter Windows Server 2008 R2 for Itanium-Based Systems Windows Server 2008 R2 Standard Windows Server 2008 R2 Web Edition Windows 7 Enterprise Windows 7 Home Basic Windows 7 Home Premium Windows 7 Professional Windows 7 Starter Windows 7 Ultimate More…Less
Not sure if this is the right fix? We’ve added this issue to our memory dump diagnostic which can confirm.
Symptoms
When an application or a service tries to perform a graphical user interface (GUI)-related operation on a computer that is running Windows Server 2008 R2 or Windows 7, you receive the following stop error:
STOP: 0x0000003B ( parameter1 , parameter2 , parameter3 , parameter4 )
The SYSTEM_SERVICE_EXCEPTION
Notes
-
Not all «0x0000003B» Stop errors are caused by this issue.
-
The parameters in this error message vary, depending on the configuration of the computer.
Cause
This issue occurs because of an error in the Win32k.sys driver.
The Win32k.sys driver may incorrectly obtain a critical resource for the same object multiple times. Therefore, some related variables may be overwritten or reinitialized in a thread. However, another thread references these variables at the same time, and the thread accesses some invalid data. Therefore, you receive the Stop error message that is mentioned in the «Symptoms» section.
Resolution
Hotfix information
A supported hotfix is available from Microsoft. However, this hotfix is intended to correct only the problem that is described in this article. Apply this hotfix only to systems that are experiencing the problem described in this article. This hotfix might receive additional testing. Therefore, if you are not severely affected by this problem, we recommend that you wait for the next software update that contains this hotfix.
If the hotfix is available for download, there is a «Hotfix download available» section at the top of this Knowledge Base article. If this section does not appear, contact Microsoft Customer Service and Support to obtain the hotfix.
Note If additional issues occur or if any troubleshooting is required, you might have to create a separate service request. The usual support costs will apply to additional support questions and issues that do not qualify for this specific hotfix. For a complete list of Microsoft Customer Service and Support telephone numbers or to create a separate service request, visit the following Microsoft Web site:
http://support.microsoft.com/contactus/?ws=supportNote The «Hotfix download available» form displays the languages for which the hotfix is available. If you do not see your language, it is because a hotfix is not available for that language.
Prerequisites
To apply this hotfix, you must be running Windows Server 2008 R2 or Windows 7.
Registry information
To use the hotfix in this package, you do not have to make any changes to the registry.
Restart requirement
You must restart the computer after you apply this hotfix.
Hotfix replacement information
This hotfix does not replace a previously released hotfix.
File information
The global version of this hotfix installs files that have the attributes that are listed in the following tables. The dates and the times for these files are listed in Coordinated Universal Time (UTC). The dates and the times for these files on your local computer are displayed in your local time together with your current daylight saving time (DST) bias. Additionally, the dates and the times may change when you perform certain operations on the files.
Windows 7 and Windows Server 2008 R2 file information notes
Important Windows 7 hotfixes and Windows Server 2008 R2 hotfixes are included in the same packages. However, hotfixes on the Hotfix Request page are listed under both operating systems. To request the hotfix package that applies to one or both operating systems, select the hotfix that is listed under «Windows 7/Windows Server 2008 R2» on the page. Always refer to the «Applies To» section in articles to determine the actual operating system that each hotfix applies to.
-
The MANIFEST files (.manifest) and the MUM files (.mum) that are installed for each environment are listed separately in the «Additional file information for Windows Server 2008 R2 and for Windows 7» section. MUM and MANIFEST files, and the associated security catalog (.cat) files, are extremely important to maintaining the state of the updated component. The security catalog files, for which the attributes are not listed, are signed with a Microsoft digital signature.
For all supported x86-based versions of Windows 7
File name |
File version |
File size |
Date |
Time |
Platform |
---|---|---|---|---|---|
Win32k.sys |
6.1.7600.20785 |
2,327,552 |
20-Aug-2010 |
02:31 |
x86 |
For all supported x64-based versions of Windows 7 and of Windows Server 2008 R2
File name |
File version |
File size |
Date |
Time |
Platform |
---|---|---|---|---|---|
Win32k.sys |
6.1.7600.20785 |
3,124,224 |
20-Aug-2010 |
03:21 |
x64 |
For all supported IA-64-based versions of Windows Server 2008 R2
File name |
File version |
File size |
Date |
Time |
Platform |
---|---|---|---|---|---|
Win32k.sys |
6.1.7600.20785 |
7,416,320 |
20-Aug-2010 |
02:30 |
IA-64 |
Status
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the «Applies to» section.
More Information
For more information about software update terminology, click the following article number to view the article in the Microsoft Knowledge Base:
824684 Description of the standard terminology that is used to describe Microsoft software updates
Additional file information
Additional file information for Windows 7 and for Windows Server 2008 R2
Additional files for all supported x86-based versions of Windows 7
File name |
Update.mum |
File version |
Not applicable |
File size |
1,880 |
Date (UTC) |
20-Aug-2010 |
Time (UTC) |
09:42 |
Platform |
Not applicable |
File name |
X86_0606ea2d95a859b9bc1395fb9538263f_31bf3856ad364e35_6.1.7600.20785_none_066ad7ad7427aba8.manifest |
File version |
Not applicable |
File size |
694 |
Date (UTC) |
20-Aug-2010 |
Time (UTC) |
09:42 |
Platform |
Not applicable |
File name |
X86_microsoft-windows-win32k_31bf3856ad364e35_6.1.7600.20785_none_b953725b14f7f670.manifest |
File version |
Not applicable |
File size |
42,086 |
Date (UTC) |
20-Aug-2010 |
Time (UTC) |
05:18 |
Platform |
Not applicable |
Additional files for all supported x64-based versions of Windows 7 and of Windows Server 2008 R2
File name |
Amd64_01f18e329113c56c411a2656cb85a39c_31bf3856ad364e35_6.1.7600.20785_none_c57808013e7dd016.manifest |
File version |
Not applicable |
File size |
698 |
Date (UTC) |
20-Aug-2010 |
Time (UTC) |
09:42 |
Platform |
Not applicable |
File name |
Amd64_8874ac5cdd8dc962b5fbc3c4dc7f4f52_31bf3856ad364e35_6.1.7600.20785_none_44fbfd7bf058d9cd.manifest |
File version |
Not applicable |
File size |
1,038 |
Date (UTC) |
20-Aug-2010 |
Time (UTC) |
09:42 |
Platform |
Not applicable |
File name |
Amd64_b15700d8fdea63dbf2b942e50923e8af_31bf3856ad364e35_6.1.7600.20785_none_625e836b8f863476.manifest |
File version |
Not applicable |
File size |
698 |
Date (UTC) |
20-Aug-2010 |
Time (UTC) |
09:42 |
Platform |
Not applicable |
File name |
Amd64_microsoft-windows-win32k_31bf3856ad364e35_6.1.7600.20785_none_15720ddecd5567a6.manifest |
File version |
Not applicable |
File size |
42,090 |
Date (UTC) |
20-Aug-2010 |
Time (UTC) |
06:15 |
Platform |
Not applicable |
File name |
Update.mum |
File version |
Not applicable |
File size |
2,536 |
Date (UTC) |
20-Aug-2010 |
Time (UTC) |
09:42 |
Platform |
Not applicable |
File name |
Wow64_microsoft-windows-win32k_31bf3856ad364e35_6.1.7600.20785_none_1fc6b83101b629a1.manifest |
File version |
Not applicable |
File size |
4,178 |
Date (UTC) |
20-Aug-2010 |
Time (UTC) |
05:10 |
Platform |
Not applicable |
Additional files for all supported IA-64-based versions of Windows Server 2008 R2
File name |
Ia64_01f18e329113c56c411a2656cb85a39c_31bf3856ad364e35_6.1.7600.20785_none_695b1073861e67dc.manifest |
File version |
Not applicable |
File size |
697 |
Date (UTC) |
20-Aug-2010 |
Time (UTC) |
09:42 |
Platform |
Not applicable |
File name |
Ia64_a8f9975f6fa1738515b4c4c0b8c897cd_31bf3856ad364e35_6.1.7600.20785_none_2046f187e3ceb339.manifest |
File version |
Not applicable |
File size |
696 |
Date (UTC) |
20-Aug-2010 |
Time (UTC) |
09:42 |
Platform |
Not applicable |
File name |
Ia64_microsoft-windows-win32k_31bf3856ad364e35_6.1.7600.20785_none_b955165114f5ff6c.manifest |
File version |
Not applicable |
File size |
42,088 |
Date (UTC) |
20-Aug-2010 |
Time (UTC) |
05:47 |
Platform |
Not applicable |
File name |
Update.mum |
File version |
Not applicable |
File size |
1,690 |
Date (UTC) |
20-Aug-2010 |
Time (UTC) |
09:42 |
Platform |
Not applicable |
File name |
Wow64_microsoft-windows-win32k_31bf3856ad364e35_6.1.7600.20785_none_1fc6b83101b629a1.manifest |
File version |
Not applicable |
File size |
4,178 |
Date (UTC) |
20-Aug-2010 |
Time (UTC) |
05:10 |
Platform |
Not applicable |
Need more help?
Want more options?
Explore subscription benefits, browse training courses, learn how to secure your device, and more.
Communities help you ask and answer questions, give feedback, and hear from experts with rich knowledge.
Если вы продолжаете получать случайные синие экраны с win32k.sys не волнуйся. Часто это совсем не сложно исправить…
3 исправления для win32k.sys в Windows 10, 7 и 8.1
Вот 3 исправления, которые помогли другим пользователям решить проблему с синим экраном win32k.sys. Просто двигайтесь вниз по списку, пока не найдете тот, который вам подходит.
- Обновите драйвер вашего устройства s
- Запустить SFC
- Запустить проверку диска
Исправление 1. Обновите драйверы устройства.
Эта проблема может возникнуть, если вы используете неправильные или устаревшие драйверы устройств. Поэтому вам следует обновить драйверы, чтобы увидеть, решит ли это вашу проблему. Если у вас нет времени, терпения или навыков для обновления драйвера вручную, вы можете сделать это автоматически с помощью Водитель Easy .
Driver Easy автоматически распознает вашу систему и найдет для нее подходящие драйверы. Вам не нужно точно знать, в какой системе работает ваш компьютер, вам не нужно беспокоиться о неправильном драйвере, который вы будете загружать, и вам не нужно беспокоиться об ошибке при установке. Driver Easy справится со всем .
Вы можете автоматически обновлять драйверы с помощью СВОБОДНЫЙ или Pro версия Driver Easy. Но с версией Pro требуется всего 2 шага (и вы получаете полную поддержку и 30-дневную гарантию возврата денег):
1) Скачать и установите Driver Easy.
2) Запустите Driver Easy и нажмите Сканировать сейчас кнопка. Driver Easy просканирует ваш компьютер и обнаружит проблемы с драйверами.
3) Нажмите Обновить все для автоматической загрузки и установки правильной версии ВСЕ драйверы, которые отсутствуют или устарели в вашей системе (для этого требуется Pro версия — вам будет предложено выполнить обновление, когда вы нажмете «Обновить все»).
4) Перезагрузите компьютер, чтобы изменения вступили в силу.
5) Убедитесь, что проблема с синим экраном смерти win32k.sys решена. Если да, то поздравляю! Если проблема не исчезнет, перейдите к Исправить 2 , ниже.
Исправление 2: Запустите SFC
Проверка системных файлов ( SFC ) — это удобная функция Windows, которая помогает сканировать системные файлы и восстанавливать отсутствующие или поврежденные .sys файлы, которые вызывают в нашей системе ошибку синего экрана. Чтобы запустить сканирование SFC :
- На клавиатуре нажмите Windows logo key и введите cmd . Затем щелкните правой кнопкой мыши на Командная строка и нажмите Запустить от имени администратора .
Нажмите да когда будет предложено подтвердить. - В окне командной строки введите sfc / scannow и нажмите Войти . SFC потребуется некоторое время, чтобы заменить поврежденные системные файлы новыми, если они обнаружатся, поэтому проявите терпение.
- Рестарт ваш компьютер, чтобы изменения вступили в силу.
- Проверьте, устранена ли проблема с синим экраном. Если да, то отлично! Если проблема не исчезнет, попробуйте Исправить 3 , ниже.
Исправление 3: запустите проверку диска
Еще один виновник этого win32k.sys error — это потенциальные дисковые ошибки на наших жестких дисках. Таким образом, мы можем запустить проверку диска, чтобы увидеть, решает ли она проблему.
Проверка диска на наличие ошибок занимает всего несколько минут. Но как только он обнаруживает ошибки, процедура крепления на выполнение может потребоваться ЧАСЫ. Убедитесь, что у вас достаточно времени.Для этого:
- На клавиатуре нажмите клавиша с логотипом Windows и ЯВЛЯЕТСЯ одновременно, затем нажмите Этот ПК .
- Щелкните правой кнопкой мыши на Локальный диск и нажмите Свойства .
- Щелкните значок инструменты вкладка> Проверьте .
- Нажмите Сканирование диска .
- Следуйте инструкциям на экране для Windows, чтобы обнаружить и исправить найденные ошибки.
- Рестарт ваш компьютер и посмотрите, работает ли ваш компьютер без сбоев.
Надеюсь, вы успешно устранили проблему с win32k.sys. Если у вас есть идеи, предложения или вопросы, оставьте нам комментарий ниже. Спасибо за прочтение!
Информация о файле | Описание |
---|---|
Размер файла: | 296 kB |
Дата и время изменения файла: | 2020:03:04 15:27:56+00:00 |
Тип файла: | Win32 EXE |
Тип MIME: | application/octet-stream |
Предупреждение! | Possibly corrupt Version resource |
Тип компьютера: | Intel 386 or later, and compatibles |
Метка времени: | 2083:01:24 01:36:01+00:00 |
Тип PE: | PE32 |
Версия компоновщика: | 14.10 |
Размер кода: | 167424 |
Размер инициализированных данных: | 134656 |
Размер неинициализированных данных: | 0 |
Точка входа: | 0x3d000 |
Версия ОС: | 10.0 |
Версия образа: | 10.0 |
Версия подсистемы: | 10.0 |
Подсистема: | Native |
Номер версии файла: | 10.0.16299.15 |
Номер версии продукта: | 10.0.16299.15 |
Маска флагов файлов: | 0x003f |
Флаги файлов: | (none) |
Файловая ОС: | Windows NT 32-bit |
Тип объектного файла: | Driver |
Подтип файла: | 7 |
Код языка: | English (U.S.) |
Набор символов: | Unicode |
Наименование компании: | Microsoft Corporation |
Описание файла: | Full/Desktop Multi-User Win32 Driver |
Версия файла: | 10.0.16299.15 (WinBuild.160101.0800) |
Внутреннее имя: | win32k.sys |
Авторское право: | © Microsoft Corporation. All rights reserved. |
Название продукта: | Microsoft® Windows® Operating System |
Версия продукта: | 10.0.16299.15 |
✻ Фрагменты данных файлов предоставлены участником Exiftool (Phil Harvey) и распространяются под лицензией Perl Artistic.
Ошибка 0x0000008e является распространенной проблемой, зачастую возникающей при установке Windows или уже в процессе работы с операционной системой. Это так называемый «синий экран смерти», заменяющий собой все рабочее пространство и исчезающий только после перезагрузки системы. Говорит он о критических неполадках.
BSoD с кодом 0x0000008e относится к классу общих и может быть вызван различными причинами. Всему виной может быть как неисправности Windows, так и железо компьютера. Возможные причины проблемы:
- может возникать во время установки старых версий Windows (например, XP или Vista) на оборудование нового поколения;
- нехватка места на диске;
- некорректная работа драйверов.
Почему она возникает
Синий экран появляется во время работы ОС. Иногда при установке или загрузке, если система обнаруживает ошибку, которую не может исправить. Запрашивается перезагрузка ПК. Ошибка 0x0000008e появляется если:
- Драйвер win32k.sys сообщает о конфликте;
- Техническая неисправность;
- Проблема с работой ОЗУ;
- Вирус. Файл «win32k» помещается антивирусной программой в карантин. Его отсутствие нарушает работу.
Возможные причины ошибки
Причины возникновения и способы решения этой проблемы могут быть разные, и для начала разберемся с причинами:
- Так как «win32k.sys» является системным драйвером Windows, это говорит нам о том, что присутствует конфликт оборудования (несовместимость), либо имеется техническая неисправность. Код ошибки частично сообщает нам, что проблема вероятнее всего скрывается в оперативной памяти.
- Также существует вероятность заражения файла «win32k.sys» вирусом, и если у Вас установлен антивирус то данный файл либо лечится, либо отправляется в карантин, а отсутствие данного файла прямым действием нарушает работу системы.
- Стоит также отметить, что данная ошибка появляется не только во время работы системы, а также во время ее установки. В основном это случается с компьютерами нового поколения, на которые пользователи пытаются установить одну из версий системы семейства Windows XP.
Проблемы с ОЗУ
Это актуально для старых ПК. Пользователя пытаются увеличить скорость работы путем добавления новой памяти. При этом не учитывают ее характеристики. Указываются в руководстве к плате. Возникает ошибка stop 0x0000008e.
Если размер памяти более четырех гигабайт — установите 64-разрядную ОС.
Ошибка появляется при запуске ОС. Это происходит из-за появления плохих (BAD) секторов. Они не дают ОС корректно работать.
Проблема связана с файлом «win32k». Что предпринять? Откройте антивирус, проверьте карантин и журнал. Если он там есть, после восстановления, сохраните используемую для работы информацию, переустановите систему. Если его нет в карантине — он поврежден. Воспользуемся системной утилитой для проверки файлов. Открываем командную строку. Нажмите «Win+X», далее выберите соответствующий пункт. Пропишите команду:
Как её исправить?
Проблемы с оперативной памятью
Оперативная память может являться прямым источником данной ошибки. Например, пользователи старых компьютеров зачастую хотят ускорить работу системы, и самым очевидным способом является увеличение объема оперативной памяти. Но, не ознакомившись с руководством к материнской плате, в котором четко указана характеристика оперативной памяти и ее максимальный объем, наш обыватель покупает модуль памяти побольше и «чтоб подходила по разъёму», это неправильно.
Перед тем как покупать новый модуль памяти для начала нужно убедиться, что он будет совместим с Вашей материнской платой. А если хотите добавить к имеющейся то обратите внимание на фирму производителя и характеристики модуля, который уже установлен, и желательно найти такой же.
Важно! Если объём оперативной памяти увеличится в размере от 4 гБ и выше, для того чтобы система использовала весь объём, необходимо будет переустановить операционную систему на 64-разрядную.
Еще одна причина появления «синего экрана», связанного с оперативной памятью — это её поломка. Поломка может быть как частичная, так и полная, и «синий экран» может появляться во время установки системы, во время запуска системы или во время работы компьютера.
Связано это с тем, что изначально при производстве не был выявлен дефект или во время интенсивной работы системы, когда оперативная память неоднократно перегревалась. Последствие этого перегрева внутри модуля появились «BAD SECTOR» (плохие секторы). Плохие сектора оперативной памяти не дают системе и программам правильно работать и не редко могут вызвать и другие ошибки (синие экраны).
Внимание! Диагностику должен производить квалифицированный специалист, обладающий необходимыми навыками и оборудованием для проведения диагностики.
Повреждение системного драйвера «win32k.sys»
Как уже было сказано выше, файл «win32k.sys» может быть заражен вирусом и антивирус попытается его вылечить или удалить. Повреждение «win32k.sys» также приведет его в нерабочее состояние.
- Первое что необходимо сделать — это проверить карантин антивируса и его журнал. Если файл находится в карантине, то можно попытаться его восстановить и добавить в исключения антивируса. Естественно, если он туда попал, то не просто так, и после удачного восстановления желательно сохранить все важные файлы скачав их на флэшку или жёсткий диск. Далее переустановить систему. Это чистовой вариант решения проблемы, но перед тем как обратно закачивать файлы на компьютер установите антивирус.
- Если в карантине не нашелся «win32k.sys», то вероятнее всего он повреждён. Здесь нам понадобится системная утилита проверки файлов, она же и попытается восстановить повреждённый файл.
- Нам понадобится запустить командную строку от имени администратора. Переходим в меню «Пуск» -> «Все программы» -> «Стандартные» и находим в списке «Командная строка» нажимаем на нее правой кнопкой мыши и нажимаем на пункт «Запуск от имени администратора» далее в появившемся окне жмем «Да», тем самым мы подтверждаем свои действия.
- В открывшемся окне вводим команду «sfc /scannow» (без кавычек) далее на клавиатуре жмем «Enter» и дожидаемся окончание процесса.
- После сканирования в окне появятся результаты проверки. Если будет обнаружена ошибка в файлах системы, Windows их устранит и после этого потребуется перезагрузка системы.
Несовместимость «железа» и ОС
Иногда пользователи приобретают новый компьютер или ноутбук с очень скромными характеристиками, и ошибочно полагают, что на новый компьютер лучше всего установить операционную систему «попроще», и как правило устанавливают Win. XP.
Проблема кроется в том, что старая система не была рассчитана на новые стандарты памяти, контроллеры, шины и прочее внутренне наполнение компьютера. Вследствие чего возникают конфликты и проблемы несовместимости «железа» с операционной системой в виде «синих экранов», разных ошибок, не говоря уже о драйверах которые просто не выпускаются на старые операционные системы.
Примечание. Новые операционные системы не всегда высоко-требовательны, их сильная сторона в оптимизации ресурсов компьютера.
Что делать если появляется ошибка 0x0000008e Windows, и система не запускается
Воспользуйтесь загрузочным диском или Live-дистрибутивом. Рассмотрим способ используя диск аварийного восстановления ERD Commander (набор утилит для диагностики). Скачайте его, создайте загрузочный носитель. Когда откроется стартовое окно загрузчика, выбираем версию ОС с учетом разрядности.
Удаляйте только файлы, находящиеся в директориях. Сами папки не трогайте.
Нужную информацию переместите на другой диск. Для этого:
Почему появляется синий экран PFN LIST CORRUPT на ПК
Итак, если у вас появилась ошибка синего экрана смерти с обозначением PFN_LIST_CORRUPT возникает из-за проблем с файлом подкачки. Этому есть несколько причин:
- Поврежденные драйвера, конфликтующие, неверно сконфигурированные, устаревшие.
- Вирусное программное обеспечение, которое затронуло важные системные файлы.
- Неисправность реестра, повреждение отдельных записей после установки программ, под воздействие вирусов или вмешательства самого пользователя.
- Обновление конфигурации компьютера, установка новых компонентов.
- Удалены или повреждены важные системные файлы Windows.
- Повреждения на носителях информации – в данном случае на жестком диске. Неисправности бывают как аппаратного, так и программного характера.
- Повреждение ОЗУ – как физическое, так и программное.
Проще говоря, проблема с появлением данной ошибки носит скорее программный, чем аппаратный характер. И чаще всего причиной являются драйвера устройств PFN LIST CORRUPT. На Windows 7 и ранее обычный код 0x0000004E. В любом случае, причина может быть легко выявлена при помощи дампа памяти Memory.dmp, который создает система при каждой критической ошибке.
Будет проблемой, если создание дампов памяти у вас отключено. Тогда ошибку придется устранять наобум. Находится файл дампа памяти будет по пути C:Windows.
Ошибка 0x0000008e 0xc0000005
Кроме ошибки, рассмотренной выше, в ОС Windows 7/10 возникают такие проблемы:
Другие способы исправить ошибку с кодом pfn list corrupt
Несомненно, синий экран смерти может оказаться для вас головной болью. Не редко бывает так, что выявить причину не получается и приходится обращать к специалисту или вовсе переустанавливать систему.
Ниже имеются способы, которые могут помочь исправить синий экран pfn list corrupt с кодом 0x0000004e:
- Проверка системы на вирусы. Используем не только антивирус по типу Аваст или Защитник Windows, но еще и такие инструменты, как AVZ, Dr Web Cureit и Kaspersky Virus Removal Tool.
- Очистить жесткий диск от мусора и ненужных программ и провести дефрагментацию.
- Сбросить BIOS к состоянию по умолчанию.
- Отключить / заменить внешние устройства (флешки, клавиатуры, мыши, принтеры).
- Произвести возврат системы по точке восстановления.
- Переустановить
- Заменить компоненты, которые могли быть повреждены или неисправны.
Таким образом, мы разобрали большое количество методов, помогающих исправить ошибку pfn_list_corrupt. Если у вас есть другие идеи, как ее исправить, то напишите об этом в комментариях.
( 1 оценка, среднее 4 из 5 )
То, что принято называть «графикой в ядре» обычно относится к win32k. Win32k.sys представляет собой ядерную часть графической подсистемы. Загружается пользовательским процессом smss.exe в процессе инициализации всех остальных подсистем. Путь к исполняемому образу для «kmode» подсистемы прописан здесь:
Как же это происходит?
Здесь (на стек трейсе в нижней части скриншота) хорошо видно, что инициирует загрузку win32k процесс пользовательского режима smss (который в том числе инициализирует файлы подкачки, реестр, переменные окружения, сохраняет дамп памяти, если до этого был bugcheck, при посредстве wininit запускает service control manager и local security authority subsystem, создает logon сессии и т.п..), а одна из первых вещей, которые делает сам win32k — это «налаживание связей» с ядром. И вот зачем: win32k находится на более высоком уровне по сравнению с ядром, поэтому ядро не может иметь зависимость (под «зависимостью» в данном случае понимается классический «reason to change») от (конкретной реализации) win32k, но и ядро и win32k могут безопасно зависеть от интерфейса. Таким интерфейсом является структура KWIN32_CALLOUTS_FPNS и функция для регистрации конкретной реализации этого интерфейса в ядре — PsEstablishWin32Callouts.
Кроме того, win32k регистрирует несколько типов объектов (в частности Desktop и WindowStation) через интерфейсы общего назначения, предоставляемые Object Manager-ом.
Таким образом НИКАКИХ зависимостей от win32k у ядра нет. Более того, до NT4 все user/gdi API обрабатывалось в csrss и, естественно, тормозило. Начиная с NT4 ЧАСТЬ user/gdi примитивов была перенесена в ядро для повышения производительности.
В общем win32k можно полностью убрать, можно заменить собственной ядерной частью, а можно реализовать все полностью в пользовательском режиме (используя, например, ioctl-ы для связи с ядром), но это будет тормозить. Единственная причина, по которой это не делается — потому что это не нужно. Можно написать по-другому — да, написать существенно лучше — вряд ли. Ну а переписывание ради самого переписывания — не лучшая идея.
Практика — критерий истины или «MinWin на коленке»
Для исключения недоразумений, хочу сразу же сказать: то что я буду делать не является MinWin-ом. Не является уже хотя бы потому, что настоящий MinWin содержит минимальный набор пользовательских (user mode) бинарников, я же собираюсь продемонстрировать полностью загруженное ядро (еще одно отличие — MinWin содержит минимальный набор драйверов, у меня же набор драйверов не меняется по сравнению с обычной загрузкой) вообще без пользовательского режима (ок, один процесс и одна dll-ка там все таки есть, но надо же хоть как то показать пользователю, что что-то происходит). Дополнительным поводом к размышлению может служить то, что настоящий MinWin появился в связи с работой по «расслоению» кода Windows 7, то же, что буду делать я в принципе возможно и на XP и даже на NT3.51
Итак, если вдумчиво прочитать то, что написано в предыдущем разделе, можно догадаться, что нам нужно заменить smss на такой, который не инициализирует подсистемы, но при этом все еще остается более-менее интерактивным. smss.exe — это обычный native процесс (приближенно, native приложение — это такое приложение, которое линкуется только с ntdll.dll и соотственно использует для работы только Native API). К счастью для меня Alex Ionescu — бывший главный разработчик ReactOS — уже написал подобное приложение в рамках (давно закрытого) проекта tinykrnl. Это приложение не собирается под amd64, не собирается на последнем WDK, имеет несколько багов, но в целом работает. Следующую картинку можно открыть архиватором — там содержатся исходники и скомпилированный amd64 бинарник небольшого приложения native.exe:
Прошу меня простить, но я не могу выложить готовый образ потому что это нелегально, поэтому выкладываю код, который может собрать vhd-образ из инсталляционного образа.
Следующий код можно исполнить ТОЛЬКО на Win7. Соханить его куда нибудь во временный каталог под именем, к примеру minwin.ps1, положить рядом install.wim (находится в каталоге sources) c en-us инсталляционного диска Windows 7 (это важно — копируются только нужные для этой локализации NLS файлы), сохранить в этот каталог файл native.exe из прикрепленной выше картинки, перейти в этот самый каталог в elevated консоли и выполнить следующее:
powershell -executionpolicy bypass .minwin.ps1
Для краткости:
1. Рядом в одном каталоге должны лежать следующие файлы: minwin.ps1, install.wim и native.exe
2. Запускать minwin.ps1 нужно только после смены текущего каталога на каталог, содержащий вышеназванные файлы
Дисклеймер: все нижеследующее Вы делаете на свой страх и риск. Команды довольно очевидны и не должны нанести никакого вреда, но это «наколеночное» творчество, поэтому оно не обязано работать в любых условиях. Не выполняйте этот скрипт, если Вы не понимаете значение КАЖДОЙ команды (тем более, что выполнение должно производиться из-под повышенного пользователя). Если нет — ниже приведена картинка того, как это в конце концов выглядит. В упрощенном варианте можно просто переименовать native.exe в smss.exe, скопировать его поверх существующей smss.exe в уже загруженной виртуальной машине (подойдет любая x64 винда — от XP до 7) и перегрузиться.
Сам скрипт:
$vhdName = "disk.vhd" $wimName = "install.wim" $vhdDisk = "V" $wimMountName = "MountedWim" md $wimMountName dism /mount-wim /wimfile:$wimName /index:1 /mountdir:$wimMountName #del $vhdName @" create vdisk file=$pwd$vhdName type=expandable maximum=128 select vdisk file=$pwd$vhdName attach vdisk create partition primary format fs=ntfs quick assign letter=$vhdDisk active "@ | diskpart bcdboot "$pwd$wimMountNameWindows" /s "${vhdDisk}:" #cmd /c "$wimMountNameWindowsSystem32bootsect /nt60 ${vhdDisk}: /mbr /force" $disk = gwmi win32_diskdrive -filter "Model = 'Msft Virtual Disk SCSI Disk Device'" $part = $disk.GetRelated("win32_diskpartition") | select -first 1 $bootmgr = [wmi]"rootwmi:BcdObject.Id=`"{9dea862c-5cdd-4e70-acc1-f32b344d4795}`",StoreFilePath=`"${vhdDisk}:bootbcd`"" $osloader = [wmi]"rootwmi:BcdObject.Id=`"$($bootmgr.GetElement(0x23000003).Element.Id)`",StoreFilePath=`"${vhdDisk}:bootbcd`"" $bootmgr.SetQualifiedPartitionDeviceElement(0x11000001, 0, $disk.Signature, $part.StartingOffset) $osloader.SetQualifiedPartitionDeviceElement(0x11000001, 0, $disk.Signature, $part.StartingOffset) $osloader.SetQualifiedPartitionDeviceElement(0x21000001, 0, $disk.Signature, $part.StartingOffset) $osloader.SetStringElement(0x12000002, "Windowssystem32winload.exe") $osloader.SetStringElement(0x22000002, "Windows") $osloader.SetBooleanElement(0x26000022, $true) md "${vhdDisk}:WindowsSystem32config", "${vhdDisk}:WindowsFonts", "${vhdDisk}:Windowsinf", "${vhdDisk}:WindowsSysWOW64" copy -r "$wimMountNameWindowsSystem32drivers" "${vhdDisk}:WindowsSystem32drivers" del "${vhdDisk}:WindowsSystem32driverstermdd.sys" copy "$wimMountNameWindowsFontsvgaoem.fon" "${vhdDisk}:WindowsFonts" copy "$wimMountNameWindowsinferrata.inf" "${vhdDisk}:Windowsinf" copy "$wimMountNameWindowsSystem32configSYSTEM" "${vhdDisk}:WindowsSystem32config" copy "$wimMountNameWindowsSysWOW64ntdll.dll" "${vhdDisk}:WindowsSysWOW64" copy native.exe "${vhdDisk}:WindowsSystem32smss.exe" "ntoskrnl.exe", "hal.dll", "ci.dll", "pshed.dll", "clfs.sys", "kdcom.dll", "ntdll.dll", "apisetschema.dll", "winload.exe", "bootvid.dll", "bootres.dll", "l_intl.nls", "c_1252.nls", "c_437.nls" |% { copy (Join-Path "$wimMountNameWindowsSystem32" $_) "${vhdDisk}:WindowsSystem32" } @" select vdisk file=$pwd$vhdName detach vdisk "@ | diskpart dism /unmount-wim /mountdir:$wimMountName /discard
Выглядит это примерно так:
Если все сделано правильно (и при определенном везении ), то через какое то время в том же каталоге появится файл disk.vhd — его можно запускать в виртуальной машине (тестировалось в VirtualBox, но не вижу причин, по которым это не должно работать в Virtual PC, Hyper-V или еще где нибудь):
Ну и несколько замечаний напоследок.
1. Копируются почти 300 драйверов, загружаются — примерно 100, реально нужны на конкретной системе — штук 10-20.
2. Восьмимегабайтный SYSTEM хайв из install.wim можно вполне нормально заменить на двухмегабайтный из boot.wim, а можно и вообще вручную слепить что нибудь на сотню килобайт.
3. bcdboot копирует все локализации bootmgr-а и несколько мегабайт шрифтов (в основном для CJK) — можно вырезать
4. Можно заметить, что при создании образа удаляется termdd.sys — это сделано не потому, что он не работает. Просто он создает еще одно устройство-клавиатура (которое в нормальном режиме используется для «нажатия кнопок» на удаленной машине в терминальной сессии), а модифицировать native.exe на чтение нажатий со всех клавиатур мне оказалось лень.
5. Графику при загрузке можно подавить и отказаться от bootvid.dll и bootres.dll
Ну и самое главное, win32k.sys в создаваемый образ не копируется, что не мешает этому образу относительно сносно работать вообще без графики. При большом желании, как я уже говорил, можно прикрутить полностью консольную оболочку, можно вырезать Windows подсистему и оставить только Posix (это было бы весьма странным желанием, как по мне, но люди довольно часто хотят странного). Или (еще более странное желание) реализовать нативный X11 поверх NT ядра. Можно заменить smss и «полностью контролировать» все что работает выше ядра, а можно оставить smss и парой правок в реестре изменить набор загружаемых подсистем. Короче, никакой «намертво прибитой к ядру» графики попросту нет.
Спасибо за внимание
Начала появляться данная ошибка (Синий экран system service exception win32k.sys ). Было принято решение переустановить систему на windows 8.1 pro. Во время установки жесткий диск был полностью отформатирован. На свежей системе установил следующие программы: excel, word, power point (2016), skype, adobe acrobat pro, yandex и mozilla браузеры, avast. Драйвера установил программой driver pack solution. Больше не стоит ничего. Ошибка появилась снова, но только один раз спустя день пользования новой системой и пока что больше не появлялась (прошло около дня). Проверил жесткий диск на ошибки встроенным средством windows, проверил оперативную память программой memtest86 — ошибок обнаружено не было. Прикладываю дамп, процессы показанные программой blue screen view и характеристики ноутбука
1.rar
Посоветуйте как решить проблему ? Или ничего не предпринимать пока не станет появляться регулярно ?
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
Информация о файле | Описание |
---|---|
Размер файла: | 296 kB |
Дата и время изменения файла: | 2020:03:04 15:27:56+00:00 |
Тип файла: | Win32 EXE |
Тип MIME: | application/octet-stream |
Предупреждение! | Possibly corrupt Version resource |
Тип компьютера: | Intel 386 or later, and compatibles |
Метка времени: | 2083:01:24 01:36:01+00:00 |
Тип PE: | PE32 |
Версия компоновщика: | 14.10 |
Размер кода: | 167424 |
Размер инициализированных данных: | 134656 |
Размер неинициализированных данных: | 0 |
Точка входа: | 0x3d000 |
Версия ОС: | 10.0 |
Версия образа: | 10.0 |
Версия подсистемы: | 10.0 |
Подсистема: | Native |
Номер версии файла: | 10.0.16299.15 |
Номер версии продукта: | 10.0.16299.15 |
Маска флагов файлов: | 0x003f |
Флаги файлов: | (none) |
Файловая ОС: | Windows NT 32-bit |
Тип объектного файла: | Driver |
Подтип файла: | 7 |
Код языка: | English (U.S.) |
Набор символов: | Unicode |
Наименование компании: | Microsoft Corporation |
Описание файла: | Full/Desktop Multi-User Win32 Driver |
Версия файла: | 10.0.16299.15 (WinBuild.160101.0800) |
Внутреннее имя: | win32k.sys |
Авторское право: | © Microsoft Corporation. All rights reserved. |
Название продукта: | Microsoft® Windows® Operating System |
Версия продукта: | 10.0.16299.15 |
✻ Фрагменты данных файлов предоставлены участником Exiftool (Phil Harvey) и распространяются под лицензией Perl Artistic.
Попробуйте наш инструмент устранения неполадок
Выберите операционную систему
Выберите язык програмирования (опционально)
‘>
Если вы продолжаете получать случайные синие экраны с win32k.sys не волнуйся. Часто это совсем не сложно исправить…
3 исправления для win32k.sys в Windows 10, 7 и 8.1
Вот 3 исправления, которые помогли другим пользователям решить проблему с синим экраном win32k.sys. Просто двигайтесь вниз по списку, пока не найдете тот, который вам подходит.
- Обновите драйвер вашего устройства s
- Запустить SFC
- Запустить проверку диска
Исправление 1. Обновите драйверы устройства.
Эта проблема может возникнуть, если вы используете неправильные или устаревшие драйверы устройств. Поэтому вам следует обновить драйверы, чтобы увидеть, решит ли это вашу проблему. Если у вас нет времени, терпения или навыков для обновления драйвера вручную, вы можете сделать это автоматически с помощью Водитель Easy .
Driver Easy автоматически распознает вашу систему и найдет для нее подходящие драйверы. Вам не нужно точно знать, в какой системе работает ваш компьютер, вам не нужно беспокоиться о неправильном драйвере, который вы будете загружать, и вам не нужно беспокоиться об ошибке при установке. Driver Easy справится со всем .
Вы можете автоматически обновлять драйверы с помощью СВОБОДНЫЙ или Pro версия Driver Easy. Но с версией Pro требуется всего 2 шага (и вы получаете полную поддержку и 30-дневную гарантию возврата денег):
1) Скачать и установите Driver Easy.
2) Запустите Driver Easy и нажмите Сканировать сейчас кнопка. Driver Easy просканирует ваш компьютер и обнаружит проблемы с драйверами.
3) Нажмите Обновить все для автоматической загрузки и установки правильной версии ВСЕ драйверы, которые отсутствуют или устарели в вашей системе (для этого требуется Pro версия — вам будет предложено выполнить обновление, когда вы нажмете «Обновить все»).
4) Перезагрузите компьютер, чтобы изменения вступили в силу.
5) Убедитесь, что проблема с синим экраном смерти win32k.sys решена. Если да, то поздравляю! Если проблема не исчезнет, перейдите к Исправить 2 , ниже.
Исправление 2: Запустите SFC
Проверка системных файлов ( SFC ) — это удобная функция Windows, которая помогает сканировать системные файлы и восстанавливать отсутствующие или поврежденные .sys файлы, которые вызывают в нашей системе ошибку синего экрана. Чтобы запустить сканирование SFC :
- На клавиатуре нажмите Windows logo key и введите cmd . Затем щелкните правой кнопкой мыши на Командная строка и нажмите Запустить от имени администратора .
Нажмите да когда будет предложено подтвердить. - В окне командной строки введите sfc / scannow и нажмите Войти . SFC потребуется некоторое время, чтобы заменить поврежденные системные файлы новыми, если они обнаружатся, поэтому проявите терпение.
- Рестарт ваш компьютер, чтобы изменения вступили в силу.
- Проверьте, устранена ли проблема с синим экраном. Если да, то отлично! Если проблема не исчезнет, попробуйте Исправить 3 , ниже.
Исправление 3: запустите проверку диска
Еще один виновник этого win32k.sys error — это потенциальные дисковые ошибки на наших жестких дисках. Таким образом, мы можем запустить проверку диска, чтобы увидеть, решает ли она проблему.
Проверка диска на наличие ошибок занимает всего несколько минут. Но как только он обнаруживает ошибки, процедура крепления на выполнение может потребоваться ЧАСЫ. Убедитесь, что у вас достаточно времени.Для этого:
- На клавиатуре нажмите клавиша с логотипом Windows и ЯВЛЯЕТСЯ одновременно, затем нажмите Этот ПК .
- Щелкните правой кнопкой мыши на Локальный диск и нажмите Свойства .
- Щелкните значок инструменты вкладка> Проверьте .
- Нажмите Сканирование диска .
- Следуйте инструкциям на экране для Windows, чтобы обнаружить и исправить найденные ошибки.
- Рестарт ваш компьютер и посмотрите, работает ли ваш компьютер без сбоев.
Надеюсь, вы успешно устранили проблему с win32k.sys. Если у вас есть идеи, предложения или вопросы, оставьте нам комментарий ниже. Спасибо за прочтение!
«Намертво прибитая к ядру» графическая подсистема
Время на прочтение
6 мин
Количество просмотров 15K
То, что принято называть «графикой в ядре» обычно относится к win32k. Win32k.sys представляет собой ядерную часть графической подсистемы. Загружается пользовательским процессом smss.exe в процессе инициализации всех остальных подсистем. Путь к исполняемому образу для «kmode» подсистемы прописан здесь:
Как же это происходит?
Здесь (на стек трейсе в нижней части скриншота) хорошо видно, что инициирует загрузку win32k процесс пользовательского режима smss (который в том числе инициализирует файлы подкачки, реестр, переменные окружения, сохраняет дамп памяти, если до этого был bugcheck, при посредстве wininit запускает service control manager и local security authority subsystem, создает logon сессии и т.п..), а одна из первых вещей, которые делает сам win32k — это «налаживание связей» с ядром. И вот зачем: win32k находится на более высоком уровне по сравнению с ядром, поэтому ядро не может иметь зависимость (под «зависимостью» в данном случае понимается классический «reason to change») от (конкретной реализации) win32k, но и ядро и win32k могут безопасно зависеть от интерфейса. Таким интерфейсом является структура KWIN32_CALLOUTS_FPNS и функция для регистрации конкретной реализации этого интерфейса в ядре — PsEstablishWin32Callouts.
Кроме того, win32k регистрирует несколько типов объектов (в частности Desktop и WindowStation) через интерфейсы общего назначения, предоставляемые Object Manager-ом.
Таким образом НИКАКИХ зависимостей от win32k у ядра нет. Более того, до NT4 все user/gdi API обрабатывалось в csrss и, естественно, тормозило. Начиная с NT4 ЧАСТЬ user/gdi примитивов была перенесена в ядро для повышения производительности.
В общем win32k можно полностью убрать, можно заменить собственной ядерной частью, а можно реализовать все полностью в пользовательском режиме (используя, например, ioctl-ы для связи с ядром), но это будет тормозить. Единственная причина, по которой это не делается — потому что это не нужно. Можно написать по-другому — да, написать существенно лучше — вряд ли. Ну а переписывание ради самого переписывания — не лучшая идея.
Практика — критерий истины или «MinWin на коленке»
Для исключения недоразумений, хочу сразу же сказать: то что я буду делать не является MinWin-ом. Не является уже хотя бы потому, что настоящий MinWin содержит минимальный набор пользовательских (user mode) бинарников, я же собираюсь продемонстрировать полностью загруженное ядро (еще одно отличие — MinWin содержит минимальный набор драйверов, у меня же набор драйверов не меняется по сравнению с обычной загрузкой) вообще без пользовательского режима (ок, один процесс и одна dll-ка там все таки есть, но надо же хоть как то показать пользователю, что что-то происходит). Дополнительным поводом к размышлению может служить то, что настоящий MinWin появился в связи с работой по «расслоению» кода Windows 7, то же, что буду делать я в принципе возможно и на XP и даже на NT3.51
Итак, если вдумчиво прочитать то, что написано в предыдущем разделе, можно догадаться, что нам нужно заменить smss на такой, который не инициализирует подсистемы, но при этом все еще остается более-менее интерактивным. smss.exe — это обычный native процесс (приближенно, native приложение — это такое приложение, которое линкуется только с ntdll.dll и соотственно использует для работы только Native API). К счастью для меня Alex Ionescu — бывший главный разработчик ReactOS — уже написал подобное приложение в рамках (давно закрытого) проекта tinykrnl. Это приложение не собирается под amd64, не собирается на последнем WDK, имеет несколько багов, но в целом работает. Следующую картинку можно открыть архиватором — там содержатся исходники и скомпилированный amd64 бинарник небольшого приложения native.exe:
Прошу меня простить, но я не могу выложить готовый образ потому что это нелегально, поэтому выкладываю код, который может собрать vhd-образ из инсталляционного образа.
Следующий код можно исполнить ТОЛЬКО на Win7. Соханить его куда нибудь во временный каталог под именем, к примеру minwin.ps1, положить рядом install.wim (находится в каталоге sources) c en-us инсталляционного диска Windows 7 (это важно — копируются только нужные для этой локализации NLS файлы), сохранить в этот каталог файл native.exe из прикрепленной выше картинки, перейти в этот самый каталог в elevated консоли и выполнить следующее:
powershell -executionpolicy bypass .minwin.ps1
Для краткости:
1. Рядом в одном каталоге должны лежать следующие файлы: minwin.ps1, install.wim и native.exe
2. Запускать minwin.ps1 нужно только после смены текущего каталога на каталог, содержащий вышеназванные файлы
Дисклеймер: все нижеследующее Вы делаете на свой страх и риск. Команды довольно очевидны и не должны нанести никакого вреда, но это «наколеночное» творчество, поэтому оно не обязано работать в любых условиях. Не выполняйте этот скрипт, если Вы не понимаете значение КАЖДОЙ команды (тем более, что выполнение должно производиться из-под повышенного пользователя). Если нет — ниже приведена картинка того, как это в конце концов выглядит. В упрощенном варианте можно просто переименовать native.exe в smss.exe, скопировать его поверх существующей smss.exe в уже загруженной виртуальной машине (подойдет любая x64 винда — от XP до 7) и перегрузиться.
Сам скрипт:
$vhdName = "disk.vhd" $wimName = "install.wim" $vhdDisk = "V" $wimMountName = "MountedWim" md $wimMountName dism /mount-wim /wimfile:$wimName /index:1 /mountdir:$wimMountName #del $vhdName @" create vdisk file=$pwd$vhdName type=expandable maximum=128 select vdisk file=$pwd$vhdName attach vdisk create partition primary format fs=ntfs quick assign letter=$vhdDisk active "@ | diskpart bcdboot "$pwd$wimMountNameWindows" /s "${vhdDisk}:" #cmd /c "$wimMountNameWindowsSystem32bootsect /nt60 ${vhdDisk}: /mbr /force" $disk = gwmi win32_diskdrive -filter "Model = 'Msft Virtual Disk SCSI Disk Device'" $part = $disk.GetRelated("win32_diskpartition") | select -first 1 $bootmgr = [wmi]"rootwmi:BcdObject.Id=`"{9dea862c-5cdd-4e70-acc1-f32b344d4795}`",StoreFilePath=`"${vhdDisk}:\boot\bcd`"" $osloader = [wmi]"rootwmi:BcdObject.Id=`"$($bootmgr.GetElement(0x23000003).Element.Id)`",StoreFilePath=`"${vhdDisk}:\boot\bcd`"" $bootmgr.SetQualifiedPartitionDeviceElement(0x11000001, 0, $disk.Signature, $part.StartingOffset) $osloader.SetQualifiedPartitionDeviceElement(0x11000001, 0, $disk.Signature, $part.StartingOffset) $osloader.SetQualifiedPartitionDeviceElement(0x21000001, 0, $disk.Signature, $part.StartingOffset) $osloader.SetStringElement(0x12000002, "Windowssystem32winload.exe") $osloader.SetStringElement(0x22000002, "Windows") $osloader.SetBooleanElement(0x26000022, $true) md "${vhdDisk}:WindowsSystem32config", "${vhdDisk}:WindowsFonts", "${vhdDisk}:Windowsinf", "${vhdDisk}:WindowsSysWOW64" copy -r "$wimMountNameWindowsSystem32drivers" "${vhdDisk}:WindowsSystem32drivers" del "${vhdDisk}:WindowsSystem32driverstermdd.sys" copy "$wimMountNameWindowsFontsvgaoem.fon" "${vhdDisk}:WindowsFonts" copy "$wimMountNameWindowsinferrata.inf" "${vhdDisk}:Windowsinf" copy "$wimMountNameWindowsSystem32configSYSTEM" "${vhdDisk}:WindowsSystem32config" copy "$wimMountNameWindowsSysWOW64ntdll.dll" "${vhdDisk}:WindowsSysWOW64" copy native.exe "${vhdDisk}:WindowsSystem32smss.exe" "ntoskrnl.exe", "hal.dll", "ci.dll", "pshed.dll", "clfs.sys", "kdcom.dll", "ntdll.dll", "apisetschema.dll", "winload.exe", "bootvid.dll", "bootres.dll", "l_intl.nls", "c_1252.nls", "c_437.nls" |% { copy (Join-Path "$wimMountNameWindowsSystem32" $_) "${vhdDisk}:WindowsSystem32" } @" select vdisk file=$pwd$vhdName detach vdisk "@ | diskpart dism /unmount-wim /mountdir:$wimMountName /discard
Выглядит это примерно так:
Если все сделано правильно (и при определенном везении ), то через какое то время в том же каталоге появится файл disk.vhd — его можно запускать в виртуальной машине (тестировалось в VirtualBox, но не вижу причин, по которым это не должно работать в Virtual PC, Hyper-V или еще где нибудь):
Ну и несколько замечаний напоследок.
1. Копируются почти 300 драйверов, загружаются — примерно 100, реально нужны на конкретной системе — штук 10-20.
2. Восьмимегабайтный SYSTEM хайв из install.wim можно вполне нормально заменить на двухмегабайтный из boot.wim, а можно и вообще вручную слепить что нибудь на сотню килобайт.
3. bcdboot копирует все локализации bootmgr-а и несколько мегабайт шрифтов (в основном для CJK) — можно вырезать
4. Можно заметить, что при создании образа удаляется termdd.sys — это сделано не потому, что он не работает. Просто он создает еще одно устройство-клавиатура (которое в нормальном режиме используется для «нажатия кнопок» на удаленной машине в терминальной сессии), а модифицировать native.exe на чтение нажатий со всех клавиатур мне оказалось лень.
5. Графику при загрузке можно подавить и отказаться от bootvid.dll и bootres.dll
Ну и самое главное, win32k.sys в создаваемый образ не копируется, что не мешает этому образу относительно сносно работать вообще без графики. При большом желании, как я уже говорил, можно прикрутить полностью консольную оболочку, можно вырезать Windows подсистему и оставить только Posix (это было бы весьма странным желанием, как по мне, но люди довольно часто хотят странного). Или (еще более странное желание) реализовать нативный X11 поверх NT ядра. Можно заменить smss и «полностью контролировать» все что работает выше ядра, а можно оставить smss и парой правок в реестре изменить набор загружаемых подсистем. Короче, никакой «намертво прибитой к ядру» графики попросту нет.
Спасибо за внимание