Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygendirectxint.h
Go to the documentation of this file.
00001 00002 #ifndef _DXINTERNEL_ 00003 #define _DXINTERNEL_ 00004 00005 #ifdef __W32K_H 00006 #define PDD_BASEOBJECT POBJ 00007 #define DD_BASEOBJECT BASEOBJECT 00008 #endif 00009 00010 /* _EDD_DIRECTDRAW_LOCAL is 0x54 bytes long on Windows XP */ 00011 typedef struct _EDD_DIRECTDRAW_LOCAL 00012 { 00013 // 00014 // GDI Object Header 00015 // 00016 /* 0x00 */ DD_BASEOBJECT pobj; // verified to match Windows XP 00017 /* 0x10 */ struct _EDD_DIRECTDRAW_GLOBAL * peDirectDrawGlobal; // verified to match Windows XP 00018 /* 0x14 */ struct _EDD_SURFACE * peSurface_DdList; 00019 /* 0x18 */ ULONG unk_018; 00020 /* 0x1C */ ULONG unk_01c; 00021 /* 0x20 */ ULONG unk_020; 00022 /* 0x24 */ struct _EDD_DIRECTDRAW_GLOBAL * peDirectDrawGlobal2; // verified to match Windows XP 00023 /* 0x28 */ FLATPTR fpProcess; 00024 /* 0x2C */ FLONG fl; 00025 /* 0x30 */ struct _EDD_DIRECTDRAW_LOCAL *peDirectDrawLocal_prev; // verified to match Windows XP, 00026 // points to the old DDLocal when new handle is created. 00027 /* 0x34 */ PEPROCESS Process; 00028 /* 0x38 */ ULONG unk_038; 00029 /* 0x3C */ HANDLE UniqueProcess; 00030 /* 0x40 */ VOID *unk_040; 00031 /* 0x44 */ VOID *unk_044; 00032 /* 0x48 */ ULONG unk_048; 00033 /* 0x4C */ ULONG unk_04C; 00034 /* 0x50 */ ULONG unk_050; 00035 } EDD_DIRECTDRAW_LOCAL, *PEDD_DIRECTDRAW_LOCAL; 00036 00037 00038 // 00039 // Surface Object 00040 // 00041 typedef struct _EDD_SURFACE 00042 { 00043 // 00044 // GDI Object Header 00045 // 00046 DD_BASEOBJECT pobj; 00047 00048 // 00049 // Direct Draw Surface Data 00050 // 00051 DD_SURFACE_LOCAL ddsSurfaceLocal; 00052 DD_SURFACE_MORE ddsSurfaceMore; 00053 DD_SURFACE_GLOBAL ddsSurfaceGlobal; 00054 DD_SURFACE_INT ddsSurfaceInt; 00055 00056 // 00057 // Surface pointers 00058 // 00059 struct _EDD_SURFACE *peSurface_DdNext; 00060 struct _EDD_SURFACE *peSurface_LockNext; 00061 00062 // 00063 // Unknown 00064 // 00065 ULONG field_C0; 00066 00067 // 00068 // Private Direct Draw Data 00069 // 00070 struct _EDD_DIRECTDRAW_GLOBAL* peDirectDrawGlobal; 00071 struct _EDD_DIRECTDRAW_LOCAL* peDirectDrawLocal; 00072 00073 // 00074 // Flags 00075 // 00076 FLONG fl; 00077 00078 // 00079 // Surface Attributes 00080 // 00081 ULONG cLocks; 00082 ULONG iVisRgnUniqueness; 00083 BOOL bLost; 00084 HANDLE hSecure; 00085 HANDLE hdc; 00086 HBITMAP hbmGdi; 00087 00088 // 00089 // Unknown 00090 // 00091 ULONG field_E8; 00092 00093 // 00094 // Surface Lock 00095 // 00096 RECTL rclLock; 00097 ULONG field_FC[2]; 00098 } EDD_SURFACE, *PEDD_SURFACE; 00099 00100 00101 /* NOTE : 00102 * if any of these flags are set in dwCallbackFlags (struct EDD_DIRECTDRAW_GLOBAL), 00103 * it means that the respective callback member for it has been filled in by a graphic driver 00104 */ 00105 #define EDDDGBL_MISCCALLBACKS 0x01 // ddMiscellanousCallbacks 00106 #define EDDDGBL_VIDEOPORTCALLBACKS 0x02 // ddVideoPortCallback 00107 #define EDDDGBL_MISC2CALLBACKS 0x80 // ddMiscellanous2Callbacks 00108 00109 typedef struct _EDD_DIRECTDRAW_GLOBAL 00110 { 00111 /* 0x000 */ PVOID dhpdev; // 0x000 <-- verified to match Windows XP, dhpdev, the drv hPDev --> 00112 /* 0x004 */ DWORD dwReserved1; 00113 /* 0x008 */ DWORD dwReserved2; 00114 /* 0x00C */ ULONG unk_000c[3]; 00115 /* 0x018 */ LONG cDriverReferences; 00116 /* 0x01C */ ULONG unk_01c; 00117 /* 0x020 */ DWORD dwCallbackFlags; /* 0x020 <-- verified to match Windows XP, dwCallbackFlags 00118 Flags value 00119 0x0002 = ddVideoPortCallback and GUID_VideoPortCaps 00120 0x0004 = GUID_ColorControlCallbacks 00121 0x0040 = GUID_MotionCompCallbacks 00122 0x0080 = GUID_Miscellaneous2Callbacks 00123 0x0100 = GUID_DDMoreCaps 00124 0x0200 = GUID_D3DCallbacks3 00125 0x0400 = GUID_NTCallbacks 00126 */ 00127 00128 /* 0x024 */ ULONG unk_024; 00129 00130 /* 0x028 */ LARGE_INTEGER llAssertModeTimeout; /* 0x028 <-- verified to match Windows XP, llAssertModeTimeout, it 00131 using regkey 00132 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers\DCI 00133 Specifies how long a DirectDraw application can keep a graphics-device frame-buffer locked 00134 in second, if this value are set to 0 it disable directdraw acclatrions. 00135 it is normal set to 7 (7 sec in windwos xp/2003) 00136 */ 00137 00138 /* 0x030 */ DWORD dwNumHeaps; // 0x030 <-- verified to match Windows XP, dwNumHeaps 00139 /* 0x034 */ VIDEOMEMORY *pvmList; // 0x034 <-- verified to match Windows XP, pvmList 00140 /* 0x038 */ DWORD dwNumFourCC; // 0x038 <-- verified to match Windows XP, dwNumFourCC 00141 /* 0x03C */ PDWORD pdwFourCC; // 0x03C <-- verified to match Windows XP, pdwFourCC 00142 /* 0x040 */ DD_HALINFO ddHalInfo; // 0x040 <-- verified to match Windows XP, ddHalInfo 00143 /* 0x1E0 */ ULONG unk_1e0[46]; 00144 /* 0x298 */ DD_CALLBACKS ddCallbacks; // 0x298 <-- verified to match Windows XP, ddCallbacks 00145 /* 0x2C4 */ DD_SURFACECALLBACKS ddSurfaceCallbacks; // 0x2C4 <-- verified to match Windows XP, ddSurfaceCallbacks 00146 /* 0x304 */ DD_PALETTECALLBACKS ddPaletteCallbacks; // 0x304 <-- verified to match Windows XP, ddPaletteCallbacks 00147 /* 0x314 */ ULONG unk_314[46]; 00148 /* 0x3D4 */ D3DNTHAL_CALLBACKS d3dNtHalCallbacks; 00149 /* 0x460 */ ULONG unk_460[9]; 00150 /* 0x47C */ D3DNTHAL_CALLBACKS2 d3dNtHalCallbacks2; 00151 /* 0x498 */ DD_VIDEOPORTCALLBACKS ddVideoPortCallback; // 0x498 <-- verified to match Windows XP, ddVideoPortCallback 00152 /* 0x4E0 */ DD_MISCELLANEOUSCALLBACKS ddMiscellanousCallbacks; // 0x4E0 <-- verified to match Windows XP, ddMiscellanousCallbacks 00153 /* 0x4EC */ DD_MISCELLANEOUS2CALLBACKS ddMiscellanous2Callbacks; // 0x4EC <-- verified to match Windows XP, ddMiscellanous2Callbacks 00154 /* 0x504 */ ULONG unk_504[10]; 00155 /* 0x534 */ D3DNTHAL_CALLBACKS3 d3dNtHalCallbacks3; 00156 /* 0x5A4 */ ULONG unk_544; 00157 /* 0x5A8 */ ULONG unk_548; 00158 /* 0x54C */ ULONG unk_54c[23]; 00159 /* 0x5A8 */ EDD_DIRECTDRAW_LOCAL* peDirectDrawLocalList; // 0x5A8 <-- verified to match Windows XP, it is a current local struct, not a list, peDirectDrawLocalList Current 00160 /* 0x5ac */ EDD_SURFACE* peSurface_LockList; 00161 /* 0x5B0 */ FLONG fl; 00162 /* 0x5B4 */ ULONG cSurfaceLocks; 00163 /* 0x5B8 */ PKEVENT pAssertModeEvent; 00164 /* 0x5Bc */ EDD_SURFACE *peSurfaceCurrent; 00165 /* 0x5C0 */ EDD_SURFACE *peSurfacePrimary; 00166 /* 0x5C4 */ BOOL bSuspended; // 0x5C4 <-- verified to match Windows XP, tells dxg to use driver's own api or return error code instead 00167 /* 0x5C8 */ ULONG unk_5c8[12]; 00168 /* 0x5F8 */ RECTL rcbounds; 00169 /* 0x608 */ ULONG unk_608; 00170 /* 0x60c */ HDEV hDev; // 0x60c <-- verified to match Windows XP, The real Pdev, hDev 00171 00172 /* Windows XP and higher */ 00173 /* 0x610 */ ULONG unk_610[63]; 00174 /* 0x70C */ ULONG unk_70C; 00175 } EDD_DIRECTDRAW_GLOBAL, *PEDD_DIRECTDRAW_GLOBAL; 00176 00177 #endif Generated on Sat May 26 2012 04:31:54 for ReactOS by
1.7.6.1
|