枚举进程模块 returns 998

EnumProcessModules returns 998

我正在尝试 运行 Rust(2021 版)中的这段代码:

let module_list_size: PDWORD =  ptr::null_mut();
res = winapi::um::psapi::EnumProcessModules(remote_handle, ptr::null_mut(), 0, module_list_size);

Res 定义明确且句柄有效(我之前检查过)但我仍然收到 windows 错误 998,这是无效访问(我 运行 宁此代码作为管理员)。
(该功能存在并且我正确导入了它)。

提前致谢!

最后一个参数是一个指针,指示向何处写入存储所有模块句柄需要多少字节。但是你指向 null,所以当它试图给你结果时它会失败并出现无效访问错误。

相反,创建一个 DWORD 变量并传递一个指向它的指针:

let module_list_size: DWORD = 0;
res = winapi::um::psapi::EnumProcessModules(remote_handle, ptr::null_mut(), 0, &mut module_list_size);