Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Хочу все знать (http://forum.oszone.net/forumdisplay.php?f=23)
-   -   Зависимость модулей Windows, приучение старой ОС к работе в тандеме с новыми модулями (http://forum.oszone.net/showthread.php?t=131947)

Svyatpro 14-02-2009 03:49 1038007

Зависимость модулей Windows, приучение старой ОС к работе в тандеме с новыми модулями
 
Меня интересует один уже столь неразрешимый вопрос:
Я хочу ради "идеи", заставить работать ntdll.dll от Windows Vista/7 на Windows XP/2003.
ntdll.dll не зависит от каких-либо модулей, он явьляется как-бы мостом, свыязывающий остальные модули.
Но при обычной замене ntdll.dll(Windows Server 2003) на ntdll.dll(Windows Vista/7) при загрузке, сразу после HAL, выскакивает BSOD.

Что не дает винде запуститься, я так понял какае-то проверка подлиности библиотеки?! Как с этим справиться?


Заранее спасибо!

Котяра 14-02-2009 15:32 1038243

Цитата:

Цитата Svyatpro
Я хочу ради "идеи", заставить работать ntdll.dll от Windows Vista/7 на Windows XP/2003. »

Зачем? Ведь с прикладным уровнем ntdll.dll не работает, были попытки "прикрутить" explorer.exe, но тот отвечает за GUI (интерфейс), а ntdll.dll фактически определяет лишь набор API-функций (если не ошибаюсь).
ntdll.dll загружается на раннем этапе загрузки Windows, еще программой smss.exe и это важная часть Windows.

Svyatpro 14-02-2009 18:12 1038387

так, все же меня интересуют только предложения по приучению этой библиотеки к Windows XP/2003 и ничего другого.

Еще интересует приучение "новых" - kernel32.dll, msvcrt.dll.....

lxa85 14-02-2009 19:03 1038437

Svyatpro, не смущает тот факт, что вызовы могут быть разными? И реакция на ответ тоже разная. XP имеет почти такое же ядро, как Win2k. А Vista - это другое дело. Неплохо бы почитать ссылки по архитектуре системы, с точки зрения программирования. (Если найдете, скиньте, тоже почитаю)

Котяра 14-02-2009 19:03 1038438

Svyatpro, зачем?! :shocked:

Svyatpro 14-02-2009 21:19 1038534

Цитата:

Цитата lxa85
Svyatpro, не смущает тот факт, что вызовы могут быть разными? »

Как раз у ntdll.dll от Vista, функции все совпадают с ntdll.dll от XP.

Котяра 15-02-2009 17:58 1039308

Svyatpro, я повторю: Зачем Вы это хотите делать?!

Svyatpro 15-02-2009 20:24 1039430

Цитата:

Цитата Котяра
Svyatpro, я повторю: Зачем Вы это хотите делать?! »

Доказать себе, что это получилось! Ибо такая библиотека у Vista/7 схожая c XP/2003 но работать никак не хочет на XP/2003!

Поэтому, я хочу знать больше о Windows, поэтому и ветка так называется "Хочу знать больше"

Admiral 16-02-2009 01:59 1039652

Svyatpro, Windows - это система с закрытым исходным кодом, и такой эксперимент чреват множеством вариантов. Идея ясна, но вот что б проверить все зависимости необходимо будет перебрать не один системный файл.
Подобное я уже наблюдал, при попытки добавить быструю смену пользователей в 2003 с ХР. В результате после множества BSOD на которых уже не выводилось сообщение про то какой системный файл сбоит - эксперимент был остановлен.
А тут версии разных поколений.


msvcrt.dll это библиотека из MSVC6
http://msdn.microsoft.com/en-us/library/abx4dbyh.aspx
http://www.wireshark.org/docs/wsdg_h...lsMSChain.html

Svyatpro 16-02-2009 15:38 1040227

Значит, моя идея без шансов, наверное?!

Просто должен сказать, что мне удалось запустить вистовский gdi32.dll (правда BETA 5219) на Windows XP/2003, значит не все потеряно?!

Admiral 17-02-2009 02:57 1040819

Svyatpro, всё зависит от того на сколько хватит терпения, найдётся времени и аргументации хотя бы для себя в необходимости данной процедуры. Для начала изучить теорию - почитать про внутренние устройство ОС Виндовс.
Значит данная Бета не сильно отличалась в части данной библиотеки, вот система и восприняла её нормально.

Svyatpro 17-02-2009 16:39 1041362

Цитата:

Цитата Admiral
Для начала изучить теорию - почитать про внутренние устройство ОС Виндовс. »

Спасибо вам огромное, я такое всегда мечтал найти!!!

Цитата:

Цитата Admiral
Значит данная Бета не сильно отличалась в части данной библиотеки, вот система и восприняла её нормально. »

Да, в билде Vista 5219 строение библиотеки gdi32.dll очень схоже со строением gdi32.dll от 2003 (смотрел в Dependency Walker) и все функции соводают, кроме, того что user32.dll в W2K3 ищет функцию в gdi32.dll(GdiGetBitmapBits), которой нет в gdi32.dll от Vista 5219, но зато там есть GetBitmapBits, поэтому мне пришлось модифицировать и стандартный user32.dll от W2K3.

В результате Windows запустилась, работала вроде безотказно, но только на классическом виде, ибо стиль Windows XP отображался неправильно (все элементы меню, например, панель задач, заливались черным цветом без текстур), но зато и вроде залагивания окон стали не такие ощутимые, и, возможно, появилась возможность реализации WDDM на XP ибо появились такие функции в gdi32.dll как:
D3DKMTChangeSurfacePointer
D3DKMTCloseAdapter
D3DKMTCreateAllocation
D3DKMTCreateDCFromMemory
D3DKMTCreateDevice
D3DKMTCreateOverlay
D3DKMTDestroyAllocation
D3DKMTDestroyDCFromMemory
D3DKMTDestroyDevice
D3DKMTDestroyOverlay
D3DKMTEscape
D3DKMTFlipOverlay
D3DKMTGetDeviceSchedulingPriority
D3DKMTGetDeviceState
D3DKMTGetDisplayModeList
D3DKMTGetMultisampleMethodList
D3DKMTGetPresentHistory
D3DKMTGetProcessSchedulingPriorityClass
D3DKMTGetRuntimeData
D3DKMTGetScanLine
D3DKMTGetSharedPrimaryHandle
D3DKMTLock
D3DKMTOpenAdapterFromHdc
D3DKMTOpenResource
D3DKMTPresent
D3DKMTQueryAdapterInfo
D3DKMTQueryAllocationResidency
D3DKMTQueryResourceInfo
D3DKMTReleaseProcessVidPnSourceOwners
D3DKMTRender
D3DKMTSetAllocationPriority
D3DKMTSetDeviceSchedulingPriority
D3DKMTSetDisplayMode
D3DKMTSetGammaRamp
D3DKMTSetProcessSchedulingPriorityClass
D3DKMTSetVidPnSourceOwner
D3DKMTUnlock
D3DKMTUpdateOverlay
D3DKMTWaitForVerticalBlankEvent

Это все функции D3DKMT* которые доступны у меня в gdi32.dll на Windows 2003.

А вот уже в Vista build 5231 строение gdi32.dll кардинально поменялось, очередность USES стала другая и Windows 2003 напрочь перестал загружаться (BSOD)...

Svyatpro 17-02-2009 23:15 1041772

Еще дополню, opengl32.dll, GLU32.DLL, GLMF32.DLL из Windows 7 build 7000 после небольшего переименования функций прекрасно работают на W2003 и все OpenGL приложения без проблем запускаются с нормальным, полноценным отображением, но заметно медленее чем на стандартном OpenGL'е....

Admiral 19-02-2009 01:35 1042816

Svyatpro, OpenGL от MS версии 1.1, когда последняя входила в сообщество разработчиков библиотеки. В последний на сегодня SDK - Microsoft Windows SDK for Windows 7 and .NET Framework 3.5 SP1: BETA входят хорошо знакомые
GL.h
/*++ BUILD Version: 0004 // Increment this if a change has global effects

Copyright (c) 1985-96, Microsoft Corporation

Module Name:

gl.h

Abstract:

Procedure declarations, constant definitions and macros for the OpenGL
component.

--*/
/*...*/
/* Version */
#define GL_VERSION_1_1 1
и
GLU.h
/*++ BUILD Version: 0004 // Increment this if a change has global effects

Copyright (c) 1985-95, Microsoft Corporation

Module Name:

glu.h

Abstract:

Procedure declarations, constant definitions and macros for the OpenGL
Utility Library.

--*/
/*...*/
/* Version */
#define GLU_VERSION_1_1 1
#define GLU_VERSION_1_2 1


Новые библиотеки поддерживают и выпускают разработчик железа и софта входящие в OpenGL ARB "Architecture Review Board" ныне Khronos
Из последних новостей от их представителей - Linux, FreeBSD и Solaris получат полную поддержку OpenGL 3.0 с новыми драйверами от nVidia
А так на Вин платформе - OpenGL 3 против DirectX 11: война закончена
Насколько знаю, начиная с Висты данная библиотека вызывается не напрямую приложениям. На практике это означает что такие приложения
Цитата:

Цитата Admiral
под ХР - 85 fps, а под Вистой\Севен увы 1-2fps :( »



Время: 18:19.

Время: 18:19.
© OSzone.net 2001-