If somebody tries to hot-patch an already-hot-patched function(devblogs.microsoft.com) |
If somebody tries to hot-patch an already-hot-patched function(devblogs.microsoft.com) |
Also, missing from this explanation: hooks are usually applied per process, from user space. The code pages in a dynamic library are CoW’d from the shared page when you write to them to apply a patch.
Does the Windows Update work similarly, or does it somehow modify the original, shared page, affecting all processes? Does a hook in a single process disable hot patching on the entire system?
Interestingly, it had similar constraints and checked them at build time: it could not be a public ABI change and only one patch at a time.