Something went wrong. Try again.
Reactos
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141#include <wdm.h>
#include <windef.h>#include <winerror.h>#include <wingdi.h>#include <winddi.h>
#include <ddkmapi.h>
/* Prototypes */VOID DxGetVersionNumber(PVOID lpvInBuffer, LPDDGETVERSIONNUMBER 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 /* DD_DXAPI_GETKERNELCAPS */ sizeof(HANDLE), /* DD_DXAPI_GET_VP_FIELD_NUMBER */ sizeof(DDGETFIELDNUMIN), 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 /* DD_DXAPI_GETKERNELCAPS */ sizeof(DDGETKERNELCAPSOUT), /* DD_DXAPI_GET_VP_FIELD_NUMBER */ sizeof(DDGETFIELDNUMOUT), 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}};