summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source3/aparser/srvsvc2.struct78
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
+# );
+