Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Remote DCOM on WinCE 6.0

161 views
Skip to first unread message

MilanvdM

unread,
Sep 29, 2008, 12:01:01 PM9/29/08
to
The company I work for is implementing control of a piece of equipment on an
ARM-based board running Windows CE 6.0. The board is to be controlled from a
PC running XP Embedded. We will use DCOM. We applied the DCOM .msi to
Platform Builder to incorporate DCOM remoting in CE 6.0. The network is
closed, so we do not have to be worried about security issues.

We've been struggling for two weeks now to get DCOM remoting to work, but it
does not yet. We've created a demo application on WinCE that creates a COM
server inproc, but outproc just does not work. Below, you see some logging.
Whatever we change, we just keep getting an 80070005 upon calling CoCreate().

My question is whether there is some kind of readme on how to set up remote
DCOM in CE 6.0 ?

I understand from blogs and discussion groups there's a lot to set up to get
remote DCOM to work in CE6.0. In microsoft.public.windowsce.embedded, on 8th
July this year, John Spaith stated there's an example available for CE5.0 to
add numbers across distributed machines. Is such an example available for CE
6.0 too?

Any help will be greatly appreciated.

Logging of our current demo application:

4294937025 PID:2660006 TID:2670006 ********************************
4294937026 PID:2660006 TID:2670006 CoInitSecurity: 0
4294937177 PID:2660006 TID:2670006 OSAXST1: >>> Loading Module 'secur32.dll'
(0x83BAA180) at address 0x402C0000-0x402CA000 in Process 'Test4CE.exe'
(0x83AD139C)
4294937274 PID:400002 TID:2700006 OSAXST1: >>> Loading Module 'rpcltccm.dll'
(0x83C3321C) at address 0x405A0000-0x405A8000 in Process 'NK.EXE' (0x81038AA0)
PB Debugger Loaded symbols for 'N:\...<cut\>...\RPCLTCCM.DLL'
4294937275 PID:2de0002 TID:2700006 OSAXST1: >>> Loading Module
'rpcltccm.dll' (0x83C3321C) at address 0x405A0000-0x405A8000 in Process
'servicesd.exe' (0x83AF8000)
4294937284 PID:2de0002 TID:2700006 SECUR32: Locating package 'NTLM' ...
4294937284 PID:2de0002 TID:2700006 found (0x10023770).
4294937361 PID:2de0002 TID:2700006 02de0002.02700006>
4294937361 PID:2de0002 TID:2700006 Cairole:
4294937362 PID:2de0002 TID:2700006 DCOMSS: Failed on RpcBindingSetAuthInfoEx
for remote machine binding
4294937391 PID:2de0002 TID:28c0006 02de0002.028c0006>
4294937392 PID:2de0002 TID:28c0006 Cairole:
4294937392 PID:2de0002 TID:28c0006 DCOMSS: Call disallowed by CkIfCallAllowed
4294937397 PID:2de0002 TID:2700006 02de0002.02700006>
4294937397 PID:2de0002 TID:2700006 Cairole:
4294937398 PID:2de0002 TID:2700006 DCOMSS:Error CallRemoteSCM (global)
successful connect - failure in remote activation
4294937404 PID:2660006 TID:2670006 CoCreate: 80070005
4294937450 PID:2660006 TID:2670006 OSAXST1: <<< Unloading Module 'ole32.dll'
(0x83B74870) at address 0x40330000-0x4043B000 in Process 'Test4CE.exe'
(0x83AD139C)

Paul G. Tobey [eMVP]

unread,
Sep 29, 2008, 12:34:39 PM9/29/08
to
It's not supported. Don't you see that in the OS documentation? I seem to
remember it being all over the place. DCOM is supported, in the sense that
you can use out-of-process COM on Windows CE 6.0, if you build the right
pieces into the OS, but Remote DCOM is not.

Paul T.

"MilanvdM" <Mila...@discussions.microsoft.com> wrote in message
news:F1DADEA9-C8B1-4972...@microsoft.com...

MilanvdM

unread,
Sep 29, 2008, 1:09:01 PM9/29/08
to
Well, I guess it *is* supported after installing this toolkit:

http://www.microsoft.com/downloads/details.aspx?FamilyID=6DADC411-F20A-4010-B504-B379832C3520&displaylang=en

which we did....

Paul G. Tobey [eMVP]

unread,
Sep 29, 2008, 1:27:27 PM9/29/08
to
OK. In CE5 and earlier, you have to do the following or Remote DCOM won't
work:

1. You have to have a unique device name on the network. This is the item
set in the System Control Panel applet on the Device Name tab. After
changing this, you have to restart the Windows CE device.

2. It appears that your CE device is the client, not the server, yes? If
so, you must change the user name/password on the Owner Control Panel
applet's Network ID tab to be a user name and password that the remote
server will recognize and allow to perform the operation.

3. You have to make sure that your code to actually create the remote object
uses the same user name and password as the Owner applet. It also needs to
call CoInitializeEx appropriately (apartment threaded).

4. You have to make sure that you have an installed proxy for the remote
object, of course, on the Windows CE device.

If you are the server, not the client, post back and I'll try to come up
with the list for that case, too.

Once you have all of that, run your DCOM client application in the debugger
on CE. Trace to where you call CoCreateInstance() and watch what DLLs are
loaded when you make that call. What are they? Is the security DLL,
secur32.dll, I think it is in CE5, loaded? The proxy? You might also check
and make sure that DCOM is enabled. When you have it in your CE5 OS, the
registry entries that come with it automatically turn it on, but that might
not be the case for this CE6 add-on.

Paul T.

"MilanvdM" <Mila...@discussions.microsoft.com> wrote in message

news:13C74506-33D6-4661...@microsoft.com...

MilanvdM

unread,
Sep 29, 2008, 1:50:02 PM9/29/08
to
Thank you very much, Paul, for your reaction.

In fact, the WinCE device will run the server, not the client. If you can
come up with the list for this case, that would be very much appreciated!

Paul G. Tobey [eMVP]

unread,
Sep 29, 2008, 2:14:00 PM9/29/08
to
Well, I haven't done that as much. You certainly will need to have a unique
name on the network, as in the client case. You probably also need to use
NTLMSetUserInfo() to create a user name/password combination that matches
the identity that the client will be using. You'd also need to arrange for
allowing the selected user name to start the server or, at least, access the
server remotely. I don't remember how this is done, specifically, though.
Your debug log may be indicating something, there...

Paul T.

"MilanvdM" <Mila...@discussions.microsoft.com> wrote in message

news:F8A1D61B-DBF2-477D...@microsoft.com...

MilanvdM

unread,
Sep 30, 2008, 10:21:01 AM9/30/08
to
Thanks for you answers, Paul. In the mean time, we've succeeded in loading a
local server in dllhost.exe. Now we're focussing on loading the server from a
remote client. Now we are focussing on setting user properties for launching
the server remotely. If there's someone who knows how to do this, please
respond. Thanks.

Paul G. Tobey [eMVP]

unread,
Sep 30, 2008, 11:56:43 AM9/30/08
to
I think it will help if you describe in detail what you mean by that. For
example, on which end do you want to set the properties?

Paul T.

"MilanvdM" <Mila...@discussions.microsoft.com> wrote in message

news:F6D968BA-7252-4D3B...@microsoft.com...

0 new messages