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
S_OK
La méthode a réussi.
S_FALSE
Le délai d’attente a expiré.
E_PENDING
Une interruption de sortie a été émise. La cible n’est pas disponible.
E_UNEXPECTED
Soit il y a une demande d’entrée en attente, soit aucune des cibles ne peut générer d’événements.
E_FAIL
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)

Voir aussi

IDebugControl

IDebugControl2

IDebugControl3