Partager via


fonction de rappel DRIVER_PROXY_HOTSWAP_WORKER_ROUTINE (wdm.h)

Le rappel DRIVER_PROXY_HOTSWAP_WORKER_ROUTINE définit une routine qui s’exécute dans un thread worker permutable à chaud créé par IoDriverProxyCreateHotSwappableWorkerThread.

Syntaxe

DRIVER_PROXY_HOTSWAP_WORKER_ROUTINE DriverProxyHotswapWorkerRoutine;

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

Paramètres

WorkerContext

[in] Pointeur vers les informations de contexte définies par le pilote qui ont été spécifiées lors de la création du thread de travail. Ce contexte est transmis à partir du champ Contexte de la structure DRIVER_PROXY_HOTSWAP_WORKER_ROUTINE_START_CONTEXT .

WaitStatus

[in] État retourné par l’opération d’attente. Cela indique pourquoi le thread de travail a été réveillé. Consultez KeWaitForMultipleObjects pour connaître les valeurs d’état d’attente possibles.

Valeur retournée

DRIVER_PROXY_HOTSWAP_WORKER_ROUTINE retourne l’une des valeurs suivantes :

Valeur retournée Descriptif
TRUE Le thread de travail doit continuer à s’exécuter et attendre de nouveau sur les objets spécifiés.
FALSE Le thread de travail doit se terminer.

Remarques

Ce rappel est appelé lorsque le thread de travail se réveille de l’attente sur les objets noyau. La routine détermine si le thread doit continuer à s’exécuter ou à se terminer.

Cette routine de rappel s’exécute à PASSIVE_LEVEL dans le contexte d’un thread de travail système créé spécifiquement pour les opérations permutables à chaud. Le thread gère le même IRQL tout au long de son exécution (IRQL_requires_same).

La routine worker est appelée chaque fois que le thread se réveille d’attendre les objets noyau spécifiés dans la structure DRIVER_PROXY_HOTSWAP_WORKER_ROUTINE_START_CONTEXT . En fonction de WaitStatus et de l’état actuel du pilote, la routine doit décider de poursuivre le traitement (retourner TRUE) ou de mettre fin au thread de travail (retourner FALSE).

L’infrastructure de thread de travail garantit que le thread peut être arrêté et recréé en toute sécurité dans le cadre des opérations d’échange à chaud du pilote, en conservant la stabilité du système pendant les mises à jour du pilote d’exécution.

Spécifications

Requirement Valeur
plateforme cible Universal
Header wdm.h
IRQL PASSIVE_LEVEL

Voir aussi

IoDriverProxyCreateHotSwappableWorkerThread

DRIVER_PROXY_HOTSWAP_WORKER_ROUTINE_START_CONTEXT