Metodo IDebugControl::WaitForEvent (dbgeng.h)

Il metodo WaitForEvent attende un evento che si interrompe nell'applicazione del motore del debugger.

Sintassi

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

Parametri

[in] Flags

Imposta su zero. Attualmente non sono disponibili flag che possono essere usati in questo parametro.

[in] Timeout

Specifica il numero di millisecondi di attesa prima che venga restituito questo metodo. Se Timeout è INFINITE, questo metodo non restituirà finché non si verifica un evento che si interrompe nell'applicazione del motore del debugger o viene generato un interrupt di uscita. Se la sessione corrente ha una destinazione del kernel live, timeout deve essere impostato su INFINITE.

Valore restituito

Questo metodo può restituire altri valori di errore e i valori di errore precedenti possono avere significati aggiuntivi. Per altri dettagli, vedere Valori restituiti .

Codice restituito Descrizione
S_OK
Il metodo è stato eseguito correttamente.
S_FALSE
Timeout scaduto.
E_PENDING
È stato generato un interrupt di uscita. La destinazione non è disponibile.
E_UNEXPECTED
È presente una richiesta in sospeso per l'input o nessuna delle destinazioni potrebbe generare eventi.
E_FAIL
Il motore è già in attesa di un evento.

Commenti

Il metodo può essere chiamato solo dal thread che ha avviato la sessione del debugger.

Quando si verifica un evento, il motore del debugger elabora l'evento e chiama i callback dell'evento. Se uno di questi callback indica che l'evento deve entrare nell'applicazione del motore di debugger (restituendo DEBUG_STATUS_BREAK), questo metodo restituirà; in caso contrario, continuerà ad attendere un evento. I filtri eventi possono anche specificare che un evento deve entrare nell'applicazione del motore del debugger. Per altre informazioni sui filtri eventi, vedere Controllo di eccezioni ed eventi.

Questo metodo non è rientrante. Una volta che è stato chiamato, non può essere chiamato di nuovo in alcun client fino a quando non viene restituito. In particolare, non può essere chiamato dai callback dell'evento, incluse le estensioni e i comandi eseguiti dai callback.

Se nessuna delle destinazioni è in grado di generare eventi, ad esempio tutte le destinazioni sono state uscite, questo metodo terminerà la sessione corrente, eliminerà le destinazioni e quindi restituirà E_UNEXPECTED.

La costante INFINITE è definita in Winbase.h.

Per altre informazioni sull'uso di WaitForEvent per controllare il flusso di esecuzione dell'applicazione e delle destinazioni del debugger, vedere Debug di sessioni ed esecuzione del modello. Per informazioni dettagliate sui callback degli eventi, vedere Monitoraggio degli eventi.

Requisiti

Requisito Valore
Piattaforma di destinazione Desktop
Intestazione dbgeng.h (include Dbgeng.h, Winbase.h)

Vedi anche

Idebugcontrol

IDebugControl2

IDebugControl3