wangxdong
驱动小牛
驱动小牛
  • 注册日期2002-07-08
  • 最后登录2003-01-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1275回复:3

高分请教:如何直接写显卡的内存?

楼主#
更多 发布于:2002-07-24 17:55
我在WinDriver中能看到显卡的内存地址,并能写ffffffff到BAR1,在屏幕左上角显示一个白点。
我想用DriverStudio来实现,但又怕做成PCI驱动程序后会把显卡驱动冲掉,我想直接写内存。先定义了KMemoryRange m_MemRange;
但m_MemRange.Initialize(INTERFACE_TYPE IntfType,
   ULONG BusNumber ,
   ULONGLONG BaseBusAddress,
   ULONG Count,
   BOOLEAN MapToSystemVirtual=TRUE
);
时,编译出错,只能使用m_MemRange.Initialize(
   PCM_RESOURCE_LIST pTranslatedResourceList,
   PCM_RESOURCE_LIST pRawResourceList,
   ULONG Ordinal=0,
   BOOLEAN MapToSystemVirtual =TRUE
格式,这种格式好像只能使用自动分配的内存?不能自己定义基地址,不知我理解得对不对?
怎样才能使m_MemRange变成我想设的基地址,然后用outd等函数进行直接内存读写呢?
请多多指教!
wangxdong
驱动小牛
驱动小牛
  • 注册日期2002-07-08
  • 最后登录2003-01-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-07-25 09:29
怎地没人回应?很难么?
请多多指教!
jackyzx
驱动牛犊
驱动牛犊
  • 注册日期2001-06-13
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分53分
  • 威望46点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
  • 社区居民
板凳#
发布于:2002-07-25 13:22
可以直接取得显示卡的物理地址,在DMA使用物理地址直接写显示存储器,编程方面可以在核心态将物理地址影射为核心态逻辑地址进行读写,在用户态可以将使用核心态影射的逻辑地址。
ppl
ppl
驱动小牛
驱动小牛
  • 注册日期2001-06-13
  • 最后登录2006-05-21
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-07-25 13:35
参看dxapi
游客

返回顶部