mirror of
https://github.com/reactos/reactos.git
synced 2025-01-05 22:12:46 +00:00
Add dxapi.sys, most api are stub.
Implemnt GsDriverEntry, DxApiGetVersion, DxApi. All DxApi that are callbacks are stub. svn path=/branches/reactx/; revision=30117
This commit is contained in:
parent
8dce1974ed
commit
44e6f014a9
7 changed files with 428 additions and 1 deletions
|
@ -1,6 +1,9 @@
|
|||
<?xml version="1.0"?>
|
||||
<!DOCTYPE group SYSTEM "../tools/rbuild/project.dtd">
|
||||
<group xmlns:xi="http://www.w3.org/2001/XInclude">
|
||||
<directory name="dxapi">
|
||||
<xi:include href="dxapi/dxapi.rbuild" />
|
||||
</directory>
|
||||
<directory name="dxg">
|
||||
<xi:include href="dxg/dxg.rbuild" />
|
||||
</directory>
|
||||
|
|
15
reactos/drivers/directx/dxapi/dxapi.def
Normal file
15
reactos/drivers/directx/dxapi/dxapi.def
Normal file
|
@ -0,0 +1,15 @@
|
|||
; $Id: videoprt.def 27062 2007-06-07 21:13:06Z greatlrd $
|
||||
;
|
||||
; dxapi.def - export definition file for ReactOS
|
||||
;
|
||||
EXPORTS
|
||||
DxApi@20
|
||||
DxApiGetVersion@0
|
||||
;DxApiInitialize@32
|
||||
;DxAutoflipUpdate@20
|
||||
;DxEnableIRQ@8
|
||||
;DxLoseObject@8
|
||||
;DxUpdateCapture@12
|
||||
GsDriverEntry@8
|
||||
|
||||
|
14
reactos/drivers/directx/dxapi/dxapi.rbuild
Normal file
14
reactos/drivers/directx/dxapi/dxapi.rbuild
Normal file
|
@ -0,0 +1,14 @@
|
|||
<?xml version="1.0"?>
|
||||
<!DOCTYPE module SYSTEM "../../../../tools/rbuild/project.dtd">
|
||||
<module name="dxapi" type="kernelmodedriver"
|
||||
installbase="system32/drivers" installname="dxapi.sys">
|
||||
<importlibrary definition="dxapi.def" />
|
||||
<include base="dxapi">.</include>
|
||||
<define name="__USE_W32API" />
|
||||
<define name="_DXAPI_" />
|
||||
<library>ntoskrnl</library>
|
||||
<library>hal</library>
|
||||
<library>videoport</library>
|
||||
<file>main.c</file>
|
||||
<file>dxapi.rc</file>
|
||||
</module>
|
7
reactos/drivers/directx/dxapi/dxapi.rc
Normal file
7
reactos/drivers/directx/dxapi/dxapi.rc
Normal file
|
@ -0,0 +1,7 @@
|
|||
|
||||
|
||||
#define REACTOS_VERSION_DLL
|
||||
#define REACTOS_STR_FILE_DESCRIPTION "DirectX API Driver\0"
|
||||
#define REACTOS_STR_INTERNAL_NAME "dxgapi\0"
|
||||
#define REACTOS_STR_ORIGINAL_FILENAME "dxgapi\0"
|
||||
#include <reactos/version.rc>
|
156
reactos/drivers/directx/dxapi/dxapi_driver.h
Normal file
156
reactos/drivers/directx/dxapi/dxapi_driver.h
Normal file
|
@ -0,0 +1,156 @@
|
|||
|
||||
|
||||
|
||||
/* DDK/NDK/SDK Headers */
|
||||
/* DDK/NDK/SDK Headers */
|
||||
#include <ddk/ntddk.h>
|
||||
#include <ddk/ntddmou.h>
|
||||
#include <ddk/ntifs.h>
|
||||
#include <ddk/tvout.h>
|
||||
#include <ndk/ntndk.h>
|
||||
|
||||
|
||||
|
||||
#include <stdarg.h>
|
||||
#include <windef.h>
|
||||
#include <winerror.h>
|
||||
#include <wingdi.h>
|
||||
#include <winddi.h>
|
||||
#include <winuser.h>
|
||||
#include <prntfont.h>
|
||||
#include <dde.h>
|
||||
#include <wincon.h>
|
||||
|
||||
#include <ddk/ddkmapi.h>
|
||||
|
||||
/* Prototypes */
|
||||
VOID DxGetVersionNumber(PVOID lpvInBuffer, PVOID lpvOutBuffer);
|
||||
VOID DxCloseHandle(PVOID lpvInBuffer, PVOID lpvOutBuffer);
|
||||
VOID DxOpenDirectDraw(PVOID lpvInBuffer, PVOID lpvOutBuffer);
|
||||
VOID DxOpenSurface(PVOID lpvInBuffer, PVOID lpvOutBuffer);
|
||||
VOID DxOpenVideoPort(PVOID lpvInBuffer, PVOID lpvOutBuffer);
|
||||
VOID DxGetKernelCaps(PVOID lpvInBuffer, PVOID lpvOutBuffer);
|
||||
VOID DxGetFieldNumber(PVOID lpvInBuffer, PVOID lpvOutBuffer);
|
||||
VOID DxSetFieldNumber(PVOID lpvInBuffer, PVOID lpvOutBuffer);
|
||||
VOID DxSetSkipPattern(PVOID lpvInBuffer, PVOID lpvOutBuffer);
|
||||
VOID DxGetSurfaceState(PVOID lpvInBuffer, PVOID lpvOutBuffer);
|
||||
VOID DxSetSurfaceState(PVOID lpvInBuffer, PVOID lpvOutBuffer);
|
||||
VOID DxLock(PVOID lpvInBuffer, PVOID lpvOutBuffer);
|
||||
VOID DxFlipOverlay(PVOID lpvInBuffer, PVOID lpvOutBuffer);
|
||||
VOID DxFlipVideoPort(PVOID lpvInBuffer, PVOID lpvOutBuffer);
|
||||
VOID DxGetCurrentAutoflip(PVOID lpvInBuffer, PVOID lpvOutBuffer);
|
||||
VOID DxGetPreviousAutoflip(PVOID lpvInBuffer, PVOID lpvOutBuffer);
|
||||
VOID DxRegisterEvent(PVOID lpvInBuffer, PVOID lpvOutBuffer);
|
||||
VOID DxUnregisterEvent(PVOID lpvInBuffer, PVOID lpvOutBuffer);
|
||||
VOID DxGetPolarity(PVOID lpvInBuffer, PVOID lpvOutBuffer);
|
||||
VOID DxOpenVpCatureDevice(PVOID lpvInBuffer, PVOID lpvOutBuffer);
|
||||
VOID DxAddVpCaptureBuffer(PVOID lpvInBuffer, PVOID lpvOutBuffer);
|
||||
VOID DxFlushVpCaptureBuffs(PVOID lpvInBuffer, PVOID lpvOutBuffer);
|
||||
|
||||
/* Internal driver table being use as looking up table for correct size of structs */
|
||||
DWORD tblCheckInBuffer [] =
|
||||
{
|
||||
/* DD_DXAPI_GETVERSIONNUMBER */
|
||||
0,
|
||||
/* DD_DXAPI_CLOSEHANDLE */
|
||||
sizeof(DDCLOSEHANDLE),
|
||||
0, // DD_DXAPI_OPENDIRECTDRAW
|
||||
0, // DD_DXAPI_OPENSURFACE
|
||||
0, // DD_DXAPI_OPENVIDEOPORT
|
||||
0, // DD_DXAPI_GETKERNELCAPS
|
||||
0, // DD_DXAPI_GET_VP_FIELD_NUMBER
|
||||
0, // DD_DXAPI_SET_VP_FIELD_NUMBER
|
||||
0, // DD_DXAPI_SET_VP_SKIP_FIELD
|
||||
0, // DD_DXAPI_GET_SURFACE_STATE
|
||||
0, // DD_DXAPI_SET_SURFACE_STATE
|
||||
0, // DD_DXAPI_LOCK
|
||||
/* DD_DXAPI_FLIP_OVERLAY */
|
||||
sizeof(DDFLIPOVERLAY),
|
||||
/* DD_DXAPI_FLIP_VP */
|
||||
sizeof(DDFLIPVIDEOPORT),
|
||||
/* DD_DXAPI_GET_CURRENT_VP_AUTOFLIP_SURFACE */
|
||||
sizeof(DDGETAUTOFLIPIN),
|
||||
/* DD_DXAPI_GET_LAST_VP_AUTOFLIP_SURFACE */
|
||||
sizeof(DDGETAUTOFLIPIN),
|
||||
/* DD_DXAPI_REGISTER_CALLBACK */
|
||||
sizeof(DDREGISTERCALLBACK),
|
||||
/* DD_DXAPI_UNREGISTER_CALLBACK */
|
||||
sizeof(DDREGISTERCALLBACK),
|
||||
/* DD_DXAPI_GET_POLARITY */
|
||||
sizeof(DDGETPOLARITYIN),
|
||||
/* DD_DXAPI_OPENVPCAPTUREDEVICE */
|
||||
sizeof(DDOPENVPCAPTUREDEVICEIN),
|
||||
/* DD_DXAPI_ADDVPCAPTUREBUFFER */
|
||||
sizeof(DDADDVPCAPTUREBUFF),
|
||||
/* DD_DXAPI_FLUSHVPCAPTUREBUFFERS */
|
||||
sizeof(HANDLE)
|
||||
};
|
||||
|
||||
DWORD tblCheckOutBuffer [] =
|
||||
{
|
||||
/* DD_DXAPI_GETVERSIONNUMBER */
|
||||
sizeof(DDGETVERSIONNUMBER),
|
||||
/* DD_DXAPI_CLOSEHANDLE */
|
||||
sizeof(DWORD),
|
||||
0, // DD_DXAPI_OPENDIRECTDRAW
|
||||
0, // DD_DXAPI_OPENSURFACE
|
||||
0, // DD_DXAPI_OPENVIDEOPORT
|
||||
0, // DD_DXAPI_GETKERNELCAPS
|
||||
0, // DD_DXAPI_GET_VP_FIELD_NUMBER
|
||||
0, // DD_DXAPI_SET_VP_FIELD_NUMBER
|
||||
0, // DD_DXAPI_SET_VP_SKIP_FIELD
|
||||
0, // DD_DXAPI_GET_SURFACE_STATE
|
||||
0, // DD_DXAPI_SET_SURFACE_STATE
|
||||
0, // DD_DXAPI_LOCK
|
||||
/* DD_DXAPI_FLIP_OVERLAY */
|
||||
sizeof(DWORD),
|
||||
/* DD_DXAPI_FLIP_VP */
|
||||
sizeof(DWORD),
|
||||
/* DD_DXAPI_GET_CURRENT_VP_AUTOFLIP_SURFACE */
|
||||
sizeof(DDGETAUTOFLIPOUT),
|
||||
/* DD_DXAPI_GET_LAST_VP_AUTOFLIP_SURFACE */
|
||||
sizeof(DDGETAUTOFLIPOUT),
|
||||
/* DD_DXAPI_REGISTER_CALLBACK */
|
||||
sizeof(DWORD),
|
||||
/* DD_DXAPI_UNREGISTER_CALLBACK */
|
||||
sizeof(DWORD),
|
||||
/* DD_DXAPI_GET_POLARITY */
|
||||
sizeof(DDGETPOLARITYOUT),
|
||||
/* DD_DXAPI_OPENVPCAPTUREDEVICE */
|
||||
sizeof(DDOPENVPCAPTUREDEVICEOUT),
|
||||
/* DD_DXAPI_ADDVPCAPTUREBUFFER */
|
||||
sizeof(DWORD),
|
||||
/* DD_DXAPI_FLUSHVPCAPTUREBUFFERS */
|
||||
sizeof(DWORD)
|
||||
};
|
||||
|
||||
|
||||
/* Internal driver function */
|
||||
DRVFN gDxApiEntryPoint [] =
|
||||
{
|
||||
{DD_DXAPI_GETVERSIONNUMBER - DD_FIRST_DXAPI, (PFN) DxGetVersionNumber},
|
||||
{DD_DXAPI_CLOSEHANDLE - DD_FIRST_DXAPI, (PFN) DxCloseHandle},
|
||||
{DD_DXAPI_OPENDIRECTDRAW - DD_FIRST_DXAPI, (PFN) DxOpenDirectDraw},
|
||||
{DD_DXAPI_OPENSURFACE - DD_FIRST_DXAPI, (PFN) DxOpenSurface},
|
||||
{DD_DXAPI_OPENVIDEOPORT - DD_FIRST_DXAPI, (PFN) DxOpenVideoPort},
|
||||
{DD_DXAPI_GETKERNELCAPS - DD_FIRST_DXAPI, (PFN) DxGetKernelCaps},
|
||||
{DD_DXAPI_GET_VP_FIELD_NUMBER - DD_FIRST_DXAPI, (PFN) DxGetFieldNumber},
|
||||
{DD_DXAPI_SET_VP_FIELD_NUMBER - DD_FIRST_DXAPI, (PFN) DxSetFieldNumber},
|
||||
{DD_DXAPI_SET_VP_SKIP_FIELD - DD_FIRST_DXAPI, (PFN) DxSetSkipPattern},
|
||||
{DD_DXAPI_GET_SURFACE_STATE - DD_FIRST_DXAPI, (PFN) DxGetSurfaceState},
|
||||
{DD_DXAPI_SET_SURFACE_STATE - DD_FIRST_DXAPI, (PFN) DxSetSurfaceState},
|
||||
{DD_DXAPI_LOCK - DD_FIRST_DXAPI, (PFN) DxLock},
|
||||
{DD_DXAPI_FLIP_OVERLAY - DD_FIRST_DXAPI, (PFN) DxFlipOverlay},
|
||||
{DD_DXAPI_FLIP_VP - DD_FIRST_DXAPI, (PFN) DxFlipVideoPort},
|
||||
{DD_DXAPI_GET_CURRENT_VP_AUTOFLIP_SURFACE - DD_FIRST_DXAPI, (PFN) DxGetCurrentAutoflip},
|
||||
{DD_DXAPI_GET_LAST_VP_AUTOFLIP_SURFACE - DD_FIRST_DXAPI, (PFN) DxGetPreviousAutoflip},
|
||||
{DD_DXAPI_REGISTER_CALLBACK - DD_FIRST_DXAPI, (PFN) DxRegisterEvent},
|
||||
{DD_DXAPI_UNREGISTER_CALLBACK - DD_FIRST_DXAPI, (PFN) DxUnregisterEvent},
|
||||
{DD_DXAPI_GET_POLARITY - DD_FIRST_DXAPI, (PFN) DxGetPolarity},
|
||||
{DD_DXAPI_OPENVPCAPTUREDEVICE - DD_FIRST_DXAPI, (PFN) DxOpenVpCatureDevice},
|
||||
{DD_DXAPI_ADDVPCAPTUREBUFFER - DD_FIRST_DXAPI, (PFN) DxAddVpCaptureBuffer},
|
||||
{DD_DXAPI_FLUSHVPCAPTUREBUFFERS - DD_FIRST_DXAPI, (PFN) DxFlushVpCaptureBuffs}
|
||||
};
|
||||
|
||||
|
||||
|
232
reactos/drivers/directx/dxapi/main.c
Normal file
232
reactos/drivers/directx/dxapi/main.c
Normal file
|
@ -0,0 +1,232 @@
|
|||
|
||||
/*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS kernel
|
||||
* PURPOSE: Native driver for dxg implementation
|
||||
* FILE: drivers/directx/dxg/main.c
|
||||
* PROGRAMER: Magnus olsen (magnus@greatlord.com)
|
||||
* REVISION HISTORY:
|
||||
* 15/10-2007 Magnus Olsen
|
||||
*/
|
||||
|
||||
|
||||
|
||||
/* DDK/NDK/SDK Headers */
|
||||
/* DDK/NDK/SDK Headers */
|
||||
#include <ddk/ntddk.h>
|
||||
#include <ddk/ntddmou.h>
|
||||
#include <ddk/ntifs.h>
|
||||
#include <ddk/tvout.h>
|
||||
#include <ndk/ntndk.h>
|
||||
|
||||
|
||||
|
||||
#include <stdarg.h>
|
||||
#include <windef.h>
|
||||
#include <winerror.h>
|
||||
#include <wingdi.h>
|
||||
#include <winddi.h>
|
||||
#include <winuser.h>
|
||||
#include <prntfont.h>
|
||||
#include <dde.h>
|
||||
#include <wincon.h>
|
||||
|
||||
#include <ddk/ddkmapi.h>
|
||||
#include "dxapi_driver.h"
|
||||
|
||||
|
||||
|
||||
|
||||
NTSTATUS
|
||||
DriverEntry(IN PVOID Context1,
|
||||
IN PVOID Context2)
|
||||
{
|
||||
/*
|
||||
* NOTE this driver will never be load, it only contain export list
|
||||
* to win32k eng functions
|
||||
*/
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
NTSTATUS
|
||||
GsDriverEntry(IN PVOID Context1,
|
||||
IN PVOID Context2)
|
||||
{
|
||||
return DriverEntry(Context1, Context2);
|
||||
}
|
||||
|
||||
|
||||
|
||||
ULONG
|
||||
DxApiGetVersion()
|
||||
{
|
||||
/* MSDN say this always return Direct Sound version 4.02 */
|
||||
return 0x402;
|
||||
}
|
||||
|
||||
|
||||
/* protype from dxapi.h and ddkmapi.h from ddk, MSDN does not provide protype for this api, only which
|
||||
* functions it support, if u search in msdn you found full documations for each function
|
||||
* for each functions.
|
||||
*/
|
||||
|
||||
DWORD
|
||||
DxApi(ULONG dwFunctionNum,
|
||||
PVOID lpvInBuffer,
|
||||
ULONG cbInBuffer,
|
||||
PVOID lpvOutBuffer,
|
||||
ULONG cbOutBuffer)
|
||||
{
|
||||
|
||||
dwFunctionNum -= DD_FIRST_DXAPI;
|
||||
|
||||
if ((lpvOutBuffer == NULL) ||
|
||||
(dwFunctionNum < (DD_FIRST_DXAPI - DD_FIRST_DXAPI)) ||
|
||||
(dwFunctionNum > (DD_DXAPI_FLUSHVPCAPTUREBUFFERS - DD_FIRST_DXAPI)) ||
|
||||
(gDxApiEntryPoint[dwFunctionNum].pfn == NULL) ||
|
||||
(cbInBuffer != tblCheckInBuffer[dwFunctionNum]) ||
|
||||
(cbOutBuffer != tblCheckOutBuffer[dwFunctionNum]))
|
||||
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
gDxApiEntryPoint[dwFunctionNum].pfn(lpvInBuffer, lpvOutBuffer);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
VOID
|
||||
DxGetVersionNumber(PVOID lpvInBuffer, PVOID lpvOutBuffer)
|
||||
{
|
||||
/* FIXME Unimplement */
|
||||
}
|
||||
|
||||
VOID
|
||||
DxCloseHandle(PVOID lpvInBuffer, PVOID lpvOutBuffer)
|
||||
{
|
||||
/* FIXME Unimplement */
|
||||
}
|
||||
|
||||
VOID
|
||||
DxOpenDirectDraw(PVOID lpvInBuffer, PVOID lpvOutBuffer)
|
||||
{
|
||||
/* FIXME Unimplement */
|
||||
}
|
||||
|
||||
VOID
|
||||
DxOpenSurface(PVOID lpvInBuffer, PVOID lpvOutBuffer)
|
||||
{
|
||||
/* FIXME Unimplement */
|
||||
}
|
||||
|
||||
VOID
|
||||
DxOpenVideoPort(PVOID lpvInBuffer, PVOID lpvOutBuffer)
|
||||
{
|
||||
/* FIXME Unimplement */
|
||||
}
|
||||
|
||||
VOID
|
||||
DxGetKernelCaps(PVOID lpvInBuffer, PVOID lpvOutBuffer)
|
||||
{
|
||||
/* FIXME Unimplement */
|
||||
}
|
||||
|
||||
VOID
|
||||
DxGetFieldNumber(PVOID lpvInBuffer, PVOID lpvOutBuffer)
|
||||
{
|
||||
/* FIXME Unimplement */
|
||||
}
|
||||
|
||||
VOID
|
||||
DxSetFieldNumber(PVOID lpvInBuffer, PVOID lpvOutBuffer)
|
||||
{
|
||||
/* FIXME Unimplement */
|
||||
}
|
||||
|
||||
VOID
|
||||
DxSetSkipPattern(PVOID lpvInBuffer, PVOID lpvOutBuffer)
|
||||
{
|
||||
/* FIXME Unimplement */
|
||||
}
|
||||
|
||||
VOID
|
||||
DxGetSurfaceState(PVOID lpvInBuffer, PVOID lpvOutBuffer)
|
||||
{
|
||||
/* FIXME Unimplement */
|
||||
}
|
||||
|
||||
VOID
|
||||
DxSetSurfaceState(PVOID lpvInBuffer, PVOID lpvOutBuffer)
|
||||
{
|
||||
/* FIXME Unimplement */
|
||||
}
|
||||
|
||||
VOID
|
||||
DxLock(PVOID lpvInBuffer, PVOID lpvOutBuffer)
|
||||
{
|
||||
/* FIXME Unimplement */
|
||||
}
|
||||
|
||||
VOID
|
||||
DxFlipOverlay(PVOID lpvInBuffer, PVOID lpvOutBuffer)
|
||||
{
|
||||
/* FIXME Unimplement */
|
||||
}
|
||||
|
||||
VOID
|
||||
DxFlipVideoPort(PVOID lpvInBuffer, PVOID lpvOutBuffer)
|
||||
{
|
||||
/* FIXME Unimplement */
|
||||
}
|
||||
|
||||
VOID
|
||||
DxGetCurrentAutoflip(PVOID lpvInBuffer, PVOID lpvOutBuffer)
|
||||
{
|
||||
/* FIXME Unimplement */
|
||||
}
|
||||
|
||||
VOID
|
||||
DxGetPreviousAutoflip(PVOID lpvInBuffer, PVOID lpvOutBuffer)
|
||||
{
|
||||
/* FIXME Unimplement */
|
||||
}
|
||||
|
||||
VOID
|
||||
DxRegisterEvent(PVOID lpvInBuffer, PVOID lpvOutBuffer)
|
||||
{
|
||||
/* FIXME Unimplement */
|
||||
}
|
||||
|
||||
VOID
|
||||
DxUnregisterEvent(PVOID lpvInBuffer, PVOID lpvOutBuffer)
|
||||
{
|
||||
/* FIXME Unimplement */
|
||||
}
|
||||
|
||||
VOID
|
||||
DxGetPolarity(PVOID lpvInBuffer, PVOID lpvOutBuffer)
|
||||
{
|
||||
/* FIXME Unimplement */
|
||||
}
|
||||
|
||||
VOID
|
||||
DxOpenVpCatureDevice(PVOID lpvInBuffer, PVOID lpvOutBuffer)
|
||||
{
|
||||
/* FIXME Unimplement */
|
||||
}
|
||||
|
||||
VOID
|
||||
DxAddVpCaptureBuffer(PVOID lpvInBuffer, PVOID lpvOutBuffer)
|
||||
{
|
||||
/* FIXME Unimplement */
|
||||
}
|
||||
|
||||
VOID
|
||||
DxFlushVpCaptureBuffs(PVOID lpvInBuffer, PVOID lpvOutBuffer)
|
||||
{
|
||||
/* FIXME Unimplement */
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -20,7 +20,7 @@ DriverEntry(IN PVOID Context1,
|
|||
* NOTE this driver will never be load, it only contain export list
|
||||
* to win32k eng functions
|
||||
*/
|
||||
return 0;
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue