diff options
-rw-r--r-- | source3/aparser/srvsvc2.struct | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/source3/aparser/srvsvc2.struct b/source3/aparser/srvsvc2.struct new file mode 100644 index 0000000000..df79ca9eb3 --- /dev/null +++ b/source3/aparser/srvsvc2.struct @@ -0,0 +1,78 @@ +module srvsvc + +#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 struct _CHARDEV_INFO { + DWORD dwLevel; + union ctr[dwLevel] { + 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]; + } CHARDEV_ENUM_0; + + typedef struct _CHARDEV_ENUM_1 { + DWORD dwEntries; + CHARDEV_INFO_1 ci1[dwEntries]; + } CHARDEV_ENUM_1; + + typedef struct _CHARDEV_ENUM { + DWORD dwLevel; + union ctr[dwLevel] { + case 0 CHARDEV_ENUM_0 *ce0; + case 1 CHARDEV_ENUM_1 *ce1; + } + } 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 +# ); + |