1 /* DDK/NDK/SDK Headers */
10 #define STARTF_USESIZE 2
11 #define STARTF_USEPOSITION 4
12 #define INTERNAL_CALL NTAPI
13 #define NT_BUILD_ENVIRONMENT
23 /* DXG treats this as opaque */
25 typedef PVOID PW32THREAD
;
27 typedef struct _DD_BASEOBJECT
31 USHORT cExclusiveLock
;
34 } DD_BASEOBJECT
, *PDD_BASEOBJECT
;
36 #include <drivers/directx/directxint.h>
37 #include <drivers/directx/dxg.h>
38 #include <drivers/directx/dxeng.h>
42 #define ObjType_DDSURFACE_TYPE 2
43 #define ObjType_DDVIDEOPORT_TYPE 4
44 #define ObjType_DDMOTIONCOMP_TYPE 5
46 typedef struct _DD_ENTRY
67 } DD_ENTRY
, *PDD_ENTRY
;
69 typedef struct _EDD_SURFACE_LOCAL
72 DD_SURFACE_LOCAL Surfacelcl
;
73 } EDD_SURFACE_LOCAL
, *PEDD_SURFACE_LOCAL
;
75 /* exported functions */
76 NTSTATUS NTAPI
DriverEntry(IN PVOID Context1
, IN PVOID Context2
);
77 NTSTATUS NTAPI
GsDriverEntry(IN PVOID Context1
, IN PVOID Context2
);
78 NTSTATUS APIENTRY
DxDdCleanupDxGraphics(VOID
);
81 extern ULONG gcSizeDdHmgr
;
82 extern PDD_ENTRY gpentDdHmgr
;
83 extern ULONG gcMaxDdHmgr
;
84 extern PDD_ENTRY gpentDdHmgrLast
;
85 extern HANDLE ghFreeDdHmgr
;
86 extern HSEMAPHORE ghsemHmgr
;
87 extern LONG gcDummyPageRefCnt
;
88 extern HSEMAPHORE ghsemDummyPage
;
89 extern VOID
*gpDummyPage
;
90 extern PEPROCESS gpepSession
;
91 extern PLARGE_INTEGER gpLockShortDelay
;
93 /* Driver list export functions */
94 DWORD NTAPI
DxDxgGenericThunk(ULONG_PTR ulIndex
, ULONG_PTR ulHandle
, SIZE_T
*pdwSizeOfPtr1
, PVOID pvPtr1
, SIZE_T
*pdwSizeOfPtr2
, PVOID pvPtr2
);
95 DWORD NTAPI
DxDdIoctl(ULONG ulIoctl
, PVOID pBuffer
, ULONG ulBufferSize
);
96 PDD_SURFACE_LOCAL NTAPI
DxDdLockDirectDrawSurface(HANDLE hDdSurface
);
97 BOOL NTAPI
DxDdUnlockDirectDrawSurface(PDD_SURFACE_LOCAL pSurface
);
99 /* Internal functions */
100 BOOL FASTCALL
VerifyObjectOwner(PDD_ENTRY pEntry
);
101 BOOL FASTCALL
DdHmgCreate(VOID
);
102 BOOL FASTCALL
DdHmgDestroy(VOID
);
103 PVOID FASTCALL
DdHmgLock(HANDLE DdHandle
, UCHAR ObjectType
, BOOLEAN LockOwned
);
106 #define drvDxEngLockDC gpEngFuncs[DXENG_INDEX_DxEngLockDC]
107 #define drvDxEngGetDCState gpEngFuncs[DXENG_INDEX_DxEngGetDCState]
108 #define drvDxEngGetHdevData gpEngFuncs[DXENG_INDEX_DxEngGetHdevData]
109 #define drvDxEngUnlockDC gpEngFuncs[DXENG_INDEX_DxEngUnlockDC]
110 #define drvDxEngUnlockHdev gpEngFuncs[DXENG_INDEX_DxEngUnlockHdev]
111 #define drvDxEngLockHdev gpEngFuncs[DXENG_INDEX_DxEngLockHdev]