草庐IT

c++ - 为什么进程会在 RtlExitUserProcess/LdrpDrainWorkQueue 中挂起?

为了调试锁定文件问题,我们从.NET进程调用SysInternal的Handle64.exe4.11(通过具有异步输出重定向的Process.Start)。调用进程在Process.WaitForExit挂起,因为Handle64进程没有退出(超过两个小时)。我们转储了相应的Handle64进程,并在VisualStudio2017调试器中对其进行了检查。它显示了两个线程(“主线程”和“ntdll.dll!TppWorkerThread”)。主线程的调用栈:ntdll.dll!NtWaitForSingleObject()Unknownntdll.dll!LdrpDrainWorkQu

Windows 进程描述符

进程的双向链表有Flink和Blink(ForwardLink和BackwardLink)。有一个进程标识符。所有这些都打包在一个称为PEPROCESS或_KPROCESS的结构中。但是这些在哪里,这个结构中的其他元素是什么?或者,如果答案既不简短也不简单,如果不在文档或头文件中,可以在哪里找到引用?(这是我看过的地方,可能忽略了什么。) 最佳答案 EPROCESSreferenceTheEPROCESSstructureisanopaquestructurethatservesastheprocessobjectforaproce

windows - 将 Apache 2.2 作为单个 httpd.exe 运行以进行调试

我在Windows上以控制台模式运行Apache2.2以测试我正在编写的apache模块。默认情况下,父httpd.exe启动(具有一个线程),它启动具有多个工作线程的子httpd.exe。现在我每次都必须将调试器附加到子进程才能调试我的模块。有没有办法将Apache配置为从单个httpd.exe运行?(如果我没记错的话,就像过去的美好时光一样)我一直在搜索文档,但除了每个线程或进程的请求处理数量限制之外没有发现任何其他内容...... 最佳答案 您可能想使用httpd.exe-X它将apache作为单个进程运行,而无需返回终端/c

java - 使用 Java 检索 Window 进程的 CPU 使用率

我正在寻找一种Java解决方案来查找Windows中正在运行的进程的CPU使用率。环顾网络后,关于Java解决方案的信息似乎很少。请记住,我不是要查找JVM的CPU使用率,而是要查找当时在Windows中运行的任何进程。我能够通过使用exec("tasklist.exe...")检索和解析进程信息来检索Java中的内存使用情况。虽然每个进程都有一个聚合CPU周期计时器,但我没有看到CPU使用率列。如有任何帮助,我们将不胜感激。另外,如果可能的话,我想远离C库;但是,如果没有其他选择,那么采用这种方式的解决方案将是合适的。非常感谢,史蒂夫 最佳答案

c - 在 2 个 C 程序之间传输数据的最简单方法?

在Windows上的ANSIC中,在不需要写入/读取文件的情况下在本地运行的两个程序之间传输数据的最佳/最简单方法是什么?数据将是基本文本,只有一个程序将发送,另一个程序将接收。谢谢。 最佳答案 进程间通信本质上是平台相关的;“ANSIC”对此没什么好说的,但对于Windows,你应该从这里开始:http://msdn.microsoft.com/en-us/library/aa365574(VS.85).aspx很大程度上取决于您所讨论的应用程序类型、数据量以及进程的紧密耦合程度。 关

python - 使用子流程找出流程何时结束

我希望按顺序运行一些fork它们自己的进程的c脚本(在新的命令行窗口中)并在它们完成时给出“按任意键继续...”。从技术上讲,它是一个特殊的编译器。它弹出一个命令行窗口,告诉我编译是否成功。但是那个命令行窗口会fork新的进程来编译,这使得它在它应该返回0之前返回0..我的第一次尝试是process=subprocess.Popen(cmd)process.wait()同时遍历每个文件。不幸的是,这并没有等待“按任意键继续...”并在我面前爆炸。似乎wait()调用是在内部进程完成时传递的(我无权访问)。我如何才能等待“按任意键继续...”?在按任意键继续行之前,它还会打印一些其他信息

windows - 创建一个防弹工作进程(在 windows 上)

我编写了一个pdf查看器,它使用各种用C编写的库。此C代码可能很容易被利用。而且要检查的线路太多了。我将不得不假设此代码可能包含可利用的错误。关键是C代码非常简单。一端输入字节流,另一端输出位图(也是字节流)。受谷歌浏览器的启发,我正在考虑创建一个单独的进程来进行解码和页面渲染。理想情况下,这应该在一个绝对无权执行任何操作的进程中执行,除了读取它拥有的一个输入流,并在另一端输出到字节流(一些未压缩的位图)。我认为进程不应该做的是:任何磁盘访问打开套接字内存使用量有限与其他进程访问共享内存加载其他dll...还有什么吗?这可能吗?这在某处有描述吗? 最佳答案

c++ - 使用VirtualQuery找出哪个 "file"使用内存中的某个页面

我正在使用VirtualQuery遍历我的应用程序的虚拟空间。但我想识别应用程序分配的所有内容,而不仅仅是我的exe-类似于SysInternals的VMmap应用程序-我需要知道哪些页面属于哪个文件(我需要识别为我的应用程序和dll分配的页面)。如何实现? 最佳答案 您可以将CreateToolhelp32Snapshot与TH32CS_SNAPMODULE结合使用来检索模块的基址和大小。对于堆,您可以使用GetProcessHeaps()和HeapWalk()来获取不同的堆区域(提交的和保留的)。其他东西(线程堆栈、映射内存)似

windows - 如何使用MFC统计Windows中每个进程的线程数

我想使用MFC构建一个类似于应用程序的任务管理器。我已经成功地枚举了当前运行的各种进程的PID和内存使用情况。我的问题是我还想获得每个进程运行的线程数。 最佳答案 您可以使用Toolhelperlibrary来做到这一点(以及更多相关的事情)(win32)通过进程snapshot然后走路Thread32First/Next. 关于windows-如何使用MFC统计Windows中每个进程的线程数,我们在StackOverflow上找到一个类似的问题: http

windows - 在 Windows 中抑制应用程序用户界面

我们有一个脚本引擎(在Windows下运行),它在我们工作时启动另一个应用程序数千次。这个另一个应用程序有一个繁忙的用户界面(主窗口弹出,闪烁几个对话框,它工作,然后关闭)。理想情况下,我们希望完全抑制子应用程序的用户界面,以便用户可以继续在工作站上工作。我们无法控制其他应用程序的代码,因此我们需要能够从我们的外部流程中获得此结果。我们正在启动另一个进程,所以我们的应用程序是新进程的所有者,如果有帮助的话。通过在启动后发送窗口消息来强制最小化应用程序的主窗口似乎不是一个好策略,因为我们在运行过程中启动了数千次应用程序(我们可以最小化每次都是主窗口,但我认为用户的体验仍然会随着焦点的改变