Techwiki:Win32k/PFE
From ReactOS
Pool tag is 'Gpfe'
typedef struct
{
PFF * pPFF; // 000
ULONG iFont; // 004
FLONG flPFE; // 008
FG_GLYPHSET * pfdg; // 00c
ULONG_PTR ulpId; // 010 ?
IFIMETRICS * pifi; // 014
ULONG_PTR idifi; // 018
FD_KERNINGPAIR *pkp; // 01c
ULONG_PTR idkp; // 020
ULONG ckp; // 024
ULONG iOrientation; // 028
ULONG cjEfdwPFE; // 02c
GISET * pgiset; // 030
ULONG ulTimeStamp; // 034
UNIVERSAL_FONT_ID ufi; // 038
DWORD pid; // 040 ? PFEOBJ::SameProccess
DWORD tid; // 044 Added to XP ? PFEOBJ::SameThread
LIST_ENTRY ql; // 044 048
void * pFlEntry; // 04c 050
ULONG cAlt; // 050 054
ULONG cPfdgRef; // 054 058
ULONG aiFamilyName[]; // 058 05c
} PFE, *PPFE;
The handle manager structure looks like this on windows:
typedef struct
{
BASEOBJ baseobj; // 000
PPFE ppfe; // 010
}
pPFF
- Pointer to the corresponding PFF (physical font file)
iFont
- One based index of the face in the font. Matches FONTOBJ::iFace
flPFE
- Can be a combination of the following values:
#define PFE_DEVICEFONT 0x0001 #define PFE_DEADSTATE 0x0002 #define PFE_REMOTEFONT 0x0004 #define PFE_EUDC 0x0008 #define PFE_SBCS_SYSTEM 0x0010 #define PFE_UFIMATCH 0x0020 #define PFE_MEMORYFONT 0x0040 #define PFE_DBCS_FONT 0x0080 #define PFE_VERT_FACE 0x0100
pfdg
- Pointer to an FD_GLYPHSET structure that describes the character to hglyph mapping. This value is queried by a call to DrvQueryFontTree with iMode == QFT_GLYPHSET.
ulpId
- Value returned in *pid by DrvQueryFontTree with iMode == QFT_GLYPHSET. This value is passed to DrvFree when freeing the FD_GLYPHSET structure.
pifi
- Pointer to an IFIMETRICS structure that describes the character to hglyph mapping. This value is queried by a call to DrvQueryFont.
idifi
- Value returned in *pid by DrvQueryFont. This value is passed to DrvFree when freeing the IFIMETRICS structure.
pkp
- Pointer to an FD_KERNINGPAIR structure that describes the kerning pairs of the font. This value is queried by a call to DrvQueryFontTree with iMode == QFT_KERNPAIRS.
idkp
- Value returned in *pid by DrvQueryFontTree with iMode == QFT_KERNPAIRS. This value is passed to DrvFree when freeing the FD_KERNINGPAIR structure.
ckp
- Number of kerning pairs in pkp
ulTimeStamp
- A counter that uniquely identifies this PFE.

