向量化异常处理过程宽?

Vectored Exception Handling Process wide?

我知道 Windows 为进程中的每个 运行 线程单独构建一个结构化异常处理链。我想知道使用 veh 时,注册的异常处理程序是否会在进程范围内被调用(无论异常发生在何种威胁下),或者是否也在每个线程的基础上注册?

是的,向量异常处理程序是进程范围的。

来自MSDN

An application can register a function to watch or handle all exceptions for the application. Vectored handlers are not frame-based, therefore, you can add a handler that will be called regardless of where you are in a call frame.

New Vectored Exception Handling in Windows XP 作者 Matt Pietrek 指出:

The handler list is not tied to any thread, and is global to the process.