Méthode IDebugControl3 ::WaitForEvent (dbgeng.h)
La méthode WaitForEvent attend un événement qui s’interrompt dans l’application du moteur de débogueur.
Syntaxe
HRESULT WaitForEvent(
[in] ULONG Flags,
[in] ULONG Timeout
);
Paramètres
[in] Flags
Définit la valeur zéro. Il n’existe actuellement aucun indicateur pouvant être utilisé dans ce paramètre.
[in] Timeout
Spécifie le nombre de millisecondes à attendre avant que cette méthode ne retourne. Si le délai d’expiration est INFINITE, cette méthode ne retourne pas tant qu’un événement qui s’interrompt dans l’application du moteur de débogueur ne se produit pas ou qu’une interruption de sortie n’est pas émise. Si la session active a une cible de noyau actif, délai d’expiration doit être défini sur INFINITE.
Valeur retournée
Cette méthode peut retourner d’autres valeurs d’erreur et les valeurs d’erreur ci-dessus peuvent avoir des significations supplémentaires. Pour plus d’informations, consultez Valeurs de retour.
Code de retour | Description |
---|---|
|
La méthode a réussi. |
|
Le délai d’attente a expiré. |
|
Une interruption de sortie a été émise. La cible n’est pas disponible. |
|
Soit il y a une demande d’entrée en attente, soit aucune des cibles ne peut générer d’événements. |
|
Le moteur attend déjà un événement. |
Remarques
La méthode peut être appelée uniquement à partir du thread qui a démarré la session du débogueur.
Lorsqu’un événement se produit, le moteur de débogueur traite l’événement et appelle les rappels d’événements. Si l’un de ces rappels indique que l’événement doit s’interrompre dans l’application du moteur de débogueur (en retournant DEBUG_STATUS_BREAK), cette méthode retourne ; dans le cas contraire, il continue d’attendre un événement. Les filtres d’événements peuvent également spécifier qu’un événement doit s’introduire dans l’application du moteur de débogueur. Pour plus d’informations sur les filtres d’événements, consultez Contrôle des exceptions et des événements.
Cette méthode n'est pas réentrante. Une fois qu’il a été appelé, il ne peut pas être appelé à nouveau sur un client tant qu’il n’a pas été retourné. En particulier, il ne peut pas être appelé à partir des rappels d’événements, y compris les extensions et les commandes exécutées par les rappels.
Si aucune des cibles n’est capable de générer d’événements (par exemple, toutes les cibles ont été supprimées), cette méthode met fin à la session active, abandonne les cibles, puis retourne E_UNEXPECTED.
La constante INFINITE est définie dans Winbase.h.
Pour plus d’informations sur l’utilisation de WaitForEvent pour contrôler le flux d’exécution de l’application et des cibles du débogueur, consultez Débogage de session et de modèle d’exécution. Pour plus d’informations sur les rappels d’événements, consultez Surveillance des événements.
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Desktop (Expérience utilisateur) |
En-tête | dbgeng.h (inclure Dbgeng.h, Winbase.h) |