Partager via


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.

Voir aussi

KeIpiGenericCall