source: trunk/server/librpc/idl/oxidresolver.idl@ 1010

Last change on this file since 1010 was 414, checked in by Herwig Bauernfeind, 16 years ago

Samba 3.5.0: Initial import

File size: 3.0 KB
Line 
1/**
2 DCOM interfaces
3 http://www.grimes.demon.co.uk/DCOM/DCOMSpec.htm
4 */
5
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
9
10 (used by DCOM)
11 */
12
13import "misc.idl", "orpc.idl";
14
15[
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)
20]
21interface IOXIDResolver
22{
23#define OXID hyper
24#define SETID hyper
25#define IPID GUID
26#define OID GUID
27
28 /* Method to get the protocol sequences, string bindings */
29 /* and machine id for an object server given its OXID. */
30
31 [idempotent] WERROR ResolveOxid (
32 [in] OXID pOxid,
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
38 );
39
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, */
44 /* S_FALSE if not. */
45 [idempotent] WERROR SimplePing (
46 [in] SETID *SetId /* Must not be zero */
47 );
48
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 */
62 );
63
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 ();
70
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 (
77 [in] OXID pOxid,
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
84 );
85 typedef struct {
86 COMVERSION version;
87 uint32 unknown1;
88 } COMINFO;
89
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);
96}
Note: See TracBrowser for help on using the repository browser.