wine's setupapi.dll / newdev.dll ?

Robert Shearman rob at
Thu Dec 29 07:38:07 CST 2005

Damjan Jovanovic wrote:

>I've been working on a still image implementation for
>wine / ReactOS for a while now, and I've only recently
>realised how impossible it is in wine at the moment...
>wine's SETUPAPI.DLL is not even in its infancy, it
>doesn't even let you enumerate non-serial-port
>devices, and doesn't load class-installers, so you
>can't even install a scanner's INF file. I see that
>ReactOS's implementation is better and it is under the
>right (LGPL) licence; are we planning on including it
>into wine, and if so, when?

I don't think it is planned. It is a question of showing a demand for 
the code and then someone taking the effort to merge the necessary parts.

>wine's NEWDEV.DLL is pure stubs - so you can't even
>start installing the device INF file. ReactOS's latest
>SVN version of it is a little closer to what I need,
>but can we include GPL code in wine? (I've asked the
>developers to relicense it under the LGPL for us, but
>they haven't gotten back to me yet).

What does NEWDEV do?

>So what should I do - submit my STI.DLL and STI_CI.DLL
>into wine now, even though they won't be usable for a
>good while - or wait for wine to mature?

Will STI and STI_CI work with the GPL NEWDEV code? If so, I would submit 
them and then hope someone will come along and implement the necessary 
parts of NEWDEV or convince the ReactOS developers to re-license it.

>And does anyone know any good documentation for
>writing COM out-of-process servers (that use ncalrpc
>transport and have some [local] methods)?

What documentation do you need? ncalrpc is just like any other transport 
- you just need to specify the right format for the endpoint and the RPC 
runtime does the work of opening it for you. Local methods are also 
straightforward. It just means that no remoting information is generated 
for it. This is typically used when the convenient form of the function 
has types incompatible with the RPC runtime. You can use a remote form 
with the call_as attribute to allow you to write a translating 
proxy/stub function to call the remote function. See 

Rob Shearman

More information about the wine-devel mailing list