3
http://www.grimes.demon.co.uk/DCOM/DCOMSpec.htm
7
The OXID Resolver can turn a OXID (Object Exporter ID) into a
8
RPC binding string that can be used to contact an object
13
import "misc.idl", "orpc.idl";
16
uuid("99fcfec4-5260-101b-bbcb-00aa0021347a"),
17
helpstring("Object Exporter ID Resolver"),
18
endpoint("ncacn_np:[\\pipe\\epmapper]", "ncacn_ip_tcp:[135]", "ncalrpc:"),
19
pointer_default(unique)
21
interface IOXIDResolver
28
/* Method to get the protocol sequences, string bindings */
29
/* and machine id for an object server given its OXID. */
31
[idempotent] WERROR ResolveOxid (
33
[in] uint16 cRequestedProtseqs,
34
[in, size_is(cRequestedProtseqs)] uint16 arRequestedProtseqs[],
35
[out] DUALSTRINGARRAY **ppdsaOxidBindings,
36
[out,ref] IPID *pipidRemUnknown,
37
[out,ref] uint32 *pAuthnHint
40
/* Simple ping is used to ping a Set. Client machines use this */
41
/* to inform the object exporter that it is still using the */
42
/* members of the set. */
43
/* Returns S_TRUE if the SetId is known by the object exporter, */
45
[idempotent] WERROR SimplePing (
46
[in] SETID *SetId /* Must not be zero */
49
/* Complex ping is used to create sets of OIDs to ping. The */
50
/* whole set can subsequently be pinged using SimplePing, */
51
/* thus reducing network traffic. */
52
[idempotent] WERROR ComplexPing (
53
[in,out,ref] SETID *SetId, /* In of 0 on first call for new set. */
54
[in] uint16 SequenceNum,
55
[in] uint16 cAddToSet,
56
[in] uint16 cDelFromSet,
57
/* add these OIDs to the set */
58
[in, size_is(cAddToSet)] OID AddToSet[],
59
/*remove these OIDs from the set */
60
[in, size_is(cDelFromSet)] OID DelFromSet[],
61
[out,ref] uint16 *PingBackoffFactor/* 2^factor = multipler */
64
/* In some cases the client maybe unsure that a particular */
65
/* binding will reach the server. (For example, when the oxid */
66
/* bindings have more than one TCP/IP binding) This call */
67
/* can be used to validate the binding */
68
/* from the client. */
69
[idempotent] WERROR ServerAlive ();
71
/* Method to get the protocol sequences, string bindings, */
72
/* RemoteUnknown IPID and COM version for an object server */
73
/* given its OXID. Supported by DCOM */
74
/* version 5.2 and above. Looks like that means
75
* Windows 2003/XP and above */
76
[idempotent] WERROR ResolveOxid2 (
78
[in] uint16 cRequestedProtseqs,
79
[in, size_is(cRequestedProtseqs)] uint16 arRequestedProtseqs[],
80
[out] DUALSTRINGARRAY **pdsaOxidBindings,
81
[out,ref] IPID *ipidRemUnknown,
82
[out,ref] uint32 *AuthnHint,
83
[out,ref] COMVERSION *ComVersion
90
[idempotent] WERROR ServerAlive2 (
91
[out,ref] COMINFO *info,
92
[out,ref] DUALSTRINGARRAY *dualstring,
93
[out,ref] uint8 *unknown2,
94
[out,ref] uint8 *unknown3,
95
[out,ref] uint8 *unknown4);