Share via


IDkmMergedMonitorStackWalk164.RuntimeWalkNextFramesAndCheckCache164 Method

Definition

Version of RuntimeWalkNextFrames() that also checks if a cached copy of the call stack is still valid.

public:
 cli::array <Microsoft::VisualStudio::Debugger::CallStack::DkmStackWalkFrame ^> ^ RuntimeWalkNextFramesAndCheckCache164(Microsoft::VisualStudio::Debugger::CallStack::DkmStackWalkContext ^ stackWalkContext, System::UInt32 requestSizeHintIfCacheIsValid, System::UInt32 requestSizeHintIfCacheIsInvalid, Microsoft::VisualStudio::Debugger::CallStack::DkmStackHash164 ^ cachedHash, [Runtime::InteropServices::Out] bool % endOfStack, [Runtime::InteropServices::Out] Microsoft::VisualStudio::Debugger::CallStack::DkmStackHash164 ^ % actualStackHash, [Runtime::InteropServices::Out] Microsoft::VisualStudio::Debugger::CallStack::DkmStackWalkContext ^ % actualStackWalkContext, [Runtime::InteropServices::Out] bool % isCacheValid);
public Microsoft.VisualStudio.Debugger.CallStack.DkmStackWalkFrame[] RuntimeWalkNextFramesAndCheckCache164 (Microsoft.VisualStudio.Debugger.CallStack.DkmStackWalkContext stackWalkContext, uint requestSizeHintIfCacheIsValid, uint requestSizeHintIfCacheIsInvalid, Microsoft.VisualStudio.Debugger.CallStack.DkmStackHash164 cachedHash, out bool endOfStack, out Microsoft.VisualStudio.Debugger.CallStack.DkmStackHash164 actualStackHash, out Microsoft.VisualStudio.Debugger.CallStack.DkmStackWalkContext actualStackWalkContext, out bool isCacheValid);
public Microsoft.VisualStudio.Debugger.CallStack.DkmStackWalkFrame[]? RuntimeWalkNextFramesAndCheckCache164 (Microsoft.VisualStudio.Debugger.CallStack.DkmStackWalkContext stackWalkContext, uint requestSizeHintIfCacheIsValid, uint requestSizeHintIfCacheIsInvalid, Microsoft.VisualStudio.Debugger.CallStack.DkmStackHash164? cachedHash, out bool endOfStack, out Microsoft.VisualStudio.Debugger.CallStack.DkmStackHash164? actualStackHash, out Microsoft.VisualStudio.Debugger.CallStack.DkmStackWalkContext actualStackWalkContext, out bool isCacheValid);
abstract member RuntimeWalkNextFramesAndCheckCache164 : Microsoft.VisualStudio.Debugger.CallStack.DkmStackWalkContext * uint32 * uint32 * Microsoft.VisualStudio.Debugger.CallStack.DkmStackHash164 * bool * DkmStackHash164 * DkmStackWalkContext * bool -> Microsoft.VisualStudio.Debugger.CallStack.DkmStackWalkFrame[]
Public Function RuntimeWalkNextFramesAndCheckCache164 (stackWalkContext As DkmStackWalkContext, requestSizeHintIfCacheIsValid As UInteger, requestSizeHintIfCacheIsInvalid As UInteger, cachedHash As DkmStackHash164, ByRef endOfStack As Boolean, ByRef actualStackHash As DkmStackHash164, ByRef actualStackWalkContext As DkmStackWalkContext, ByRef isCacheValid As Boolean) As DkmStackWalkFrame()

Parameters

stackWalkContext
DkmStackWalkContext

[In] DkmStackWalkContext allows the various components which walk, filter, or examine call stacks to store private data which is associated with this call stack.

requestSizeHintIfCacheIsValid
UInt32

[In] RequestSizeHintIfCacheIsValid is a hint as to the number of frame that the caller needs. This value is treated as a hint because this API can return frames which are not yet walked, so this API may return more or less than the hint value. A request size hint of 0 means not to do any stack walking at all if the cache is valid.

requestSizeHintIfCacheIsInvalid
UInt32

[In] RequestSizeHintIfCacheIsInvalid is a hint as to the number of frame that the caller needs. This value is treated as a hint because this API can return frames which are not yet walked, so this API may return more or less than the hint value.

cachedHash
DkmStackHash164

[In,Optional] Cached call stack hash, will not walk the stack if cache is still valid. This parameter is optional. If null, we will still compute the actual hash and do the stack walk, but will skip the comparing of the actual hash against the cached hash to suppress the stack walk.

endOfStack
Boolean

[Out] Returns true if the monitor reached the end of the stack.

actualStackHash
DkmStackHash164

[Out,Optional] The actual hash of the call stack. This may be NULL for runtimes that don't support call stack hashing.

actualStackWalkContext
DkmStackWalkContext

[Out] The DkmStackWalkContext object that can used later to continue the walk. If the cache is valid, this is the original context. If the cache is invalid, this will be a new DkmStackWalkContext object.

isCacheValid
Boolean

[Out] True if the cache was valid, false if not.

Returns

[Out] Array of walked frames. For, unresolved frames, both InstructionAddress and Description will be null.

Applies to