DkmStackWalkContext.RuntimeWalkNextFramesAndCheckCache164 Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Overloads
RuntimeWalkNextFramesAndCheckCache164(DkmWorkList, UInt32, UInt32, DkmStackHash164, DkmCompletionRoutine<DkmRuntimeWalkNextFramesAndCheckCache164AsyncResult>) |
Version of RuntimeWalkNextFrames() that also checks if a cached copy of the call stack is still valid. 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. This API was introduced in Visual Studio 16 Update 4 (DkmApiVersion.VS16Update4). |
RuntimeWalkNextFramesAndCheckCache164(UInt32, UInt32, DkmStackHash164, Boolean, DkmStackHash164, DkmStackWalkContext, Boolean) |
Version of RuntimeWalkNextFrames() that also checks if a cached copy of the call stack is still valid. This API was introduced in Visual Studio 16 Update 4 (DkmApiVersion.VS16Update4). |
RuntimeWalkNextFramesAndCheckCache164(DkmWorkList, UInt32, UInt32, DkmStackHash164, DkmCompletionRoutine<DkmRuntimeWalkNextFramesAndCheckCache164AsyncResult>)
Version of RuntimeWalkNextFrames() that also checks if a cached copy of the call stack is still valid.
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.
This API was introduced in Visual Studio 16 Update 4 (DkmApiVersion.VS16Update4).
public:
void RuntimeWalkNextFramesAndCheckCache164(Microsoft::VisualStudio::Debugger::DkmWorkList ^ WorkList, System::UInt32 RequestSizeHintIfCacheIsValid, System::UInt32 RequestSizeHintIfCacheIsInvalid, Microsoft::VisualStudio::Debugger::CallStack::DkmStackHash164 ^ CachedHash, Microsoft::VisualStudio::Debugger::DkmCompletionRoutine<Microsoft::VisualStudio::Debugger::CallStack::DkmRuntimeWalkNextFramesAndCheckCache164AsyncResult> ^ CompletionRoutine);
public void RuntimeWalkNextFramesAndCheckCache164 (Microsoft.VisualStudio.Debugger.DkmWorkList WorkList, uint RequestSizeHintIfCacheIsValid, uint RequestSizeHintIfCacheIsInvalid, Microsoft.VisualStudio.Debugger.CallStack.DkmStackHash164 CachedHash, Microsoft.VisualStudio.Debugger.DkmCompletionRoutine<Microsoft.VisualStudio.Debugger.CallStack.DkmRuntimeWalkNextFramesAndCheckCache164AsyncResult> CompletionRoutine);
public void RuntimeWalkNextFramesAndCheckCache164 (Microsoft.VisualStudio.Debugger.DkmWorkList WorkList, uint RequestSizeHintIfCacheIsValid, uint RequestSizeHintIfCacheIsInvalid, Microsoft.VisualStudio.Debugger.CallStack.DkmStackHash164? CachedHash, Microsoft.VisualStudio.Debugger.DkmCompletionRoutine<Microsoft.VisualStudio.Debugger.CallStack.DkmRuntimeWalkNextFramesAndCheckCache164AsyncResult> CompletionRoutine);
member this.RuntimeWalkNextFramesAndCheckCache164 : Microsoft.VisualStudio.Debugger.DkmWorkList * uint32 * uint32 * Microsoft.VisualStudio.Debugger.CallStack.DkmStackHash164 * Microsoft.VisualStudio.Debugger.DkmCompletionRoutine<Microsoft.VisualStudio.Debugger.CallStack.DkmRuntimeWalkNextFramesAndCheckCache164AsyncResult> -> unit
Public Sub RuntimeWalkNextFramesAndCheckCache164 (WorkList As DkmWorkList, RequestSizeHintIfCacheIsValid As UInteger, RequestSizeHintIfCacheIsInvalid As UInteger, CachedHash As DkmStackHash164, CompletionRoutine As DkmCompletionRoutine(Of DkmRuntimeWalkNextFramesAndCheckCache164AsyncResult))
Parameters
- WorkList
- DkmWorkList
WorkList to append the new work item to.
- 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.
- CompletionRoutine
- DkmCompletionRoutine<DkmRuntimeWalkNextFramesAndCheckCache164AsyncResult>
Routine to fire when the request is complete. If the request is successfully appended to the work list, this will always fire (including when the operation is canceled). This will never fire if appending the work item fails.
Applies to
RuntimeWalkNextFramesAndCheckCache164(UInt32, UInt32, DkmStackHash164, Boolean, DkmStackHash164, DkmStackWalkContext, Boolean)
Version of RuntimeWalkNextFrames() that also checks if a cached copy of the call stack is still valid.
This API was introduced in Visual Studio 16 Update 4 (DkmApiVersion.VS16Update4).
public:
cli::array <Microsoft::VisualStudio::Debugger::CallStack::DkmStackWalkFrame ^> ^ RuntimeWalkNextFramesAndCheckCache164(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 (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 (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);
member this.RuntimeWalkNextFramesAndCheckCache164 : uint32 * uint32 * Microsoft.VisualStudio.Debugger.CallStack.DkmStackHash164 * bool * DkmStackHash164 * DkmStackWalkContext * bool -> Microsoft.VisualStudio.Debugger.CallStack.DkmStackWalkFrame[]
Public Function RuntimeWalkNextFramesAndCheckCache164 (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
- 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.