WORK_QUEUE_ITEM 结构 (wdm.h)

WORK_QUEUE_ITEM结构用于将工作项发布到系统工作队列。

警告

请谨慎使用此结构。 请参阅以下 “备注” 部分。

语法

typedef struct _WORK_QUEUE_ITEM {
  LIST_ENTRY             List;
  PWORKER_THREAD_ROUTINE WorkerRoutine;
  __volatile PVOID       Parameter;
} WORK_QUEUE_ITEM, *PWORK_QUEUE_ITEM;

成员

List

双链接列表结构。 此结构用于将工作项添加到系统工作队列。

WorkerRoutine

指向在取消工作项排队时处理此工作项的回调例程的指针。 此回调例程声明如下:

VOID
(*PWORKER_THREAD_ROUTINE)(
    IN PVOID Parameter
    );

参数

参数成员中指定的上下文信息指针。

Parameter

指向要传递给 WorkerRoutine 成员中指定的回调例程的上下文信息的指针。

注解

若要初始化WORK_QUEUE_ITEM结构,请调用 ExInitializeWorkItem

若要将初始化的工作项发布到系统工作队列,请调用 ExQueueWorkItem

ExInitializeWorkItem 和 ExQueueWorkItem 只能在指定的工作项未与任何设备对象或设备堆栈关联的情况下使用。 在所有其他情况下,驱动程序应使用 IoAllocateWorkItemIoFreeWorkItemIoQueueWorkItem,因为只有这些例程可确保与指定工作项关联的设备对象在处理工作项之前保持可用。

要求

要求
Header wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h、Fltkernel.h)

另请参阅

ExInitializeWorkItem

ExQueueWorkItem

IoAllocateWorkItem

IoFreeWorkItem

IoQueueWorkItem