About UVC extension unit sample code build problem

Hi:
I know this topic does not belong to device driver scope, but I need to implement user mode plug-in component for my UVC device. Does anyone get the sample code from DDK “UVC Extension Unit Code Sample” and build it well in WDK build environment? I just followed the build steps which described in DDK but still can’t generate any obj files. The build environment is WDK XP x86 checked build environment and there are only three statements in log file:

before AssemblyIdentity_AfterReadAllSources
after AssemblyIdentity_AfterReadAllSources
skipping post pass 0 command

Can anyone tell me what is the problem?

Your greate help is very appreciated.

Lear

I am newbie to UVC. So I am sorry that I can not help you solve this problem. What is more, I want to ask you where the UVC sample in DDk is. Thank you .

xxxxx@gmail.com wrote:

I am newbie to UVC. So I am sorry that I can not help you solve this problem. What is more, I want to ask you where the UVC sample in DDk is. Thank you .

There is no sample. When you have a USB Video Class compliant device,
usbvideo.sys handles it. The source code for usbvideo.sys is not available.

The only USB video capture sample in the DDK is the usbintel sample,
which uses the old USBCAMD library. Although USBCAMD still works, I
don’t think you would want to use it for a new device.


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.

Thanks for your replay, as Tim said, there is no sample source for UVC device driver because Microsoft provides default driver “usbvideo.sys” to support it. But default driver is only available in Windows XP SP2, and I have to write my own driver to support UVC device in earlier Windows OS version.
Currently, to support the driver for UVC device in earlier OS is not problem for me, my problem is UVC extension Unit plugin implementation. DDK document provides some sample code for developer to build a Microsoft ActiveX control that we can use with a corresponding application to get and set property on an extension unit. But I can not build the sample code at all, can anyone tell me how to build the sample code?
I know Active control does not belong to kernel driver scope and it might not be a suitable topic to post here, but for completely UVC driver supporting, driver developers have to implement it. So my quesiton is:
How to build the extension unit plugin sample code which is provdied by DDK documentation?

Your great help is very appriciated.
Lear

xxxxx@gmail.com wrote:
> Hi:
> I know this topic does not belong to device driver scope, but I need
> to implement user mode plug-in component for my UVC device. Does
> anyone get the sample code from DDK “UVC Extension Unit Code Sample”
> and build it well in WDK build environment? I just followed the build
> steps which described in DDK but still can’t generate any obj files.

The build environment is WDK XP x86 checked build environment
> and there are only three statements in log file:

> before AssemblyIdentity_AfterReadAllSources
>> after AssemblyIdentity_AfterReadAllSources
>> skipping post pass 0 command

Can anyone tell me what is the problem?

For the build program to execute, you have to include the default
makefile and a “sources” file. The build environments and definitions
for SDK, DDK and WDK are different.
Please look at a WDK sample that has a SYS and an EXE file (e.g. in
src\usb\bulkusb\exe). Note that you have now “makefile”, (sometimes) a
“makefile.inc” and a “sources” file.

-H

xxxxx@gmail.com wrote:

Thanks for your replay, as Tim said, there is no sample source for UVC device driver because Microsoft provides default driver “usbvideo.sys” to support it. But default driver is only available in Windows XP SP2, and I have to write my own driver to support UVC device in earlier Windows OS version.

Yes. I’ve seen this disconnect before, and I think this is a mistake on
Microsoft’s part. When you talk to the folks in Redmond, they’re
focussed on worrying about finalizing the feature set for Windows 2010
(code-named “I made this up”), so that even support for Windows XP SP2
seems like an utterly boring legacy project. In the real world,
however, clients are still looking for new solutions that work back to
Windows 98SE.

Currently, to support the driver for UVC device in earlier OS is not problem for me, my problem is UVC extension Unit plugin implementation. DDK document provides some sample code for developer to build a Microsoft ActiveX control that we can use with a corresponding application to get and set property on an extension unit. But I can not build the sample code at all, can anyone tell me how to build the sample code?
I know Active control does not belong to kernel driver scope and it might not be a suitable topic to post here, but for completely UVC driver supporting, driver developers have to implement it. So my quesiton is:
How to build the extension unit plugin sample code which is provdied by DDK documentation?

Do you have all of the files they talk about? You need interface.idl,
makefile, sources, stdafx.cpp, stdafx.h, uvcxuplgn.cpp, uvcxuplgn.def,
xuproxy.cpp, and xuproxy.h. You also need vidcap_i.c, which you can
generate from vidcap.idl in the SDK:
midl /Isdkpath\include /client stub sdkpath\include\vidcap.idl
Have you inserted the proper GUIDs in the correct spots? Once I did
that, and added a couple of include files to the beginning of
xuproxy.cpp, the sample built OK.


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.

Really thanks for Tim’s great help, I can build the sample program now. But I encountered another problem. After setting up related registry key and value to install my own extension unit plugin, I just wrote an simple app to querry the inteface exported from my extension unit plugin, I just followed the sample app which provided by DDK doument but still failed in CreateNodeInstance(…) step. It just return “E_NOINTERFACE”. I have searched related information from web and found the related link
http://www.codecomments.com/archive421-2005-11-657282.html

As they said “IKsTopologyInfo::CreateNodeInstance is defective and will hopefully be fixed
in Vista.”

I just wonder whether this information is true. If CreateNodeInstacne is defective, how can we touch our own extension unit interface in XP evironment?

Lear

xxxxx@gmail.com wrote:

Really thanks for Tim’s great help, I can build the sample program now. But I encountered another problem. After setting up related registry key and value to install my own extension unit plugin, I just wrote an simple app to querry the inteface exported from my extension unit plugin, I just followed the sample app which provided by DDK doument but still failed in CreateNodeInstance(…) step. It just return “E_NOINTERFACE”. I have searched related information from web and found the related link
http://www.codecomments.com/archive421-2005-11-657282.html

As they said “IKsTopologyInfo::CreateNodeInstance is defective and will hopefully be fixed
in Vista.”

I just wonder whether this information is true. If CreateNodeInstacne is defective, how can we touch our own extension unit interface in XP evironment?

The very article you quoted above includes the workaround. You just
have to call IKsControl::KsProperty yourself instead of relying on
IKsTopologyInfo.


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.