AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
20楼#
发布于:2004-07-08 20:34
写个驱动和Dispaly通信
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
leerom
驱动小牛
驱动小牛
  • 注册日期2001-06-08
  • 最后登录2010-08-31
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望22点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
21楼#
发布于:2004-07-09 14:42
写一个普通的WDM驱动。在驱动中发IRP_MN_QUERY_INTERFACE请求给 显卡的miniport driver,获取i2c接口函数。因为我没有具体试过,所以这个驱动和显卡驱动之间是的关系以及怎样将它挂到显卡驱动上我也不太清楚。还是哪句话看文档和例子。实在不行可以写信给raul.wang,我曾和他讨论过这个问题,他应该搞过类似的东西。
leerom
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
22楼#
发布于:2004-07-10 13:09
测试可以的
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
tornadohf
驱动牛犊
驱动牛犊
  • 注册日期2004-08-21
  • 最后登录2007-12-05
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
23楼#
发布于:2004-08-21 15:35
显卡的的HwVidQueryInterface只响应自定义的GUID.显卡driver通过这个来确定是不是自己support的WDM。
leerom
驱动小牛
驱动小牛
  • 注册日期2001-06-08
  • 最后登录2010-08-31
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望22点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
24楼#
发布于:2004-08-21 16:48
HwVidQueryInterface响应标准的GUID和自定义的GUID。在DDK的头文件i2cgpio.h中含有I2C的GUID定义:GUID_I2C_INTERFACE。

[编辑 -  8/21/04 by  leerom]
leerom
tornadohf
驱动牛犊
驱动牛犊
  • 注册日期2004-08-21
  • 最后登录2007-12-05
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
25楼#
发布于:2004-08-22 15:51
哦,这么说显卡上的IC2也可以给显卡厂商以外的人用。
coolzh_xa
驱动牛犊
驱动牛犊
  • 注册日期2002-09-28
  • 最后登录2010-05-05
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望32点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
26楼#
发布于:2004-08-30 21:58
//写一个普通的WDM驱动。在驱动中发IRP_MN_QUERY_INTERFACE请求
                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
给 显卡的miniport driver,获取i2c接口函数。因为我没有具体试
~~~~~~~~~~~~~~~~~~~~~~~~~
过,所以这个驱动和显卡驱动之间是的关系以及怎样将它挂到显卡驱动上我也不太清楚。还是哪句话看文档和例子。实在不行可以写信给raul.wang,我曾和他讨论过这个问题,他应该搞过类似的东西。

在普通得wdm驱动向显卡得miniport driver发送发Irp,能在详细
说一下吗? 我是个新手,恰好也在做同样功能得驱动程序。
有几个问题搞不清楚:
1。ddk中说显卡驱动包括两个部分 display driver 和 miniport
driver,miniport上面有port driver 从ddk得结构图上看这两部分由操作系统管理。 我研究
了ati采集卡中获取i2c接口得代码,发现上面所说得irp是发给
一个Device。 我觉着这个Device 应该是port driver。问题是
我自己写得普通得WDM驱动怎么链接到这个设备栈上呢?
2。我已经写了一个Unknow类型得驱动,用IOCTL得OPEN去打开I2C接口,没有成功。我想问,是不是因为Unkonw这个类型不对,导致操作系统传来得pdo也不对。换成其他类型得话,操作系统传来得pdo应该
也不一样吧

leerom
驱动小牛
驱动小牛
  • 注册日期2001-06-08
  • 最后登录2010-08-31
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望22点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
27楼#
发布于:2004-08-30 22:37
参考ATI采集驱动的inf文件,它似乎将采集设备作为显卡的子设备来安装。可能这和设备的挂接有些关系,我没有仔细研究,感觉它似乎可以解决这个问题。希望你解决后把经验和大家分享。
leerom
coolzh_xa
驱动牛犊
驱动牛犊
  • 注册日期2002-09-28
  • 最后登录2010-05-05
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望32点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
28楼#
发布于:2004-08-31 09:30
请教如果我把我自己写的驱动的类型从Unknown改为Media,打个比方
那么,操作系统在AddDevice 时传进来的pdo就不同,
我再调用IoAttachDeviceToDeviceStack时挂接的设备栈也就不一样

pdo只是代表一个总线类型吗? pdo上面可能已经有设备栈了,
IoAttachDeviceToDeviceStack只是挂接到最顶层而已
leerom
驱动小牛
驱动小牛
  • 注册日期2001-06-08
  • 最后登录2010-08-31
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望22点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
29楼#
发布于:2004-08-31 10:09
看看这份文档 http://www.microsoft.com/whdc/archive/i2c.mspx
它上面说应该在显卡的INF文件中列出要使用显卡I2C总线的设备,由PnP管理器来加载相应的驱动程序。应该不是用IOCTL来直接打开显卡。
leerom
coolzh_xa
驱动牛犊
驱动牛犊
  • 注册日期2002-09-28
  • 最后登录2010-05-05
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望32点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
30楼#
发布于:2004-08-31 14:00
是这样ati采集卡的例子中是写了一个Kernel Streaming Driver
我理解它里面用的I2C的原因是想通过I2C去控制显卡上的IC芯片。
可以理解为在显卡上集成了收音机,电视接收等芯片。这些芯片需要
用I2C去控制。

