summaryrefslogtreecommitdiff
path: root/source4/librpc/idl/winsif.idl
blob: af7f43dd543abf4e039a69c5ce40ed2af6662bd5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
#include "idl_types.h"

import "nbt.idl";

[
	uuid("45f52c28-7f9f-101a-b52b-08002b2efabe"),
	version(1.0),
	helpstring("WINS Administration Interface1"),
	pointer_default(unique)
] interface winsif
{
	/*****************/
	/* Function 0x00 */
	typedef struct {
		uint8 type;
		uint32 length;
		ipv4address addr;
	} winsif_Address;

	typedef enum {
		WINSIF_ACTION_INSERT	= 0x0000,
		WINSIF_ACTION_DELETE	= 0x0001,
		WINSIF_ACTION_RELEASE	= 0x0002,
		WINSIF_ACTION_MODIFY	= 0x0003,
		WINSIF_ACTION_QUERY	= 0x0004
	} winsif_Action;

	typedef enum {
		WINSIF_RECORD_UNIQUE_NAME	= 0x0000,
		WINSIF_RECORD_GROUP_NAME	= 0x0001,
		WINSIF_RECORD_SGROUP_NAME	= 0x0002,
		WINSIF_RECORD_MHOMED_NAME	= 0x0003
	} winsif_RecordType;

	typedef [enum8bit] enum {
		WINSIF_NODE_B	= 0x00,
		WINSIF_NODE_P	= 0x01,
		WINSIF_NODE_H	= 0x03
	} winsif_NodeType;

	typedef [v1_enum] enum {
		WINSIF_RECORD_ACTIVE	= 0x00000000,
		WINSIF_RECORD_RELEASED	= 0x00000001,
		WINSIF_RECORD_TOMBSTONE	= 0x00000002,
		WINSIF_RECORD_DELETED	= 0x00000003
	} winsif_RecordState;

	typedef struct {
		winsif_Action cmd;
		wrepl_nbt_name *name;
		[value(name?16:0)] uint32 name_len;
		winsif_RecordType record_type;
		uint32 num_of_addresses;
		[size_is(num_of_addresses)] winsif_Address *addresses;
		winsif_Address address;
		hyper version_number;
		winsif_NodeType node_type;
		ipv4address owner_address;
		winsif_RecordState record_state;
		boolean32 is_static;
		time_t expire_time;
	} winsif_RecordAction;

	WERROR winsif_WinsRecordAction(
		[in,out,ref] winsif_RecordAction **record_action
	);

	/*****************/
	/* Function 0x01 */
	void WinsStatus();

	/*****************/
	/* Function 0x02 */
	void WinsTrigger();

	/*****************/
	/* Function 0x03 */
	void WinsDoStaticInit();

	/*****************/
	/* Function 0x04 */
	void WinsDoScavenging();

	/*****************/
	/* Function 0x05 */
	void WinsGetDbRecs();

	/*****************/
	/* Function 0x06 */
	void WinsTerm();

	/*****************/
	/* Function 0x07 */
	void WinsBackup();

	/*****************/
	/* Function 0x08 */
	void WinsDelDbRecs();

	/*****************/
	/* Function 0x09 */
	void WinsPullRange();

	/*****************/
	/* Function 0x0A */
	void WinsSetPriorityClass();

	/*****************/
	/* Function 0x0B */
	void WinsResetCounters();

	/*****************/
	/* Function 0x0C */
	void WinsWorkerThreadUpdate();

	/*****************/
	/* Function 0x0D */
	void WinsGetNameAndAdd();

	/*****************/
	/* Function 0x0E */
	void WinsGetBrowserNames_Old();

	/*****************/
	/* Function 0x0F */
	void WinsDeleteWins();

	/*****************/
	/* Function 0x10 */
	void WinsSetFlags();

	/*****************/
	/* Function 0x11 */
	void WinsGetBrowserNames();


	/*****************/
	/* Function 0x12 */
	void WinsGetDbRecsByName();

	/*****************/
	/* Function 0x13 */
	void WinsStatusNew();

	/*****************/
	/* Function 0x14 */
	void WinsStatusWHdl();

	/*****************/
	/* Function 0x15 */
	void WinsDoScanvenging2();
}