gung
驱动中牛
驱动中牛
  • 注册日期2001-06-10
  • 最后登录2008-04-21
  • 粉丝0
  • 关注0
  • 积分25分
  • 威望3点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
阅读:3133回复:7

关于IRP_MN_QUERY_INTERFACE

楼主#
更多 发布于:2003-05-27 18:23
w2k, video stream capture minidriver, ddk编程
怎么实现自定义的IRP_MN_QUERY_INTERFACE接口啊
似乎可以这样:
注册时将结构HW_INITIALIZATION_DATA的HwReceivePacket指向自己的DispatchRequest函数
响应SRB_UNKNOWN_DEVICE_COMMAND
判断IrpStack->MajorFunction == IRP_MJ_PNP
判断IrpStack->MinorFunction == IRP_MN_QUERY_INTERFACE
判断IrpStack->Parameters.QueryInterface.InterfaceType == MY_INTERFACE_GUID
若全部符合,则IrpStack->Parameters.QueryInterface.InterfaceSpecificData内就是输入输出数据
如果是这样,上层应用软件如何向驱动程序发出这样的SRB啊(上层软件为DirectShow编程,可获得Capture filter)

大家帮帮帮帮帮帮帮帮帮帮帮帮帮帮帮帮我啊~~:D
(为什么可用分1k,参与分5k,却只能放20分:(郁闷)
liuyan1
驱动老牛
驱动老牛
  • 注册日期2001-08-27
  • 最后登录2023-04-18
  • 粉丝0
  • 关注0
  • 积分1031分
  • 威望477点
  • 贡献值0点
  • 好评度187点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2003-05-27 18:54
分太少了,555,不过看您这样着急我就乱说说把
miniport driver 中您最好是支持
    case SRB_FUNCTION_IO_CONTROL:
这个事件来自定义,这个时候在srb->DataBuffer中传递一个
srbControl控制代码。,
应用程序跟系统通讯通过有如这样的函数实现
   status = DeviceIoControl(fileHandle,
                             IOCTL_SCSI_MINIPORT,
                             &Openfile,
                             sizeof(SRB_IO_CONTROL) + 128 ,//sizeof(SRB_IO_CONTROL),
                             buffer,
                             sizeof(SRB_IO_CONTROL) + 128 ,//sizeof(SRB_IO_CONTROL),
                             &returned,
                             FALSE);
楼上的客,楼下的客,听我老坎说明白,要苛屎有草纸,不要扯我的麦席子,要苛尿有夜壶,不要在床上划地图。
liuyan1
驱动老牛
驱动老牛
  • 注册日期2001-08-27
  • 最后登录2023-04-18
  • 粉丝0
  • 关注0
  • 积分1031分
  • 威望477点
  • 贡献值0点
  • 好评度187点
  • 原创分0分
  • 专家分0分
  • 社区居民
板凳#
发布于:2003-05-27 19:11
另外您说的那些功能一般是在port driver 中就实现的了,miniport driver 是一个受限制的设备驱动程序,如果非要实现IRP_MN_QUERY_INTERFACE自己解析就麻烦了,您必须要把miniport driver 驱动的受限制结构打破,Daemon-tools 就是这样做的,
楼上的客,楼下的客,听我老坎说明白,要苛屎有草纸,不要扯我的麦席子,要苛尿有夜壶,不要在床上划地图。
huttu
驱动大牛
驱动大牛
  • 注册日期2002-11-19
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望25点
  • 贡献值0点
  • 好评度19点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-05-27 19:58
分太少了,555,不过看您这样着急我就乱说说把
miniport driver 中您最好是支持
    case SRB_FUNCTION_IO_CONTROL:
这个事件来自定义,这个时候在srb->DataBuffer中传递一个
srbControl控制代码。,
应用程序跟系统通讯通过有如这样的函数实现
   status = DeviceIoControl(fileHandle,
                             IOCTL_SCSI_MINIPORT,
                             &Openfile,
                             sizeof(SRB_IO_CONTROL) + 128 ,//sizeof(SRB_IO_CONTROL),
                             buffer,
                             sizeof(SRB_IO_CONTROL) + 128 ,//sizeof(SRB_IO_CONTROL),
                             &returned,
                             FALSE);
 

你就当做次雷锋嘛!
gung
驱动中牛
驱动中牛
  • 注册日期2001-06-10
  • 最后登录2008-04-21
  • 粉丝0
  • 关注0
  • 积分25分
  • 威望3点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-05-28 09:07
这样啊,试试看:)

谢拉~~哥们! :D

不过我确实看见别人这样干过,那位知道咋回事,俺再开贴;)...

[编辑 -  5/28/03 by  gung]
gung
驱动中牛
驱动中牛
  • 注册日期2001-06-10
  • 最后登录2008-04-21
  • 粉丝0
  • 关注0
  • 积分25分
  • 威望3点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-05-28 09:28

   status = DeviceIoControl(fileHandle,
                             IOCTL_SCSI_MINIPORT,
                            &Openfile,
                             sizeof(SRB_IO_CONTROL) + 128 ,//sizeof(SRB_IO_CONTROL),
                             buffer,
                             sizeof(SRB_IO_CONTROL) + 128 ,//sizeof(SRB_IO_CONTROL),
                             &returned,
                             FALSE);
 

为什么是IOCTL_SCSI_MINIPORT,如果是Video Capture minidriver应该用什么?
mike_wang
驱动中牛
驱动中牛
  • 注册日期2003-01-22
  • 最后登录2012-01-04
  • 粉丝0
  • 关注0
  • 积分91分
  • 威望10点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-05-28 14:02
hi,gung!
好久不见,
俺以前作流驱动时自定义过接口!
推鉴你看看ddk中这一部分的文档!
kernel stream drivers
下的part4:video capture drivers
下的1.3using video capture sets
下的1.3.3custom property sets and  interfaces
里面讲得很详细的!
祝你好运! :D
gung
驱动中牛
驱动中牛
  • 注册日期2001-06-10
  • 最后登录2008-04-21
  • 粉丝0
  • 关注0
  • 积分25分
  • 威望3点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-05-28 14:06
hi,gung!
好久不见,
俺以前作流驱动时自定义过接口!
推鉴你看看ddk中这一部分的文档!
kernel stream drivers
下的part4:video capture drivers
下的1.3using video capture sets
下的1.3.3custom property sets and  interfaces
里面讲得很详细的!
祝你好运! :D


3q~~~ :D
看看先
游客

返回顶部