функция обратного вызова DRIVER_PROXY_HOTSWAP_WORKER_ROUTINE (wdm.h)

Обратный вызов DRIVER_PROXY_HOTSWAP_WORKER_ROUTINE определяет подпрограмму, которая выполняется в потоке рабочей роли с поддержкой горячего переключения, созданном IoDriverProxyCreateHotSwappableWorkerThread.

Синтаксис

DRIVER_PROXY_HOTSWAP_WORKER_ROUTINE DriverProxyHotswapWorkerRoutine;

BOOLEAN DriverProxyHotswapWorkerRoutine(
  PVOID WorkerContext,
  NTSTATUS WaitStatus
)
{...}

Параметры

WorkerContext

[in] Указатель на определяемые драйвером сведения о контексте, указанные при создании рабочего потока. Этот контекст передается из поля Контекста структуры DRIVER_PROXY_HOTSWAP_WORKER_ROUTINE_START_CONTEXT .

WaitStatus

[in] Состояние, возвращаемое из операции ожидания. Это указывает, почему рабочий поток проснулся. Сведения о возможных значениях состояния ожидания см. в разделе KeWaitForMultipleObjects .

Возвращаемое значение

DRIVER_PROXY_HOTSWAP_WORKER_ROUTINE возвращает одно из следующих значений:

Возвращаемое значение Description
TRUE Рабочий поток должен продолжать работать и ждать снова на указанных объектах.
FALSE Рабочий поток должен завершиться.

Замечания

Этот обратный вызов вызывается, когда рабочий поток просыпается от ожидания объектов ядра. Подпрограмма определяет, должен ли поток продолжать работу или завершить работу.

Эта подпрограмма обратного вызова выполняется в PASSIVE_LEVEL в контексте рабочего потока системы, созданного специально для операций с горячей заменой. Поток сохраняет тот же IRQL во время выполнения (IRQL_requires_same).

Подпрограмма рабочей роли вызывается каждый раз, когда поток просыпается от ожидания объектов ядра, указанных в структуре DRIVER_PROXY_HOTSWAP_WORKER_ROUTINE_START_CONTEXT . На основе WaitStatus и текущего состояния драйвера подпрограмма должна решить, следует ли продолжить обработку (возвращать TRUE) или завершить рабочий поток (возвращать FALSE).

Инфраструктура рабочих потоков гарантирует, что поток можно безопасно завершить и воссоздать в рамках операций горячего переключения драйверов, сохраняя стабильность системы во время обновлений драйверов среды выполнения.

Требования

Требование Ценность
целевая платформа Всеобщий
Header wdm.h
IRQL PASSIVE_LEVEL

См. также

IoDriverProxyCreateHotSwappableWorkerThread

DRIVER_PROXY_HOTSWAP_WORKER_ROUTINE_START_CONTEXT