WITNESS_RESOURCE_STATE_UNAVAILABLE = 0xff
} witness_ResourceChange_type;
-
- typedef [flag(NDR_NOALIGN|NDR_LITTLE_ENDIAN)] struct {
- uint32 length;
+ typedef [flag(NDR_NOALIGN|NDR_LITTLE_ENDIAN),gensize,public] struct {
+ [value(ndr_size_witness_ResourceChange(r,ndr->flags))] uint32 length;
witness_ResourceChange_type type;
- [charset(UTF16)] nstring name;
+ nstring name;
} witness_ResourceChange;
typedef [bitmap32bit] bitmap {
WITNESS_IPADDR_OFFLINE = 0x10
} witness_IPaddrInfo_flags;
- typedef [flag(NDR_NOALIGN|NDR_LITTLE_ENDIAN)] struct {
+ typedef [flag(NDR_NOALIGN|NDR_LITTLE_ENDIAN),gensize] struct {
witness_IPaddrInfo_flags flags;
ipv4address ipv4;
ipv6address ipv6;
} witness_IPaddrInfo;
typedef [flag(NDR_NOALIGN|NDR_LITTLE_ENDIAN)] struct {
- //??? [value(sizeof(witness_notify_IPaddrList))]
- uint32 length;
+ [value(r->num*ndr_size_witness_IPaddrInfo(r->addr, ndr->flags))] uint32 length;
[value(0)] uint32 reserved;
uint32 num;
witness_IPaddrInfo addr[num];
} witness_IPaddrInfoList;
- typedef [switch_type(witness_notifyResponse_type),nodiscriminant] union {
+ typedef [switch_type(witness_notifyResponse_type),nodiscriminant,
+ flag(NDR_NOALIGN|NDR_LITTLE_ENDIAN)]
+ union {
[case(WITNESS_NOTIFY_RESOURCE_CHANGE)] witness_ResourceChange resource_change;
[case(WITNESS_NOTIFY_CLIENT_MOVE)] witness_IPaddrInfoList client_move;
[case(WITNESS_NOTIFY_SHARE_MOVE)] witness_IPaddrInfoList share_move;
// ???[value(ndr_size_witness_notifyResponse(messages,ndr->flags))]
uint32 length;
uint32 num;
- [switch_is(type), size_is(num)] witness_notifyResponse_message messages[*];
+ [switch_is(type), size_is(num)] witness_notifyResponse_message *messages;
} witness_notifyResponse;
WERROR witness_AsyncNotify(