Techwiki:Win32k/PFE
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.