Platform SDK: Debugging and Error Handling

FPO_DATA

The FPO_DATA structure 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.

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
Offset of the first byte of the function code.
cbProcSize
Number of bytes in the function.
cdwLocals
Number of local variables, in DWORDs.
cdwParams
Size of the parameters, in DWORDs.
cbProlog
Number of bytes in the function prolog code.
cbRegs
Number of registers saved.
fHasSEH
Indicates whether the function uses structured exception handling.
fUseBP
Indicates whether the EBP register has been allocated.
reserved
Reserved for future use.
cbFrame
Indicates the frame type.
Type Meaning
FRAME_FPO FPO frame
FRAME_TRAP Trap frame
FRAME_TSS TSS frame
FRAME_NONFPO Non-FPO frame

Requirements

  Windows NT/2000: Requires Windows NT 4.0 or later.
  Windows 95/98: Requires Windows 95 or later. Available as a redistributable for Windows 95.
  Header: Declared in Winnt.h; include Windows.h.

See Also

Image Help Library Overview, ImageHlp Structures, FunctionTableAccessProc, STACKFRAME, SymFunctionTableAccess