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) |
Library | FltMgr.lib |
DLL | Fltmgr.sys |
IRQL | <= DISPATCH_LEVEL |