1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-29 11:21:54 +03:00
samba-mirror/source/aparser/srvsvc2.struct
Andrew Tridgell c7829fa0d8 started adding support for relative, plus options for autoalignment
so the same parser generator can be uses for cifs and rpc
0001-01-01 00:00:00 +00:00

656 lines
18 KiB
Plaintext

module srvsvc
option autoalign True
option relative False
option recurse True
option foo blah
#define BOOL uint32
#define LONG uint32
#define DWORD uint32
#define STATUS uint32
typedef struct _UNISTR2 {
uint32 max_len;
uint32 undoc;
uint32 str_len;
wchar buffer[str_len];
} UNISTR2;
struct LPWSTR {
UNISTR2 *str;
};
/* -- CHARACTER DEVICE INFORMATION -- */
typedef struct _CHARDEV_INFO_0 {
LPWSTR pszName;
} CHARDEV_INFO_0;
typedef struct _CHARDEV_INFO_1 {
LPWSTR pszName;
DWORD dwStatus;
LPWSTR pszUser;
DWORD dwTime;
} CHARDEV_INFO_1;
typedef union _CHARDEV_INFO switch (DWORD dwLevel) ctr {
case 1: CHARDEV_INFO_0 *ci0;
case 2: CHARDEV_INFO_1 *ci1;
} CHARDEV_INFO;
typedef struct _CHARDEV_ENUM_0 {
DWORD dwEntries;
[size_is(dwEntries)] CHARDEV_INFO_0 *ci0;
} CHARDEV_ENUM_0;
typedef struct _CHARDEV_ENUM_1 {
DWORD dwEntries;
[size_is(dwEntries)] CHARDEV_INFO_1 *ci1;
} CHARDEV_ENUM_1;
typedef struct _CHARDEV_ENUM {
DWORD dwLevel;
[switch_is(dwLevel)] union {
[case(0)] CHARDEV_ENUM_0 *ce0;
[case(1)] CHARDEV_ENUM_1 *ce1;
} ctr;
} CHARDEV_ENUM;
STATUS NetrCharDevEnum( /* Function 0x00 */
[in,unique] LPWSTR pszServer,
[in,out] CHARDEV_ENUM* pCharDevEnum,
[in] DWORD dwMaxLen,
[out] DWORD* dwEntries,
[in,out] DWORD* hResume
);
STATUS NetrCharDevGetInfo( /* Function 0x01 */
[in,unique] LPWSTR pszServer,
[in,ref] LPWSTR pszDevice,
[in] DWORD dwLevel,
[out] CHARDEV_INFO* pCharDevInfo
);
STATUS NetrCharDevControl( /* Function 0x02 */
[in,unique] LPWSTR pszServer,
[in,ref] LPWSTR pszDevice,
[in] DWORD dwOpcode
);
/* -- CHARACTER DEVICE QUEUE INFORMATION -- */
typedef struct _CHARDEVQ_INFO_0 {
LPWSTR pszName;
} CHARDEVQ_INFO_0;
typedef struct _CHARDEVQ_INFO_1 {
LPWSTR pszName;
DWORD dwPriority;
LPWSTR pszDevices;
DWORD dwNumUsers;
DWORD dwNumAhead;
} CHARDEVQ_INFO_1;
typedef union _CHARDEVQ_INFO switch (DWORD dwLevel) ctr {
case 1: CHARDEVQ_INFO_0 *ci0;
case 2: CHARDEVQ_INFO_1 *ci1;
} CHARDEVQ_INFO;
typedef struct _CHARDEVQ_ENUM_0 {
DWORD dwEntries;
[size_is(dwEntries)] CHARDEVQ_INFO_0 *ci0;
} CHARDEVQ_ENUM_0;
typedef struct _CHARDEVQ_ENUM_1 {
DWORD dwEntries;
[size_is(dwEntries)] CHARDEVQ_INFO_1 *ci1;
} CHARDEVQ_ENUM_1;
typedef struct _CHARDEVQ_ENUM {
DWORD dwLevel;
[switch_is(dwLevel)] union {
[case(0)] CHARDEVQ_ENUM_0 *ce0;
[case(1)] CHARDEVQ_ENUM_1 *ce1;
} ctr;
} CHARDEVQ_ENUM;
STATUS NetrCharDevQEnum( /* Function 0x03 */
[in,unique] LPWSTR pszServer,
[in,unique] LPWSTR pszUser,
[in,out] CHARDEVQ_ENUM* pCharDevQEnum,
[in] DWORD dwMaxLen,
[out] DWORD* dwEntries,
[in,out] DWORD* hResume
);
STATUS NetrCharDevQGetInfo( /* Function 0x04 */
[in,unique] LPWSTR pszServer,
[in,ref] LPWSTR pszQueue,
[in,ref] LPWSTR pszUser,
[in] DWORD dwLevel,
[out] CHARDEVQ_INFO* pCharDevQInfo
);
STATUS NetrCharDevQSetInfo( /* Function 0x05 */
[in,unique] LPWSTR pszServer,
[in,ref] LPWSTR pszQueue,
[in] DWORD dwLevel,
[in] CHARDEVQ_INFO* pCharDevQInfo,
[in,out] DWORD* dwParmError
);
STATUS NetrCharDevQPurge( /* Function 0x06 */
[in,unique] LPWSTR pszServer,
[in,ref] LPWSTR pszQueue
);
STATUS NetrCharDevQPurgeSelf( /* Function 0x07 */
[in,unique] LPWSTR pszServer,
[in,ref] LPWSTR pszQueue,
[in,ref] LPWSTR pszComputer
);
/* -- CONNECTION INFORMATION -- */
typedef struct _CONNECTION_INFO_0 {
DWORD dwConnID;
} CONNECTION_INFO_0;
typedef struct _CONNECTION_INFO_1 {
DWORD dwConnID;
DWORD dwType;
DWORD dwNumOpens;
DWORD dwNumUsers;
DWORD dwTime;
LPWSTR pszUser;
LPWSTR pszShare;
} CONNECTION_INFO_1;
typedef struct _CONNECTION_ENUM_0 {
DWORD dwEntries;
[size_is(dwEntries)] CONNECTION_INFO_0 *ci0;
} CONNECTION_ENUM_0;
typedef struct _CONNECTION_ENUM_1 {
DWORD dwEntries;
[size_is(dwEntries)] CONNECTION_INFO_1 *ci1;
} CONNECTION_ENUM_1;
typedef struct _CONNECTION_ENUM {
DWORD dwLevel;
[switch_is(dwLevel)] union {
[case(0)] CONNECTION_ENUM_0 *ce0;
[case(1)] CONNECTION_ENUM_1 *ce1;
} ctr;
} CONNECTION_ENUM;
STATUS NetrConnectionEnum( /* Function 0x08 */
[in,unique] LPWSTR pszServer,
[in,unique] LPWSTR pszClient,
[in,out] CONNECTION_ENUM* pConnectionEnum,
[in] DWORD dwMaxLen,
[out] DWORD* dwEntries,
[in,out] DWORD* hResume
);
/* -- FILE INFORMATION -- */
typedef struct _FILE_INFO_2 {
DWORD dwFileID;
} FILE_INFO_2;
typedef struct _FILE_INFO_3 {
DWORD dwFileID;
DWORD dwPermissions;
DWORD dwNumLocks;
LPWSTR pszPath;
LPWSTR pszUser;
} FILE_INFO_3;
typedef union _FILE_INFO switch (DWORD dwLevel) ctr {
case 2: FILE_INFO_2 *fi2;
case 3: FILE_INFO_3 *fi3;
} FILE_INFO;
typedef struct _FILE_ENUM_2 {
DWORD dwEntries;
[size_is(dwEntries)] FILE_INFO_2 *fi2;
} FILE_ENUM_2;
typedef struct _FILE_ENUM_3 {
DWORD dwEntries;
[size_is(dwEntries)] FILE_INFO_3 *fi3;
} FILE_ENUM_3;
typedef struct _FILE_ENUM {
DWORD dwLevel;
[switch_is(dwLevel)] union {
[case(2)] FILE_ENUM_2 *fe2;
[case(3)] FILE_ENUM_3 *fe3;
} ctr;
} FILE_ENUM;
STATUS NetrFileEnum( /* Function 0x09 */
[in,unique] LPWSTR pszServer,
[in,unique] LPWSTR pszBasePath,
[in,unique] LPWSTR pszUser,
[in,out] FILE_ENUM* pFileEnum,
[in] DWORD dwMaxLen,
[out] DWORD* dwEntries,
[in,out] DWORD* hResume
);
STATUS NetrFileGetInfo( /* Function 0x0A */
[in,unique] LPWSTR pszServer,
[in] DWORD dwFileID,
[in] DWORD dwLevel,
[out] FILE_INFO* pFileInfo
);
STATUS NetrFileClose( /* Function 0x0B */
[in,unique] LPWSTR pszServer,
[in] DWORD dwFileID
);
/* -- SESSION INFORMATION -- */
typedef struct _SESSION_INFO_0 {
LPWSTR pszClient;
} SESSION_INFO_0;
typedef struct _SESSION_INFO_1 {
LPWSTR pszClient;
LPWSTR pszUser;
DWORD dwOpens;
DWORD dwTime;
DWORD dwIdleTime;
DWORD dwUserFlags;
} SESSION_INFO_1;
typedef struct _SESSION_INFO_2 {
LPWSTR pszClient;
LPWSTR pszUser;
DWORD dwOpens;
DWORD dwTime;
DWORD dwIdleTime;
DWORD dwUserFlags;
LPWSTR pszClientType;
} SESSION_INFO_2;
typedef struct _SESSION_ENUM_0 {
DWORD dwEntries;
[size_is(dwEntries)] SESSION_INFO_0 *si0;
} SESSION_ENUM_0;
typedef struct _SESSION_ENUM_1 {
DWORD dwEntries;
[size_is(dwEntries)] SESSION_INFO_1 *si1;
} SESSION_ENUM_1;
typedef struct _SESSION_ENUM_2 {
DWORD dwEntries;
[size_is(dwEntries)] SESSION_INFO_2 *si2;
} SESSION_ENUM_2;
typedef struct _SESSION_ENUM {
DWORD dwLevel;
[switch_is(dwLevel)] union {
[case(0)] SESSION_ENUM_0 *se0;
[case(1)] SESSION_ENUM_1 *se1;
[case(2)] SESSION_ENUM_2 *se2;
} ctr;
} SESSION_ENUM;
STATUS NetrSessionEnum( /* Function 0x0C */
[in,unique] LPWSTR pszServer,
[in,unique] LPWSTR pszClient,
[in,unique] LPWSTR pszUser,
[in,out] SESSION_ENUM* pFileEnum,
[in] DWORD dwMaxLen,
[out] DWORD* dwEntries,
[in,out] DWORD* hResume
);
STATUS NetrSessionDel( /* Function 0x0D */
[in,unique] LPWSTR pszServer,
[in,ref] LPWSTR pszClient,
[in,ref] LPWSTR pszUser
);
/* -- SHARE INFORMATION -- */
typedef struct _SHARE_INFO_0 {
LPWSTR pszName;
} SHARE_INFO_0;
typedef struct _SHARE_INFO_1 {
LPWSTR pszName;
DWORD dwType;
LPWSTR pszComment;
} SHARE_INFO_1;
typedef struct _SHARE_INFO_2 {
LPWSTR pszName;
DWORD dwType;
LPWSTR pszComment;
DWORD dwPermissions;
DWORD dwMaxUses;
DWORD dwCurrentUses;
LPWSTR pszPath;
LPWSTR pszPasswd;
} SHARE_INFO_2;
typedef union _SHARE_INFO switch (DWORD dwLevel) ctr {
case 0: SHARE_INFO_0 *si0;
case 1: SHARE_INFO_1 *si1;
case 2: SHARE_INFO_2 *si2;
} SHARE_INFO;
typedef struct _SHARE_ENUM_0 {
DWORD dwEntries;
[size_is(dwEntries)] SHARE_INFO_0 *si0;
} SHARE_ENUM_0;
typedef struct _SHARE_ENUM_1 {
DWORD dwEntries;
[size_is(dwEntries)] SHARE_INFO_1 *si1;
} SHARE_ENUM_1;
typedef struct _SHARE_ENUM_2 {
DWORD dwEntries;
[size_is(dwEntries)] SHARE_INFO_2 *si2;
} SHARE_ENUM_2;
typedef struct _SHARE_ENUM {
DWORD dwLevel;
[switch_is(dwLevel)] union {
[case(0)] SHARE_ENUM_0 *se0;
[case(1)] SHARE_ENUM_1 *se1;
[case(2)] SHARE_ENUM_2 *se2;
} ctr;
} SHARE_ENUM;
STATUS NetrShareAdd( /* Function 0x0E */
[in,unique] LPWSTR pszServer,
[in] DWORD dwLevel,
[out] SHARE_INFO* pShareInfo,
[in,out] DWORD* dwParmError
);
STATUS NetrShareEnum( /* Function 0x0F */
[in,unique] LPWSTR pszServer,
[in,out] SHARE_ENUM* pShareEnum,
[in] DWORD dwMaxLen,
[out] DWORD* dwEntries,
[in,out] DWORD* hResume
);
STATUS NetrShareGetInfo( /* Function 0x10 */
[in,unique] LPWSTR pszServer,
[in,ref] LPWSTR pszShare,
[in] DWORD dwLevel,
[out] SHARE_INFO* pShareInfo
);
STATUS NetrShareSetInfo( /* Function 0x11 */
[in,unique] LPWSTR pszServer,
[in,ref] LPWSTR pszShare,
[in] DWORD dwLevel,
[in] SHARE_INFO* pShareInfo,
[in] DWORD dwReserved
);
STATUS NetrShareDel( /* Function 0x12 */
[in,unique] LPWSTR pszServer,
[in,ref] LPWSTR pszShare,
[in] DWORD dwReserved
);
STATUS NetrShareDelSticky( /* Function 0x13 */
[in,unique] LPWSTR pszServer,
[in,ref] LPWSTR pszShare,
[in] DWORD dwReserved
);
STATUS NetrShareCheck( /* Function 0x14 */
[in,unique] LPWSTR pszServer,
[in,ref] LPWSTR pszDevice,
[out] DWORD* dwType
);
/* --- SERVER INFORMATION --- */
typedef struct _SERVER_INFO_100 {
DWORD dwPlatformID;
LPWSTR pszName;
} SERVER_INFO_100;
typedef struct _SERVER_INFO_101 {
DWORD dwPlatformID;
LPWSTR pszName;
DWORD dwVerMajor;
DWORD dwVerMinor;
DWORD dwType;
LPWSTR pszComment;
} SERVER_INFO_101;
typedef struct _SERVER_INFO_102 {
DWORD dwPlatformID;
LPWSTR pszName;
DWORD dwVerMajor;
DWORD dwVerMinor;
DWORD dwType;
LPWSTR pszComment;
DWORD dwUsers;
LONG lDisc;
BOOL bHidden;
DWORD dwAnnounce;
DWORD dwAnnDelta;
DWORD dwLicenses;
LPWSTR pszUserPath;
} SERVER_INFO_102;
typedef union _SERVER_INFO switch (DWORD dwLevel) ctr {
case 100: SERVER_INFO_100 *sv100;
case 101: SERVER_INFO_101 *sv101;
case 102: SERVER_INFO_102 *sv102;
} SERVER_INFO;
STATUS NetrServerGetInfo( /* Function 0x15 */
[in,unique] LPWSTR pszServerName,
[in] DWORD dwLevel,
[out] SERVER_INFO* pServerInfo
);
STATUS NetrServerSetInfo( /* Function 0x16 */
[in,unique] LPWSTR pszServerName,
[in] DWORD dwLevel,
[in] SERVER_INFO* pServerInfo,
[in] DWORD dwReserved
);
typedef struct _DISK_INFO {
LPWSTR pszName;
} DISK_INFO;
typedef struct _DISK_ENUM {
DWORD dwEntries;
[size_is(dwEntries)] DISK_INFO *di;
} DISK_ENUM;
STATUS NetrServerDiskEnum( /* Function 0x17 */
[in,unique] LPWSTR pszServer,
[in] DWORD dwLevel,
[in,out] DISK_ENUM* pDiskEnum,
[in] DWORD dwMaxLen,
[out] DWORD* dwEntries,
[in,out] DWORD* hResume
);
typedef struct _STAT_SERVER {
DWORD dwStart;
DWORD dwFOpens;
DWORD dwDevOpens;
DWORD dwJobsQueued;
DWORD dwSOpens;
DWORD dwSTimedOut;
DWORD dwSErrors;
DWORD dwPWErrors;
DWORD dwPermErrors;
DWORD dwSysErrors;
DWORD dwBytesSentLow;
DWORD dwBytesSentHigh;
DWORD dwBytesRcvdLow;
DWORD dwBytesRcvdHigh;
DWORD dwAVResponse;
DWORD dwReqBufNeed;
DWORD dwBigBufNeed;
} STAT_SERVER;
STATUS NetrServerStatisticsGet( /* Function 0x18 */
[in,unique] LPWSTR pszServer,
[in] DWORD dwLevel,
[in] DWORD dwOptions,
[out] STAT_SERVER* pStatServer
);
typedef struct _TRANSPORT_INFO_0 {
LPWSTR pszName;
} TRANSPORT_INFO_0;
typedef union _TRANSPORT_INFO switch (DWORD dwLevel) ctr {
case 0: TRANSPORT_INFO_0 *ti0;
} TRANSPORT_INFO;
typedef struct _TRANSPORT_ENUM_0 {
DWORD dwEntries;
[size_is(dwEntries)] TRANSPORT_INFO_0 *ti0;
} TRANSPORT_ENUM_0;
typedef struct _TRANSPORT_ENUM {
DWORD dwLevel;
[switch_is(dwLevel)] union {
[case(0)] TRANSPORT_ENUM_0 *te0;
} ctr;
} TRANSPORT_ENUM;
STATUS NetrServerTransportAdd( /* Function 0x19 */
[in,unique] LPWSTR pszServer,
[in] DWORD dwLevel,
[out] TRANSPORT_INFO* pTransportInfo
);
STATUS NetrServerTransportEnum( /* Function 0x1a */
[in,unique] LPWSTR pszServer,
[in,out] TRANSPORT_ENUM* pTransportEnum,
[in] DWORD dwMaxLen,
[out] DWORD* dwEntries,
[in,out] DWORD* hResume
);
STATUS NetrServerTransportDel( /* Function 0x1b */
[in,unique] LPWSTR pszServer,
[in] DWORD dwLevel,
[out] TRANSPORT_INFO* pTransportInfo
);
typedef struct _TIME_OF_DAY {
DWORD dwElapsedTime;
DWORD dwMsecs;
DWORD dwHours;
DWORD dwMins;
DWORD dwSecs;
DWORD dwHunds;
LONG lTimeZone;
DWORD dwInterval;
DWORD dwDay;
DWORD dwMonth;
DWORD dwYear;
DWORD dwWeekday;
} TIME_OF_DAY;
STATUS NetrRemoteTOD( /* Function 0x1c */
[in,unique] LPWSTR pszServer,
[out] TIME_OF_DAY* pTOD
);
STATUS NetrServerSetServiceBits( /* Function 0x1d */
[in,unique] LPWSTR pszServer,
[in] DWORD hServiceStatus, /* ?? */
[in] DWORD dwServiceBits,
[in] BOOL bSetBitsOn,
[in] BOOL bUpdateImmediately
);
/* --- PATH INFORMATION --- */
STATUS NetprPathType( /* Function 0x1e */
void /* Not known */
);
STATUS NetprPathCanonicalize( /* Function 0x1f */
void /* Not known */
);
STATUS NetprPathCompare( /* Function 0x20 */
void /* Not known */
);
STATUS NetprNameValidate( /* Function 0x21 */
void /* Not known */
);
STATUS NetprNameCanonicalize( /* Function 0x22 */
void /* Not known */
);
STATUS NetprNameCompare( /* Function 0x23 */
void /* Not known */
);
/* --- LATER ADDITIONS --- */
STATUS NetrShareEnumSticky( /* Function 0x24 */
[in,unique] LPWSTR pszServer,
[in,out] SHARE_ENUM* pShareEnum,
[in] DWORD dwMaxLen,
[out] DWORD* dwEntries,
[in,out] DWORD* hResume
);
STATUS NetrShareDelStart( /* Function 0x25 */
[in,unique] LPWSTR pszServer,
[in,ref] LPWSTR pszShare,
[in] DWORD dwReserved /* ? */
);
STATUS NetrShareDelCommit( /* Function 0x26 */
[in,unique] LPWSTR pszServer
);
STATUS NetrpGetFileSecurity( /* Function 0x27 */
void /* Not known */
);
STATUS NetrpSetFileSecurity( /* Function 0x28 */
void /* Not known */
);
STATUS NetrServerTransportAddEx( /* Function 0x29 */
[in,unique] LPWSTR pszServer,
[in] DWORD dwLevel,
[out] TRANSPORT_INFO* pTransportInfo
);
STATUS NetrServerSetServiceBitsEx( /* Function 0x30 */
[in,unique] LPWSTR pszServer,
[in] DWORD hServiceStatus, /* ?? */
[in] DWORD dwServiceBits,
[in] BOOL bSetBitsOn,
[in] BOOL bUpdateImmediately
);