DkmRuntimeFunctionResolutionRequest Class

Definition

DkmRuntimeFunctionResolutionRequest represents an expression to be parsed and evaluated by a runtime based expression evaluator and is bound to a particular process. Resolutions will send DkmModuleInstance::FunctionResolved events.

public ref class DkmRuntimeFunctionResolutionRequest : Microsoft::VisualStudio::Debugger::DkmDataContainer, IDisposable
[System.Runtime.InteropServices.Guid("b102c225-ea38-8242-7787-f48cda1e12e9")]
public class DkmRuntimeFunctionResolutionRequest : Microsoft.VisualStudio.Debugger.DkmDataContainer, IDisposable
[<System.Runtime.InteropServices.Guid("b102c225-ea38-8242-7787-f48cda1e12e9")>]
type DkmRuntimeFunctionResolutionRequest = class
    inherit DkmDataContainer
    interface IDisposable
Public Class DkmRuntimeFunctionResolutionRequest
Inherits DkmDataContainer
Implements IDisposable
Inheritance
DkmRuntimeFunctionResolutionRequest
Inheritance
DkmRuntimeFunctionResolutionRequest
Attributes
Implements

Properties

CompilerId

Language/Vendor of the request. Vendor is usually set to Guid.Empty. Language and vendor will be set to Guid.Empty for function breakpoints set with an 'Unknown' language.

FunctionName

The name of the function to resolve to.

IsUnloaded

Returns true if a 'unloaded' event has been raised for this object (example: DkmThread::Unload is called) or if the object has been closed. Note that care must be used when checking this status as, without synchronization, the returned status may no longer be accurate the instruction after it is read.

(Inherited from DkmDataContainer)
LineOffset

The line offset from the start of the function to bind to.

ModuleName

The name of the module to resolve to.

Process

DkmProcess represents a target process which is being debugged. The debugger debugs processes, so this is the basic unit of debugging. A DkmProcess can represent a system process or a virtual process such as minidumps.

SearchFlags

Flags which affect how a search should be performed.

UniqueId

Uniquely identifies the DkmRuntimeFunctionResolutionRequest object.

Methods

Close()

Closes the DkmRuntimeFunctionResolutionRequest object. Once this is closed, no new resolutions will be sent.

DkmRuntimeFunctionResolutionRequest objects are automatically closed when their associated DkmProcess object is closed.

This method may only be called by the component which created the object.

Create(DkmProcess, DkmCompilerId, String, UInt32, String, DkmAddressSearchFlags, DkmDataItem)

Create a new DkmRuntimeFunctionResolutionRequest object instance. The caller is responsible for closing the created object after they are done.

EnableResolution(DkmWorkList)

Called by the breakpoint manager to add a pending resolve request. Expression evaluators, or other components will immediately try to bind the breakpoint against current modules, and will bind the breakpoint to additional locations as modules load. The caller of this interface should implement IDkmRuntimeFunctionResolverClient to obtain the results of the resolution.

Implementations of this interface should stop attempting to bind the breakpoint when the DkmRuntimeFunctionResolutionRequest object is closed.

This method will append a new work item to the specified work list, and return once the work item has been appended. The actual processing of the work item is asynchronous. The caller will be notified that the request is complete through the completion routine.

GetDataItem<T>()

Gets the instance of 'T' which has been added to this container instance. If this container does not contain a 'T', this function will return null.

(Inherited from DkmDataContainer)
OnFunctionResolved(DkmInstructionAddress)

Called by runtime function resolvers when a new resolution has been discovered for a DkmRuntimeFunctionResolutionRequest instance.

Location constraint: API must be called from a Monitor component (component level < 100,000).

OnFunctionResolved(DkmWorkList, DkmInstructionAddress, DkmCompletionRoutine<DkmOnFunctionResolvedAsyncResult>)

Called by runtime function resolvers when a new resolution has been discovered for a DkmRuntimeFunctionResolutionRequest instance.

This method will append a new work item to the specified work list, and return once the work item has been appended. The actual processing of the work item is asynchronous. The caller will be notified that the request is complete through the completion routine.

Location constraint: API must be called from a Monitor component (component level < 100,000).

OnResolverMessage(DkmBreakpointMessageLevel, String)

Called by runtime function resolvers when the resolver wishes to notify its client an error/warning occurred while attempting to resolve the breakpoint.

Location constraint: API must be called from a Monitor component (component level < 100,000).

OnResolverMessage(DkmWorkList, DkmBreakpointMessageLevel, String, DkmCompletionRoutine<DkmOnResolverMessageAsyncResult>)

Called by runtime function resolvers when the resolver wishes to notify its client an error/warning occurred while attempting to resolve the breakpoint.

This method will append a new work item to the specified work list, and return once the work item has been appended. The actual processing of the work item is asynchronous. The caller will be notified that the request is complete through the completion routine.

Location constraint: API must be called from a Monitor component (component level < 100,000).

RemoveDataItem<T>()

Remove the instance of 'T' from this container. It is usually unnecessary to call this method as a data container will automatically be emptied when the object is closed.

(Inherited from DkmDataContainer)
SetDataItem<T>(DkmDataCreationDisposition, T)

Place a new item in the data container.

(Inherited from DkmDataContainer)

Explicit Interface Implementations

IDisposable.Dispose()

Applies to