ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

pdevobj.h
Go to the documentation of this file.
00001 #ifndef __WIN32K_PDEVOBJ_H
00002 #define __WIN32K_PDEVOBJ_H
00003 
00004 /* PDEVOBJ flags */
00005 #define PDEV_DISPLAY             0x00000001 /* Display device */
00006 #define PDEV_HARDWARE_POINTER    0x00000002 /* Supports hardware cursor */
00007 #define PDEV_SOFTWARE_POINTER    0x00000004
00008 #define PDEV_GOTFONTS            0x00000040 /* Has font driver */
00009 #define PDEV_PRINTER             0x00000080
00010 #define PDEV_ALLOCATEDBRUSHES    0x00000100
00011 #define PDEV_HTPAL_IS_DEVPAL     0x00000200
00012 #define PDEV_DISABLED            0x00000400
00013 #define PDEV_SYNCHRONIZE_ENABLED 0x00000800
00014 #define PDEV_FONTDRIVER          0x00002000 /* Font device */
00015 #define PDEV_GAMMARAMP_TABLE     0x00004000
00016 #define PDEV_UMPD                0x00008000
00017 #define PDEV_SHARED_DEVLOCK      0x00010000
00018 #define PDEV_META_DEVICE         0x00020000
00019 #define PDEV_DRIVER_PUNTED_CALL  0x00040000 /* Driver calls back to GDI engine */
00020 #define PDEV_CLONE_DEVICE        0x00080000
00021 
00022 /* Type definitions ***********************************************************/
00023 
00024 typedef struct _GDIPOINTER /* should stay private to ENG? No, part of PDEVOBJ aka HDEV aka PDEV. */
00025 {
00026   /* Private GDI pointer handling information, required for software emulation */
00027   BOOL     Enabled;
00028   SIZEL    Size;
00029   POINTL   HotSpot;
00030   XLATEOBJ *XlateObject;
00031   SURFACE  *psurfColor;
00032   SURFACE  *psurfMask;
00033   SURFACE  *psurfSave;
00034 
00035   /* Public pointer information */
00036   RECTL    Exclude; /* Required publicly for SPS_ACCEPT_EXCLUDE */
00037 } GDIPOINTER, *PGDIPOINTER;
00038 
00039 typedef struct _DEVMODEINFO
00040 {
00041     struct _DEVMODEINFO *pdmiNext;
00042     struct _LDEVOBJ *pldev;
00043     ULONG cbdevmode;
00044     DEVMODEW adevmode[1];
00045 } DEVMODEINFO, *PDEVMODEINFO;
00046 
00047 typedef struct _DEVMODEENTRY
00048 {
00049     DWORD dwFlags;
00050     PDEVMODEW pdm;
00051 
00052 } DEVMODEENTRY, *PDEVMODEENTRY;
00053 
00054 typedef struct _GRAPHICS_DEVICE
00055 {
00056     WCHAR            szNtDeviceName[CCHDEVICENAME/2];
00057     WCHAR            szWinDeviceName[CCHDEVICENAME/2];
00058     struct _GRAPHICS_DEVICE * pNextGraphicsDevice;
00059     struct _GRAPHICS_DEVICE * pVgaDevice;
00060     PDEVICE_OBJECT   DeviceObject;
00061     PVOID            pDeviceHandle;
00062     DWORD            hkClassDriverConfig;
00063     DWORD            StateFlags;                     /* See DISPLAY_DEVICE_* */
00064     ULONG            cbdevmodeInfo;
00065     PDEVMODEINFO     pdevmodeInfo;
00066     ULONG            cDevModes;
00067     PDEVMODEENTRY    pDevModeList;
00068     LPWSTR           pDiplayDrivers;
00069     LPWSTR           pwszDescription;
00070     DWORD            dwUnknown;
00071     PVOID            pUnknown;
00072     PFILE_OBJECT     FileObject;
00073     DWORD            ProtocolType;
00074     ULONG            iDefaultMode;
00075     ULONG            iCurrentMode;
00076 } GRAPHICS_DEVICE, *PGRAPHICS_DEVICE;
00077 
00078 typedef struct _PDEVOBJ
00079 {
00080     BASEOBJECT                BaseObject;
00081 
00082     struct _PDEVOBJ *         ppdevNext;
00083     LONG                      cPdevRefs;
00084     LONG                      cPdevOpenRefs;
00085     struct _PDEVOBJ *         ppdevParent;
00086     FLONG                     flFlags;  // flags
00087 //  FLONG                     flAccelerated;
00088     HSEMAPHORE                hsemDevLock;    /* Device lock. */
00089 //  HSEMAPHORE                hsemPointer;
00090     POINTL                    ptlPointer;
00091 //  SIZEL                     szlPointer;
00092 //  SPRITESTATE               SpriteState;
00093 //  HFONT                     hlfntDefault;
00094 //  HFONT                     hlfntAnsiVariable;
00095 //  HFONT                     hlfntAnsiFixed;
00096     HSURF                     ahsurf[HS_DDI_MAX];
00097 //  PUNICODE_STRING           pusPrtDataFileName;
00098 //  PVOID                     pDevHTInfo;
00099 //  RFONT *                   prfntActive;
00100 //  RFONT *                   prfntInactive;
00101 //  ULONG                     cInactive;
00102 //  BYTE                      ajbo[0x5C];
00103 //  ULONG                     cDirectDrawDisableLocks;
00104 //  PVOID                     TypeOneInfo;
00105     PVOID                     pvGammaRamp;    /* Gamma ramp pointer. */
00106 //  PVOID                     RemoteTypeOne;
00107     ULONG                     ulHorzRes;
00108     ULONG                     ulVertRes;
00109 //  PFN_DrvSetPointerShape    pfnDrvSetPointerShape;
00110 //  PFN_DrvMovePointer        pfnDrvMovePointer;
00111     PFN_DrvMovePointer        pfnMovePointer;
00112 //  PFN_DrvSynchronize        pfnDrvSynchronize;
00113 //  PFN_DrvSynchronizeSurface pfnDrvSynchronizeSurface;
00114 //  PFN_DrvSetPalette         pfnDrvSetPalette;
00115 //  PFN_DrvNotify             pfnDrvNotify;
00116 //  ULONG                     TagSig;
00117     struct _LDEVOBJ *         pldev;
00118     DHPDEV                    dhpdev;         /* DHPDEV for device. */
00119     struct _PALETTE*          ppalSurf;       /* PEPALOBJ/PPALETTE for this device. */
00120     DEVINFO                   devinfo;
00121     GDIINFO                   gdiinfo;
00122     PSURFACE                  pSurface;       /* SURFACE for this device. */
00123 //  HANDLE                    hSpooler;       /* Handle to spooler, if spooler dev driver. */
00124 //  PVOID                     pDesktopId;
00125     PGRAPHICS_DEVICE          pGraphicsDevice;
00126     POINTL                    ptlOrigion;
00127     PDEVMODEW                 pdmwDev;        /* Ptr->DEVMODEW.dmSize + dmDriverExtra == alloc size. */
00128 //  DWORD                     Unknown3;
00129     FLONG                     DxDd_Flags;     /* DxDD active status flags. */
00130 //  LONG                      devAttr;
00131 //  PVOID                     WatchDogContext;
00132 //  ULONG                     WatchDogs;
00133     union
00134     {
00135       DRIVER_FUNCTIONS        DriverFunctions;
00136       DRIVER_FUNCTIONS        pfn;
00137       PVOID                   apfn[INDEX_LAST];         // B8C 0x0598
00138     };
00139 
00140     /* ros specific */
00141     ULONG         DxDd_nCount;
00142     GDIPOINTER    Pointer;
00143     /* Stuff to keep track of software cursors; win32k gdi part */
00144     UINT SafetyRemoveLevel; /* at what level was the cursor removed?
00145                               0 for not removed */
00146     UINT SafetyRemoveCount;
00147     struct _EDD_DIRECTDRAW_GLOBAL * pEDDgpl;
00148 } PDEVOBJ, *PPDEVOBJ;
00149 
00150 /* Globals ********************************************************************/
00151 
00152 extern PPDEVOBJ gppdevPrimary;
00153 #define pPrimarySurface gppdevPrimary
00154 
00155 
00156 /* Function prototypes ********************************************************/
00157 
00158 PPDEVOBJ
00159 NTAPI
00160 EngpGetPDEV(PUNICODE_STRING pustrDevice);
00161 
00162 VOID
00163 NTAPI
00164 PDEVOBJ_vRelease(PPDEVOBJ ppdev);
00165 
00166 PSURFACE
00167 NTAPI
00168 PDEVOBJ_pSurface(
00169     PPDEVOBJ ppdev);
00170 
00171 VOID
00172 NTAPI
00173 PDEVOBJ_vGetDeviceCaps(
00174     PPDEVOBJ ppdev,
00175     PDEVCAPS pDevCaps);
00176 
00177 INIT_FUNCTION
00178 NTSTATUS
00179 NTAPI
00180 InitPDEVImpl(VOID);
00181 
00182 PSIZEL
00183 FASTCALL
00184 PDEVOBJ_sizl(PPDEVOBJ, PSIZEL);
00185 
00186 #endif /* !__WIN32K_PDEVOBJ_H */

Generated on Fri May 25 2012 04:36:30 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.