KIPI_BROADCAST_WORKER fonction de rappel (wdm.h)
La routine IpiGenericCall s’exécute simultanément sur tous les processeurs.
Syntaxe
KIPI_BROADCAST_WORKER KipiBroadcastWorker;
ULONG_PTR KipiBroadcastWorker(
[in] ULONG_PTR Argument
)
{...}
Paramètres
[in] Argument
Fournit la valeur qui a été passée à la routine KeIpiGenericCall qui a appelé IpiGenericCall.
Valeur retournée
IpiGenericCall retourne une valeur définie par le pilote. Si IpiGenericCall s’est exécuté sur le même processeur que KeIpiGenericCall, KeIpiGenericCall retourne la valeur définie par le pilote que retourne IpiGenericCall . Sinon, la valeur est ignorée.
Remarques
Les routines IpiGenericCall s’exécutent à IRQL = IPI_LEVEL, ce qui est supérieur à DIRQL pour chaque appareil. Les routines IpiGenericCall doivent satisfaire aux mêmes restrictions que les routines de case activée de rappel. Pour plus d’informations sur ces restrictions, consultez Écriture d’une routine de rappel de vérification des bogues.
Exemples
Pour définir une routine de rappel IpiGenericCall , vous devez d’abord fournir une déclaration de fonction qui identifie le type de routine de rappel que vous définissez. Windows fournit un ensemble de types de fonctions de rappel pour les pilotes. La déclaration d’une fonction à l’aide des types de fonction de rappel permet à l’analyse du code pour les pilotes, au vérificateur de pilotes statiques (SDV) et à d’autres outils de vérification de trouver des erreurs. Il s’agit d’une exigence pour l’écriture de pilotes pour le système d’exploitation Windows.
Par exemple, pour définir une routine de rappel IpiGenericCall nommée MyIpiGenericCall
, utilisez le type KIPI_BROADCAST_WORKER comme indiqué dans cet exemple de code :
KIPI_BROADCAST_WORKER MyIpiGenericCall;
Ensuite, implémentez votre routine de rappel comme suit :
_Use_decl_annotations_
ULONG_PTR
MyIpiGenericCall(
ULONG_PTR Argument
)
{
// Function body
}
Le type de fonction KIPI_BROADCAST_WORKER est défini dans le fichier d’en-tête Wdm.h. Pour identifier plus précisément les erreurs lors de l’exécution des outils d’analyse du code, veillez à ajouter l’annotation _Use_decl_annotations_
à votre définition de fonction. L’annotation _Use_decl_annotations_
garantit que les annotations appliquées au type de fonction KIPI_BROADCAST_WORKER dans le fichier d’en-tête sont utilisées. Pour plus d’informations sur la configuration requise pour les déclarations de fonction, consultez Déclaration de fonctions à l’aide de types de rôles de fonction pour les pilotes WDM. Pour plus d’informations sur _Use_decl_annotations_
, consultez Annotating Function Behavior.
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Desktop (Expérience utilisateur) |
En-tête | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
IRQL | Appelé à IPI_LEVEL. |