Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenpdevobj.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
1.7.6.1
|