diff options
Diffstat (limited to 'source3/aparser/srvsvc.struct')
-rw-r--r-- | source3/aparser/srvsvc.struct | 184 |
1 files changed, 184 insertions, 0 deletions
diff --git a/source3/aparser/srvsvc.struct b/source3/aparser/srvsvc.struct new file mode 100644 index 0000000000..aa40c8f15e --- /dev/null +++ b/source3/aparser/srvsvc.struct @@ -0,0 +1,184 @@ +module srvsvc + +typedef uint32 LONG; +typedef uint32 *ENUM_HND; + +typedef struct _UNISTR2 { + uint32 max_len; + uint32 undoc; + uint32 str_len; + wchar buffer[str_len]; +} UNISTR2; + +typedef UNISTR2 *LPWSTR; + +/* 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 CONN_ENUM_CTR { + uint32 level; + uint32 level2; + uint32 num_entries; + uint32 num_entries2; + union *info[level] { + case 0 CONN_INFO_0 info0[num_entries]; + case 1 CONN_INFO_1 info1[num_entries]; + } +}; + +struct SRV_R_NET_CONN_ENUM { + .trailer; + CONN_ENUM_CTR ctr; + uint32 num_entries; + ENUM_HND handle; + uint32 status2; +}; + +struct SRV_Q_NET_CONN_ENUM { + .trailer; + LPWSTR dest_srv; + LPWSTR qual_srv; + uint32 level; + uint32 level2; + CONN_ENUM_CTR *ctr; + uint32 max_len; + ENUM_HND handle; +}; + +/* function 9 */ +struct FILE_INFO_3 { + uint32 id; /* file index */ + uint32 perms; /* file permissions. don't know what format */ + uint32 num_locks; /* file locks */ + LPWSTR path_name; /* file name */ + LPWSTR user_name; /* file owner */ +}; + +struct SRV_FILE_INFO_CTR { + uint32 level; + uint32 num_entries; + uint32 dummy; + union *file[level] { + case 3 FILE_INFO_3 info3[num_entries]; + } +}; + +struct SRV_Q_NET_FILE_ENUM { + .trailer; + LPWSTR srv_name; + LPWSTR qual_name; + uint32 dummy; + uint32 level; + SRV_FILE_INFO_CTR ctr; + uint32 *status; + uint32 preferred_len; + ENUM_HND enum_hnd; +}; + + +struct SRV_R_NET_FILE_ENUM { + .trailer; + uint32 level; + uint32 dummy; + SRV_FILE_INFO_CTR *ctr; + uint32 total_entries; /* total number of files */ + ENUM_HND enum_hnd; + uint32 status; /* return status */ +}; + + +/* function 15 */ +struct SRV_SHARE_INFO_1 { + LPWSTR uni_netname; + uint32 type; + LPWSTR uni_remark; +}; + +struct SRV_SHARE_INFO_2 { + LPWSTR uni_netname; + uint32 type; + LPWSTR uni_remark; + uint32 perms; + uint32 max_uses; + uint32 num_uses; + LPWSTR path; + LPWSTR passwd; +}; + +struct SRV_R_NET_SHARE_ENUM { + uint32 level; + uint32 level2; + uint32 *ret_count; + uint32 num_entries; + union *info[level] { + case 1 SRV_SHARE_INFO_1 info1[num_entries]; + case 2 SRV_SHARE_INFO_2 info2[num_entries]; + } + .trailer; + uint32 count; + ENUM_HND handle; + uint32 status; +}; + + + +/* function 21 */ +struct SERVER_INFO_100 { + uint32 dwPlatformID; + LPWSTR pszName; +}; + +struct SERVER_INFO_101 { + uint32 dwPlatformID; + LPWSTR pszName; + uint32 dwVerMajor; + uint32 dwVerMinor; + uint32 dwType; + LPWSTR pszComment; +}; + +struct SERVER_INFO_102 { + uint32 dwPlatformID; + LPWSTR pszName; + uint32 dwVerMajor; + uint32 dwVerMinor; + uint32 dwType; + LPWSTR pszComment; + 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; + } + uint32 status; +}; + +struct SRV_Q_NET_SERVER_INFO { + .trailer; + LPWSTR server; + uint32 level; +}; + |