DXGI.dll Проблемма совместимости с XP/2003!

Тема в разделе "WASM.BEGINNERS", создана пользователем Svyatpro, 27 окт 2008.

  1. Svyatpro

    Svyatpro New Member

    Публикаций:
    0
    Регистрация:
    27 окт 2008
    Сообщения:
    5
    Прошу прощения за мое ламерство и за может глупый вопрос, но эта проблемма волнует не только меня, а и очень большего круга людей.

    Я бы хотел заставить корректно работать dxgi.dll из-под Висты на ХР. DependencyWalker пишет что нехватает except_handler4_exception в msvcrt.dll для запуска (dxgi.dll из Vista build 5231), когда я переписал except_handler4_exception в except_handler3 с помощью HEX редактора, то у меня пошел старт приложения и после некоторого времени, еще до прорисовки приложения выскакивает ошибка в логе DependencyWalker:

    00:00:19.453: Second chance exception 0xC0000005 (Access Violation) occurred in "c:\windows\system32\DXGI.DLL" at address 0x69C25F8F by thread 5 "TaskThread1".

    Прошу умных людей помочь!
     
  2. Svyatpro

    Svyatpro New Member

    Публикаций:
    0
    Регистрация:
    27 окт 2008
    Сообщения:
    5
    Хочу добавить.

    А возможно ли заставить Вистовский msvcrt.dll работать на ХР/2003 и как?
    Я просто пробовал его перезаписать, то потом у меня BSOD выскакивает, как его избежать?

    К счастью мне удалось интегрировать gdi32.dll из Vista build 5219 и Windows 2003 c ним прекрасно работает, а вот версии gdi32.dll с более поздней висты не хотят запускать Windows, снова ВSOD.
     
  3. Svyatpro

    Svyatpro New Member

    Публикаций:
    0
    Регистрация:
    27 окт 2008
    Сообщения:
    5
    Вот DependencyWalker пишет, где примерно совершается ошибка в этих строках лога(ИМХО):

    00:00:19.203: Lag in RDSound3D tool buffer Driver:23040, Renderer:23040

    00:00:19.391: LoadLibraryA("gdi32.dll") called from "c:\windows\system32\DXGI.DLL" at address 0x69C2DF6F by thread 5 "TaskThread1".

    00:00:19.391: LoadLibraryA("gdi32.dll") returned 0x77C10000 by thread 5 "TaskThread1".

    00:00:19.407: GetProcAddress(0x77C10000 [c:\windows\system32\GDI32.DLL],

    "D3DKMTOpenAdapterFromHdc") called from "c:\windows\system32\DXGI.DLL" at address 0x69C2DFAB and returned 0x77C1D27A by thread 5 "TaskThread1".

    00:00:19.407: GetProcAddress(0x77C10000 [c:\windows\system32\GDI32.DLL], "D3DKMTCloseAdapter") called from "c:\windows\system32\DXGI.DLL" at address 0x69C2DFC2 and returned 0x77C1D22D by thread 5 "TaskThread1".

    00:00:19.407: GetProcAddress(0x77C10000 [c:\windows\system32\GDI32.DLL], "D3DKMTQueryAdapterInfo") called from "c:\windows\system32\DXGI.DLL" at address 0x69C2DFE9 and returned 0x77C1D266 by thread 5 "TaskThread1".

    00:00:19.407: GetProcAddress(0x77C10000 [c:\windows\system32\GDI32.DLL], "D3DKMTOpenAdapterFromHdc") called from "c:\windows\system32\DXGI.DLL" at address 0x69C2DD5A and returned 0x77C1D27A by thread 5 "TaskThread1".

    00:00:19.407: GetProcAddress(0x77C10000 [c:\windows\system32\GDI32.DLL], "D3DKMTCloseAdapter") called from "c:\windows\system32\DXGI.DLL" at address 0x69C2DD6B and returned 0x77C1D22D by thread 5 "TaskThread1".

    00:00:19.422: GetProcAddress(0x77C10000 [c:\windows\system32\GDI32.DLL], "D3DKMTQueryAdapterInfo") called from "c:\windows\system32\DXGI.DLL" at address 0x69C2DD86 and returned 0x77C1D266 by thread 5 "TaskThread1".

    00:00:19.422: LoadLibraryA("gdi32.dll") called from "c:\windows\system32\DXGI.DLL" at address 0x69C2433F by thread 5 "TaskThread1".

    00:00:19.422: First chance exception 0xC0000005 (Access Violation) occurred in "c:\windows\system32\DXGI.DLL" at address 0x69C25F8F by thread 5 "TaskThread1"

    Это может быть, что я игру стартую требующую DirecX10, без аппаратной поддержки DX10 видеокартой, я чет сомниваюсь.
     
  4. keYMax

    keYMax New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2003
    Сообщения:
    276
    Адрес:
    Новоуральск
    :) вы все еще верите что dx10 пашет под XP ?
     
  5. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    Svyatpro
    Почитай про папку \WINDOWS\WinSxS
    Именно она отвечает за функционирование приложений с разными версиями системных dll
    msvcrt там тоже присутствует. Правда она придумана для совместимости со старыми версиями, но механизм-то
    можно и по другому использовать.

    keYMax
    Это из той же области сказок Микрософт, что 2000-й не работает на П-2(через год появился патч) и
    что драйвер USB-2 для старых мамок низзя под 2000-м использовать.
    Микрософт заставляет переходить на новые ОС не совсем корректными способами...
     
  6. keYMax

    keYMax New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2003
    Сообщения:
    276
    Адрес:
    Новоуральск
    valterg
    Ну раз уж вы заговорили про сказки. Дайте мне 100% рабочее dx10 под XP и чтобы я играл в игрульки, причем с инсталером а ля один клик. Ну а раз такого нет, то остальное все из области там припарка тут припарка. Имхо для извращенцев пытающихся что-то доказать.
     
  7. Svyatpro

    Svyatpro New Member

    Публикаций:
    0
    Регистрация:
    27 окт 2008
    Сообщения:
    5
    Спасибо, но я уже все-равно пробовал ищменять внутренюю версию Вистовской msvcrt на версию msvcrt из 2003 ничего не помогло.
     
  8. Svyatpro

    Svyatpro New Member

    Публикаций:
    0
    Регистрация:
    27 окт 2008
    Сообщения:
    5
    К сожалению после подмены версии msvcrt.dll в WinSxS, чудо не произошло, все-равно BSOD. Что теперь делать?

    Заранее благодарен.
     
  9. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Svyatpro
    Советую поменять ось.
     
  10. SII

    SII Воин против дзена

    Публикаций:
    0
    Регистрация:
    31 окт 2007
    Сообщения:
    1.483
    Адрес:
    Подмосковье
    У видеоконтроллеров под DX10 есть своя виртуальная память, работой которой управляет драйвер. В DX9 и более ранних никакой виртуальщины не было. Естественно, видеодрайверы под ХР и другие оси до Висты не поддерживают необходимые аппаратные функции графических процессоров, а значит, и полноценная работа ДХ10 невозможна в принципе.

    Что технически можно написать драйвер и всё прочее, корректно реализующий поддержку ДХ10 в Хрюше, никто не спорит. Но ни Невидия, ни АМД этого не делают и делать не собираются. А значит, ДХ10 по-настоящему работать будет только в Висте.