Сейчас на форуме: zds (+4 невидимых)

 eXeL@B —› Программирование —› Получить размер видеопамяти загруженного в память процесса
Посл.ответ Сообщение

Ранг: 1.6 (гость)
Активность: 0=0
Статус: Участник

Создано: 05 декабря 2013 12:38
· Личное сообщение · #1

Задача - открыть запущенный в памяти Direct3D процесс (OpenProcess), подождать пока он закончит свою работу (как только пользователь его выключит) и затем вывести 3 параметра:
1. максимальную загрузку CPU
2. максимальный объем RAM используемый процессом
3. максимальный объем видеопамяти
С пунктами 1-2 худо бедно можно наскрябать, а как получить доступ к использованию видеопамяти? Нужно писать свой драйвер перехвата? Может кто исследовал GPU-Z



Ранг: 53.9 (постоянный), 33thx
Активность: 0.050
Статус: Участник

Создано: 05 декабря 2013 13:35
· Личное сообщение · #2

Посмотрите исходники Process Hacker.




Ранг: 568.2 (!), 465thx
Активность: 0.550.57
Статус: Участник
оптимист

Создано: 05 декабря 2013 16:23
· Личное сообщение · #3

TraneBurger
Не можешь найти ну давай я за тебя поищу
--> Link <--

-----
Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли.




Ранг: 1.6 (гость)
Активность: 0=0
Статус: Участник

Создано: 05 декабря 2013 17:45
· Личное сообщение · #4

Это несомненно тоже очень пригодится,только там:
Code:
  1. Applications often need to know how much video memory is available on the system

т.е. максимум что можно выжать это количество свободной видеопамяти.
Хотелось бы узнать,как это реализовано здесь:

Я пытался поставить хук в API Monitor, чтобы узнать какие функции используются но там столько всяких call-вызовов,что аж процессор зависает от нагрузки.



Ранг: 301.4 (мудрец), 194thx
Активность: 0.170.01
Статус: Участник

Создано: 05 декабря 2013 18:41
· Личное сообщение · #5

Смотри в сторону WMI

| Сообщение посчитали полезным: Abraham

Ранг: 1.6 (гость)
Активность: 0=0
Статус: Участник

Создано: 23 декабря 2013 10:47
· Личное сообщение · #6

Я собрал через ImpRec список функций,какие использует GPU-Z (в аттаче)
Что-то ничего похожего на работу с сенсорами GPU там нет, по идее она должна дергать дровину видеокарты?
Собственного драйвера у этой утилиты нет,но количество сенсоров точно зависит от модели GPU

1197_23.12.2013_EXELAB.rU.tgz - gpu-z.txt



Ранг: 419.0 (мудрец), 647thx
Активность: 0.460.51
Статус: Участник
"Тибериумный реверсинг"

Создано: 23 декабря 2013 17:36
· Личное сообщение · #7

TraneBurger пишет:
Что-то ничего похожего на работу с сенсорами GPU там нет, по идее она должна дергать дровину видеокарты?

Интересно, по Вашему должно быть что-то в стиле капитана очевидности типа WinAPI GetSensorGPU
По крайней мере, если есть DeviceIoControl - уже стоит задуматься(GPU-Z использует свой драйвер, возможно самое интересное реализовано на низком уровне). Во-вторых(!), у AMD(к примеру) есть своя SDK - AMD Display Library (ADL)(atiadlxx.dll), через которую можно спокойно получить всю инфо о графике(в т.ч. устанавливать скорости вентиляторов/частоты ядра-памяти и тп). У нвидиа вроде тоже есть что-то подбное, только в nvcpl.dll... а дальше курите мануалы, если хотите пойти этим путем.



Ранг: 1.6 (гость)
Активность: 0=0
Статус: Участник

Создано: 23 декабря 2013 19:13
· Личное сообщение · #8

Ну тогда можно поставить бряку на DeviceIOControl,посмотреть хэндл драйвера и дальше реверсить сам драйвер? Вообще когда утилиты с драйвером,они при установке запрашивают Windows типа "разрешите установить этот драйвер?", а тут ничего подобного нет. Значит все дрова уже установлены по умолчанию, либо она использует непосредственно nv4_mini.sys. Это огромнейший дров, 12 мегабайт размер, даже страшно подумать сколько там процедур и функций всяких, да ещё небось зашифрованных



Ранг: 53.9 (постоянный), 33thx
Активность: 0.050
Статус: Участник

Создано: 23 декабря 2013 19:46
· Личное сообщение · #9

Еще раз повторюсь --> Process hacker source code <-- посмотрите реализацию там, или вам проще реверсить дрова от nvidia и ati?




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 23 декабря 2013 20:22
· Личное сообщение · #10

TraneBurger пишет:
когда утилиты с драйвером,они при установке запрашивают Windows типа "разрешите установить этот драйвер?", а тут ничего подобного нет. Значит все дрова уже установлены по умолчанию

Это кто тебе такую глупость сказал?




Ранг: 72.3 (постоянный), 133thx
Активность: 0.380
Статус: Участник

Создано: 24 декабря 2013 02:33
· Личное сообщение · #11

> они при установке запрашивают Windows типа "разрешите установить этот драйвер?", а тут ничего подобного нет.

Иногда помогает идиотом прикинуться, так еноты делают

| Сообщение посчитали полезным: Dynamic


Ранг: 1131.7 (!!!!), 447thx
Активность: 0.670.2
Статус: Участник

Создано: 24 декабря 2013 05:10
· Личное сообщение · #12

TraneBurger пишет:
Вообще когда утилиты с драйвером,они при установке запрашивают Windows типа "разрешите установить этот драйвер?"


эм, драйвер как бы может быть одобрен мелкософтом.



Ранг: 145.8 (ветеран), 191thx
Активность: 0.140.36
Статус: Участник

Создано: 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

Остальные тонны ссылок постить лень. В общем своей работы ТС у тебя ноль, только генерация глупостей.

| Сообщение посчитали полезным: Gideon Vi, TraneBurger
 eXeL@B —› Программирование —› Получить размер видеопамяти загруженного в память процесса
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати