Перечислите процессы, которые загрузили определенную DLL

0

Мне нужно получить список процессов, имеющих определенную DLL (d3d9). В настоящее время я делаю это, вызывая CreateToolhelp32Snapshot для каждого процесса, чтобы получить список его модулей и сравнить имена модулей с "d3d9.dll". Однако это не работает на 64-битных процессах, так как CreateToolhelp32Snapshot не работает (мое приложение 32-разрядное). Есть ли способ достичь этого без запуска отдельного 64-битного процесса только для отображения модулей?

  • 0
    как это терпит неудачу
  • 0
    Цитирование MSDN: Если указанный процесс является 64-разрядным процессом, а вызывающий - 32-разрядным процессом, эта функция завершается ошибкой, а последний код ошибки - ERROR_PARTIAL_COPY (299).
Показать ещё 1 комментарий
Теги:
winapi

1 ответ

0

Есть ли способ достичь этого без запуска отдельного 64-битного процесса только для отображения модулей?

Нет, нет, по крайней мере, не использовать Win32. Вы не можете получить необходимую информацию из эмулятора WOW64 с помощью функций Win32. Я считаю, что есть недокументированные встроенные функции API, которые могут делать то, что вы просите, но я бы никогда не рекомендовал такое решение. Вы должны решить эту проблему с помощью 64-битного процесса.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню