module srvsvc test SRV_R_NET_SERVER_INFO struct UNISTR2 { uint32 max_len; uint32 undoc; uint32 str_len; uint16 buffer[str_len]; }; struct LPWSTR { UNISTR2 *str; }; /* 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; uint32 status1; uint32 status2; }; /* 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 { uint32 level; union info[level] { case 100 SERVER_INFO_100 *sv100; case 101 SERVER_INFO_101 *sv101; case 102 SERVER_INFO_102 *sv102; } .trailer; uint32 status; };