/* header auto-generated by pidl */

#ifndef _HEADER_netdfs
#define _HEADER_netdfs

struct dfs_Info0 {
	char _empty_;
};

struct dfs_Info1 {
	const char *path;/* [unique,charset(UTF16)] */
};

struct dfs_Info2 {
	const char *path;/* [unique,charset(UTF16)] */
	const char *comment;/* [unique,charset(UTF16)] */
	uint32_t state;
	uint32_t num_stores;
};

struct dfs_StorageInfo {
	uint32_t state;
	const char *server;/* [unique,charset(UTF16)] */
	const char *share;/* [unique,charset(UTF16)] */
};

struct dfs_Info3 {
	const char *path;/* [unique,charset(UTF16)] */
	const char *comment;/* [unique,charset(UTF16)] */
	uint32_t state;
	uint32_t num_stores;
	struct dfs_StorageInfo *stores;/* [unique,size_is(num_stores)] */
};

struct dfs_Info4 {
	const char *path;/* [unique,charset(UTF16)] */
	const char *comment;/* [unique,charset(UTF16)] */
	uint32_t state;
	uint32_t timeout;
	struct GUID guid;
	uint32_t num_stores;
	struct dfs_StorageInfo *stores;/* [unique,size_is(num_stores)] */
};

struct dfs_Info100 {
	const char *comment;/* [unique,charset(UTF16)] */
};

struct dfs_Info101 {
	uint32_t state;
};

struct dfs_Info102 {
	uint32_t timeout;
};

struct dfs_Info200 {
	const char *dom_root;/* [unique,charset(UTF16)] */
};

struct dfs_Info300 {
	uint32_t flags;
	const char *dom_root;/* [unique,charset(UTF16)] */
};

union dfs_Info {
	struct dfs_Info0 *info0;/* [unique,case(0)] */
	struct dfs_Info1 *info1;/* [unique,case] */
	struct dfs_Info2 *info2;/* [unique,case(2)] */
	struct dfs_Info3 *info3;/* [unique,case(3)] */
	struct dfs_Info4 *info4;/* [unique,case(4)] */
	struct dfs_Info100 *info100;/* [unique,case(100)] */
	struct dfs_Info101 *info101;/* [unique,case(101)] */
	struct dfs_Info102 *info102;/* [unique,case(102)] */
};

struct dfs_EnumArray1 {
	uint32_t count;
	struct dfs_Info1 *s;/* [unique,size_is(count)] */
};

struct dfs_EnumArray2 {
	uint32_t count;
	struct dfs_Info2 *s;/* [unique,size_is(count)] */
};

struct dfs_EnumArray3 {
	uint32_t count;
	struct dfs_Info3 *s;/* [unique,size_is(count)] */
};

struct dfs_EnumArray4 {
	uint32_t count;
	struct dfs_Info4 *s;/* [unique,size_is(count)] */
};

struct dfs_EnumArray200 {
	uint32_t count;
	struct dfs_Info200 *s;/* [unique,size_is(count)] */
};

struct dfs_EnumArray300 {
	uint32_t count;
	struct dfs_Info300 *s;/* [unique,size_is(count)] */
};

union dfs_EnumInfo {
	struct dfs_EnumArray1 *info1;/* [unique,case] */
	struct dfs_EnumArray2 *info2;/* [unique,case(2)] */
	struct dfs_EnumArray3 *info3;/* [unique,case(3)] */
	struct dfs_EnumArray4 *info4;/* [unique,case(4)] */
	struct dfs_EnumArray200 *info200;/* [unique,case(200)] */
	struct dfs_EnumArray300 *info300;/* [unique,case(300)] */
};

struct dfs_EnumStruct {
	uint32_t level;
	union dfs_EnumInfo e;/* [switch_is(level)] */
};


struct dfs_GetManagerVersion {
	struct {
		uint32_t *exist_flag;/* [ref] */
	} out;

};


struct dfs_Add {
	struct {
		const char *path;/* [ref,charset(UTF16)] */
		const char *server;/* [ref,charset(UTF16)] */
		const char *share;/* [unique,charset(UTF16)] */
		const char *comment;/* [unique,charset(UTF16)] */
		uint32_t flags;
	} in;

	struct {
		WERROR result;
	} out;

};


struct dfs_Remove {
	struct {
		const char *path;/* [ref,charset(UTF16)] */
		const char *server;/* [unique,charset(UTF16)] */
		const char *share;/* [unique,charset(UTF16)] */
	} in;

	struct {
		WERROR result;
	} out;

};


struct dfs_SetInfo {
	struct {
		WERROR result;
	} out;

};


struct dfs_GetInfo {
	struct {
		const char *path;/* [ref,charset(UTF16)] */
		const char *server;/* [unique,charset(UTF16)] */
		const char *share;/* [unique,charset(UTF16)] */
		uint32_t level;
	} in;

	struct {
		union dfs_Info *info;/* [ref,switch_is(level)] */
		WERROR result;
	} out;

};


struct dfs_Enum {
	struct {
		uint32_t level;
		uint32_t bufsize;
		struct dfs_EnumStruct *info;/* [unique] */
		uint32_t *unknown;/* [unique] */
		uint32_t *total;/* [unique] */
	} in;

	struct {
		struct dfs_EnumStruct *info;/* [unique] */
		uint32_t *total;/* [unique] */
		WERROR result;
	} out;

};


struct dfs_Rename {
	struct {
		WERROR result;
	} out;

};


struct dfs_Move {
	struct {
		WERROR result;
	} out;

};


struct dfs_ManagerGetConfigInfo {
	struct {
		WERROR result;
	} out;

};


struct dfs_ManagerSendSiteInfo {
	struct {
		WERROR result;
	} out;

};


struct dfs_AddFtRoot {
	struct {
		WERROR result;
	} out;

};


struct dfs_RemoveFtRoot {
	struct {
		WERROR result;
	} out;

};


struct dfs_AddStdRoot {
	struct {
		WERROR result;
	} out;

};


struct dfs_RemoveStdRoot {
	struct {
		WERROR result;
	} out;

};


struct dfs_ManagerInitialize {
	struct {
		WERROR result;
	} out;

};


struct dfs_AddStdRootForced {
	struct {
		WERROR result;
	} out;

};


struct dfs_GetDcAddress {
	struct {
		WERROR result;
	} out;

};


struct dfs_SetDcAddress {
	struct {
		WERROR result;
	} out;

};


struct dfs_FlushFtTable {
	struct {
		WERROR result;
	} out;

};


struct dfs_Add2 {
	struct {
		WERROR result;
	} out;

};


struct dfs_Remove2 {
	struct {
		WERROR result;
	} out;

};


struct dfs_EnumEx {
	struct {
		const char *name;/* [ref,charset(UTF16)] */
		uint32_t level;
		uint32_t bufsize;
		struct dfs_EnumStruct *info;/* [unique] */
		uint32_t *total;/* [unique] */
	} in;

	struct {
		struct dfs_EnumStruct *info;/* [unique] */
		uint32_t *total;/* [unique] */
		WERROR result;
	} out;

};


struct dfs_SetInfo2 {
	struct {
		WERROR result;
	} out;

};

#endif /* _HEADER_netdfs */