FltQueueGenericWorkItem 函数 (fltkernel.h)
FltQueueGenericWorkItem 将未与特定 I/O作关联的工作项发布到工作队列。
语法
NTSTATUS FLTAPI FltQueueGenericWorkItem(
[in] PFLT_GENERIC_WORKITEM FltWorkItem,
[in] PVOID FltObject,
[in] PFLT_GENERIC_WORKITEM_ROUTINE WorkerRoutine,
[in] WORK_QUEUE_TYPE QueueType,
[in, optional] PVOID Context
);
参数
[in] FltWorkItem
指向要添加到工作队列的工作项的指针。 必须通过调用 FltAllocateGenericWorkItem来分配工作项。
[in] FltObject
调用方不透明筛选器(PFLT_FILTER)或实例(PFLT_INSTANCE)指针。
[in] WorkerRoutine
指向调用方提供的辅助角色例程的指针。 此例程声明如下:
typedef VOID
(*PFLT_GENERIC_WORKITEM_ROUTINE) (
_In_ PFLT_GENERIC_WORKITEM FltWorkItem,
_In_ PVOID FltObject,
_In_opt_ PVOID Context
);
FltWorkItem
指向泛型工作项结构的不透明指针。
FltObject
作为 FltQueueGenericWorkItem的 FltObject 参数传递的不透明筛选器指针。
上下文
作为 FltQueueGenericWorkItem的 Context 参数传递的上下文信息指针。 此参数是可选的。
[in] QueueType
指定要在其中插入 FltWorkItem 指向的工作项的队列。 QueueType 可以是以下任一项:
价值 | 意义 |
---|---|
CriticalWorkQueue | 将工作项插入队列中,系统线程使用实时优先级属性处理工作项。 |
DelayedWorkQueue | 将工作项插入队列中,其中具有变量优先级属性的系统线程处理工作项。 |
QueueType 值 HyperCriticalWorkQueue 保留供系统使用。
[in, optional] Context
指向要作为 WorkerRoutine 参数中指定的回调例程的 Context 参数传递的调用方定义的上下文信息的指针。 此参数是可选的。
返回值
FltQueueGenericWorkItem 返回STATUS_SUCCESS或相应的 NTSTATUS 值,例如以下值之一:
返回代码 | 描述 |
---|---|
|
正在卸载微型筛选器驱动程序。 这是一个错误代码。 |
言论
FltQueueGenericWorkItem 将未与特定 I/O作关联的工作项插入到系统工作队列中。 指定的 WorkerRoutine 回调例程在 IRQL PASSIVE_LEVEL的系统线程上下文中调用。
若要分配工作项,请调用 FltAllocateGenericWorkItem。
若要在不再需要工作项时释放工作项,请调用 FltFreeGenericWorkItem。
要求
要求 | 价值 |
---|---|
目标平台 | 普遍 |
标头 | fltkernel.h (包括 Fltkernel.h) |
库 | FltMgr.lib |
DLL | Fltmgr.sys |
IRQL | <= DISPATCH_LEVEL |