
19 APC
文章平均质量分 94
APC
weekbo
学无止境
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
用户 APC 内部结构
此外,执行 APC 时使用的堆栈与当前用户模式线程相同 - 先前执行的上下文(用户模式中的 NtWaitForSingleObject)被推送到堆栈,并在 APC 运行完成后恢复。如果该标志不为 0,则挂起的 APC 将在用户模式下依次执行。在返回 STATUS_USER_APC 之前,KeWaitForSingleObject 将“UserApcPending”设置为 TRUE - 正如我上面所说,“UserApcPending”会在线程返回用户模式之前触发对 KiDeliverApc 的调用。原创 2024-12-14 10:31:58 · 827 阅读 · 0 评论 -
用户 APC
无论如何,在 APC 内获取锁可能是一个坏主意,但在内核中,微软已经部分解决了这个问题 - 您可以通过将 IRQL 提升到 APC_LEVEL 或通过 KeEnterCriticalRegion / KeEnterGuardedRegion 禁用 APC 来阻止 APC 到获取特定锁的线程 - 有时它是例如,某些 API(例如 ExAcquireResourceSharedLite)需要。APC(异步过程调用)是一种可在 Windows 中使用的机制,用于对要在特定线程的上下文中完成的作业进行排队。原创 2024-12-14 10:24:27 · 1034 阅读 · 0 评论