Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Обратный вызов 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 |