Сейчас на форуме: zds (+4 невидимых) |
![]() |
eXeL@B —› Программирование —› Получить размер видеопамяти загруженного в память процесса |
Посл.ответ | Сообщение |
|
Создано: 05 декабря 2013 12:38 · Личное сообщение · #1 Задача - открыть запущенный в памяти Direct3D процесс (OpenProcess), подождать пока он закончит свою работу (как только пользователь его выключит) и затем вывести 3 параметра: 1. максимальную загрузку CPU 2. максимальный объем RAM используемый процессом 3. максимальный объем видеопамяти С пунктами 1-2 худо бедно можно наскрябать, а как получить доступ к использованию видеопамяти? Нужно писать свой драйвер перехвата? Может кто исследовал GPU-Z ![]() |
|
Создано: 05 декабря 2013 13:35 · Личное сообщение · #2 |
|
Создано: 05 декабря 2013 16:23 · Личное сообщение · #3 TraneBurger Не можешь найти ну давай я за тебя поищу ![]() ![]() ----- Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли. ![]() |
|
Создано: 05 декабря 2013 17:45 · Личное сообщение · #4 Это несомненно тоже очень пригодится,только там: Code:
т.е. максимум что можно выжать это количество свободной видеопамяти. Хотелось бы узнать,как это реализовано здесь: ![]() Я пытался поставить хук в API Monitor, чтобы узнать какие функции используются но там столько всяких call-вызовов,что аж процессор зависает от нагрузки. ![]() |
|
Создано: 05 декабря 2013 18:41 · Личное сообщение · #5 |
|
Создано: 23 декабря 2013 10:47 · Личное сообщение · #6 Я собрал через ImpRec список функций,какие использует GPU-Z (в аттаче) Что-то ничего похожего на работу с сенсорами GPU там нет, по идее она должна дергать дровину видеокарты? Собственного драйвера у этой утилиты нет,но количество сенсоров точно зависит от модели GPU ![]() ![]() |
![]() Ранг: 419.0 (мудрец), 647thx Активность: 0.46↗0.51 Статус: Участник "Тибериумный реверсинг" |
Создано: 23 декабря 2013 17:36 · Личное сообщение · #7 TraneBurger пишет: Что-то ничего похожего на работу с сенсорами GPU там нет, по идее она должна дергать дровину видеокарты? Интересно, по Вашему должно быть что-то в стиле капитана очевидности типа WinAPI GetSensorGPU ![]() По крайней мере, если есть DeviceIoControl - уже стоит задуматься(GPU-Z использует свой драйвер, возможно самое интересное реализовано на низком уровне). Во-вторых(!), у AMD(к примеру) есть своя SDK - AMD Display Library (ADL)(atiadlxx.dll), через которую можно спокойно получить всю инфо о графике(в т.ч. устанавливать скорости вентиляторов/частоты ядра-памяти и тп). У нвидиа вроде тоже есть что-то подбное, только в nvcpl.dll... а дальше курите мануалы, если хотите пойти этим путем. ![]() |
|
Создано: 23 декабря 2013 19:13 · Личное сообщение · #8 Ну тогда можно поставить бряку на DeviceIOControl,посмотреть хэндл драйвера и дальше реверсить сам драйвер? Вообще когда утилиты с драйвером,они при установке запрашивают Windows типа "разрешите установить этот драйвер?", а тут ничего подобного нет. Значит все дрова уже установлены по умолчанию, либо она использует непосредственно nv4_mini.sys. Это огромнейший дров, 12 мегабайт размер, даже страшно подумать сколько там процедур и функций всяких, да ещё небось зашифрованных ![]() |
|
Создано: 23 декабря 2013 19:46 · Личное сообщение · #9 Еще раз повторюсь ![]() |
|
Создано: 23 декабря 2013 20:22 · Личное сообщение · #10 |
|
Создано: 24 декабря 2013 02:33 · Личное сообщение · #11 > они при установке запрашивают Windows типа "разрешите установить этот драйвер?", а тут ничего подобного нет. Иногда помогает идиотом прикинуться, так еноты делают ![]() ![]() |
|
Создано: 24 декабря 2013 05:10 · Личное сообщение · #12 |
|
Создано: 24 декабря 2013 09:47 · Поправил: Alchemistry · Личное сообщение · #13 TraneBurger пишет: Что-то ничего похожего на работу с сенсорами GPU там нет, по идее она должна дергать дровину видеокарты? Собственного драйвера у этой утилиты нет,но количество сенсоров точно зависит от модели GPU У этой утилиты их аж целых 4, по 2 на 32/64 режима. И все они подписаны, что нивелирует следующее глупое утверждение: TraneBurger пишет: Значит все дрова уже установлены по умолчанию, либо она использует непосредственно nv4_mini.sys Причем тут вообще nv4_mini.sys? Более того, скажу по секрету, 2 драйвера там ответственны за мапинг физ. памяти в юзермод. И что самое интересное они переполнены debug print'ами, дамп видеобиоса - такая маленькая кнопочка в главном окне. Предназначение второй пары 32/64 дров - работа с портами ввода-вывода. Теоретически уже этого достаточно. Но сам gpu-z активно использует документированные COM интерфейсы, например nvapi.dll для nvidia - nvapi_QueryInterface (не говоря о том что информационные интерфейсы есть непосредственно у DirectX). Этой инфы уже более чем достаточно, чтобы нагуглить все остальное. http://eliang.blogspot.ru/2011/05/getting-nvidia-gpu-usage-in-c.html https://code.google.com/p/open-hardware-monitor/source/browse/trunk/Hardware/Nvidia/NVAPI.cs http://code.msdn.microsoft.com/windowsdesktop/DirectX-Video-Memory-ee7d8319/sourcecode?fileId=92531&pathId=1026523097 http://developer.download.nvidia.com/SDK/9.5/Samples/DEMOS/common/src/NvCpl/docs/NVControlPanel_API.pdf Остальные тонны ссылок постить лень. В общем своей работы ТС у тебя ноль, только генерация глупостей. ![]() |
![]() |
eXeL@B —› Программирование —› Получить размер видеопамяти загруженного в память процесса |