例子中涉及获取I2C接口的地方是I2CScript类,它只要求在Kernel Streaming Driver中给它一个PhysicalDeviceObject
例如在atixbar中 有下面一段代码:
     pCScript = ( CI2CScript *)new(( PVOID)&pPrivateData->CScript) \
CI2CScript( pConfigInfo->PhysicalDeviceObject, &nErrorCode);

这个pConfigInfo 是从psrb中获得的,PhysicalDeviceObject在
ddk中的描述是Points to the device object for the driver at the top of the driver stack when the class driver attaches to the driver stack. Drivers use this member when calling IoCallDriver to communicate with the driver stack.
指的是这个KS驱动加载到设备堆栈时的栈顶指针

这个设备栈的顶我觉得可能是控制显卡的操作系统提供的port driver

如果我们能打开这个系统提供的port driver,就有可能解决这个问题。

我的思路是这样,写一个WDM框架,提供四个命令接口
IOCTL_OPEN
IOCTL_CLOSE
IOCTL_I2CREAD
IOCTL_I2CWRITE

tornadohf
驱动牛犊
驱动牛犊
  • 注册日期2004-08-21
  • 最后登录2007-12-05
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
31楼#
发布于:2004-09-06 14:48
在Inf文件中list child device on I2C bus应该是连接方法之一。但是在VGA miniport driver的HwGetVideoChildDescriptor中enumerate I2C上的device应该更合理。
“Video cards that use the I2C bus under Windows MUST now use an INF file to list the devices on the bus.” 这句话是不是有点问题?
muyu_xiaoxiao
驱动牛犊
驱动牛犊
  • 注册日期2004-10-27
  • 最后登录2008-01-31
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
32楼#
发布于:2004-10-30 21:46
大家好!我是写显示器内部程序的,我也再想解决这个问题的方法,应该是可以解决的。

为什么不是写一个MINIVDD DRIVER,而是写WDM DRIVER?
如果是WDM,怎么传递参数?是存在EXTENSION 里面吗?然后用IODEVICECONTROL 调用?

nosnap
驱动小牛
驱动小牛
  • 注册日期2003-10-27
  • 最后登录2014-03-20
  • 粉丝0
  • 关注0
  • 积分152分
  • 威望47点
  • 贡献值0点
  • 好评度15点
  • 原创分0分
  • 专家分0分
33楼#
发布于:2004-11-05 15:47
以后的显示器差不多都要实现显卡和显示器的通讯,亦即DDC/CI,CEC功能。
DDC/CI, 显示器作为 I2C slave,接受显卡传送的命令处理,如亮度调节等
CEC,真正的双向通讯,显示器和显卡都可以作为I2C mastaer和slave。
jasoner
驱动牛犊
驱动牛犊
  • 注册日期2005-04-08
  • 最后登录2005-06-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
34楼#
发布于:2005-06-15 16:01
在window XP的 DDK 的 video / perm3下有个I2C.h文件
里面定义了:

VP_STATUS
I2CBusAccess(
    PVOID DeviceObject,
    PI2CControl I2CControl,
    PVIDEO_I2C_CONTROL I2CCallbacks
    )

其实就可以实现对I2C.bus的读写

可问题是如果另外再写一个WMD  driver,如何得到正确的 DeviceObject参数呢,显然I2CControl是由我们自己填写的,I2CCallbacks设为NULL好了。怎么把自己写的driver和video miniport driver 连起来呢?

这样的思路又走得通吗???
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
35楼#
发布于:2007-03-17 11:29
肯定是可以的,最近简单研究了下,已经可以打开,关闭I2C了,数据发送还有写问题,有时间用示波器看看。
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
36楼#
发布于:2007-03-20 11:34
测试读写EDID都可以,并且测试读电视机的EDI等也没有问题;应用到其它I2C设备如HDMI,单片机等都没有问题,有需要这方面技术需求的可和我联系。
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
KMK
KMK
驱动大牛
驱动大牛
  • 注册日期2001-09-12
  • 最后登录2017-10-06
  • 粉丝2
  • 关注0
  • 积分42分
  • 威望404点
  • 贡献值2点
  • 好评度58点
  • 原创分1分
  • 专家分1分
  • 社区居民
37楼#
发布于:2007-11-24 09:23
可否讲讲如何读写EDID
liuzhu800613
驱动牛犊
驱动牛犊
  • 注册日期2005-08-06
  • 最后登录2016-01-09
  • 粉丝2
  • 关注0
  • 积分1分
  • 威望39点
  • 贡献值0点
  • 好评度30点
  • 原创分0分
  • 专家分0分
38楼#
发布于:2007-12-24 09:07
学习!
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
39楼#
发布于:2007-12-24 16:21
引用第37楼KMK于2007-11-24 09:23发表的  :
可否讲讲如何读写EDID

写个驱动和Dispaly通信就可以了, 具体参考EDID和NVM的协议
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
游客

返回顶部