如何解决抛出“连接到系统的设备不起作用”的QueryFullProcessImageName问题?

我试图从通过NtQueryObject获取的句柄列表中查找拥有句柄的进程的名称。我正在遍历每个句柄以检查其进程名称,有时会抛出“ com.sun.jna.platform.win32.win32exception:连接至系统的设备无法正常工作”。错误。这通常可以正常工作,但是当确实发生时,似乎会在多个进程中将其扔给大量句柄。我正在使用JNA从Windows 10上运行的Java程序进行所有调用。

我试图尽可能缩小范围,但是我不知道为什么有时会抛出此错误。

NtDllX.SYSTEM_HANDLE_INFORMATION info = getSystemHandleInfo();

for(int i = 0; i < info.HandleCount; i++) {
    //For each handle check for target handle
    NtDllX.SYSTEM_HANDLE sh = info.Handles[i];
    HANDLE sHandle = new HANDLE(new Pointer(sh.Handle));
    HANDLE rProcess = Kernel32.INSTANCE.openprocess(Kernel32.PROCESS_DUP_HANDLE | Kernel32.PROCESS_QUERY_INFORMATION | Kernel32.PROCESS_VM_READ,false,sh.ProcessId);
    //Check for target process
    if(rProcess != null) {
        String p = "";
        try {
            p = Kernel32Util.QueryFullProcessImageName(rProcess,0); //Throwing Error Occasionally
        } catch (Exception e) {
...

所引发的错误:

  

com.sun.jna.platform.win32.win32exception:连接到   系统无法运行。在   com.sun.jna.platform.win32.Kernel32Util.QueryFullProcessImageName(Kernel32Util.java:842)

x4536453 回答:如何解决抛出“连接到系统的设备不起作用”的QueryFullProcessImageName问题?

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3165604.html

大家都在问