The ChangeEngineState callback method is called by the engine when its state has changed.
HRESULT ChangeEngineState( ULONG Flags, ULONG64 Argument );
Specifies a bit-set indicating the type of changes that occurred in the engine's state. The following bit flags might be set:
|DEBUG_CES_CURRENT_THREAD||The current thread has changed, which implies that the current target and current process might also have changed.|
|DEBUG_CES_EFFECTIVE_PROCESSOR||The effective processor has changed.|
|DEBUG_CES_BREAKPOINTS||One or more breakpoints have changed.|
|DEBUG_CES_CODE_LEVEL||The code interpretation level has changed.|
|DEBUG_CES_EXECUTION_STATUS||The execution status has changed.|
|DEBUG_CES_ENGINE_OPTIONS||The engine options have changed.|
|DEBUG_CES_LOG_FILE||The log file has been opened or closed.|
|DEBUG_CES_RADIX||The default radix has changed.|
|DEBUG_CES_EVENT_FILTERS||The event filters have changed.|
|DEBUG_CES_PROCESS_OPTIONS||The process options for the current process have changed.|
|DEBUG_CES_EXTENSIONS||Extension DLLs have been loaded or unloaded. (For more information, see Loading Debugger Extension DLLs.)|
|DEBUG_CES_SYSTEMS||A target has been added or removed.|
|DEBUG_CES_ASSEMBLY_OPTIONS||The assemble options have changed.|
|DEBUG_CES_EXPRESSION_SYNTAX||The default expression syntax has changed.|
|DEBUG_CES_TEXT_REPLACEMENTS||Text replacements have changed.|
Provides additional information about the change to the engine's state. If more than one bit flag is set in the Flags parameter, the Argument parameter is not used. Otherwise, the interpretation of the value of Argument depends on the value of Flags:
The value of Argument is the current engine thread ID or--if there is no current thread--DEBUG_ANY_ID. For more information, see Threads and Processes.
The value of Argument is the type of the effective processor.
The value of Argument is the breakpoint ID of the breakpoint that was changed or--if more than one breakpoint was changed--DEBUG_ANY_ID. For more information, see Breakpoints.
The value of Argument is the code interpretation level.
The value of Argument is the execution status (as described in the DEBUG_STATUS_XXX topic) possibly combined with the bit flag DEBUG_STATUS_INSIDE_WAIT. DEBUG_STATUS_INSIDE_WAIT is set when a WaitForEvent call is pending. For more information, see Debugging Session and Execution Model.
The value of Argument is the engine options.
The value of Argument is TRUE if the log file was opened and FALSE if the log file was closed.
The value of Argument is the default radix.
The value of Argument is the index of the event filter that was changed or--if more than one event filter was changed--DEBUG_ANY_ID.
The value of Argument is the process options for the current process.
The value of Argument is zero.
The value of Argument is the target ID of the target that was added or--if a target was removed--DEBUG_ANY_ID.
The value of Argument is the assemble options.
The value of Argument is the default expression syntax.
The value of Argument is DEBUG_ANY_ID.
The return value is ignored by the engine unless it indicates a remote procedure call error; in this case the client, with which this IDebugEventCallbacks object is registered, is disabled.
This method is only called by the engine if the DEBUG_EVENT_CHANGE_ENGINE_STATE flag is set in the mask returned by IDebugEventCallbacks::GetInterestMask.
For more information about handling events, see Monitoring Events.
|Header||dbgeng.h (include Dbgeng.h)|