Partager via


IDebugControl ::WaitForEvent, méthode (dbgeng.h)

La méthode WaitForEvent attend un événement qui se décompose dans l’application du moteur de débogage.

Syntaxe

HRESULT WaitForEvent(
  [in] ULONG Flags,
  [in] ULONG Timeout
);

Paramètres

[in] Flags

Défini sur zéro. Il n’existe actuellement aucun indicateur qui peut être utilisé dans ce paramètre.

[in] Timeout

Spécifie le nombre de millisecondes à attendre avant que cette méthode ne retourne. Si délai d’expiration est INFINITE, cette méthode ne retourne pas tant qu’un événement qui se décompose dans l’application du moteur de débogueur se produit ou qu’une interruption de sortie est émise. Si la session active a une cible de noyau actif, délai d’expiration doit être défini sur INFINITE.

Valeur de retour

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.

Retourner le code Description
S_OK
La méthode a réussi.
S_FALSE
Le délai d’expiration a expiré.
E_PENDING
Une interruption de sortie a été émise. La cible n’est pas disponible.
E_UNEXPECTED
Soit il existe 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 se décomposer dans l’application du moteur de débogueur (en retournant DEBUG_STATUS_BREAK), cette méthode retourne ; sinon, il continuera d’attendre un événement. Les filtres d’événements peuvent également spécifier qu’un événement doit se décomposer 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éinscrite. Une fois qu’elle a été appelée, elle ne peut pas être appelée à nouveau sur n’importe quel client tant qu’il n’a pas 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 des événements (par exemple, toutes les cibles ont quitté), cette méthode met fin à la session active, ignore 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 de débogage de session et de modèle d’exécution. Pour plus d’informations sur les rappels d’événements, consultez Événements de surveillance.

Exigences

Exigence Valeur
plateforme cible Bureau
d’en-tête dbgeng.h (include Dbgeng.h, Winbase.h)

Voir aussi

IDebugControl

IDebugControl2

IDebugControl3