Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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 |