获取当前函数的调用栈函数RtlCaptureStackBackTrace

平日里用VS开发工具在调时在Debug下有一个选项Call Stack快捷键是Alt+7可以看出函数调用的来龙去脉,原来有一个这样原函数存在。


RtlCaptureStackBackTrace

The RtlCaptureStackBackTrace routine captures a stack back trace by walking up the stack and recording the information for each frame.

USHORT
RtlCaptureStackBackTrace(
__in ULONG
FramesToSkip,
__in ULONG
FramesToCapture,
__out_ecount(
FramesToCapture) PVOID *BackTrace,
__out_opt PULONG
BackTraceHash
);

Parameters

FramesToSkip The number of frames to skip from the start of the back trace. FramesToCapture The number of frames to be captured. BackTrace An array of pointers captured from the current stack trace. BackTraceHash An optional value that can be used to organize hash tables. If this parameter is NULL, no hash value is computed.

This value is calculated based on the values of the pointers returned in the BackTrace array. Two identical stack traces will generate identical hash values.

Return Value

The number of captured frames.

Comments

The RtlCaptureStackBackTrace routine captures a stack back trace by walking up the stack and recording the information for each frame.

Important This is an exported function that MUST probe the ability to take page faults.

In Windows XP and Windows Server 2003, the sum of the FramesToSkip and FramesToCapture parameters must be less than 63.

Requirements

Versions: Available in Windows XP and later versions of the Windows operating systems.

IRQL: <= DISPATCH_LEVEL

Headers: Declared in Ntifs.h. Include Ntifs.h or FltKernel.h.

Library: Contained in Ntoskrnl.lib.


你可能感兴趣的:(驱动开发学习,Windows编程)