Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1536215
  • 博文数量: 596
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 173
  • 用 户 组: 普通用户
  • 注册时间: 2016-07-06 15:50
个人简介

在线笔记

文章分类

全部博文(596)

文章存档

2016年(1)

2015年(104)

2014年(228)

2013年(226)

2012年(26)

2011年(11)

分类: Windows平台

2015-04-17 13:38:13

  1. /* Called to create DirectDraw surface.
  2.  * Note: we always return DDHAL_DRIVER_NOTHANDLED, which asks DirectDraw memory manager
  3.  * to perform actual memory allocation in our DDraw heap.
  4.  */
  5. DWORD APIENTRY VBoxDispDDCreateSurface(PDD_CREATESURFACEDATA lpCreateSurface)
  6. {
  7.     PVBOXDISPDEV pDev = (PVBOXDISPDEV) lpCreateSurface->lpDD->dhpdev;
  8.     LOGF_ENTER();

  9.     PDD_SURFACE_LOCAL pSurf = lpCreateSurface->lplpSList[0];

  10.     if (pSurf->ddsCaps.dwCaps & DDSCAPS_PRIMARYSURFACE)
  11.     {
  12.         LOG(("primary surface"));
  13.         pSurf->lpGbl->fpVidMem = 0;
  14.     }
  15.     else
  16.     {
  17.         LOG(("non primary surface"));
  18.         pSurf->lpGbl->fpVidMem = DDHAL_PLEASEALLOC_BLOCKSIZE;
  19.     }
  20.     pSurf->lpGbl->dwReserved1 = 0;

  21. #ifdef VBOX_WITH_VIDEOHWACCEL
  22.     if(pDev->vhwa.bEnabled)
  23.     {
  24.         VBOXVHWACMD* pCmd;

  25.         pCmd = VBoxDispVHWACommandCreate(pDev, VBOXVHWACMD_TYPE_SURF_CREATE, sizeof(VBOXVHWACMD_SURF_CREATE));
  26.         if (pCmd)
  27.         {
  28.             VBOXVHWACMD_SURF_CREATE *pBody = VBOXVHWACMD_BODY(pCmd, VBOXVHWACMD_SURF_CREATE);
  29.             PVBOXVHWASURFDESC pDesc;
  30.             。。。
  31.         }
        }

1. VBOXVHWACMD_TYPE_SURF_CREATE
很明显,VBoxDispVHWACommandCreate创建了一个VBOXVHWACMD_TYPE_SURF_CREATE命令,并发送给应用层。
如果顺着代码找,需要大量时间。

因此,
VBOXVHWACMD_TYPE_SURF_CREATE肯定有另一个地方会处理这个命令。
直接搜索这个命令
VBOXVHWACMD_TYPE_SURF_CREATE,

2. 方法
1)View, Relation Window,鼠标定位到
VBOXVHWACMD_TYPE_SURF_CREATE,右击,View relation, Referenced By functions
2)
鼠标定位到VBOXVHWACMD_TYPE_SURF_CREATE,Ctrl + /, 搜索

阅读(3061) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~