6 uuid("ccd8c074-d0e5-4a40-92b4-d074faa6ba28"),
8 pointer_default(unique),
9 helpstring("SMB Witness Service"),
10 endpoint("ncacn_ip_tcp:")
14 typedef [v1_enum] enum {
15 WITNESS_V1
= 0x00010001,
16 WITNESS_V2
= 0x00020000
22 typedef [enum16bit
] enum {
23 WITNESS_STATE_UNKNOWN
= 0x00,
24 WITNESS_STATE_AVAILABLE
= 0x01,
25 WITNESS_STATE_UNAVAILABLE
= 0xff
26 } witness_interfaceInfo_state
;
28 typedef [bitmap32bit
] bitmap
{
29 WITNESS_INFO_IPv4_VALID
= 0x01,
30 WITNESS_INFO_IPv6_VALID
= 0x02,
31 WITNESS_INFO_WITNESS_IF
= 0x04
32 } witness_interfaceInfo_flags
;
35 [charset
(UTF16
),to_null
] uint16 group_name
[260];
36 witness_version
version;
37 witness_interfaceInfo_state state
;
38 [flag
(NDR_BIG_ENDIAN
)] ipv4address ipv4
;
39 [flag
(NDR_BIG_ENDIAN
)] ipv6address ipv6
;
40 witness_interfaceInfo_flags flags
;
41 } witness_interfaceInfo
;
44 uint32 num_interfaces
;
45 [size_is(num_interfaces
)] witness_interfaceInfo
*interfaces
;
46 } witness_interfaceList
;
48 WERROR witness_GetInterfaceList
(
49 [out] witness_interfaceList
**interface_list
55 WERROR witness_Register
(
56 [out,ref] policy_handle
*context_handle,
57 [in] witness_version
version,
58 [in,unique,string,charset
(UTF16
)] uint16
*net_name
,
59 [in,unique,string,charset
(UTF16
)] uint16
*ip_address
,
60 [in,unique,string,charset
(UTF16
)] uint16
*client_computer_name
66 WERROR witness_UnRegister
(
67 [in] policy_handle
context_handle
73 typedef [v1_enum] enum {
74 WITNESS_NOTIFY_RESOURCE_CHANGE
= 1,
75 WITNESS_NOTIFY_CLIENT_MOVE
= 2,
76 WITNESS_NOTIFY_SHARE_MOVE
= 3,
77 WITNESS_NOTIFY_IP_CHANGE
= 4
78 } witness_notifyResponse_type
;
81 witness_notifyResponse_type message_type
;
84 [size_is(length
)] uint8
*message_buffer
;
85 } witness_notifyResponse
;
87 WERROR witness_AsyncNotify
(
88 [in] policy_handle
context_handle,
89 [out] witness_notifyResponse
**response
95 typedef [bitmap32bit
] bitmap
{
96 WITNESS_REGISTER_NONE
= 0x00,
97 WITNESS_REGISTER_IP_NOTIFICATION
= 0x01
98 } witness_RegisterEx_flags
;
100 WERROR witness_RegisterEx
(
101 [out,ref] policy_handle
*context_handle,
102 [in] witness_version
version,
103 [in,unique,string,charset
(UTF16
)] uint16
*net_name
,
104 [in,unique,string,charset
(UTF16
)] uint16
*share_name
,
105 [in,unique,string,charset
(UTF16
)] uint16
*ip_address
,
106 [in,unique,string,charset
(UTF16
)] uint16
*client_computer_name
,
107 [in] witness_RegisterEx_flags flags
,