2007-10-14 15:18:29 +00:00
|
|
|
/*
|
|
|
|
* COPYRIGHT: See COPYING in the top level directory
|
|
|
|
* PROJECT: ReactOS kernel
|
|
|
|
* PURPOSE: Native DirectDraw implementation
|
2015-11-10 17:41:55 +00:00
|
|
|
* FILE: win32ss/reactx/ntddraw/dvp.c
|
2007-10-14 15:18:29 +00:00
|
|
|
* PROGRAMER: Magnus olsen (magnus@greatlord.com)
|
|
|
|
* REVISION HISTORY:
|
|
|
|
* 19/1-2006 Magnus Olsen
|
|
|
|
*/
|
|
|
|
|
2010-04-26 13:58:46 +00:00
|
|
|
#include <win32k.h>
|
2023-11-15 20:07:27 +00:00
|
|
|
|
|
|
|
// #define NDEBUG
|
2007-10-14 15:18:29 +00:00
|
|
|
#include <debug.h>
|
|
|
|
|
2007-10-14 16:19:56 +00:00
|
|
|
/************************************************************************/
|
|
|
|
/* NtGdiDvpCanCreateVideoPort */
|
|
|
|
/************************************************************************/
|
|
|
|
DWORD
|
2008-11-29 22:48:58 +00:00
|
|
|
APIENTRY
|
2007-10-15 08:34:11 +00:00
|
|
|
NtGdiDvpCanCreateVideoPort(HANDLE hDirectDraw,
|
2007-10-14 16:19:56 +00:00
|
|
|
PDD_CANCREATEVPORTDATA puCanCreateVPortData)
|
|
|
|
{
|
2008-04-17 22:25:38 +00:00
|
|
|
PGD_DVPCANCREATEVIDEOPORT pfnDvpCanCreateVideoPort = (PGD_DVPCANCREATEVIDEOPORT)gpDxFuncs[DXG_INDEX_DxDvpCanCreateVideoPort].pfn;
|
2023-11-15 20:07:27 +00:00
|
|
|
|
2007-10-15 08:34:11 +00:00
|
|
|
if (pfnDvpCanCreateVideoPort == NULL)
|
|
|
|
{
|
2023-11-15 20:07:27 +00:00
|
|
|
DPRINT1("Warning: no pfnDvpCanCreateVideoPort\n");
|
2007-10-15 08:34:11 +00:00
|
|
|
return DDHAL_DRIVER_NOTHANDLED;
|
|
|
|
}
|
2007-10-14 16:19:56 +00:00
|
|
|
|
2023-11-15 20:07:27 +00:00
|
|
|
DPRINT("Calling dxg.sys pfnDvpCanCreateVideoPort\n");
|
2007-10-15 08:34:11 +00:00
|
|
|
return pfnDvpCanCreateVideoPort(hDirectDraw, puCanCreateVPortData);
|
2007-10-14 16:19:56 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
/************************************************************************/
|
|
|
|
/* NtGdiDvpColorControl */
|
|
|
|
/************************************************************************/
|
|
|
|
DWORD
|
2008-11-29 22:48:58 +00:00
|
|
|
APIENTRY
|
2007-10-14 16:19:56 +00:00
|
|
|
NtGdiDvpColorControl(HANDLE hVideoPort,
|
|
|
|
PDD_VPORTCOLORDATA puVPortColorData)
|
|
|
|
{
|
2008-04-17 22:25:38 +00:00
|
|
|
PGD_DVPCOLORCONTROL pfnDvpColorControl = (PGD_DVPCOLORCONTROL)gpDxFuncs[DXG_INDEX_DxDvpColorControl].pfn;
|
2023-11-15 20:07:27 +00:00
|
|
|
|
2007-10-15 08:34:11 +00:00
|
|
|
if (pfnDvpColorControl == NULL)
|
|
|
|
{
|
2023-11-15 20:07:27 +00:00
|
|
|
DPRINT1("Warning: no pfnDvpColorControl\n");
|
2007-10-15 08:34:11 +00:00
|
|
|
return DDHAL_DRIVER_NOTHANDLED;
|
|
|
|
}
|
2007-10-14 16:19:56 +00:00
|
|
|
|
2023-11-15 20:07:27 +00:00
|
|
|
DPRINT("Calling dxg.sys pfnDvpColorControl\n");
|
2007-10-15 08:34:11 +00:00
|
|
|
return pfnDvpColorControl(hVideoPort, puVPortColorData);
|
2007-10-14 16:19:56 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
/************************************************************************/
|
|
|
|
/* NtGdiDvpCreateVideoPort */
|
|
|
|
/************************************************************************/
|
|
|
|
HANDLE
|
2008-11-29 22:48:58 +00:00
|
|
|
APIENTRY
|
2007-10-14 16:19:56 +00:00
|
|
|
NtGdiDvpCreateVideoPort(HANDLE hDirectDraw,
|
|
|
|
PDD_CREATEVPORTDATA puCreateVPortData)
|
|
|
|
{
|
2008-04-17 22:25:38 +00:00
|
|
|
PGD_DVPCREATEVIDEOPORT pfnDvpCreateVideoPort = (PGD_DVPCREATEVIDEOPORT)gpDxFuncs[DXG_INDEX_DxDvpCreateVideoPort].pfn;
|
2023-11-15 20:07:27 +00:00
|
|
|
|
2007-10-15 08:34:11 +00:00
|
|
|
if (pfnDvpCreateVideoPort == NULL)
|
|
|
|
{
|
2023-11-15 20:07:27 +00:00
|
|
|
DPRINT1("Warning: no pfnDvpCreateVideoPort\n");
|
2007-10-15 08:34:11 +00:00
|
|
|
return DDHAL_DRIVER_NOTHANDLED;
|
|
|
|
}
|
2007-10-14 16:19:56 +00:00
|
|
|
|
2023-11-15 20:07:27 +00:00
|
|
|
DPRINT("Calling dxg.sys pfnDvpCreateVideoPort\n");
|
2007-10-15 08:34:11 +00:00
|
|
|
return pfnDvpCreateVideoPort(hDirectDraw, puCreateVPortData);
|
2007-10-14 16:19:56 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
/************************************************************************/
|
|
|
|
/* NtGdiDvpDestroyVideoPort */
|
|
|
|
/************************************************************************/
|
|
|
|
DWORD
|
2008-11-29 22:48:58 +00:00
|
|
|
APIENTRY
|
2007-10-14 16:19:56 +00:00
|
|
|
NtGdiDvpDestroyVideoPort(HANDLE hVideoPort,
|
|
|
|
PDD_DESTROYVPORTDATA puDestroyVPortData)
|
|
|
|
{
|
2023-11-15 20:07:27 +00:00
|
|
|
PGD_DVPDESTROYVIDEOPORT pfnDvpDestroyVideoPort =
|
|
|
|
(PGD_DVPDESTROYVIDEOPORT)gpDxFuncs[DXG_INDEX_DxDvpDestroyVideoPort].pfn;
|
|
|
|
|
2007-10-15 08:34:11 +00:00
|
|
|
if (pfnDvpDestroyVideoPort == NULL)
|
|
|
|
{
|
2023-11-15 20:07:27 +00:00
|
|
|
DPRINT1("Warning: no pfnDvpDestroyVideoPort\n");
|
2007-10-15 08:34:11 +00:00
|
|
|
return DDHAL_DRIVER_NOTHANDLED;
|
|
|
|
}
|
2007-10-14 16:19:56 +00:00
|
|
|
|
2023-11-15 20:07:27 +00:00
|
|
|
DPRINT("Calling dxg.sys pfnDvpDestroyVideoPort\n");
|
2007-10-15 08:34:11 +00:00
|
|
|
return pfnDvpDestroyVideoPort(hVideoPort, puDestroyVPortData);
|
2007-10-14 16:19:56 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
/************************************************************************/
|
|
|
|
/* NtGdiDvpFlipVideoPort */
|
|
|
|
/************************************************************************/
|
|
|
|
DWORD
|
2008-11-29 22:48:58 +00:00
|
|
|
APIENTRY
|
2007-10-14 16:19:56 +00:00
|
|
|
NtGdiDvpFlipVideoPort(HANDLE hVideoPort,
|
|
|
|
HANDLE hDDSurfaceCurrent,
|
|
|
|
HANDLE hDDSurfaceTarget,
|
|
|
|
PDD_FLIPVPORTDATA puFlipVPortData)
|
|
|
|
{
|
2023-11-15 20:07:27 +00:00
|
|
|
PGD_DVPFLIPVIDEOPORT pfnDvpFlipVideoPort =
|
|
|
|
(PGD_DVPFLIPVIDEOPORT)gpDxFuncs[DXG_INDEX_DxDvpFlipVideoPort].pfn;
|
2007-10-15 07:50:59 +00:00
|
|
|
|
|
|
|
if (pfnDvpFlipVideoPort == NULL)
|
|
|
|
{
|
2023-11-15 20:07:27 +00:00
|
|
|
DPRINT1("Warning: no pfnDvpFlipVideoPort\n");
|
2007-10-15 07:50:59 +00:00
|
|
|
return DDHAL_DRIVER_NOTHANDLED;
|
|
|
|
}
|
2007-10-14 16:19:56 +00:00
|
|
|
|
2023-11-15 20:07:27 +00:00
|
|
|
DPRINT("Calling dxg.sys pfnDvpFlipVideoPort\n");
|
2007-10-15 07:50:59 +00:00
|
|
|
return pfnDvpFlipVideoPort(hVideoPort, hDDSurfaceCurrent, hDDSurfaceTarget, puFlipVPortData);
|
2007-10-14 16:19:56 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
/************************************************************************/
|
|
|
|
/* NtGdiDvpGetVideoPortBandwidth */
|
|
|
|
/************************************************************************/
|
|
|
|
DWORD
|
2008-11-29 22:48:58 +00:00
|
|
|
APIENTRY
|
2007-10-14 16:19:56 +00:00
|
|
|
NtGdiDvpGetVideoPortBandwidth(HANDLE hVideoPort,
|
|
|
|
PDD_GETVPORTBANDWIDTHDATA puGetVPortBandwidthData)
|
|
|
|
{
|
2008-05-04 21:30:15 +00:00
|
|
|
PGD_DVPGETVIDEOPORTBANDWITH pfnDvpGetVideoPortBandwidth = (PGD_DVPGETVIDEOPORTBANDWITH)gpDxFuncs[DXG_INDEX_DxDvpGetVideoPortBandwidth].pfn;
|
2007-10-15 07:50:59 +00:00
|
|
|
|
|
|
|
if (pfnDvpGetVideoPortBandwidth == NULL)
|
|
|
|
{
|
2023-11-15 20:07:27 +00:00
|
|
|
DPRINT1("Warning: no pfnDvpGetVideoPortBandwidth\n");
|
2007-10-15 07:50:59 +00:00
|
|
|
return DDHAL_DRIVER_NOTHANDLED;
|
|
|
|
}
|
2007-10-14 16:19:56 +00:00
|
|
|
|
2023-11-15 20:07:27 +00:00
|
|
|
DPRINT("Calling dxg.sys pfnDvpGetVideoPortBandwidth\n");
|
2007-10-15 20:28:06 +00:00
|
|
|
return pfnDvpGetVideoPortBandwidth(hVideoPort, puGetVPortBandwidthData);
|
2007-10-14 16:19:56 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
/************************************************************************/
|
|
|
|
/* NtGdiDvpGetVideoPortFlipStatus */
|
|
|
|
/************************************************************************/
|
|
|
|
DWORD
|
2008-11-29 22:48:58 +00:00
|
|
|
APIENTRY
|
2007-10-14 16:19:56 +00:00
|
|
|
NtGdiDvpGetVideoPortFlipStatus(HANDLE hDirectDraw,
|
|
|
|
PDD_GETVPORTFLIPSTATUSDATA puGetVPortFlipStatusData)
|
|
|
|
{
|
2008-05-04 21:30:15 +00:00
|
|
|
PGD_DXDVPGETVIDEOPORTFLIPSTATUS pfnDvpGetVideoPortFlipStatus = (PGD_DXDVPGETVIDEOPORTFLIPSTATUS)gpDxFuncs[DXG_INDEX_DxDvpGetVideoPortFlipStatus].pfn;
|
2007-10-14 17:49:55 +00:00
|
|
|
|
|
|
|
if (pfnDvpGetVideoPortFlipStatus == NULL)
|
|
|
|
{
|
2023-11-15 20:07:27 +00:00
|
|
|
DPRINT1("Warning: no pfnDvpGetVideoPortFlipStatus\n");
|
2007-10-14 17:49:55 +00:00
|
|
|
return DDHAL_DRIVER_NOTHANDLED;
|
|
|
|
}
|
2007-10-14 16:19:56 +00:00
|
|
|
|
2023-11-15 20:07:27 +00:00
|
|
|
DPRINT("Calling dxg.sys pfnDvpGetVideoPortFlipStatus\n");
|
2007-10-14 17:49:55 +00:00
|
|
|
return pfnDvpGetVideoPortFlipStatus(hDirectDraw, puGetVPortFlipStatusData);
|
2007-10-14 16:19:56 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
/************************************************************************/
|
|
|
|
/* NtGdiDvpGetVideoPortInputFormats */
|
|
|
|
/************************************************************************/
|
|
|
|
DWORD
|
2008-11-29 22:48:58 +00:00
|
|
|
APIENTRY
|
2007-10-14 16:19:56 +00:00
|
|
|
NtGdiDvpGetVideoPortInputFormats(HANDLE hVideoPort,
|
|
|
|
PDD_GETVPORTINPUTFORMATDATA puGetVPortInputFormatData)
|
|
|
|
{
|
2008-05-04 21:30:15 +00:00
|
|
|
PGD_DXDVPGETVIDEOPORTINPUTFORMATS pfnDvpGetVideoPortInputFormats = (PGD_DXDVPGETVIDEOPORTINPUTFORMATS)gpDxFuncs[DXG_INDEX_DxDvpGetVideoPortInputFormats].pfn;
|
2007-10-14 17:49:55 +00:00
|
|
|
|
|
|
|
if (pfnDvpGetVideoPortInputFormats == NULL)
|
|
|
|
{
|
2023-11-15 20:07:27 +00:00
|
|
|
DPRINT1("Warning: no pfnDvpGetVideoPortInputFormats\n");
|
2007-10-14 17:49:55 +00:00
|
|
|
return DDHAL_DRIVER_NOTHANDLED;
|
|
|
|
}
|
|
|
|
|
2023-11-15 20:07:27 +00:00
|
|
|
DPRINT("Calling dxg.sys pfnDvpGetVideoPortInputFormats\n");
|
2007-10-14 17:49:55 +00:00
|
|
|
return pfnDvpGetVideoPortInputFormats(hVideoPort, puGetVPortInputFormatData);
|
2007-10-14 16:19:56 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
/************************************************************************/
|
|
|
|
/* NtGdiDvpGetVideoPortLine */
|
|
|
|
/************************************************************************/
|
|
|
|
DWORD
|
2008-11-29 22:48:58 +00:00
|
|
|
APIENTRY
|
2007-10-14 16:19:56 +00:00
|
|
|
NtGdiDvpGetVideoPortLine(HANDLE hVideoPort,
|
|
|
|
PDD_GETVPORTLINEDATA puGetVPortLineData)
|
|
|
|
{
|
2008-05-05 19:42:23 +00:00
|
|
|
PGD_DXDVPGETVIDEOPORTLINE pfnDvpGetVideoPortLine = (PGD_DXDVPGETVIDEOPORTLINE)gpDxFuncs[DXG_INDEX_DxDvpGetVideoPortLine].pfn;
|
2007-10-14 17:49:55 +00:00
|
|
|
|
|
|
|
if (pfnDvpGetVideoPortLine == NULL)
|
|
|
|
{
|
2023-11-15 20:07:27 +00:00
|
|
|
DPRINT1("Warning: no pfnDvpGetVideoPortLine\n");
|
2007-10-14 17:49:55 +00:00
|
|
|
return DDHAL_DRIVER_NOTHANDLED;
|
|
|
|
}
|
2007-10-14 16:19:56 +00:00
|
|
|
|
2023-11-15 20:07:27 +00:00
|
|
|
DPRINT("Calling dxg.sys pfnDvpGetVideoPortLine\n");
|
2007-10-15 20:28:06 +00:00
|
|
|
return pfnDvpGetVideoPortLine(hVideoPort, puGetVPortLineData);
|
2007-10-14 16:19:56 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
/************************************************************************/
|
|
|
|
/* NtGdiDvpGetVideoPortOutputFormats */
|
|
|
|
/************************************************************************/
|
|
|
|
DWORD
|
2008-11-29 22:48:58 +00:00
|
|
|
APIENTRY
|
2007-10-14 16:19:56 +00:00
|
|
|
NtGdiDvpGetVideoPortOutputFormats(HANDLE hVideoPort,
|
|
|
|
PDD_GETVPORTOUTPUTFORMATDATA puGetVPortOutputFormatData)
|
|
|
|
{
|
2008-05-05 19:42:23 +00:00
|
|
|
PGD_DXDVPGETVIDEOPORTOUTPUTFORMATS pfnDvpGetVideoPortOutputFormats = (PGD_DXDVPGETVIDEOPORTOUTPUTFORMATS)gpDxFuncs[DXG_INDEX_DxDvpGetVideoPortOutputFormats].pfn;
|
2007-10-14 17:49:55 +00:00
|
|
|
|
2007-10-15 20:28:06 +00:00
|
|
|
if (pfnDvpGetVideoPortOutputFormats == NULL)
|
2007-10-14 17:49:55 +00:00
|
|
|
{
|
2023-11-15 20:07:27 +00:00
|
|
|
DPRINT1("Warning: no pfnDvpGetVideoPortOutputFormats\n");
|
2007-10-14 17:49:55 +00:00
|
|
|
return DDHAL_DRIVER_NOTHANDLED;
|
|
|
|
}
|
2007-10-14 16:19:56 +00:00
|
|
|
|
2023-11-15 20:07:27 +00:00
|
|
|
DPRINT("Calling dxg.sys pfnDvpGetVideoPortOutputFormats\n");
|
2007-10-14 17:49:55 +00:00
|
|
|
return pfnDvpGetVideoPortOutputFormats(hVideoPort, puGetVPortOutputFormatData);
|
2007-10-14 16:19:56 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
/************************************************************************/
|
|
|
|
/* NtGdiDvpGetVideoPortConnectInfo */
|
|
|
|
/************************************************************************/
|
|
|
|
DWORD
|
2008-11-29 22:48:58 +00:00
|
|
|
APIENTRY
|
2007-10-14 16:19:56 +00:00
|
|
|
NtGdiDvpGetVideoPortConnectInfo(HANDLE hDirectDraw,
|
|
|
|
PDD_GETVPORTCONNECTDATA puGetVPortConnectData)
|
|
|
|
{
|
2008-05-05 19:42:23 +00:00
|
|
|
PGD_DXDVPGETVIDEOPORTCONNECTINFO pfnDvpGetVideoPortConnectInfo = (PGD_DXDVPGETVIDEOPORTCONNECTINFO)gpDxFuncs[DXG_INDEX_DxDvpGetVideoPortConnectInfo].pfn;
|
2007-10-14 17:49:55 +00:00
|
|
|
|
|
|
|
if (pfnDvpGetVideoPortConnectInfo == NULL)
|
|
|
|
{
|
2023-11-15 20:07:27 +00:00
|
|
|
DPRINT1("Warning: no pfnDvpGetVideoPortConnectInfo\n");
|
2007-10-14 17:49:55 +00:00
|
|
|
return DDHAL_DRIVER_NOTHANDLED;
|
|
|
|
}
|
2007-10-14 16:19:56 +00:00
|
|
|
|
2023-11-15 20:07:27 +00:00
|
|
|
DPRINT("Calling dxg.sys pfnDvpGetVideoPortConnectInfo\n");
|
2007-10-15 20:28:06 +00:00
|
|
|
return pfnDvpGetVideoPortConnectInfo(hDirectDraw, puGetVPortConnectData);
|
2007-10-14 16:19:56 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
/************************************************************************/
|
|
|
|
/* NtGdiDvpGetVideoSignalStatus */
|
|
|
|
/************************************************************************/
|
|
|
|
DWORD
|
2008-11-29 22:48:58 +00:00
|
|
|
APIENTRY
|
2007-10-14 16:19:56 +00:00
|
|
|
NtGdiDvpGetVideoSignalStatus(HANDLE hVideoPort,
|
|
|
|
PDD_GETVPORTSIGNALDATA puGetVPortSignalData)
|
|
|
|
{
|
2008-05-05 19:42:23 +00:00
|
|
|
PGD_DXDVPGETVIDEOSIGNALSTATUS pfnDvpGetVideoSignalStatus = (PGD_DXDVPGETVIDEOSIGNALSTATUS)gpDxFuncs[DXG_INDEX_DxDvpGetVideoSignalStatus].pfn;
|
2007-10-14 16:19:56 +00:00
|
|
|
|
|
|
|
if (pfnDvpGetVideoSignalStatus == NULL)
|
|
|
|
{
|
2023-11-15 20:07:27 +00:00
|
|
|
DPRINT1("Warning: no pfnDvpGetVideoSignalStatus\n");
|
2007-10-14 16:19:56 +00:00
|
|
|
return DDHAL_DRIVER_NOTHANDLED;
|
|
|
|
}
|
|
|
|
|
2023-11-15 20:07:27 +00:00
|
|
|
DPRINT("Calling dxg.sys pfnDvpGetVideoSignalStatus\n");
|
2007-10-14 16:19:56 +00:00
|
|
|
return pfnDvpGetVideoSignalStatus(hVideoPort, puGetVPortSignalData);
|
|
|
|
}
|
|
|
|
|
|
|
|
/************************************************************************/
|
|
|
|
/* NtGdiDvpUpdateVideoPort */
|
|
|
|
/************************************************************************/
|
|
|
|
DWORD
|
2008-11-29 22:48:58 +00:00
|
|
|
APIENTRY
|
2007-10-14 16:19:56 +00:00
|
|
|
NtGdiDvpUpdateVideoPort(HANDLE hVideoPort,
|
|
|
|
HANDLE* phSurfaceVideo,
|
|
|
|
HANDLE* phSurfaceVbi,
|
|
|
|
PDD_UPDATEVPORTDATA puUpdateVPortData)
|
|
|
|
{
|
2008-05-05 19:42:23 +00:00
|
|
|
PGD_DXDVPUPDATEVIDEOPORT pfnDvpUpdateVideoPort = (PGD_DXDVPUPDATEVIDEOPORT)gpDxFuncs[DXG_INDEX_DxDvpUpdateVideoPort].pfn;
|
2007-10-14 16:19:56 +00:00
|
|
|
|
|
|
|
if (pfnDvpUpdateVideoPort == NULL)
|
|
|
|
{
|
2023-11-15 20:07:27 +00:00
|
|
|
DPRINT1("Warning: no pfnDvpUpdateVideoPort\n");
|
2007-10-14 16:19:56 +00:00
|
|
|
return DDHAL_DRIVER_NOTHANDLED;
|
|
|
|
}
|
|
|
|
|
2023-11-15 20:07:27 +00:00
|
|
|
DPRINT("Calling dxg.sys pfnDvpUpdateVideoPort\n");
|
2007-10-14 16:19:56 +00:00
|
|
|
return pfnDvpUpdateVideoPort(hVideoPort, phSurfaceVideo, phSurfaceVbi, puUpdateVPortData);
|
|
|
|
}
|
|
|
|
|
|
|
|
/************************************************************************/
|
|
|
|
/* NtGdiDvpWaitForVideoPortSync */
|
|
|
|
/************************************************************************/
|
|
|
|
DWORD
|
2008-11-29 22:48:58 +00:00
|
|
|
APIENTRY
|
2007-10-14 16:19:56 +00:00
|
|
|
NtGdiDvpWaitForVideoPortSync(HANDLE hVideoPort,
|
|
|
|
PDD_WAITFORVPORTSYNCDATA puWaitForVPortSyncData)
|
|
|
|
{
|
2008-05-05 19:42:23 +00:00
|
|
|
PGD_DXDVPWAITFORVIDEOPORTSYNC pfnDvpWaitForVideoPortSync = (PGD_DXDVPWAITFORVIDEOPORTSYNC)gpDxFuncs[DXG_INDEX_DxDvpWaitForVideoPortSync].pfn;
|
2007-10-14 16:19:56 +00:00
|
|
|
|
|
|
|
if (pfnDvpWaitForVideoPortSync == NULL)
|
|
|
|
{
|
2023-11-15 20:07:27 +00:00
|
|
|
DPRINT1("Warning: no pfnDvpWaitForVideoPortSync\n");
|
2007-10-14 16:19:56 +00:00
|
|
|
return DDHAL_DRIVER_NOTHANDLED;
|
|
|
|
}
|
|
|
|
|
2023-11-15 20:07:27 +00:00
|
|
|
DPRINT("Calling dxg.sys pfnDvpWaitForVideoPortSync\n");
|
2007-10-14 16:19:56 +00:00
|
|
|
return pfnDvpWaitForVideoPortSync(hVideoPort, puWaitForVPortSyncData);
|
|
|
|
}
|
|
|
|
|
|
|
|
/************************************************************************/
|
|
|
|
/* NtGdiDvpAcquireNotification */
|
|
|
|
/************************************************************************/
|
|
|
|
DWORD
|
2008-11-29 22:48:58 +00:00
|
|
|
APIENTRY
|
2007-10-14 16:19:56 +00:00
|
|
|
NtGdiDvpAcquireNotification(HANDLE hVideoPort,
|
|
|
|
HANDLE* hEvent,
|
|
|
|
LPDDVIDEOPORTNOTIFY pNotify)
|
|
|
|
{
|
2008-05-05 19:42:23 +00:00
|
|
|
PGD_DXDVPACQUIRENOTIFICATION pfnDvpAcquireNotification = (PGD_DXDVPACQUIRENOTIFICATION)gpDxFuncs[DXG_INDEX_DxDvpAcquireNotification].pfn;
|
2007-10-14 16:19:56 +00:00
|
|
|
|
|
|
|
if (pfnDvpAcquireNotification == NULL)
|
|
|
|
{
|
2023-11-15 20:07:27 +00:00
|
|
|
DPRINT1("Warning: no pfnDvpAcquireNotification\n");
|
2007-10-14 16:19:56 +00:00
|
|
|
return DDHAL_DRIVER_NOTHANDLED;
|
|
|
|
}
|
|
|
|
|
2023-11-15 20:07:27 +00:00
|
|
|
DPRINT("Calling dxg.sys pfnDvpAcquireNotification\n");
|
2007-10-14 16:19:56 +00:00
|
|
|
return pfnDvpAcquireNotification(hVideoPort, hEvent, pNotify);
|
|
|
|
}
|
|
|
|
|
|
|
|
/************************************************************************/
|
|
|
|
/* NtGdiDvpReleaseNotification */
|
|
|
|
/************************************************************************/
|
|
|
|
DWORD
|
2008-11-29 22:48:58 +00:00
|
|
|
APIENTRY
|
2007-10-14 16:19:56 +00:00
|
|
|
NtGdiDvpReleaseNotification(HANDLE hVideoPort,
|
|
|
|
HANDLE hEvent)
|
|
|
|
{
|
2008-05-05 19:42:23 +00:00
|
|
|
PGD_DXDVPRELEASENOTIFICATION pfnDvpReleaseNotification = (PGD_DXDVPRELEASENOTIFICATION)gpDxFuncs[DXG_INDEX_DxDvpReleaseNotification].pfn;
|
2007-10-14 16:19:56 +00:00
|
|
|
|
|
|
|
if (pfnDvpReleaseNotification == NULL)
|
|
|
|
{
|
2023-11-15 20:07:27 +00:00
|
|
|
DPRINT1("Warning: no pfnDvpReleaseNotification\n");
|
2007-10-14 16:19:56 +00:00
|
|
|
return DDHAL_DRIVER_NOTHANDLED;
|
|
|
|
}
|
|
|
|
|
2023-11-15 20:07:27 +00:00
|
|
|
DPRINT("Calling dxg.sys pfnDvpReleaseNotification\n");
|
2007-10-14 16:19:56 +00:00
|
|
|
return pfnDvpReleaseNotification(hVideoPort, hEvent);
|
|
|
|
}
|
|
|
|
|
|
|
|
/************************************************************************/
|
|
|
|
/* NtGdiDvpGetVideoPortField */
|
|
|
|
/************************************************************************/
|
|
|
|
DWORD
|
2008-11-29 22:48:58 +00:00
|
|
|
APIENTRY
|
2007-10-14 16:19:56 +00:00
|
|
|
NtGdiDvpGetVideoPortField(HANDLE hVideoPort,
|
|
|
|
PDD_GETVPORTFIELDDATA puGetVPortFieldData)
|
|
|
|
{
|
2008-05-05 19:42:23 +00:00
|
|
|
PGD_DXDVPGETVIDEOPORTFIELD pfnDvpGetVideoPortField = (PGD_DXDVPGETVIDEOPORTFIELD)gpDxFuncs[DXG_INDEX_DxDvpGetVideoPortField].pfn;
|
2007-10-14 16:19:56 +00:00
|
|
|
|
|
|
|
if (pfnDvpGetVideoPortField == NULL)
|
|
|
|
{
|
2023-11-15 20:07:27 +00:00
|
|
|
DPRINT1("Warning: no pfnDvpGetVideoPortField\n");
|
2007-10-14 16:19:56 +00:00
|
|
|
return DDHAL_DRIVER_NOTHANDLED;
|
|
|
|
}
|
|
|
|
|
2023-11-15 20:07:27 +00:00
|
|
|
DPRINT("Calling dxg.sys pfnDvpGetVideoPortField\n");
|
2007-10-14 16:19:56 +00:00
|
|
|
return pfnDvpGetVideoPortField(hVideoPort, puGetVPortFieldData);
|
|
|
|
}
|