DRIVER_PROXY_HOTSWAP_WORKER_ROUTINE回调定义在 IoDriverProxyCreateHotSwappableWorkerThread 创建的热交换工作线程中运行的例程。
Syntax
DRIVER_PROXY_HOTSWAP_WORKER_ROUTINE DriverProxyHotswapWorkerRoutine;
BOOLEAN DriverProxyHotswapWorkerRoutine(
PVOID WorkerContext,
NTSTATUS WaitStatus
)
{...}
参数
WorkerContext
[in]指向创建工作线程时指定的驱动程序定义的上下文信息的指针。 此上下文从DRIVER_PROXY_HOTSWAP_WORKER_ROUTINE_START_CONTEXT结构的 Context 字段传递。
WaitStatus
[in]从等待作返回的状态。 这表示为何唤醒工作线程。 有关可能的等待状态值,请参阅 KeWaitForMultipleObjects 。
返回值
DRIVER_PROXY_HOTSWAP_WORKER_ROUTINE 返回以下值之一:
| 返回值 | Description |
|---|---|
| 正确 | 工作线程应继续运行,并在指定对象上再次等待。 |
| 假 | 工作线程应终止。 |
注解
当工作线程从等待内核对象时调用此回调。 例程确定线程应继续运行还是终止。
此回调例程在专门为可热交换作创建的系统工作线程上下文中的PASSIVE_LEVEL运行。 线程在整个执行过程中维护相同的 IRQL(IRQL_requires_same)。
每次线程在 DRIVER_PROXY_HOTSWAP_WORKER_ROUTINE_START_CONTEXT结构中指定的 内核对象上等待时都会调用辅助角色例程。 根据 WaitStatus 和驱动程序的当前状态,例程应决定是否继续处理(返回 TRUE),还是终止工作线程(返回 FALSE)。
辅助角色线程基础结构可确保在驱动程序热交换作过程中安全地终止和重新创建线程,从而在运行时驱动程序更新期间保持系统稳定性。
要求
| Requirement | 价值 |
|---|---|
| 目标平台 | 普遍 |
| Header | wdm.h |
| IRQL | PASSIVE_LEVEL |