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

directxint.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 doxygen 1.7.6.1

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