ioInitializeWorkItem 函数 (wdm.h)

IoInitializeWorkItem 例程初始化调用方已分配的工作项。

语法

void IoInitializeWorkItem(
  [in] PVOID        IoObject,
  [in] PIO_WORKITEM IoWorkItem
);

参数

[in] IoObject

指向调用方驱动程序对象或调用方设备对象之一的指针。 如果调用方稍后将工作项传递给 IoQueueWorkItem,IoObject 必须指向设备对象。

[in] IoWorkItem

指向要初始化 的IO_WORKITEM 结构的指针。

返回值

备注

驱动程序为 IO_WORKITEM 结构分配自己的存储,然后调用 IoInitializeWorkItem 对其进行初始化。 内存必须从非分页池分配。 若要确定保存 IO_WORKITEM 结构所需的字节数,请调用 IoSizeofWorkItem

IoInitializeWorkItem 初始化的IO_WORKITEM结构必须先IoUninitializeWorkItem 取消初始化,然后才能释放它。

相关的例程 IoAllocateWorkItem 分配和初始化工作项。 通过将分配和初始化合并到单个调用中, IoAllocateWorkItem 可能比仅初始化 IoInitializeWorkItem 更便于某些驱动程序使用。 但是,必须在以前分配的存储中初始化工作项的驱动程序需要 IoInitializeWorkItem

例如,驱动程序可能会为工作项池分配存储块。 从池中分配工作项时,驱动程序可以调用 IoInitializeWorkItem 来初始化工作项。 驱动程序可以调用 IoUninitializeWorkItem ,以在工作项返回到池时取消初始化该工作项。 在池的初始存储分配期间,驱动程序可以调用 IoSizeofWorkitem 来确定要为每个工作项分配多少存储。

有关工作项的详细信息,请参阅 系统工作线程

要求

要求
最低受支持的客户端 在 Windows Vista 和更高版本的 Windows 中可用。
目标平台 通用
标头 wdm.h(包括 Wdm.h、Ntddk.h、Ntifs.h)
Library NtosKrnl.lib
DLL NtosKrnl.exe
IRQL 任何级别

另请参阅

IO_WORKITEM

IoAllocateWorkItem

IoQueueWorkItem

IoQueueWorkItemEx

IoSizeofWorkItem

IoUninitializeWorkItem