Difference between revisions of "Techwiki:Win32k/PFE"

From ReactOS Wiki
Jump to: navigation, search
Line 4: Line 4:
 
  {
 
  {
 
     PFF *            pPFF;          // 000
 
     PFF *            pPFF;          // 000
     ULONG_PTR        iFont;          // 004
+
     ULONG            iFont;          // 004
 
     FLONG            flPFE;          // 008
 
     FLONG            flPFE;          // 008
 
     FG_GLYPHSET *    pfdg;          // 00c
 
     FG_GLYPHSET *    pfdg;          // 00c
Line 11: Line 11:
 
     ULONG_PTR        idifi;          // 018
 
     ULONG_PTR        idifi;          // 018
 
     FD_KERNINGPAIR  *pkp;            // 01c
 
     FD_KERNINGPAIR  *pkp;            // 01c
     ULONG_PTR        idkp;          // 020 "*pid" QFT_KERNPAIRS, passed to DrvQueryFontTree
+
     ULONG_PTR        idkp;          // 020
 
     ULONG            ckp;            // 024
 
     ULONG            ckp;            // 024
 
     ULONG            iOrientation;  // 028
 
     ULONG            iOrientation;  // 028
Line 34: Line 34:
 
  }  
 
  }  
  
 +
''pPFF''
 +
:Pointer to the corresponding PFF (physical font file)
 +
 +
''iFont''
 +
:One based index of the face in the font. Matches FONTOBJ::iFace
  
 
''flPFE''
 
''flPFE''
Line 46: Line 51:
 
  #define PFE_DBCS_FONT    0x0080
 
  #define PFE_DBCS_FONT    0x0080
 
  #define PFE_VERT_FACE    0x0100
 
  #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.

Revision as of 11:06, 2 March 2012

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.