У меня та же проблема в моем приложении, хотя я думаю, что вы получили его задом наперед (см. Комментарий к вашему вопросу).
На самом деле, невозможно перечислить модули 32-битного процесса в 64-битной Windows, если ваш собственный процесс является 64-битным процессом.
Вы увидите только следующие модули (которые являются единственными 64-битными модулями в 32-битном процессе):
- Основной модуль(т.е. исполняемый файл)
- NtDll.dll
- Wow64.dll
- Wow64cpu.dll
- Wow64win.dll
Что, скорее всего, связано с тем, что Process.Modules
использует EnumProcessModules
Win32 API внутри, что имеет ограничения при работе с 32/64 битами.MSDN предлагает (для нативных приложений) использовать EnumProcessModulesEx
, который вы также можете использовать для P / Invoke.
Это похоже, что другие также обнаружили эту проблему.