Something went wrong. Try again.
Reactos
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326
/* * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS kernel * PURPOSE: Native driver for dxg implementation * FILE: win32ss/reactx/dxapi/main.c * PROGRAMER: Magnus olsen (magnus@greatlord.com) * REVISION HISTORY: * 15/10-2007 Magnus Olsen */
#include "dxapi_driver.h"
#define NDEBU /* debug prints are enabled, add a G at the end to disable it ;-) */#include <debug.h>
NTSTATUS NTAPIDriverEntry(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;}
/*++* @name DxApiGetVersion* @implemented** The function DxApiGetVersion return the dsound version, and it always return 4.02** @return* Always return 4.02** @remarks.* none**--*/ULONGNTAPIDxApiGetVersion(VOID){ /* MSDN say this always return Direct Sound version 4.02 */ return 0x402;}
/*++* @name DxApi* @implemented** The function DxApi calls to diffent functions, follow functions* are supported* DxGetVersionNumber, DxCloseHandle, DxOpenDirectDraw, DxOpenSurface,* DxOpenVideoPort, DxGetKernelCaps, DxGetFieldNumber, DxSetFieldNumber,* DxSetSkipPattern, DxGetSurfaceState, DxSetSurfaceState, DxLock,* DxFlipOverlay, DxFlipVideoPort, DxGetCurrentAutoflip, DxGetPreviousAutoflip,* DxRegisterEvent, DxUnregisterEvent, DxGetPolarity, DxOpenVpCatureDevice,* DxAddVpCaptureBuffer, DxFlushVpCaptureBuffs** See ddkmapi.h as well
** @param ULONG dwFunctionNum* The function id we want call on in the dxapi.sys see ddkmapi.h for the id** @param PVOID lpvInBuffer* Our input buffer to the functions we call to, This param can be NULL** @param ULONG cbInBuffer* Our size in bytes of the input buffer, rember wrong size will result in the function* does not being call.** @param PVOID lpvOutBuffer* Our Output buffer, there the function fill in the info, this param can not* be null. if it null the functions we trying call on will not be call** @param ULONG cbOutBuffer* Our size in bytes of the output buffer, rember wrong size will result in the function* does not being call.** @return* Return Always 0.** @remarks.* before call to any of this functions, do not forget set lpvOutBuffer->ddRVal = DDERR_GEN*,* if that member exists in the outbuffer ;**--*/
DWORDNTAPIDxApi(IN DWORD dwFunctionNum, IN LPVOID lpvInBuffer, IN DWORD cbInBuffer, OUT LPVOID lpvOutBuffer, OUT DWORD 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;}
VOIDNTAPIDxApiInitialize ( PVOID p1, PVOID p2, PVOID p3, PVOID p4, PVOID p5, PVOID p6, PVOID p7, PVOID p8){ UNIMPLEMENTED;}
VOIDNTAPIDxAutoflipUpdate ( PVOID p1, PVOID p2, PVOID p3, PVOID p4, PVOID p5){ UNIMPLEMENTED;}
VOIDNTAPIDxEnableIRQ ( PVOID p1, PVOID p2){ UNIMPLEMENTED;}
VOIDNTAPIDxLoseObject ( PVOID p1, PVOID p2){ UNIMPLEMENTED;}
VOIDNTAPIDxUpdateCapture ( PVOID p1, PVOID p2, PVOID p3){ UNIMPLEMENTED;}
/*++* @name DxGetVersionNumber* @implemented** The function DxGetVersionNumber return dxapi interface version, that is 1.0** @return* Always return 1.0** @remarks.* none**--*/VOIDDxGetVersionNumber(PVOID lpvInBuffer, LPDDGETVERSIONNUMBER lpvOutBuffer){ lpvOutBuffer->ddRVal = DD_OK; lpvOutBuffer->dwMajorVersion = 1; lpvOutBuffer->dwMinorVersion = 0;}
VOIDDxCloseHandle(PVOID lpvInBuffer, PVOID lpvOutBuffer){ /* FIXME Unimplement */}
VOIDDxOpenDirectDraw(PVOID lpvInBuffer, PVOID lpvOutBuffer){ /* FIXME Unimplement */}
VOIDDxOpenSurface(PVOID lpvInBuffer, PVOID lpvOutBuffer){ /* FIXME Unimplement */}
VOIDDxOpenVideoPort(PVOID lpvInBuffer, PVOID lpvOutBuffer){ /* FIXME Unimplement */}
VOIDDxGetKernelCaps(PVOID lpvInBuffer, PVOID lpvOutBuffer){ /* FIXME Unimplement */}
VOIDDxGetFieldNumber(PVOID lpvInBuffer, PVOID lpvOutBuffer){ /* FIXME Unimplement */}
VOIDDxSetFieldNumber(PVOID lpvInBuffer, PVOID lpvOutBuffer){ /* FIXME Unimplement */}
VOIDDxSetSkipPattern(PVOID lpvInBuffer, PVOID lpvOutBuffer){ /* FIXME Unimplement */}
VOIDDxGetSurfaceState(PVOID lpvInBuffer, PVOID lpvOutBuffer){ /* FIXME Unimplement */}
VOIDDxSetSurfaceState(PVOID lpvInBuffer, PVOID lpvOutBuffer){ /* FIXME Unimplement */}
VOIDDxLock(PVOID lpvInBuffer, PVOID lpvOutBuffer){ /* FIXME Unimplement */}
VOIDDxFlipOverlay(PVOID lpvInBuffer, PVOID lpvOutBuffer){ /* FIXME Unimplement */}
VOIDDxFlipVideoPort(PVOID lpvInBuffer, PVOID lpvOutBuffer){ /* FIXME Unimplement */}
VOIDDxGetCurrentAutoflip(PVOID lpvInBuffer, PVOID lpvOutBuffer){ /* FIXME Unimplement */}
VOIDDxGetPreviousAutoflip(PVOID lpvInBuffer, PVOID lpvOutBuffer){ /* FIXME Unimplement */}
VOIDDxRegisterEvent(PVOID lpvInBuffer, PVOID lpvOutBuffer){ /* FIXME Unimplement */}
VOIDDxUnregisterEvent(PVOID lpvInBuffer, PVOID lpvOutBuffer){ /* FIXME Unimplement */}
VOIDDxGetPolarity(PVOID lpvInBuffer, PVOID lpvOutBuffer){ /* FIXME Unimplement */}
VOIDDxOpenVpCatureDevice(PVOID lpvInBuffer, PVOID lpvOutBuffer){ /* FIXME Unimplement */}
VOIDDxAddVpCaptureBuffer(PVOID lpvInBuffer, PVOID lpvOutBuffer){ /* FIXME Unimplement */}
VOIDDxFlushVpCaptureBuffs(PVOID lpvInBuffer, PVOID lpvOutBuffer){ /* FIXME Unimplement */}