r15776: Don't generate ref pointers in Samba4-generated code. There is no point
[Samba/aatanasov.git] / source / librpc / idl / oxidresolver.idl
blob835b848a4522ba90ca1f8bed7fd1de70dbceb378
1 /**
2 DCOM interfaces
3 http://www.grimes.demon.co.uk/DCOM/DCOMSpec.htm
4 */
6 /*
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
10 (used by DCOM)
14 uuid("99fcfec4-5260-101b-bbcb-00aa0021347a"),
15 helpstring("Object Exporter ID Resolver"),
16 endpoint("ncacn_np:[\\pipe\\epmapper]", "ncacn_ip_tcp:[135]", "ncalrpc:"),
17 pointer_default(unique),
18 pointer_default_top(unique),
19 depends(dcom, orpc),
20 keepref
22 interface IOXIDResolver
24 #define OXID hyper
25 #define SETID hyper
26 #define IPID GUID
27 #define OID GUID
29 /* Method to get the protocol sequences, string bindings */
30 /* and machine id for an object server given its OXID. */
32 [idempotent] WERROR ResolveOxid (
33 [in] OXID pOxid,
34 [in] uint16 cRequestedProtseqs,
35 [in, size_is(cRequestedProtseqs)] uint16 arRequestedProtseqs[],
36 [out] DUALSTRINGARRAY *ppdsaOxidBindings,
37 [out] IPID pipidRemUnknown,
38 [out] uint32 pAuthnHint
41 /* Simple ping is used to ping a Set. Client machines use this */
42 /* to inform the object exporter that it is still using the */
43 /* members of the set. */
44 /* Returns S_TRUE if the SetId is known by the object exporter, */
45 /* S_FALSE if not. */
46 [idempotent] WERROR SimplePing (
47 [in] SETID *SetId /* Must not be zero */
50 /* Complex ping is used to create sets of OIDs to ping. The */
51 /* whole set can subsequently be pinged using SimplePing, */
52 /* thus reducing network traffic. */
53 [idempotent] WERROR ComplexPing (
54 [in] SETID *SetId, /* In of 0 on first call for new set. */
55 [out] SETID SetId,
56 [in] uint16 SequenceNum,
57 [in] uint16 cAddToSet,
58 [in] uint16 cDelFromSet,
59 /* add these OIDs to the set */
60 [in, size_is(cAddToSet)] OID AddToSet[],
61 /*remove these OIDs from the set */
62 [in, size_is(cDelFromSet)] OID DelFromSet[],
63 [out] uint16 PingBackoffFactor/* 2^factor = multipler */
66 /* In some cases the client maybe unsure that a particular */
67 /* binding will reach the server. (For example, when the oxid */
68 /* bindings have more then one TCP/IP binding) This call */
69 /* can be used to validate the binding */
70 /* from the client. */
71 [idempotent] WERROR ServerAlive ();
73 /* Method to get the protocol sequences, string bindings, */
74 /* RemoteUnknown IPID and COM version for an object server */
75 /* given its OXID. Supported by DCOM */
76 /* version 5.2 and above. Looks like that means
77 * Windows 2003/XP and above */
78 [idempotent] WERROR ResolveOxid2 (
79 [in] OXID pOxid,
80 [in] uint16 cRequestedProtseqs,
81 [in, size_is(cRequestedProtseqs)] uint16 arRequestedProtseqs[],
82 [out] DUALSTRINGARRAY *pdsaOxidBindings,
83 [out] IPID ipidRemUnknown,
84 [out] uint32 AuthnHint,
85 [out] COMVERSION ComVersion
87 typedef struct {
88 COMVERSION version;
89 uint32 unknown1;
90 } COMINFO;
92 [idempotent] WERROR ServerAlive2 (
93 [out] COMINFO info,
94 [out] DUALSTRINGARRAY dualstring,
95 [out] uint8 unknown2[3]);