diff options
Diffstat (limited to 'source3/aparser/srvsvc2.struct')
-rw-r--r-- | source3/aparser/srvsvc2.struct | 655 |
1 files changed, 655 insertions, 0 deletions
diff --git a/source3/aparser/srvsvc2.struct b/source3/aparser/srvsvc2.struct new file mode 100644 index 0000000000..362d121e37 --- /dev/null +++ b/source3/aparser/srvsvc2.struct @@ -0,0 +1,655 @@ +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 + ); + |