mirror of
https://github.com/samba-team/samba.git
synced 2024-12-27 03:21:53 +03:00
ba2f726efd
- added parse error checking
- made parser more flexible
(This used to be commit ab0beaf357
)
185 lines
3.4 KiB
Plaintext
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;
|
|
};
|
|
|