The SessionStatus callback method is called by the engine when a change occurs in the debugger session.
- Status [in]
Specifies the new status of the debugger session. The following table describes the possible values.
A debugger session has started.
The session was ended by sending DEBUG_END_ACTIVE_TERMINATE to EndSession.
The session was ended by sending DEBUG_END_ACTIVE_DETACH to EndSession.
The session was ended by sending DEBUG_END_PASSIVE to EndSession.
The target ran to completion, ending the session.
The target computer rebooted, ending the session.
The target computer went into hibernation, ending the session.
The engine was unable to continue the session.
This method's return value is ignored by the engine.
This method is only called by the engine if the DEBUG_EVENT_SESSION_STATUS flag is set in the mask returned by IDebugEventCallbacks::GetInterestMask.
After the engine has notified all the event callbacks of the change in the session status, it will also notify any loaded extensions that export the DebugExtensionNotify callback method. The value that it passes to the extensions depends on the value of Status. If Status is DEBUG_SESSION_ACTIVE, it passes DEBUG_SESSION_ACTIVE; otherwise, it passes DEBUG_SESSION_INACTIVE.
In the DEBUG_SESSION_ACTIVE case, the engine follows the debugger session change notification with a target state change notification by calling IDebugEventCallbacks::ChangeDebuggeeState on the event callbacks and passing DEBUG_CDS_ALL in the Flags parameter. In all other cases, the engine precedes this notification with an engine state change notification by calling IDebugEventCallbacks::ChangeEngineState on the event callbacks and passing DEBUG_CES_EXECUTION_STATUS in the Flags parameter.