diff options
Diffstat (limited to 'source3/aparser/srvsvc.struct')
-rw-r--r-- | source3/aparser/srvsvc.struct | 82 |
1 files changed, 67 insertions, 15 deletions
diff --git a/source3/aparser/srvsvc.struct b/source3/aparser/srvsvc.struct index 44d88944cb..f8dd94a2e6 100644 --- a/source3/aparser/srvsvc.struct +++ b/source3/aparser/srvsvc.struct @@ -1,5 +1,16 @@ module srvsvc +test SRV_R_NET_SHARE_ENUM test SRV_R_NET_SERVER_INFO +test SRV_Q_NET_SERVER_INFO + +#define SRV_NETCONNENUM 0x08 +#define SRV_NETFILEENUM 0x09 +#define SRV_NETSESSENUM 0x0c +#define SRV_NETSHAREENUM 0x0f +#define SRV_NET_SHARE_GET_INFO 0x10 +#define SRV_NET_SRV_GET_INFO 0x15 +#define SRV_NET_SRV_SET_INFO 0x16 +#define SRV_NET_REMOTE_TOD 0x1c struct UNISTR2 { uint32 max_len; @@ -12,6 +23,40 @@ struct LPWSTR { UNISTR2 *str; }; +struct ENUM_HND { + uint32 *handle; /* enumeration handle */ +}; + +/* function 8 */ +struct CONN_INFO_0 { + uint32 id; /* connection id. */ +}; + +struct CONN_INFO_1 { + uint32 id; + uint32 type; + uint32 num_opens; + uint32 num_users; + uint32 open_time; + LPWSTR usr_name; + LPWSTR net_name; +}; + +struct SRV_R_NET_CONN_ENUM { + uint32 level; + uint32 level2; + uint32 num_entries; + union *info[level] { + case 0 CONN_INFO_0 info0[num_entries]; + case 1 CONN_INFO_1 info1[num_entries]; + } + .trailer; + uint32 count; + ENUM_HND handle; + uint32 status1; + uint32 status2; +}; + /* function 15 */ struct SRV_SHARE_INFO_1 { LPWSTR uni_netname; @@ -63,28 +108,35 @@ struct SERVER_INFO_101 { }; struct SERVER_INFO_102 { - uint32 dwPlatformID; + uint32 dwPlatformID; LPWSTR pszName; - uint32 dwVerMajor; - uint32 dwVerMinor; - uint32 dwType; + uint32 dwVerMajor; + uint32 dwVerMinor; + uint32 dwType; LPWSTR pszComment; - uint32 dwUsers; - uint32 lDisc; - uint32 bHidden; - uint32 dwAnnounce; - uint32 dwAnnDelta; - uint32 dwLicenses; + uint32 dwUsers; + uint32 lDisc; + uint32 bHidden; + uint32 dwAnnounce; + uint32 dwAnnDelta; + uint32 dwLicenses; LPWSTR pszUserPath; }; struct SRV_R_NET_SERVER_INFO { + .trailer; uint32 level; - union info[level] { - case 100 SERVER_INFO_100 *sv100; - case 101 SERVER_INFO_101 *sv101; - case 102 SERVER_INFO_102 *sv102; + union *info[level] { + case 100 SERVER_INFO_100 sv100; + case 101 SERVER_INFO_101 sv101; + case 102 SERVER_INFO_102 sv102; } - .trailer; uint32 status; }; + +struct SRV_Q_NET_SERVER_INFO { + .trailer; + LPWSTR server; + uint32 level; +}; + |