阅读:3133回复:7
关于IRP_MN_QUERY_INTERFACE
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分:(郁闷) |
|
沙发#
发布于: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); |
|
|
板凳#
发布于:2003-05-27 19:11
另外您说的那些功能一般是在port driver 中就实现的了,miniport driver 是一个受限制的设备驱动程序,如果非要实现IRP_MN_QUERY_INTERFACE自己解析就麻烦了,您必须要把miniport driver 驱动的受限制结构打破,Daemon-tools 就是这样做的,
|
|
|
地板#
发布于:2003-05-27 19:58
分太少了,555,不过看您这样着急我就乱说说把 你就当做次雷锋嘛! |
|
地下室#
发布于:2003-05-28 09:07
这样啊,试试看:)
谢拉~~哥们! :D 不过我确实看见别人这样干过,那位知道咋回事,俺再开贴;)... [编辑 - 5/28/03 by gung] |
|
5楼#
发布于:2003-05-28 09:28
为什么是IOCTL_SCSI_MINIPORT,如果是Video Capture minidriver应该用什么? |
|
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 |
|
7楼#
发布于:2003-05-28 14:06
hi,gung! 3q~~~ :D 看看先 |
|