FPO_DATA structure (winnt.h)

Represents the stack frame layout for a function on an x86 computer when frame pointer omission (FPO) optimization is used. The structure is used to locate the base of the call frame.

Syntax

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;

Members

ulOffStart

The offset of the first byte of the function code.

cbProcSize

The number of bytes in the function.

cdwLocals

The number of local variables.

cdwParams

The size of the parameters, in DWORDs.

cbProlog

The number of bytes in the function prolog code.

cbRegs

The number of registers saved.

fHasSEH

A variable that indicates whether the function uses structured exception handling.

fUseBP

A variable that indicates whether the EBP register has been allocated.

reserved

Reserved for future use.

cbFrame

A variable that indicates the frame type.

Type Meaning
FRAME_FPO
0
FPO frame
FRAME_NONFPO
3
Non-FPO frame
FRAME_TRAP
1
Trap frame
FRAME_TSS
2
TSS frame

Requirements

Requirement Value
Header winnt.h (include Windows.h)
Redistributable DbgHelp.dll 5.1 or later

See also

FunctionTableAccessProc64

STACKFRAME64

SymFunctionTableAccess64