ReactOS  0.4.13-dev-242-g611e6d7
directxint.h
Go to the documentation of this file.
1 
2 #ifndef _DXINTERNEL_
3 #define _DXINTERNEL_
4 
5 #ifdef __W32K_H
6 #define PDD_BASEOBJECT POBJ
7 #define DD_BASEOBJECT BASEOBJECT
8 #endif
9 
10 /* _EDD_DIRECTDRAW_LOCAL is 0x54 bytes long on Windows XP */
11 typedef struct _EDD_DIRECTDRAW_LOCAL
12 {
13  //
14  // GDI Object Header
15  //
16 /* 0x00 */ DD_BASEOBJECT pobj; // verified to match Windows XP
17 /* 0x10 */ struct _EDD_DIRECTDRAW_GLOBAL * peDirectDrawGlobal; // verified to match Windows XP
18 /* 0x14 */ ULONG hRefCount;
19 /* 0x18 */ struct _EDD_SURFACE * peSurface_DdList;
20 /* 0x1C */ ULONG hSurface;
21 /* 0x20 */ ULONG unk_020;
22 /* 0x24 */ struct _EDD_DIRECTDRAW_GLOBAL * peDirectDrawGlobal2; // verified to match Windows XP
23 /* 0x28 */ FLATPTR fpProcess;
24 /* 0x2C */ FLONG fl;
25 /* 0x30 */ struct _EDD_DIRECTDRAW_LOCAL *peDirectDrawLocal_prev; // verified to match Windows XP,
26  // points to the old DDLocal when new handle is created.
27 /* 0x34 */ FLATPTR fpProcess2; // surface memory address returned by graphic driver
28 /* 0x38 */ ULONG isMemoryMapped; // surface memory mapped?
30 /* 0x40 */ PEPROCESS Process;
31 /* 0x44 */ VOID *heapList;
32 /* 0x48 */ ULONG unk_048;
33 /* 0x4C */ ULONG unk_04C;
34 /* 0x50 */ ULONG unk_050;
36 
37 
38 //
39 // Surface Object
40 //
41 typedef struct _EDD_SURFACE
42 {
43  //
44  // GDI Object Header
45  //
47 
48  //
49  // Direct Draw Surface Data
50  //
55 
56  //
57  // Surface pointers
58  //
61 
62  //
63  // Unknown
64  //
66 
67  //
68  // Private Direct Draw Data
69  //
73 
74  //
75  // Surface Attributes
76  //
84 
85  //
86  // Surface Lock
87  //
94 
101 
102 
103 /* NOTE :
104  * if any of these flags are set in dwCallbackFlags (struct EDD_DIRECTDRAW_GLOBAL),
105  * it means that the respective callback member for it has been filled in by a graphic driver
106  */
107 #define EDDDGBL_MISCCALLBACKS 0x001 // ddMiscellanousCallbacks
108 #define EDDDGBL_VIDEOPORTCALLBACKS 0x002 // ddVideoPortCallback
109 #define EDDDGBL_COLORCONTROLCALLBACKS 0x004 // ddColorControlCallbacks
110 #define EDDDGBL_MOTIONCOMPCALLBACKS 0x040 // ddMotionCompCallbacks
111 #define EDDDGBL_MISC2CALLBACKS 0x080 // ddMiscellanous2Callbacks
112 #define EDDDGBL_DDMORECAPS 0x100 // ddMorecaps
113 #define EDDDGBL_D3DCALLBACKS3 0x200 // d3dNtHalCallbacks3
114 #define EDDDGBL_NTCALLBACKS 0x400 // ddNtCallbacks
115 #define EDDDGBL_PRIVATEDRIVERCAPS 0x800 // ddNtPrivateDriverCaps
116 
117 
119 {
120 /* 0x000 */ PVOID dhpdev; // 0x000 <-- verified to match Windows XP, dhpdev, the drv hPDev -->
121 /* 0x004 */ DWORD dwReserved1;
122 /* 0x008 */ DWORD dwReserved2;
123 /* 0x00C */ LPDDVIDEOPORTCAPS lpDDVideoPortCaps; // 0x00C <-- verified to match Win2k3
124 /* 0x010 */ ULONG unk_010;
125 /* 0x014 */ ULONG unk_014;
127 /* 0x01C */ ULONG unk_01c;
128 /* 0x020 */ DWORD dwCallbackFlags; /* 0x020 <-- verified to match Windows XP, dwCallbackFlags
129  Flags value
130  0x0002 = ddVideoPortCallback and GUID_VideoPortCaps
131  0x0004 = GUID_ColorControlCallbacks
132  0x0040 = GUID_MotionCompCallbacks
133  0x0080 = GUID_Miscellaneous2Callbacks
134  0x0100 = GUID_DDMoreCaps
135  0x0200 = GUID_D3DCallbacks3
136  0x0400 = GUID_NTCallbacks
137  */
138 
139 /* 0x024 */ ULONG unk_024;
140 
141 /* 0x028 */ LARGE_INTEGER llAssertModeTimeout; /* 0x028 <-- verified to match Windows XP, llAssertModeTimeout, it
142  using regkey
143  HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers\DCI
144  Specifies how long a DirectDraw application can keep a graphics-device frame-buffer locked
145  in second, if this value are set to 0 it disable directdraw acclatrions.
146  it is normal set to 7 (7 sec in windwos xp/2003)
147  */
148 
149 /* 0x030 */ DWORD dwNumHeaps; // 0x030 <-- verified to match Windows XP, dwNumHeaps
150 /* 0x034 */ VIDEOMEMORY *pvmList; // 0x034 <-- verified to match Windows XP, pvmList
151 /* 0x038 */ DWORD dwNumFourCC; // 0x038 <-- verified to match Windows XP, dwNumFourCC
152 /* 0x03C */ PDWORD pdwFourCC; // 0x03C <-- verified to match Windows XP, pdwFourCC
153 /* 0x040 */ DD_HALINFO ddHalInfo; // 0x040 <-- verified to match Windows XP, ddHalInfo
154 /* 0x1E0 */ ULONG unk_1e0[17]; // DxApi interface (size 0x44)
155 /* 0x224 */ ULONG unk_224; //
156 /* 0x228 */ ULONG unk_228[14]; // AGP interface (size 0x38)
157 /* 0x260 */ DDKERNELCAPS ddKernelCaps; // 0x260 <-- verified to match Windows Server 2003
158 /* 0x26C */ DD_MORECAPS ddMoreCaps; // 0x26C <-- verified to match Windows Server 2003
159 /* 0x290 */ DD_NTPRIVATEDRIVERCAPS ddNtPrivateDriverCaps; // 0x290 <-- verified to match Windows Server 2003
160 /* 0x298 */ DD_CALLBACKS ddCallbacks; // 0x298 <-- verified to match Windows XP, ddCallbacks
161 /* 0x2C4 */ DD_SURFACECALLBACKS ddSurfaceCallbacks; // 0x2C4 <-- verified to match Windows XP, ddSurfaceCallbacks
162 /* 0x304 */ DD_PALETTECALLBACKS ddPaletteCallbacks; // 0x304 <-- verified to match Windows XP, ddPaletteCallbacks
167 /* 0x498 */ DD_VIDEOPORTCALLBACKS ddVideoPortCallback; // 0x498 <-- verified to match Windows XP, ddVideoPortCallback
168 /* 0x4E0 */ DD_MISCELLANEOUSCALLBACKS ddMiscellanousCallbacks; // 0x4E0 <-- verified to match Windows XP, ddMiscellanousCallbacks
169 /* 0x4EC */ DD_MISCELLANEOUS2CALLBACKS ddMiscellanous2Callbacks; // 0x4EC <-- verified to match Windows XP, ddMiscellanous2Callbacks
170 /* 0x504 */ DD_NTCALLBACKS ddNtCallbacks; // 0x504 <-- verified to match Windows Server 2003
171 /* 0x518 */ DD_COLORCONTROLCALLBACKS ddColorControlCallbacks; // 0x518 <-- verified to match Windows Server 2003
172 /* 0x524 */ DD_KERNELCALLBACKS ddKernelCallbacks; // 0x524 <-- verified to match Windows Server 2003
173 /* 0x534 */ D3DNTHAL_CALLBACKS3 d3dNtHalCallbacks3; // 0x524 <-- verified to match Windows Server 2003
174 /* 0x54C */ DD_MOTIONCOMPCALLBACKS ddMotionCompCallbacks; // 0x54C <-- verified to match Windows Server 2003
175 /* 0x57C */ DDMORESURFACECAPS ddMoreSurfaceCaps; // 0x57C <-- verified to match Windows Server 2003
176 /* 0x5A8 */ EDD_DIRECTDRAW_LOCAL* peDirectDrawLocalList; // 0x5A8 <-- verified to match Windows XP, it is a current local struct, not a list, peDirectDrawLocalList Current
178 /* 0x5B0 */ FLONG fl;
179 /* 0x5B4 */ ULONG cSurfaceLocks;
183 /* 0x5C4 */ BOOL bSuspended; // 0x5C4 <-- verified to match Windows XP, tells dxg to use driver's own api or return error code instead
184 /* 0x5C8 */ ULONG unk_5c8[12];
185 /* 0x5F8 */ RECTL rcbounds;
186 /* 0x608 */ ULONG unk_608;
187 /* 0x60C */ HDEV hDev; // 0x60c <-- verified to match Windows XP, The real Pdev, hDev
188 
189 /* Windows XP and higher */
190 /* 0x610 */ ULONG unk_610[63];
191 /* 0x70C */ ULONG unk_70C;
193 
194 #endif
struct _EDD_SURFACE * peSurface_LockNext
Definition: directxint.h:60
DD_SURFACE_LOCAL ddsSurfaceLocal
Definition: directxint.h:51
ULONG field_100
Definition: directxint.h:90
RECTL rclLock
Definition: directxint.h:88
DD_MORECAPS ddMoreCaps
Definition: directxint.h:158
DD_MOTIONCOMPCALLBACKS ddMotionCompCallbacks
Definition: directxint.h:174
VIDEOMEMORY * pvmList
Definition: directxint.h:150
struct _EDD_DIRECTDRAW_LOCAL * peDirectDrawLocal_prev
Definition: directxint.h:25
DD_COLORCONTROLCALLBACKS ddColorControlCallbacks
Definition: directxint.h:171
D3DNTHAL_CALLBACKS d3dNtHalCallbacks
Definition: directxint.h:164
ULONG wHeight
Definition: directxint.h:99
EDD_SURFACE * peSurface_LockList
Definition: directxint.h:177
ULONG field_104
Definition: directxint.h:91
DD_PALETTECALLBACKS ddPaletteCallbacks
Definition: directxint.h:162
LPDDVIDEOPORTCAPS lpDDVideoPortCaps
Definition: directxint.h:123
unsigned int BOOL
Definition: ntddk_ex.h:94
long LONG
Definition: pedump.c:60
DD_MISCELLANEOUS2CALLBACKS ddMiscellanous2Callbacks
Definition: directxint.h:169
DD_MISCELLANEOUSCALLBACKS ddMiscellanousCallbacks
Definition: directxint.h:168
ULONG cLocks
Definition: directxint.h:77
ULONG wWidth
Definition: directxint.h:98
HBITMAP hbmGdi
Definition: directxint.h:82
struct _EDD_DIRECTDRAW_LOCAL EDD_DIRECTDRAW_LOCAL
DDMORESURFACECAPS ddMoreSurfaceCaps
Definition: directxint.h:175
unsigned long FLONG
Definition: ntbasedef.h:373
DD_SURFACE_MORE ddsSurfaceMore
Definition: directxint.h:52
DD_VIDEOPORTCALLBACKS ddVideoPortCallback
Definition: directxint.h:167
EDD_SURFACE * peSurfaceCurrent
Definition: directxint.h:181
ULONG ldev
Definition: directxint.h:95
ULONG_PTR FLATPTR
Definition: ddrawint.h:76
EDD_SURFACE * peSurfacePrimary
Definition: directxint.h:182
unsigned long DWORD
Definition: ntddk_ex.h:95
struct _EDD_SURFACE * peSurface_DdList
Definition: directxint.h:19
DD_BASEOBJECT pobj
Definition: directxint.h:16
EDD_DIRECTDRAW_LOCAL * peDirectDrawLocalList
Definition: directxint.h:176
ULONG field_C0
Definition: directxint.h:65
HANDLE hdc
Definition: directxint.h:81
ULONG field_FC
Definition: directxint.h:89
struct _EDD_DIRECTDRAW_GLOBAL * peDirectDrawGlobal
Definition: directxint.h:70
ULONG gdev
Definition: directxint.h:97
struct _EDD_DIRECTDRAW_GLOBAL EDD_DIRECTDRAW_GLOBAL
struct _EDD_DIRECTDRAW_GLOBAL * PEDD_DIRECTDRAW_GLOBAL
ULONG field_108
Definition: directxint.h:92
ULONG field_10C
Definition: directxint.h:93
struct _EDD_DIRECTDRAW_GLOBAL * peDirectDrawGlobal2
Definition: directxint.h:22
struct _EDD_SURFACE * peSurface_DdNext
Definition: directxint.h:59
DD_NTCALLBACKS ddNtCallbacks
Definition: directxint.h:170
LARGE_INTEGER llAssertModeTimeout
Definition: directxint.h:141
DD_CALLBACKS ddCallbacks
Definition: directxint.h:160
DD_D3DBUFCALLBACKS d3dBufCallbacks
Definition: directxint.h:165
struct _EDD_DIRECTDRAW_GLOBAL * peDirectDrawGlobalNext
Definition: directxint.h:71
ULONG iVisRgnUniqueness
Definition: directxint.h:78
struct _EDD_DIRECTDRAW_GLOBAL * peDirectDrawGlobal
Definition: directxint.h:17
DWORD * PDWORD
Definition: pedump.c:68
struct _EDD_DIRECTDRAW_LOCAL * PEDD_DIRECTDRAW_LOCAL
DD_SURFACE_INT ddsSurfaceInt
Definition: directxint.h:54
DD_SURFACECALLBACKS ddSurfaceCallbacks
Definition: directxint.h:161
struct _EDD_DIRECTDRAW_GLOBAL * peDirectDrawGlobal3
Definition: directxint.h:96
DD_BASEOBJECT pobj
Definition: directxint.h:46
unsigned int ULONG
Definition: retypes.h:1
HANDLE hGdiSurface
Definition: directxint.h:83
static HBITMAP
Definition: button.c:44
struct _EDD_SURFACE EDD_SURFACE
D3DNTHAL_GLOBALDRIVERDATA d3dNtGlobalDriverData
Definition: directxint.h:163
D3DNTHAL_CALLBACKS3 d3dNtHalCallbacks3
Definition: directxint.h:173
DD_NTPRIVATEDRIVERCAPS ddNtPrivateDriverCaps
Definition: directxint.h:159
DD_KERNELCALLBACKS ddKernelCallbacks
Definition: directxint.h:172
struct _EDD_DIRECTDRAW_LOCAL * peDirectDrawLocal
Definition: directxint.h:72
DD_SURFACE_GLOBAL ddsSurfaceGlobal
Definition: directxint.h:53
struct _EDD_SURFACE * PEDD_SURFACE
D3DNTHAL_CALLBACKS2 d3dNtHalCallbacks2
Definition: directxint.h:166
DDKERNELCAPS ddKernelCaps
Definition: directxint.h:157
HANDLE hSecure
Definition: directxint.h:80