0

众所周知,在 Windows NT 内核中,有三种方法可以在 PASSIVE_LEVEL 的系统线程环境中发布要执行的工作项。

ExQueueWorkItem,FltQueueGenericWorkItemFltQueueDeferredIoWorkItem.

但是,我只是想知道它们的区别和各自的应用场景。

有什么解释吗?

4

1 回答 1

1

从每个 API 的文档中:

ExQueueWorkItem:可以由没有为此类工作提供任何框架 api 的驱动程序使用。文档建议IoQueueWorkItem改用。

FltQueueGenericWorkItem: 对于 minifilter 驱动,应该使用它来做任何非 IO 相关的工作。像一些定期清理等。

FltQueueDeferredIoWorkItem:用于与 IO 操作相关的工作的 minifilter 驱动程序。即,如果您正在过滤 IO,您可以使用此功能推迟与该 IO 相关的一些工作。

于 2013-10-26T06:06:01.117 回答