说明:
如果在工作函数中执行什么耗时任务需要使用事件对象来保证工作函数结束之后再执行卸载驱动否则会蓝屏。
步骤:
1.定义
// 工作项例程定义
VOID WorkerRoutine(PVOID Parameter) {
DbgPrint("WorkerRoutine: Working on item with parameter: %p\n", Parameter);
}
// 初始化并排队工作项
VOID InitAndQueueWorkItem() {
// 初始化工作项
ExInitializeWorkItem(&WorkItem, WorkerRoutine, (PVOID)0x1234);
// 将工作项放入延迟工作队列
ExQueueWorkItem(&WorkItem, DelayedWorkQueue);
}
2.DriverEntry入口函数调用
InitAndQueueWorkItem();