diff options
Diffstat (limited to 'source3/aparser/srvsvc2.struct')
-rw-r--r-- | source3/aparser/srvsvc2.struct | 631 |
1 files changed, 508 insertions, 123 deletions
diff --git a/source3/aparser/srvsvc2.struct b/source3/aparser/srvsvc2.struct index 8c7c2e4155..bc80d3bc05 100644 --- a/source3/aparser/srvsvc2.struct +++ b/source3/aparser/srvsvc2.struct @@ -1,9 +1,9 @@ module srvsvc -#define BOOL uint32; -#define LONG uint32; -#define DWORD uint32; -#define STATUS uint32; +#define BOOL uint32 +#define LONG uint32 +#define DWORD uint32 +#define STATUS uint32 typedef struct _UNISTR2 { uint32 max_len; @@ -16,6 +16,8 @@ struct LPWSTR { UNISTR2 *str; }; + + /* -- CHARACTER DEVICE INFORMATION -- */ typedef struct _CHARDEV_INFO_0 { @@ -29,64 +31,289 @@ struct LPWSTR { DWORD dwTime; } CHARDEV_INFO_1; - typedef struct _CHARDEV_INFO { - DWORD dwLevel; - union ctr[dwLevel] { - case 1 CHARDEV_INFO_0 *ci0; - case 2 CHARDEV_INFO_1 *ci1; - } + 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; - CHARDEV_INFO_0 ci0[dwEntries]; + [size_is(dwEntries)] CHARDEV_INFO_0 *ci0; } CHARDEV_ENUM_0; typedef struct _CHARDEV_ENUM_1 { DWORD dwEntries; - CHARDEV_INFO_1 ci1[dwEntries]; + [size_is(dwEntries)] CHARDEV_INFO_1 *ci1; } CHARDEV_ENUM_1; typedef struct _CHARDEV_ENUM { DWORD dwLevel; - union ctr[dwLevel] { - case 0 CHARDEV_ENUM_0 *ce0; - case 1 CHARDEV_ENUM_1 *ce1; - } + [switch_is(dwLevel)] union { + [case(0)] CHARDEV_ENUM_0 *ce0; + [case(1)] CHARDEV_ENUM_1 *ce1; + } ctr; } CHARDEV_ENUM; - struct Q_NetrCharDevEnum { - .trailer; - LPWSTR pszServer; - CHARDEV_ENUM *pCharDevEnum; - DWORD dwMaxLen; - DWORD *hResume; - }; + 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; - struct R_NetrCharDevEnum { - CHARDEV_ENUM *pCharDevEnum; - DWORD *dwEntries; - DWORD *hResume; - .trailer; - STATUS status; - }; + 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; -# STATUS NetrCharDevGetInfo( /* Function 0x01 */ -# [in,unique] LPWSTR pszServer, -# [in,ref] LPWSTR pszDevice, -# [in] DWORD dwLevel, -# [out] CHARDEV_INFO* pCharDevInfo -# ); + 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; -# STATUS NetrCharDevControl( /* Function 0x02 */ -# [in,unique] LPWSTR pszServer, -# [in,ref] LPWSTR pszDevice, -# [in] DWORD dwOpcode -# ); + 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 -- */ @@ -111,58 +338,83 @@ struct LPWSTR { LPWSTR pszPasswd; } SHARE_INFO_2; - typedef struct _SHARE_INFO { - DWORD dwLevel; - union ctr[dwLevel] { - case 0 SHARE_INFO_0 *si0; - case 1 SHARE_INFO_1 *si1; - case 2 SHARE_INFO_2 *si2; - } + 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; - SHARE_INFO_0 si0[dwEntries]; + [size_is(dwEntries)] SHARE_INFO_0 *si0; } SHARE_ENUM_0; typedef struct _SHARE_ENUM_1 { DWORD dwEntries; - SHARE_INFO_1 si1[dwEntries]; + [size_is(dwEntries)] SHARE_INFO_1 *si1; } SHARE_ENUM_1; typedef struct _SHARE_ENUM_2 { DWORD dwEntries; - SHARE_INFO_2 si2[dwEntries]; + [size_is(dwEntries)] SHARE_INFO_2 *si2; } SHARE_ENUM_2; typedef struct _SHARE_ENUM { DWORD dwLevel; - union ctr[dwLevel] { - case 0 SHARE_ENUM_0 *se0; - case 1 SHARE_ENUM_1 *se1; - case 2 SHARE_ENUM_2 *se2; - } + [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; - struct Q_NetrShareEnum { - .trailer; - LPWSTR pszServer; - uint32 level; - SHARE_ENUM pShareEnum; - DWORD *hResume; - DWORD dwMaxLen; - DWORD dummy; - }; - - struct R_NetrShareEnum { - DWORD level; - SHARE_ENUM pShareEnum; - DWORD *dwEntries; - DWORD *hResume; - .trailer; - STATUS status; - }; - + 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 --- */ @@ -196,70 +448,203 @@ struct LPWSTR { LPWSTR pszUserPath; } SERVER_INFO_102; - typedef struct _SERVER_INFO { - DWORD dwLevel; - union ctr[dwLevel] { - case 100 SERVER_INFO_100 *sv100; - case 101 SERVER_INFO_101 *sv101; - case 102 SERVER_INFO_102 *sv102; - } + 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; - struct Q_NetrServerGetInfo { - .trailer; - LPWSTR pszServerName; - DWORD dwLevel; - }; + 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 + ); - struct R_NetrServerGetInfo { - SERVER_INFO pServerInfo; - .trailer; - STATUS status; - }; + 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 struct _TRANSPORT_INFO { - DWORD dwLevel; - union ctr[dwLevel] { - case 0 TRANSPORT_INFO_0 *ti0; - } + typedef union _TRANSPORT_INFO switch (DWORD dwLevel) ctr { + case 0: TRANSPORT_INFO_0 *ti0; } TRANSPORT_INFO; typedef struct _TRANSPORT_ENUM_0 { - DWORD level; - DWORD dwEntries; - TRANSPORT_INFO_0 ti0[dwEntries]; + DWORD dwEntries; + [size_is(dwEntries)] TRANSPORT_INFO_0 *ti0; } TRANSPORT_ENUM_0; typedef struct _TRANSPORT_ENUM { DWORD dwLevel; - DWORD dummy; - union ctr[dwLevel] { - case 0 TRANSPORT_ENUM_0 *te0; - } + [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 + ); - struct Q_NetrServerTransportEnum { - .trailer; - LPWSTR pszServer; - TRANSPORT_ENUM pTransportEnum; - DWORD dwMaxLen; - LPWSTR server2; - DWORD *hResume; - DWORD preferred_length; - STATUS *status; - }; - - struct R_NetrServerTransportEnum { - DWORD level; - TRANSPORT_ENUM pTransportEnum; - DWORD *dwEntries; - DWORD *hResume; - .trailer; - STATUS status; - }; |