1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-24 21:34:56 +03:00
samba-mirror/source/aparser/srvsvc.struct
Andrew Tridgell ab0beaf357 - added typedefs
- added parse error checking
- made parser more flexible
0001-01-01 00:00:00 +00:00

185 lines
3.4 KiB
Plaintext

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;
};