Techwiki:Win32k/PFE

From ReactOS Wiki
Revision as of 11:06, 2 March 2012 by ThePhysicist (talk | contribs)
Jump to: navigation, search

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.

pkp

Value returned in *pid by DrvQueryFontTree with iMode == QFT_KERNPAIRS. This value is passed to DrvFree when freeing the FD_KERNINGPAIR structure.

idkp

"*pid" QFT_KERNPAIRS, passed to DrvQueryFontTree

ckp

Number of kerning pairs in pkp

ulTimeStamp

A counter that uniquely identifies this PFE.