Я могу воспроизвести ошибку ERROR_PARTIAL_COPY (299) при выполнении следующего кода как 64-битный процесс.
HANDLE handle = OpenProcess(PROCESS_ALL_ACCESS, FALSE, 17152); //PID of opened notepad.exe
DWORD errCode = GetLastError();
HMODULE hModules[100];
DWORD bNeeded = 0;
EnumProcessModulesEx(handle, hModules, sizeof(hModules), &bNeeded, LIST_MODULES_ALL);
errCode = GetLastError();
И устранить ошибку при использовании LIST_MODULES_64BIT вместо LIST_MODULES_ALL.
Мой notepad.exe - это 64-битный процесс.
Так что, похоже, вам нужно использовать LIST_MODULES_64BIT для перечисления модулей 64-битного процесса при использовании EnumProcessModulesEx.
Или вы можетеиспользовать EnumProcessModules:
EnumProcessModules(handle, hModules, sizeof(hModules), &bNeeded);