winnt.h) (FPO_DATA 结构

表示使用帧指针省略 (FPO) 优化时 x86 计算机上的某个函数的堆栈帧布局。 结构用于定位调用帧的基址。

语法

typedef struct _FPO_DATA {
  DWORD ulOffStart;
  DWORD cbProcSize;
  DWORD cdwLocals;
  WORD  cdwParams;
  WORD  cbProlog : 8;
  WORD  cbRegs : 3;
  WORD  fHasSEH : 1;
  WORD  fUseBP : 1;
  WORD  reserved : 1;
  WORD  cbFrame : 2;
} FPO_DATA, *PFPO_DATA;

成员

ulOffStart

函数代码的第一个字节的偏移量。

cbProcSize

函数中的字节数。

cdwLocals

局部变量的数目。

cdwParams

参数的大小(以 DWORD为单位)。

cbProlog

函数 prolog 代码中的字节数。

cbRegs

保存的寄存器数。

fHasSEH

一个变量,指示函数是否使用结构化异常处理。

fUseBP

一个指示是否已分配 EBP 寄存器的变量。

reserved

保留供将来使用。

cbFrame

一个指示帧类型的变量。

类型 含义
FRAME_FPO
0
FPO 框架
FRAME_NONFPO
3
非 FPO 帧
FRAME_TRAP
1
陷阱框架
FRAME_TSS
2
TSS 帧

要求

要求
Header winnt.h (包括 Windows.h)
可再发行组件 DbgHelp.dll 5.1 或更高版本

另请参阅

FunctionTableAccessProc64

STACKFRAME64

SymFunctionTableAccess64