netdfs

package
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 30, 2024 License: MIT Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// Syntax UUID
	NetdfsSyntaxUUID = &uuid.UUID{TimeLow: 0x4fc742e0, TimeMid: 0x4a10, TimeHiAndVersion: 0x11cf, ClockSeqHiAndReserved: 0x82, ClockSeqLow: 0x73, Node: [6]uint8{0x0, 0xaa, 0x0, 0x4a, 0xe6, 0x73}}
	// Syntax ID
	NetdfsSyntaxV3_0 = &dcerpc.SyntaxID{IfUUID: NetdfsSyntaxUUID, IfVersionMajor: 3, IfVersionMinor: 0}
)
View Source
var (
	// import guard
	GoPackage = "dfsnm"
)

Functions

func NetdfsServerHandle

func NetdfsServerHandle(ctx context.Context, o NetdfsServer, opNum int, r ndr.Reader) (dcerpc.Operation, error)

func NewNetdfsServerHandle

func NewNetdfsServerHandle(o NetdfsServer) dcerpc.ServerHandle

func RegisterNetdfsServer

func RegisterNetdfsServer(conn dcerpc.Conn, o NetdfsServer, opts ...dcerpc.Option)

Types

type Add2Request

type Add2Request struct {
	// DfsEntryPath: A pointer to a DFS link path that contains the name of an existing
	// link when additional link targets are added or the name of a new link is created.
	EntryPath string `idl:"name:DfsEntryPath;string" json:"entry_path"`
	// DcName: A pointer to a null-terminated Unicode string. For a domain-based DFS namespace,
	// this is the host name of the DC that the DFS root target uses to get or update DFS
	// metadata for the DFS namespace. This parameter MAY be a NULL pointer; otherwise,
	// it MUST be the host name of the PDC for the domain of the DFS namespace.<79>
	DCName string `idl:"name:DcName;string" json:"dc_name"`
	// ServerName: A pointer to a null-terminated Unicode string that specifies the DFS
	// link target host name.
	ServerName string `idl:"name:ServerName;string" json:"server_name"`
	// ShareName: A pointer to a null-terminated Unicode DFS link target share name string.
	// This can also be a share name with a path relative to the share (for example, share1\mydir1\mydir2).
	// When specified in this manner, each pathname component MUST be a directory.
	ShareName string `idl:"name:ShareName;string;pointer:unique" json:"share_name"`
	// Comment: A pointer to a null-terminated, human-readable Unicode string description
	// associated with this root or link. This string is not subject to protocol-specified
	// restrictions on length or content and does not affect server functionality. The description
	// MUST be ignored when adding a target to an existing link.
	Comment string `idl:"name:Comment;string;pointer:unique" json:"comment"`
	// Flags: The flag that indicates the operation to perform. The following table lists
	// the possible values.
	//
	//	+-------------------------------+----------------------------------------------------------------------------------+
	//	|                               |                                                                                  |
	//	|             VALUE             |                                     MEANING                                      |
	//	|                               |                                                                                  |
	//	+-------------------------------+----------------------------------------------------------------------------------+
	//	+-------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000000                    | Create a new link or add a new target to an existing link.                       |
	//	+-------------------------------+----------------------------------------------------------------------------------+
	//	| DFS_ADD_VOLUME 0x00000001     | Create a new link in the DFS namespace if one does not already exist or fail if  |
	//	|                               | it exists.                                                                       |
	//	+-------------------------------+----------------------------------------------------------------------------------+
	//	| DFS_RESTORE_VOLUME 0x00000002 | Add a target without verifying its existence.                                    |
	//	+-------------------------------+----------------------------------------------------------------------------------+
	Flags uint32 `idl:"name:Flags" json:"flags"`
	// ppRootList: On success, returns a list of DFS root targets in the domain-based DFS
	// namespace that the client will be responsible for notifying of the change in the
	// DFS namespace. See section 3.2.4.2.1. This list MAY be empty if the server performs
	// the notification.<80>
	RootList *RootList `idl:"name:ppRootList;pointer:unique" json:"root_list"`
}

Add2Request structure represents the NetrDfsAdd2 operation request

func (*Add2Request) MarshalNDR

func (o *Add2Request) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Add2Request) UnmarshalNDR

func (o *Add2Request) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type Add2Response

type Add2Response struct {
	// ppRootList: On success, returns a list of DFS root targets in the domain-based DFS
	// namespace that the client will be responsible for notifying of the change in the
	// DFS namespace. See section 3.2.4.2.1. This list MAY be empty if the server performs
	// the notification.<80>
	RootList *RootList `idl:"name:ppRootList;pointer:unique" json:"root_list"`
	// Return: The NetrDfsAdd2 return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

Add2Response structure represents the NetrDfsAdd2 operation response

func (*Add2Response) MarshalNDR

func (o *Add2Response) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Add2Response) UnmarshalNDR

func (o *Add2Response) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type AddFTRootRequest

type AddFTRootRequest struct {
	// ServerName: The pointer to a null-terminated Unicode string. This MUST be used as
	// the host name of the new DFS root target in the metadata.<108>
	ServerName string `idl:"name:ServerName;string" json:"server_name"`
	// DcName: The pointer to a null-terminated Unicode string. For a domainv1-based DFS
	// namespace, this string contains the host name of the DC that the new DFS root target
	// is to use to get or update DFS metadata for the DFS namespace. This parameter MAY
	// be a NULL pointer, otherwise, it MUST be the PDC for the domain of the DFS namespace.
	DCName string `idl:"name:DcName;string" json:"dc_name"`
	// RootShare: The pointer to a null-terminated Unicode string. This is the new DFS root
	// target share name. This can be different from the FtDfsName parameter. The share
	// MUST already exist.
	RootShare string `idl:"name:RootShare;string" json:"root_share"`
	// FtDfsName: The pointer to a null-terminated Unicode string. This is the name of the
	// new or existing domain-based DFS namespace.
	FTDFSName string `idl:"name:FtDfsName;string" json:"ft_dfs_name"`
	// Comment: The pointer to a null-terminated Unicode string that contains a comment
	// associated with the DFS namespace. Used for informational purposes, this string has
	// no protocol-specified restrictions on length or content. The comment is meant for
	// human consumption and does not affect server functionality. This parameter MAY be
	// NULL.
	Comment string `idl:"name:Comment;string" json:"comment"`
	// ConfigDN: The pointer to a null-terminated Unicode string. This string MUST be the
	// path of the DFS namespace object entry in the DFS Configuration Container (see section
	// 2.3.3).<109>
	ConfigDN string `idl:"name:ConfigDN;string" json:"config_dn"`
	// NewFtDfs: A Boolean value that, if TRUE, indicates a request to create a new root.
	// If FALSE, then this value indicates a request to add a new root target to an existing
	// root.
	NewFTDFS bool `idl:"name:NewFtDfs" json:"new_ft_dfs"`
	// ApiFlags: This parameter MUST be 0.
	Flags uint32 `idl:"name:ApiFlags" json:"flags"`
	// ppRootList: On success, returns a list of DFS root targets in the domain-based DFS
	// namespace that the client will be responsible for notifying of the change in the
	// DFS namespace. See section 3.2.4.3.1. The list MAY be empty if the server has performed
	// the notification.<110>
	RootList *RootList `idl:"name:ppRootList;pointer:unique" json:"root_list"`
}

AddFTRootRequest structure represents the NetrDfsAddFtRoot operation request

func (*AddFTRootRequest) MarshalNDR

func (o *AddFTRootRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*AddFTRootRequest) UnmarshalNDR

func (o *AddFTRootRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type AddFTRootResponse

type AddFTRootResponse struct {
	// ppRootList: On success, returns a list of DFS root targets in the domain-based DFS
	// namespace that the client will be responsible for notifying of the change in the
	// DFS namespace. See section 3.2.4.3.1. The list MAY be empty if the server has performed
	// the notification.<110>
	RootList *RootList `idl:"name:ppRootList;pointer:unique" json:"root_list"`
	// Return: The NetrDfsAddFtRoot return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

AddFTRootResponse structure represents the NetrDfsAddFtRoot operation response

func (*AddFTRootResponse) MarshalNDR

func (o *AddFTRootResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*AddFTRootResponse) UnmarshalNDR

func (o *AddFTRootResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type AddRequest

type AddRequest struct {
	// DfsEntryPath: The pointer to a DFS link path that contains the name of an existing
	// link when additional link targets are being added or the name of a new link is being
	// created.
	EntryPath string `idl:"name:DfsEntryPath;string" json:"entry_path"`
	// ServerName: The pointer to a null-terminated Unicode string that specifies the DFS
	// link target host name.
	ServerName string `idl:"name:ServerName;string" json:"server_name"`
	// ShareName: The pointer to a null-terminated Unicode DFS link target share name string.
	// This can also be a share name with a path relative to the share, for example, "share1\mydir1\mydir2".
	// When specified this way, each pathname component MUST be a directory.
	ShareName string `idl:"name:ShareName;string;pointer:unique" json:"share_name"`
	// Comment: The pointer to a null-terminated Unicode string that contains a comment
	// associated with this root or link. This string has no protocol-specified restrictions
	// on length or content. The comment is meant for human consumption and does not affect
	// server functionality. The comment MUST be ignored when adding a target to an existing
	// link.
	Comment string `idl:"name:Comment;string;pointer:unique" json:"comment"`
	// Flags: A value indicating the operation to perform. The following table lists such
	// flags.
	//
	//	+-------------------------------+----------------------------------------------------------------------------------+
	//	|                               |                                                                                  |
	//	|             VALUE             |                                     MEANING                                      |
	//	|                               |                                                                                  |
	//	+-------------------------------+----------------------------------------------------------------------------------+
	//	+-------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000000                    | Create a new link or adds a new target to an existing link.                      |
	//	+-------------------------------+----------------------------------------------------------------------------------+
	//	| DFS_ADD_VOLUME 0x00000001     | Create a new link in the DFS namespace if one does not already exist or fails if |
	//	|                               | a link already exists.                                                           |
	//	+-------------------------------+----------------------------------------------------------------------------------+
	//	| DFS_RESTORE_VOLUME 0x00000002 | Add a target without verifying its existence.                                    |
	//	+-------------------------------+----------------------------------------------------------------------------------+
	Flags uint32 `idl:"name:Flags" json:"flags"`
}

AddRequest structure represents the NetrDfsAdd operation request

func (*AddRequest) MarshalNDR

func (o *AddRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*AddRequest) UnmarshalNDR

func (o *AddRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type AddResponse

type AddResponse struct {
	// Return: The NetrDfsAdd return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

AddResponse structure represents the NetrDfsAdd operation response

func (*AddResponse) MarshalNDR

func (o *AddResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*AddResponse) UnmarshalNDR

func (o *AddResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type AddRootTargetRequest

type AddRootTargetRequest struct {
	// pDfsPath: The pointer to a null-terminated Unicode string. This MUST be \\<domain>\<dfsname>
	// for domain-based DFS or \\<server>\<share> for stand-alone DFS.
	DFSPath string `idl:"name:pDfsPath;string;pointer:unique" json:"dfs_path"`
	// pTargetPath: The pointer to a null-terminated Unicode string. This MUST be \\<server>\<share>[\<path>]
	// for domain-based DFS or NULL for stand-alone DFS. The latter restriction is required
	// to ensure that a typographic error in the domain name, while attempting to create
	// a domain-based DFS, does not result in a stand-alone DFS namespace being created
	// on the DFS root target server, if the first pathname component of the pDfsPath parameter
	// is used to detect whether a domain-based DFS namespace or stand-alone DFS namespace
	// is being created. When pTargetPath is not NULL, the <server> MUST be used as the
	// host name of the new DFS root target in the metadata.
	TargetPath string `idl:"name:pTargetPath;string;pointer:unique" json:"target_path"`
	// MajorVersion: The DFS metadata version to use to create the DFS namespace. When adding
	// a DFS root target to an existing DFS namespace, MajorVersion MUST be either 0 or
	// the major version number of the existing DFS namespace. Otherwise, the call MUST
	// fail.
	MajorVersion uint32 `idl:"name:MajorVersion" json:"major_version"`
	// pComment: The pointer to a null-terminated Unicode string that contains a comment
	// associated with this root or link. This string has no protocol-specified restrictions
	// on length or content. The comment is meant for human consumption and does not affect
	// server functionality. The comment MUST be ignored when adding a target to an existing
	// link.
	Comment string `idl:"name:pComment;string;pointer:unique" json:"comment"`
	// NewNamespace: A Boolean value that, if TRUE, indicates a request to create a new
	// root. If FALSE, this value indicates a request to add a new root target to an existing
	// root.
	NewNamespace bool `idl:"name:NewNamespace" json:"new_namespace"`
	// Flags: This parameter MUST be zero for a domain-based DFS namespace and MUST be ignored
	// for a stand-alone DFS namespace.
	Flags uint32 `idl:"name:Flags" json:"flags"`
}

AddRootTargetRequest structure represents the NetrDfsAddRootTarget operation request

func (*AddRootTargetRequest) MarshalNDR

func (o *AddRootTargetRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*AddRootTargetRequest) UnmarshalNDR

func (o *AddRootTargetRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type AddRootTargetResponse

type AddRootTargetResponse struct {
	// Return: The NetrDfsAddRootTarget return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

AddRootTargetResponse structure represents the NetrDfsAddRootTarget operation response

func (*AddRootTargetResponse) MarshalNDR

func (o *AddRootTargetResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*AddRootTargetResponse) UnmarshalNDR

func (o *AddRootTargetResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type AddStdRootForcedRequest

type AddStdRootForcedRequest struct {
	// ServerName: The pointer to a null-terminated Unicode string. This is the host name
	// of the new DFS root target.
	ServerName string `idl:"name:ServerName;string" json:"server_name"`
	// RootShare: The pointer to a null-terminated Unicode DFS root target share name string.
	// This is also the DFS namespace name. This method does not create the share; it MUST
	// be created separately.
	RootShare string `idl:"name:RootShare;string" json:"root_share"`
	// Comment: The pointer to a null-terminated Unicode string that contains a comment
	// associated with the DFS namespace. Used for informational purposes, this string has
	// no protocol-specified restrictions on length or content. The comment is meant for
	// human consumption and does not affect server functionality. This parameter MAY be
	// a NULL pointer.
	Comment string `idl:"name:Comment;string" json:"comment"`
	// Share:  The pointer to a null-terminated Unicode string that contains the local
	// file system path corresponding to the share on the server receiving the RPC method,
	// in the following form:
	//
	// <X>:\<path>
	Share string `idl:"name:Share;string" json:"share"`
}

AddStdRootForcedRequest structure represents the NetrDfsAddStdRootForced operation request

func (*AddStdRootForcedRequest) MarshalNDR

func (o *AddStdRootForcedRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*AddStdRootForcedRequest) UnmarshalNDR

func (o *AddStdRootForcedRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type AddStdRootForcedResponse

type AddStdRootForcedResponse struct {
	// Return: The NetrDfsAddStdRootForced return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

AddStdRootForcedResponse structure represents the NetrDfsAddStdRootForced operation response

func (*AddStdRootForcedResponse) MarshalNDR

func (o *AddStdRootForcedResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*AddStdRootForcedResponse) UnmarshalNDR

func (o *AddStdRootForcedResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type AddStdRootRequest

type AddStdRootRequest struct {
	// ServerName: The pointer to a null-terminated Unicode string. This is the host name
	// of the new DFS root target.
	ServerName string `idl:"name:ServerName;string" json:"server_name"`
	// RootShare: The pointer to a null-terminated Unicode string. This is the new DFS root
	// target share name as well as the DFS namespace name. The share MUST already exist.
	RootShare string `idl:"name:RootShare;string" json:"root_share"`
	// Comment: The pointer to a null-terminated Unicode string that contains a comment
	// associated with the DFS namespace. Used for informational purposes, this string has
	// no protocol-specified restrictions on length or content. The comment is meant for
	// human consumption and does not affect server functionality. This parameter MAY be
	// a NULL pointer.
	Comment string `idl:"name:Comment;string" json:"comment"`
	// ApiFlags: This parameter is reserved for future use and is ignored by the server.
	Flags uint32 `idl:"name:ApiFlags" json:"flags"`
}

AddStdRootRequest structure represents the NetrDfsAddStdRoot operation request

func (*AddStdRootRequest) MarshalNDR

func (o *AddStdRootRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*AddStdRootRequest) UnmarshalNDR

func (o *AddStdRootRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type AddStdRootResponse

type AddStdRootResponse struct {
	// Return: The NetrDfsAddStdRoot return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

AddStdRootResponse structure represents the NetrDfsAddStdRoot operation response

func (*AddStdRootResponse) MarshalNDR

func (o *AddStdRootResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*AddStdRootResponse) UnmarshalNDR

func (o *AddStdRootResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type EnumExRequest

type EnumExRequest struct {
	// DfsEntryPath: The pointer to a domain name, a host name, or a DFS path, depending
	// on the Level parameter.
	//
	// * A domain name MUST be a null-terminated Unicode ( a9bc4403-a862-48b9-b99b-1b44a887d177#gt_c305d0ab-8b94-461a-bd76-13b40cb8c4d8
	// ) string in the following forms:
	//
	// <DomainName> or \<DomainName> or \\<DomainName>
	//
	// where <DomainName> is the domain name to use for the enumeration.
	//
	// * A host name MUST be a null-terminated Unicode string in the following formats:
	//
	// <ServerName> or \<ServerName> or \\<ServerName>
	//
	// where <ServerName> is a host name.
	//
	// * A DFS root or a DFS link path.
	//
	// When DfsEntryPath points to a DFS link path, the remaining path after the DFS namespace
	// name MUST be ignored.
	EntryPath string `idl:"name:DfsEntryPath;string" json:"entry_path"`
	// Level: This parameter specifies the information level of the data and in turn determines
	// the action the method performs. On successful return, the server MUST return an array
	// of the corresponding structures in the buffer pointed to by DfsEnum.
	//
	//	+----------------------+----------------------------------------------------------------------------------+
	//	|                      |                                                                                  |
	//	|        VALUE         |                                     MEANING                                      |
	//	|                      |                                                                                  |
	//	+----------------------+----------------------------------------------------------------------------------+
	//	+----------------------+----------------------------------------------------------------------------------+
	//	| Level_1 0x00000001   | Gets the name of the DFS root and all links beneath it. In this case, on         |
	//	|                      | successful return DfsEnum MUST point to an array of DFS_INFO_1 structures.       |
	//	+----------------------+----------------------------------------------------------------------------------+
	//	| Level_2 0x00000002   | Gets the name, comment, state, and number of targets for the DFS root and all    |
	//	|                      | links under the root. In this case, on successful return DfsEnum MUST point to   |
	//	|                      | an array of DFS_INFO_2 structures.                                               |
	//	+----------------------+----------------------------------------------------------------------------------+
	//	| Level_3 0x00000003   | Gets the name, comment, state, number of targets, and information about          |
	//	|                      | each target for the DFS root and all links under the root. In this case, on      |
	//	|                      | successful return DfsEnum MUST point to an array of DFS_INFO_3 structures.       |
	//	+----------------------+----------------------------------------------------------------------------------+
	//	| Level_4 0x00000004   | Gets the name, comment, state, time-out, GUID, number of targets, and            |
	//	|                      | information about each target for the DFS root and all links under the root.     |
	//	|                      | In this case, on successful return DfsEnum MUST point to an array of DFS_INFO_4  |
	//	|                      | structures.                                                                      |
	//	+----------------------+----------------------------------------------------------------------------------+
	//	| Level_5 0x00000005   | Gets the name, comment, state, time-out, GUID, property flags, metadata size,    |
	//	|                      | and number of targets for a DFS root and all links under the root. In this case, |
	//	|                      | on successful return DfsEnum MUST point to an array of DFS_INFO_5 structures.    |
	//	+----------------------+----------------------------------------------------------------------------------+
	//	| Level_6 0x00000006   | Gets the name, comment, state, time-out, GUID, property flags, metadata size,    |
	//	|                      | number of targets, and target information for a root or link. In this case, on   |
	//	|                      | successful return DfsEnum MUST point to an array of DFS_INFO_6 structures.       |
	//	+----------------------+----------------------------------------------------------------------------------+
	//	| Level_8 0x00000008   | Gets the name, comment, state, time-out, GUID, property flags, metadata size,    |
	//	|                      | and number of targets for a DFS root and all links under the root. Also returns  |
	//	|                      | the security descriptor associated with each of the DFS links. In this case, on  |
	//	|                      | successful return DfsEnum MUST point to an array of DFS_INFO_8 structures.       |
	//	+----------------------+----------------------------------------------------------------------------------+
	//	| Level_9 0x00000009   | Gets the name, comment, state, time-out, GUID, property flags, metadata size,    |
	//	|                      | and number of targets and target information for a DFS root and all links under  |
	//	|                      | the root. Also returns the security descriptor associated with each of the DFS   |
	//	|                      | links. In this case, on successful return DfsEnum MUST point to an array of      |
	//	|                      | DFS_INFO_9 structures.                                                           |
	//	+----------------------+----------------------------------------------------------------------------------+
	//	| Level_200 0x000000C8 | Enumerates all of the domain-based DFS namespace in the specified domain. In     |
	//	|                      | this case, on successful return DfsEnum MUST point to an array of DFS_INFO_200   |
	//	|                      | structures.                                                                      |
	//	+----------------------+----------------------------------------------------------------------------------+
	//	| Level_300 0x0000012C | Enumerates the stand-alone and domain-based DFS roots that the server hosts. In  |
	//	|                      | this case, on successful return DfsEnum MUST point to an array of DFS_INFO_300   |
	//	|                      | structures.                                                                      |
	//	+----------------------+----------------------------------------------------------------------------------+
	Level uint32 `idl:"name:Level" json:"level"`
	// PrefMaxLen: This parameter specifies restrictions on the number of elements returned.
	// A value of 0xFFFFFFFF means there are no restrictions, in which case all entries
	// MUST be returned.<96>
	PrefMaxLength uint32 `idl:"name:PrefMaxLen" json:"pref_max_length"`
	// DfsEnum: A pointer to a DFS_INFO_ENUM_STRUCT union to receive the returned information.
	// The client SHOULD set the Level member to the same value as the method's Level parameter,
	// and MUST set the DfsInfoContainer union member to a pointer to the corresponding
	// container structure as specified in section 2.2.6. The client MUST initialize the
	// container structure's EntriesRead member to zero and the Buffer member to a NULL
	// pointer. The value of the Level member determines the case of the union.
	Enum *InfoEnum `idl:"name:DfsEnum;pointer:unique" json:"enum"`
	// ResumeHandle: This parameter is used to continue an enumeration when more data is
	// available than can be returned in a single invocation of this method.
	//
	// * If this parameter is not a NULL pointer, and the method returns ERROR_SUCCESS,
	// this parameter receives an implementation-specific nonzero value that can be passed
	// in subsequent calls to this method to continue the enumeration.
	//
	// * If this parameter is a NULL pointer, or it points to a zero value, it indicates
	// that this is an initial enumeration.
	//
	// * If this parameter is not a NULL pointer, and it points to a nonzero value returned
	// in ResumeHandle by an earlier invocation of this method, the server will attempt
	// to continue a previous enumeration. <97> ( 3a466440-1ef6-4439-b4e2-be9eaddeb511#Appendix_A_97
	// )
	Resume uint32 `idl:"name:ResumeHandle;pointer:unique" json:"resume"`
}

EnumExRequest structure represents the NetrDfsEnumEx operation request

func (*EnumExRequest) MarshalNDR

func (o *EnumExRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*EnumExRequest) UnmarshalNDR

func (o *EnumExRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type EnumExResponse

type EnumExResponse struct {
	// DfsEnum: A pointer to a DFS_INFO_ENUM_STRUCT union to receive the returned information.
	// The client SHOULD set the Level member to the same value as the method's Level parameter,
	// and MUST set the DfsInfoContainer union member to a pointer to the corresponding
	// container structure as specified in section 2.2.6. The client MUST initialize the
	// container structure's EntriesRead member to zero and the Buffer member to a NULL
	// pointer. The value of the Level member determines the case of the union.
	Enum *InfoEnum `idl:"name:DfsEnum;pointer:unique" json:"enum"`
	// ResumeHandle: This parameter is used to continue an enumeration when more data is
	// available than can be returned in a single invocation of this method.
	//
	// * If this parameter is not a NULL pointer, and the method returns ERROR_SUCCESS,
	// this parameter receives an implementation-specific nonzero value that can be passed
	// in subsequent calls to this method to continue the enumeration.
	//
	// * If this parameter is a NULL pointer, or it points to a zero value, it indicates
	// that this is an initial enumeration.
	//
	// * If this parameter is not a NULL pointer, and it points to a nonzero value returned
	// in ResumeHandle by an earlier invocation of this method, the server will attempt
	// to continue a previous enumeration. <97> ( 3a466440-1ef6-4439-b4e2-be9eaddeb511#Appendix_A_97
	// )
	Resume uint32 `idl:"name:ResumeHandle;pointer:unique" json:"resume"`
	// Return: The NetrDfsEnumEx return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

EnumExResponse structure represents the NetrDfsEnumEx operation response

func (*EnumExResponse) MarshalNDR

func (o *EnumExResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*EnumExResponse) UnmarshalNDR

func (o *EnumExResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type EnumRequest

type EnumRequest struct {
	// Level: This parameter specifies the information level of the data and, in turn, determines
	// the action that the method performs. On successful return, the server MUST return
	// an array of the corresponding structures in the buffer pointed to by DfsEnum.
	//
	//	+--------------------+----------------------------------------------------------------------------------+
	//	|                    |                                                                                  |
	//	|       VALUE        |                                     MEANING                                      |
	//	|                    |                                                                                  |
	//	+--------------------+----------------------------------------------------------------------------------+
	//	+--------------------+----------------------------------------------------------------------------------+
	//	| Level_1 0x00000001 | Gets the name of the DFS root and all links beneath it. In this case, on         |
	//	|                    | successful return DfsEnum MUST point to an array of DFS_INFO_1 structures.       |
	//	+--------------------+----------------------------------------------------------------------------------+
	//	| Level_2 0x00000002 | Gets the name, comment, state, and number of targets for the DFS root and all    |
	//	|                    | links under the root. In this case, on successful return DfsEnum MUST point to   |
	//	|                    | an array of DFS_INFO_2 structures.                                               |
	//	+--------------------+----------------------------------------------------------------------------------+
	//	| Level_3 0x00000003 | Gets the name, comment, state, number of targets, and target information for     |
	//	|                    | the DFS root and all links under the root. In this case, on successful return    |
	//	|                    | DfsEnum MUST point to an array of DFS_INFO_3 structures.                         |
	//	+--------------------+----------------------------------------------------------------------------------+
	//	| Level_4 0x00000004 | Gets the name, comment, state, time-out, GUID, number of targets, and target     |
	//	|                    | information for the DFS root and all links under the root. In this case, on      |
	//	|                    | successful return DfsEnum MUST point to an array of DFS_INFO_4 structures.       |
	//	+--------------------+----------------------------------------------------------------------------------+
	//	| Level_5 0x00000005 | Gets the name, comment, state, time-out, GUID, property flags, metadata size,    |
	//	|                    | and number of targets for a DFS root and all links under the root. In this case, |
	//	|                    | on successful return DfsEnum MUST point to an array of DFS_INFO_5 structures.    |
	//	+--------------------+----------------------------------------------------------------------------------+
	//	| Level_6 0x00000006 | Gets the name, comment, state, time-out, GUID, property flags, metadata size,    |
	//	|                    | number of targets, and target information for a DFS root or DFS links. In        |
	//	|                    | this case, on successful return DfsEnum MUST point to an array of DFS_INFO_6     |
	//	|                    | structures.                                                                      |
	//	+--------------------+----------------------------------------------------------------------------------+
	//	| Level_8 0x00000008 | Gets the name, comment, state, time-out, GUID, property flags, metadata size,    |
	//	|                    | and number of targets for a DFS root and all DFS links under the root. Also      |
	//	|                    | returns the security descriptor associated with each of the DFS links. In        |
	//	|                    | this case, on successful return DfsEnum MUST point to an array of DFS_INFO_8     |
	//	|                    | structures.                                                                      |
	//	+--------------------+----------------------------------------------------------------------------------+
	//	| Level_9 0x00000009 | Gets the name, comment, state, time-out, GUID, property flags, metadata size,    |
	//	|                    | and number of targets, and target information for a DFS root and all DFS links   |
	//	|                    | under the root. Also returns the security descriptor associated with each of the |
	//	|                    | DFS links. In this case, on successful return DfsEnum MUST point to an array of  |
	//	|                    | DFS_INFO_9 structures.                                                           |
	//	+--------------------+----------------------------------------------------------------------------------+
	Level uint32 `idl:"name:Level" json:"level"`
	// PrefMaxLen: This parameter specifies restrictions on the number of elements returned.
	// A value of 0xFFFFFFFF means there are no restrictions, in which case all entries
	// MUST be returned.<64>
	PrefMaxLength uint32 `idl:"name:PrefMaxLen" json:"pref_max_length"`
	// DfsEnum: A pointer to a DFS_INFO_ENUM_STRUCT union to receive the returned information.
	// The client SHOULD set the Level member to the same value as the method's Level parameter,
	// and MUST set the DfsInfoContainer union member to a pointer to the corresponding
	// container structure as specified in section 2.2.6. The client MUST initialize the
	// container structure's EntriesRead member to zero and Buffer member to a NULL pointer.
	// The value of the Level member determines the case of the union.
	Enum *InfoEnum `idl:"name:DfsEnum;pointer:unique" json:"enum"`
	// ResumeHandle: This parameter is used to continue an enumeration when more data is
	// available than can be returned in a single invocation of this method.
	//
	// * If this parameter is not a NULL pointer, and the method returns ERROR_SUCCESS,
	// this parameter receives an implementation-specific nonzero value that can be passed
	// in subsequent calls to this method to continue the enumeration.
	//
	// * If this parameter is a NULL pointer or points to a 0 value, it indicates that this
	// is an initial enumeration request.
	//
	// * If this parameter is not a NULL pointer and points to a nonzero value returned
	// in ResumeHandle by an earlier invocation of this method, the server will attempt
	// to continue a previous enumeration, but MAY produce incomplete or inconsistent results
	// due to the possibility of concurrent updates to the DFS namespace ( a9bc4403-a862-48b9-b99b-1b44a887d177#gt_6a3f0be9-b9b4-49df-9d1c-a3b89e4e9890
	// ). <65> ( 3a466440-1ef6-4439-b4e2-be9eaddeb511#Appendix_A_65 )
	Resume uint32 `idl:"name:ResumeHandle;pointer:unique" json:"resume"`
}

EnumRequest structure represents the NetrDfsEnum operation request

func (*EnumRequest) MarshalNDR

func (o *EnumRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*EnumRequest) UnmarshalNDR

func (o *EnumRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type EnumResponse

type EnumResponse struct {
	// DfsEnum: A pointer to a DFS_INFO_ENUM_STRUCT union to receive the returned information.
	// The client SHOULD set the Level member to the same value as the method's Level parameter,
	// and MUST set the DfsInfoContainer union member to a pointer to the corresponding
	// container structure as specified in section 2.2.6. The client MUST initialize the
	// container structure's EntriesRead member to zero and Buffer member to a NULL pointer.
	// The value of the Level member determines the case of the union.
	Enum *InfoEnum `idl:"name:DfsEnum;pointer:unique" json:"enum"`
	// ResumeHandle: This parameter is used to continue an enumeration when more data is
	// available than can be returned in a single invocation of this method.
	//
	// * If this parameter is not a NULL pointer, and the method returns ERROR_SUCCESS,
	// this parameter receives an implementation-specific nonzero value that can be passed
	// in subsequent calls to this method to continue the enumeration.
	//
	// * If this parameter is a NULL pointer or points to a 0 value, it indicates that this
	// is an initial enumeration request.
	//
	// * If this parameter is not a NULL pointer and points to a nonzero value returned
	// in ResumeHandle by an earlier invocation of this method, the server will attempt
	// to continue a previous enumeration, but MAY produce incomplete or inconsistent results
	// due to the possibility of concurrent updates to the DFS namespace ( a9bc4403-a862-48b9-b99b-1b44a887d177#gt_6a3f0be9-b9b4-49df-9d1c-a3b89e4e9890
	// ). <65> ( 3a466440-1ef6-4439-b4e2-be9eaddeb511#Appendix_A_65 )
	Resume uint32 `idl:"name:ResumeHandle;pointer:unique" json:"resume"`
	// Return: The NetrDfsEnum return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

EnumResponse structure represents the NetrDfsEnum operation response

func (*EnumResponse) MarshalNDR

func (o *EnumResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*EnumResponse) UnmarshalNDR

func (o *EnumResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type FlushFTTableRequest

type FlushFTTableRequest struct {
	// DcName: The pointer to a null-terminated Unicode string that contains the host name
	// of the DC to which the RPC method is issued.
	DCName string `idl:"name:DcName;string" json:"dc_name"`
	// wszFtDfsName: The pointer to a null-terminated Unicode string that contains the name
	// of the domain-based DFS namespace.
	FTDFSName string `idl:"name:wszFtDfsName;string" json:"ft_dfs_name"`
}

FlushFTTableRequest structure represents the NetrDfsFlushFtTable operation request

func (*FlushFTTableRequest) MarshalNDR

func (o *FlushFTTableRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*FlushFTTableRequest) UnmarshalNDR

func (o *FlushFTTableRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type FlushFTTableResponse

type FlushFTTableResponse struct {
	// Return: The NetrDfsFlushFtTable return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

FlushFTTableResponse structure represents the NetrDfsFlushFtTable operation response

func (*FlushFTTableResponse) MarshalNDR

func (o *FlushFTTableResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*FlushFTTableResponse) UnmarshalNDR

func (o *FlushFTTableResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type GetDCAddressRequest

type GetDCAddressRequest struct {
	// ServerName: A pointer to a null-terminated Unicode string. This is the host name
	// of the server to which the RPC method is issued.<127>
	ServerName string `idl:"name:ServerName;string" json:"server_name"`
	// DcName: A null-terminated Unicode string that contains the DC host name when the
	// NetrDfsGetDcAddress method is successful.<128>
	DCName string `idl:"name:DcName;string" json:"dc_name"`
	// IsRoot: A pointer to a Boolean value, set to TRUE on return if the server hosts any
	// DFS root target, and FALSE otherwise.<129>
	IsRoot bool `idl:"name:IsRoot" json:"is_root"`
	// Timeout: A pointer to an unsigned 32-bit integer value indicating the count of seconds
	// for which the server will use the DC that is returned to access DFS metadata.<130>
	Timeout uint32 `idl:"name:Timeout" json:"timeout"`
}

GetDCAddressRequest structure represents the NetrDfsGetDcAddress operation request

func (*GetDCAddressRequest) MarshalNDR

func (o *GetDCAddressRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*GetDCAddressRequest) UnmarshalNDR

func (o *GetDCAddressRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type GetDCAddressResponse

type GetDCAddressResponse struct {
	// DcName: A null-terminated Unicode string that contains the DC host name when the
	// NetrDfsGetDcAddress method is successful.<128>
	DCName string `idl:"name:DcName;string" json:"dc_name"`
	// IsRoot: A pointer to a Boolean value, set to TRUE on return if the server hosts any
	// DFS root target, and FALSE otherwise.<129>
	IsRoot bool `idl:"name:IsRoot" json:"is_root"`
	// Timeout: A pointer to an unsigned 32-bit integer value indicating the count of seconds
	// for which the server will use the DC that is returned to access DFS metadata.<130>
	Timeout uint32 `idl:"name:Timeout" json:"timeout"`
	// Return: The NetrDfsGetDcAddress return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

GetDCAddressResponse structure represents the NetrDfsGetDcAddress operation response

func (*GetDCAddressResponse) MarshalNDR

func (o *GetDCAddressResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*GetDCAddressResponse) UnmarshalNDR

func (o *GetDCAddressResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type GetInfoRequest

type GetInfoRequest struct {
	// DfsEntryPath: The pointer to a DFS root or a DFS link path.
	EntryPath string `idl:"name:DfsEntryPath;string" json:"entry_path"`
	// ServerName: This parameter MUST be a NULL pointer for Level_50 and MUST be ignored
	// for other levels.
	ServerName string `idl:"name:ServerName;string;pointer:unique" json:"server_name"`
	// ShareName: This parameter MUST be a NULL pointer for Level_50 and MUST be ignored
	// for other levels.
	ShareName string `idl:"name:ShareName;string;pointer:unique" json:"share_name"`
	// Level: This parameter specifies the information level of the data and, in turn, determines
	// the action the method performs.
	//
	//	+----------------------+----------------------------------------------------------------------------------+
	//	|                      |                                                                                  |
	//	|        VALUE         |                                     MEANING                                      |
	//	|                      |                                                                                  |
	//	+----------------------+----------------------------------------------------------------------------------+
	//	+----------------------+----------------------------------------------------------------------------------+
	//	| Level_1 0x00000001   | Returns the name of the DFS root or the DFS link.                                |
	//	+----------------------+----------------------------------------------------------------------------------+
	//	| Level_2 0x00000002   | Returns the name, comment, state, and number of targets for the DFS root or the  |
	//	|                      | DFS link.                                                                        |
	//	+----------------------+----------------------------------------------------------------------------------+
	//	| Level_3 0x00000003   | Returns the name, comment, state, number of targets, and target information for  |
	//	|                      | the DFS root or the DFS link.                                                    |
	//	+----------------------+----------------------------------------------------------------------------------+
	//	| Level_4 0x00000004   | Returns the name, comment, state, time-out, GUID, number of targets, and target  |
	//	|                      | information for the DFS root or the DFS link.                                    |
	//	+----------------------+----------------------------------------------------------------------------------+
	//	| Level_5 0x00000005   | Returns the name, comment, state, time-out, GUID, property flags, metadata size, |
	//	|                      | and number of targets for the DFS root or the DFS link.                          |
	//	+----------------------+----------------------------------------------------------------------------------+
	//	| Level_6 0x00000006   | Returns the name, comment, state, GUID, time-out, property flags, metadata size, |
	//	|                      | number of targets, and target information for the DFS root or the DFS link.      |
	//	+----------------------+----------------------------------------------------------------------------------+
	//	| Level_7 0x00000007   | Returns the version number GUID of the DFS metadata. This value only applies to  |
	//	|                      | the DFS root.                                                                    |
	//	+----------------------+----------------------------------------------------------------------------------+
	//	| Level_8 0x00000008   | Returns the name, comment, state, time-out, GUID, property flags, metadata size, |
	//	|                      | number of targets, and security descriptor associated with the DFS root or the   |
	//	|                      | DFS link. Only stand-alone DFS namespaces and domainv2-based DFS namespaces are  |
	//	|                      | supported.                                                                       |
	//	+----------------------+----------------------------------------------------------------------------------+
	//	| Level_9 0x00000009   | Returns the name, comment, state, GUID, time-out, property flags, metadata size, |
	//	|                      | number of targets, list of targets, and security descriptor for the DFS root or  |
	//	|                      | the DFS link. Only stand-alone DFS namespaces and domainv2-based DFS namespaces  |
	//	|                      | are supported.                                                                   |
	//	+----------------------+----------------------------------------------------------------------------------+
	//	| Level_50 0x00000032  | Returns the DFS metadata version and capability information of an existing DFS   |
	//	|                      | namespace. This level is valid only for the DFS namespace root, not for DFS      |
	//	|                      | links. The ServerName and ShareName parameters MUST both be NULL.<58>            |
	//	+----------------------+----------------------------------------------------------------------------------+
	//	| Level_100 0x00000064 | Returns the comment associated with the root or DFS link specified in the        |
	//	|                      | DfsEntryPath parameter.                                                          |
	//	+----------------------+----------------------------------------------------------------------------------+
	//	| Level_150 0x00000096 | Returns the security descriptor associated with a DFS link. Only stand-alone DFS |
	//	|                      | namespaces and domainv2-based DFS namespaces are supported.                      |
	//	+----------------------+----------------------------------------------------------------------------------+
	Level uint32 `idl:"name:Level" json:"level"`
}

GetInfoRequest structure represents the NetrDfsGetInfo operation request

func (*GetInfoRequest) MarshalNDR

func (o *GetInfoRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*GetInfoRequest) UnmarshalNDR

func (o *GetInfoRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type GetInfoResponse

type GetInfoResponse struct {
	// DfsInfo: The pointer to a DFS_INFO_STRUCT union to receive the returned information.
	// The case of the union is selected by the value of the Level parameter.
	Info *Info `idl:"name:DfsInfo;switch_is:Level" json:"info"`
	// Return: The NetrDfsGetInfo return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

GetInfoResponse structure represents the NetrDfsGetInfo operation response

func (*GetInfoResponse) MarshalNDR

func (o *GetInfoResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*GetInfoResponse) UnmarshalNDR

func (o *GetInfoResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type GetSupportedNamespaceVersionRequest

type GetSupportedNamespaceVersionRequest struct {
	// Origin: This parameter specifies the version information requested.
	//
	//	+--------------------------------------------+----------------------------------------------------------------------------------+
	//	|                                            |                                                                                  |
	//	|                   VALUE                    |                                     MEANING                                      |
	//	|                                            |                                                                                  |
	//	+--------------------------------------------+----------------------------------------------------------------------------------+
	//	+--------------------------------------------+----------------------------------------------------------------------------------+
	//	| DFS_NAMESPACE_VERSION_ORIGIN_SERVER 0x0001 | This specifies that the returned information MUST reflect the metadata versions  |
	//	|                                            | supported by the server. Versions supported by the server can be higher (or      |
	//	|                                            | lower) than those supported by the domain.                                       |
	//	+--------------------------------------------+----------------------------------------------------------------------------------+
	//	| DFS_NAMESPACE_VERSION_ORIGIN_DOMAIN 0x0002 | This specifies that the returned information MUST reflect the metadata versions  |
	//	|                                            | supported by the domain schema of the domain to which the server is joined.      |
	//	|                                            | Versions supported by the domain schema can be higher (or lower) than those      |
	//	|                                            | supported by the server.                                                         |
	//	+--------------------------------------------+----------------------------------------------------------------------------------+
	Origin NamespaceVersionOrigin `idl:"name:Origin" json:"origin"`
	// pName: The pointer to a null-terminated Unicode string. The server MUST ignore the
	// pName parameter.
	Name string `idl:"name:pName;string;pointer:unique" json:"name"`
}

GetSupportedNamespaceVersionRequest structure represents the NetrDfsGetSupportedNamespaceVersion operation request

func (*GetSupportedNamespaceVersionRequest) MarshalNDR

func (*GetSupportedNamespaceVersionRequest) UnmarshalNDR

type GetSupportedNamespaceVersionResponse

type GetSupportedNamespaceVersionResponse struct {
	// pVersionInfo: The pointer to a DFS_SUPPORTED_NAMESPACE_VERSION_INFO structure to
	// receive the DFS metadata version number determined.
	VersionInfo *SupportedNamespaceVersionInfo `idl:"name:pVersionInfo" json:"version_info"`
	// Return: The NetrDfsGetSupportedNamespaceVersion return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

GetSupportedNamespaceVersionResponse structure represents the NetrDfsGetSupportedNamespaceVersion operation response

func (*GetSupportedNamespaceVersionResponse) MarshalNDR

func (*GetSupportedNamespaceVersionResponse) UnmarshalNDR

type Info

type Info struct {
	// Types that are assignable to Value
	//
	// *Info_1
	// *Info_2
	// *Info_3
	// *Info_4
	// *Info_5
	// *Info_6
	// *Info_7
	// *Info_8
	// *Info_9
	// *Info_50
	// *Info_100
	// *Info_101
	// *Info_102
	// *Info_103
	// *Info_104
	// *Info_105
	// *Info_106
	// *Info_107
	// *Info_150
	// *Info_DefaultInfo
	Value is_Info `json:"value"`
}

Info structure represents DFS_INFO_STRUCT RPC union.

The DFS_INFO_STRUCT union relates to the NetrDfsGetInfo, NetrDfsSetInfo, and NetrDfsSetInfo2 methods when used to retrieve or set the configuration of the DFS server. The usage model of this union is for the client to specify a Level parameter to determine which case of the DFS_INFO_STRUCT to use.

The DFS_INFO_STRUCT union has the following format.

func (*Info) GetValue

func (o *Info) GetValue() any

func (*Info) MarshalUnionNDR

func (o *Info) MarshalUnionNDR(ctx context.Context, w ndr.Writer, sw uint32) error

func (*Info) NDRSwitchValue

func (o *Info) NDRSwitchValue(sw uint32) uint32

func (*Info) UnmarshalUnionNDR

func (o *Info) UnmarshalUnionNDR(ctx context.Context, w ndr.Reader, sw uint32) error

type Info1

type Info1 struct {
	// EntryPath:  The pointer to a DFS root or a DFS link path.
	EntryPath string `idl:"name:EntryPath;string" json:"entry_path"`
}

Info1 structure represents DFS_INFO_1 RPC structure.

The DFS_INFO_1 structure contains the name of a DFS root or DFS link.

The DFS_INFO_1 structure has the following format.

func (*Info1) MarshalNDR

func (o *Info1) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Info1) UnmarshalNDR

func (o *Info1) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Info100

type Info100 struct {
	// Comment:   A pointer to a null-terminated Unicode string containing a comment associated
	// with the DFS root or DFS link that is for informational purposes. This string has
	// no protocol-specified restrictions on length or content. The comment is meant for
	// human readability and does not affect server functionality.
	Comment string `idl:"name:Comment;string" json:"comment"`
}

Info100 structure represents DFS_INFO_100 RPC structure.

The DFS_INFO_100 structure relates to the NetrDfsGetInfo, NetrDfsSetInfo, and NetrDfsSetInfo2 methods when used to retrieve or set comment text about a DFS root or a DFS link. The structure contains a comment associated with a DFS root or a DFS link.

The DFS_INFO_100 structure has the following format.

func (*Info100) MarshalNDR

func (o *Info100) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Info100) UnmarshalNDR

func (o *Info100) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Info101

type Info101 struct {
	// State:   The state of the root, link, root target, or link target.
	//
	// The following table lists the valid states that can be set for a root or a link.
	// Some of these states are used to perform a server operation and are not persisted
	// to the DFS metadata, as specified below. For more information about some of these
	// states, see section 2.2.2.13.
	//
	//	+-------------------------------------------+----------------------------------------------------------------------------------+
	//	|                                           |                                                                                  |
	//	|                   VALUE                   |                                     MEANING                                      |
	//	|                                           |                                                                                  |
	//	+-------------------------------------------+----------------------------------------------------------------------------------+
	//	+-------------------------------------------+----------------------------------------------------------------------------------+
	//	| DFS_VOLUME_STATE_OK 0x00000001            | The specified DFS root or DFS link is in the normal state.                       |
	//	+-------------------------------------------+----------------------------------------------------------------------------------+
	//	| DFS_VOLUME_STATE_OFFLINE 0x00000003       | The specified DFS link is offline or unavailable. This flag is valid only for a  |
	//	|                                           | DFS link. This state is persisted to the DFS metadata.                           |
	//	+-------------------------------------------+----------------------------------------------------------------------------------+
	//	| DFS_VOLUME_STATE_ONLINE 0x00000004        | The specified DFS link is available. This flag is valid only for a DFS link.     |
	//	|                                           | This state is persisted to the DFS metadata.                                     |
	//	+-------------------------------------------+----------------------------------------------------------------------------------+
	//	| DFS_VOLUME_STATE_RESYNCHRONIZE 0x00000010 | Forces a resynchronization on the DFS root. This flag is valid only for a        |
	//	|                                           | DFS root. This operation is an incremental synchronization that picks up         |
	//	|                                           | only changed objects in the metadata. This state is used to perform a server     |
	//	|                                           | operation. It is not persisted to the DFS metadata.                              |
	//	+-------------------------------------------+----------------------------------------------------------------------------------+
	//	| DFS_VOLUME_STATE_STANDBY 0x00000020       | Sets a root volume to standby mode. This flag is valid only for a clustered DFS  |
	//	|                                           | root. This state is used to perform a server operation. It is not persisted to   |
	//	|                                           | the DFS metadata.                                                                |
	//	+-------------------------------------------+----------------------------------------------------------------------------------+
	//	| DFS_VOLUME_STATE_FORCE_SYNC 0x00000040    | Forces a full resynchronization operation on the DFS root target of a specified  |
	//	|                                           | domainv2-based DFS namespace or stand-alone DFS namespace to identify DFS links  |
	//	|                                           | that have been added or deleted. This is not supported on a domainv1-based DFS   |
	//	|                                           | namespace. DFS links MUST NOT be specified. This state is used to perform a      |
	//	|                                           | server operation. It is not persisted to the DFS metadata.                       |
	//	+-------------------------------------------+----------------------------------------------------------------------------------+
	//
	// DFS_VOLUME_STATES (0x0000000F) is not relevant here, because it is a mask used when
	// reading the volume state, not for setting it.
	//
	// The following table lists the valid states that can be set for a root target or a
	// link target.
	//
	//	+--------------------------------------+-------------------------------------------------+
	//	|                                      |                                                 |
	//	|                VALUE                 |                     MEANING                     |
	//	|                                      |                                                 |
	//	+--------------------------------------+-------------------------------------------------+
	//	+--------------------------------------+-------------------------------------------------+
	//	| DFS_STORAGE_STATE_OFFLINE 0x00000001 | This target is offline and unavailable for use. |
	//	+--------------------------------------+-------------------------------------------------+
	//	| DFS_STORAGE_STATE_ONLINE 0x00000002  | This target is online and available for use.    |
	//	+--------------------------------------+-------------------------------------------------+
	State uint32 `idl:"name:State" json:"state"`
}

Info101 structure represents DFS_INFO_101 RPC structure.

The DFS_INFO_101 structure describes the storage state on a root, link, root target, or link target.

The DFS_INFO_101 structure has the following format.

func (*Info101) MarshalNDR

func (o *Info101) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Info101) UnmarshalNDR

func (o *Info101) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Info102

type Info102 struct {
	// Timeout:   The time-out, in seconds, associated with the root or link and used in
	// a DFS referral response to a DFS client.
	Timeout uint32 `idl:"name:Timeout" json:"timeout"`
}

Info102 structure represents DFS_INFO_102 RPC structure.

The DFS_INFO_102 structure contains a time-out value for a DFS root or a DFS link.

The DFS_INFO_102 structure has the following format.

func (*Info102) MarshalNDR

func (o *Info102) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Info102) UnmarshalNDR

func (o *Info102) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Info103

type Info103 struct {
	// PropertyFlagMask:  Indicates which bits in the PropertyFlags field are considered
	// for modification of DFS namespace root or link properties.
	//
	//	+-----------------------------------------------+----------------------------------------------------------------------------------+
	//	|                                               |                                                                                  |
	//	|                     VALUE                     |                                     MEANING                                      |
	//	|                                               |                                                                                  |
	//	+-----------------------------------------------+----------------------------------------------------------------------------------+
	//	+-----------------------------------------------+----------------------------------------------------------------------------------+
	//	| DFS_PROPERTY_FLAG_INSITE_REFERRALS 0x00000001 | Valid for domain and stand-alone DFS roots and links.                            |
	//	+-----------------------------------------------+----------------------------------------------------------------------------------+
	//	| DFS_PROPERTY_FLAG_ROOT_SCALABILITY 0x00000002 | This flag is valid only for the DFS root of a domain-based DFS namespace.        |
	//	+-----------------------------------------------+----------------------------------------------------------------------------------+
	//	| DFS_PROPERTY_FLAG_SITE_COSTING 0x00000004     | This flag is valid only for a DFS root.                                          |
	//	+-----------------------------------------------+----------------------------------------------------------------------------------+
	//	| DFS_PROPERTY_FLAG_TARGET_FAILBACK 0x00000008  | Valid for domain and stand-alone DFS roots and links.                            |
	//	+-----------------------------------------------+----------------------------------------------------------------------------------+
	//	| DFS_PROPERTY_FLAG_ABDE 0x00000020             | Valid only for a domainv2-based DFS namespace or stand-alone DFS namespace       |
	//	|                                               | root.<10> This flag is not supported on domainv1-based namespaces.               |
	//	+-----------------------------------------------+----------------------------------------------------------------------------------+
	PropertyFlagMask uint32 `idl:"name:PropertyFlagMask" json:"property_flag_mask"`
	// PropertyFlags:  A bit field in which each bit is responsible for a specific property
	// applicable to the whole DFS namespace, the DFS root, or an individual DFS link, depending
	// on the actual property. Any combination of bits is allowed, unless indicated otherwise.
	// The server considers the bits in this field only when the corresponding bit in the
	// PropertyFlagMask field is set. The following table lists the valid bits for this
	// field and describes the actions taken when each bit is set or not set in the request.
	//
	//	+-----------------------------------------------+----------------------------------------------------------------------------------+
	//	|                                               |                                                                                  |
	//	|                     VALUE                     |                                     MEANING                                      |
	//	|                                               |                                                                                  |
	//	+-----------------------------------------------+----------------------------------------------------------------------------------+
	//	+-----------------------------------------------+----------------------------------------------------------------------------------+
	//	| DFS_PROPERTY_FLAG_INSITE_REFERRALS 0x00000001 | When set, enables DFS in-site referral mode. When not set, disables DFS in-site  |
	//	|                                               | referral mode.                                                                   |
	//	+-----------------------------------------------+----------------------------------------------------------------------------------+
	//	| DFS_PROPERTY_FLAG_ROOT_SCALABILITY 0x00000002 | When set, enables DFS root scalability mode. When not set, disables DFS root     |
	//	|                                               | scalability mode.                                                                |
	//	+-----------------------------------------------+----------------------------------------------------------------------------------+
	//	| DFS_PROPERTY_FLAG_SITE_COSTING 0x00000004     | When set, enables DFS referral site costing. When not set, disables DFS referral |
	//	|                                               | site costing.                                                                    |
	//	+-----------------------------------------------+----------------------------------------------------------------------------------+
	//	| DFS_PROPERTY_FLAG_TARGET_FAILBACK 0x00000008  | When set, enables DFS client target failback. When not set, disables DFS client  |
	//	|                                               | target failback.                                                                 |
	//	+-----------------------------------------------+----------------------------------------------------------------------------------+
	//	| DFS_PROPERTY_FLAG_ABDE 0x00000020             | When set, enables ABDE mode on a domainv2-based DFS namespace or stand-alone DFS |
	//	|                                               | namespace. When not set, disables ABDE mode on a domainv2-based DFS namespace or |
	//	|                                               | stand-alone DFS namespace.                                                       |
	//	+-----------------------------------------------+----------------------------------------------------------------------------------+
	PropertyFlags uint32 `idl:"name:PropertyFlags" json:"property_flags"`
}

Info103 structure represents DFS_INFO_103 RPC structure.

The DFS_INFO_103 structure contains properties that set specific behaviors for a DFS root or a DFS link.

The DFS_INFO_103 structure has the following format.

func (*Info103) MarshalNDR

func (o *Info103) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Info103) UnmarshalNDR

func (o *Info103) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Info104

type Info104 struct {
	// TargetPriority:  A DFS_TARGET_PRIORITY structure that indicates the priority rank
	// and priority class of a target. For more information on prioritization, see section
	// 2.2.2.7.
	TargetPriority *TargetPriority `idl:"name:TargetPriority" json:"target_priority"`
}

Info104 structure represents DFS_INFO_104 RPC structure.

The DFS_INFO_104 structure contains the priority of a DFS root target or a DFS link target.

The DFS_INFO_104 structure has the following format.

func (*Info104) MarshalNDR

func (o *Info104) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Info104) UnmarshalNDR

func (o *Info104) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Info105

type Info105 struct {
	// Comment:   A pointer to a null-terminated Unicode string containing a comment associated
	// with the DFS root or DFS link that is for informational purposes. This string has
	// no protocol-specified restrictions on length or content. The comment is meant for
	// human consumption and does not affect server functionality.
	Comment string `idl:"name:Comment;string" json:"comment"`
	// State:  The following table lists the valid states that can be set for links. All
	// other values are reserved and MUST NOT be used. For more information about some of
	// these states, see section 2.2.2.13.
	//
	//	+-------------------------------------+----------------------------------------------------------------------------------+
	//	|                                     |                                                                                  |
	//	|                VALUE                |                                     MEANING                                      |
	//	|                                     |                                                                                  |
	//	+-------------------------------------+----------------------------------------------------------------------------------+
	//	+-------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000000                          | Indicates that the existing state MUST NOT be changed.                           |
	//	+-------------------------------------+----------------------------------------------------------------------------------+
	//	| DFS_VOLUME_STATE_OFFLINE 0x00000003 | The specified DFS link is offline or unavailable. This flag is valid only for a  |
	//	|                                     | DFS link.                                                                        |
	//	+-------------------------------------+----------------------------------------------------------------------------------+
	//	| DFS_VOLUME_STATE_ONLINE 0x00000004  | The specified DFS link is available. This flag is valid only for a DFS link.     |
	//	+-------------------------------------+----------------------------------------------------------------------------------+
	State uint32 `idl:"name:State" json:"state"`
	// Timeout:   The time-out, in seconds, associated with the root or link and used in
	// a DFS referral response to a DFS client.
	Timeout uint32 `idl:"name:Timeout" json:"timeout"`
	// PropertyFlagMask:   Indicates which bits in the PropertyFlags field are valid.
	PropertyFlagMask uint32 `idl:"name:PropertyFlagMask" json:"property_flag_mask"`
	// PropertyFlags:  Refers to the PropertyFlags field of DFS_INFO_103, as specified in
	// section 2.2.4.3.
	PropertyFlags uint32 `idl:"name:PropertyFlags" json:"property_flags"`
}

Info105 structure represents DFS_INFO_105 RPC structure.

The DFS_INFO_105 structure contains information about a DFS root or DFS link, including comment, state, time-out, and DFS behaviors specified by property flags.

The DFS_INFO_105 structure has the following format.

func (*Info105) MarshalNDR

func (o *Info105) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Info105) UnmarshalNDR

func (o *Info105) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Info106

type Info106 struct {
	// State:  The state of the target. Contains one of the following valid state values.
	//
	//	+--------------------------------------+-------------------------------------------------+
	//	|                                      |                                                 |
	//	|                VALUE                 |                     MEANING                     |
	//	|                                      |                                                 |
	//	+--------------------------------------+-------------------------------------------------+
	//	+--------------------------------------+-------------------------------------------------+
	//	| DFS_STORAGE_STATE_OFFLINE 0x00000001 | This target is offline and unavailable for use. |
	//	+--------------------------------------+-------------------------------------------------+
	//	| DFS_STORAGE_STATE_ONLINE 0x00000002  | This target is online and available for use.    |
	//	+--------------------------------------+-------------------------------------------------+
	State uint32 `idl:"name:State" json:"state"`
	// TargetPriority:  A DFS_TARGET_PRIORITY structure that indicates the priority class
	// and rank of the DFS target.
	TargetPriority *TargetPriority `idl:"name:TargetPriority" json:"target_priority"`
}

Info106 structure represents DFS_INFO_106 RPC structure.

The DFS_INFO_106 structure contains the storage state and priority of a DFS root target or a DFS link target. For more information on prioritization, see section 2.2.2.7.

The DFS_INFO_106 structure has the following format.

func (*Info106) MarshalNDR

func (o *Info106) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Info106) UnmarshalNDR

func (o *Info106) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Info107

type Info107 struct {
	// Comment:  A pointer to a null-terminated Unicode string containing a comment associated
	// with the DFS root or DFS link that is for informational purposes. This string has
	// no protocol-specified restrictions on length or content. The comment is meant for
	// human readability and does not affect server functionality.
	Comment string `idl:"name:Comment;string" json:"comment"`
	// State:  The states that can be set for links. The following table lists such states.
	// All other values are reserved and MUST NOT be used. For more information about some
	// of these states, see section 2.2.2.13.
	//
	//	+-------------------------------------+----------------------------------------------------------------------------------+
	//	|                                     |                                                                                  |
	//	|                VALUE                |                                     MEANING                                      |
	//	|                                     |                                                                                  |
	//	+-------------------------------------+----------------------------------------------------------------------------------+
	//	+-------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000000                          | Indicates that the existing state MUST NOT be changed.                           |
	//	+-------------------------------------+----------------------------------------------------------------------------------+
	//	| DFS_VOLUME_STATE_OFFLINE 0x00000003 | The specified DFS link is offline or unavailable. This flag is valid only for a  |
	//	|                                     | DFS link.                                                                        |
	//	+-------------------------------------+----------------------------------------------------------------------------------+
	//	| DFS_VOLUME_STATE_ONLINE 0x00000004  | The specified DFS link is available. This flag is valid only for a DFS link.     |
	//	+-------------------------------------+----------------------------------------------------------------------------------+
	State uint32 `idl:"name:State" json:"state"`
	// Timeout:  The time-out, in seconds, associated with the root or link and used in
	// a DFS referral response to a DFS client.
	Timeout uint32 `idl:"name:Timeout" json:"timeout"`
	// PropertyFlagMask:  Indicates which bits in the PropertyFlags field are valid.
	PropertyFlagMask uint32 `idl:"name:PropertyFlagMask" json:"property_flag_mask"`
	// PropertyFlags:  Refers to the PropertyFlags field of DFS_INFO_103, as specified in
	// section 2.2.4.3.
	PropertyFlags uint32 `idl:"name:PropertyFlags" json:"property_flags"`
	// SecurityDescriptorLength:  The length, in bytes, of the buffer that the pSecurityDescriptor
	// field points to.
	SecurityDescriptorLength uint32 `idl:"name:SecurityDescriptorLength" json:"security_descriptor_length"`
	// pSecurityDescriptor:  A self-relative security descriptor to be associated with a
	// DFS link. For more information on security descriptors, see [MS-DTYP] section 2.4.6.
	SecurityDescriptor []byte `idl:"name:pSecurityDescriptor;size_is:(SecurityDescriptorLength)" json:"security_descriptor"`
}

Info107 structure represents DFS_INFO_107 RPC structure.

The DFS_INFO_107 structure contains information about a DFS root or DFS link, including comment, state, time-out, security descriptor, and DFS behaviors specified by property flags.

The DFS_INFO_107 structure has the following format.

func (*Info107) MarshalNDR

func (o *Info107) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Info107) UnmarshalNDR

func (o *Info107) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Info150

type Info150 struct {
	// SecurityDescriptorLength:  The length, in bytes, of the buffer that the pSecurityDescriptor
	// field points to.
	SecurityDescriptorLength uint32 `idl:"name:SecurityDescriptorLength" json:"security_descriptor_length"`
	// pSecurityDescriptor:  A self-relative security descriptor associated with DFS. For
	// more information on security descriptors, see [MS-DTYP] section 2.4.6.
	SecurityDescriptor []byte `idl:"name:pSecurityDescriptor;size_is:(SecurityDescriptorLength)" json:"security_descriptor"`
}

Info150 structure represents DFS_INFO_150 RPC structure.

The DFS_INFO_150 structure relates to the NetrDfsGetInfo, NetrDfsSetInfo, and NetrDfsSetInfo2 methods when used to retrieve or set security descriptors associated with a DFS link. The structure contains the self-relative security descriptor associated with a DFS link.

The DFS_INFO_150 structure has the following format.

func (*Info150) MarshalNDR

func (o *Info150) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Info150) UnmarshalNDR

func (o *Info150) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Info1Container

type Info1Container struct {
	// EntriesRead:  The number of elements in the array.
	EntriesRead uint32 `idl:"name:EntriesRead" json:"entries_read"`
	// Buffer:  The array of DFS_INFO_1 structures.
	Buffer []*Info1 `idl:"name:Buffer;size_is:(EntriesRead)" json:"buffer"`
}

Info1Container structure represents DFS_INFO_1_CONTAINER RPC structure.

The DFS_INFO_1_CONTAINER structure contains an array of DFS_INFO_1 structures. The DFS_INFO_1_CONTAINER structure has the following format.

func (*Info1Container) MarshalNDR

func (o *Info1Container) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Info1Container) UnmarshalNDR

func (o *Info1Container) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Info2

type Info2 struct {
	// EntryPath:  A pointer to a DFS root or a DFS link path.
	EntryPath string `idl:"name:EntryPath;string" json:"entry_path"`
	// Comment:  A pointer to a null-terminated Unicode string containing a comment that
	// is used for informational purposes and is associated with the DFS root or DFS link.
	// This string has no protocol-specified restrictions on length or content. The comment
	// is meant for human consumption and does not affect server functionality.
	Comment string `idl:"name:Comment;string" json:"comment"`
	// State:   This field has the state of the DFS root or DFS link. For a DFS root, this
	// field also specifies whether the DFS namespace is stand-alone or domain-based.
	//
	// The DFS_VOLUME_STATES bitmask (0x0000000F) MUST be used to extract the following
	// DFS root or DFS link state from this field. For more information about some of these
	// states, see section 2.2.2.13.
	//
	//	+-------------------------------------+----------------------------------------------------------------------------------+
	//	|                                     |                                                                                  |
	//	|                VALUE                |                                     MEANING                                      |
	//	|                                     |                                                                                  |
	//	+-------------------------------------+----------------------------------------------------------------------------------+
	//	+-------------------------------------+----------------------------------------------------------------------------------+
	//	| DFS_VOLUME_STATE_OK 0x00000001      | The specified DFS root or DFS link is in the normal state.                       |
	//	+-------------------------------------+----------------------------------------------------------------------------------+
	//	| RESERVED 0x00000002                 | This value is reserved and MUST NOT be used.                                     |
	//	+-------------------------------------+----------------------------------------------------------------------------------+
	//	| DFS_VOLUME_STATE_OFFLINE 0x00000003 | The DFS link is offline, and none of the DFS targets will be included in the     |
	//	|                                     | referral response. This flag is valid only for a DFS link and cannot be set on a |
	//	|                                     | DFS root. This state is persisted to the DFS metadata.                           |
	//	+-------------------------------------+----------------------------------------------------------------------------------+
	//	| DFS_VOLUME_STATE_ONLINE 0x00000004  | The DFS link is online and available for referral request. This flag is valid    |
	//	|                                     | only for a DFS link and cannot be set on a DFS root. This state is persisted to  |
	//	|                                     | the DFS metadata.                                                                |
	//	+-------------------------------------+----------------------------------------------------------------------------------+
	//
	// The DFS_VOLUME_FLAVORS bitmask (0x00000300) MUST be used to extract the following
	// DFS namespace flavor from this field.
	//
	//	+-----------------------------------------+-------------------------------------------------+
	//	|                                         |                                                 |
	//	|                  VALUE                  |                     MEANING                     |
	//	|                                         |                                                 |
	//	+-----------------------------------------+-------------------------------------------------+
	//	+-----------------------------------------+-------------------------------------------------+
	//	| DFS_VOLUME_FLAVOR_STANDALONE 0x00000100 | Stand-alone DFS namespace.                      |
	//	+-----------------------------------------+-------------------------------------------------+
	//	| DFS_VOLUME_FLAVOR_AD_BLOB 0x00000200    | domainv1-based or domainv2-based DFS namespace. |
	//	+-----------------------------------------+-------------------------------------------------+
	State uint32 `idl:"name:State" json:"state"`
	// NumberOfStorages:  Number of DFS targets for the root or link.
	NumberOfStorages uint32 `idl:"name:NumberOfStorages" json:"number_of_storages"`
}

Info2 structure represents DFS_INFO_2 RPC structure.

The DFS_INFO_2 structure contains information for a DFS root or DFS link.

The DFS_INFO_2 structure has the following format.

func (*Info2) MarshalNDR

func (o *Info2) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Info2) UnmarshalNDR

func (o *Info2) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Info200

type Info200 struct {
	// FtDfsName:  A pointer to a DFS root path.
	FTDFSName string `idl:"name:FtDfsName;string" json:"ft_dfs_name"`
}

Info200 structure represents DFS_INFO_200 RPC structure.

The DFS_INFO_200 structure relates to the NetrDfsEnumEx method when used to enumerate all of the domain-based DFS namespace in a domain. The structure contains the name of a domain-based DFS namespace. The DFS_INFO_200 structure has the following format.

func (*Info200) MarshalNDR

func (o *Info200) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Info200) UnmarshalNDR

func (o *Info200) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Info200Container

type Info200Container struct {
	// EntriesRead:  The number of elements in the array.
	EntriesRead uint32 `idl:"name:EntriesRead" json:"entries_read"`
	// Buffer:  The array of DFS_INFO_200 structures.
	Buffer []*Info200 `idl:"name:Buffer;size_is:(EntriesRead)" json:"buffer"`
}

Info200Container structure represents DFS_INFO_200_CONTAINER RPC structure.

The DFS_INFO_200_CONTAINER structure contains an array of DFS_INFO_200 structures. The DFS_INFO_200_CONTAINER structure has the following format.

func (*Info200Container) MarshalNDR

func (o *Info200Container) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Info200Container) UnmarshalNDR

func (o *Info200Container) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Info2Container

type Info2Container struct {
	// EntriesRead:  The number of elements in the array.
	EntriesRead uint32 `idl:"name:EntriesRead" json:"entries_read"`
	// Buffer:  The array of DFS_INFO_2 structures.
	Buffer []*Info2 `idl:"name:Buffer;size_is:(EntriesRead)" json:"buffer"`
}

Info2Container structure represents DFS_INFO_2_CONTAINER RPC structure.

The DFS_INFO_2_CONTAINER structure contains an array of DFS_INFO_2 structures. The DFS_INFO_2_CONTAINER structure has the following format.

func (*Info2Container) MarshalNDR

func (o *Info2Container) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Info2Container) UnmarshalNDR

func (o *Info2Container) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Info3

type Info3 struct {
	// EntryPath:  Pointer to a DFS root or DFS link path.
	EntryPath string `idl:"name:EntryPath;string" json:"entry_path"`
	// Comment:  A pointer to a null-terminated Unicode string containing a comment associated
	// with the DFS root or DFS link that is for informational purposes. This string has
	// no protocol-specified restrictions on length or content. The comment is meant for
	// human consumption and does not affect server functionality.
	Comment string `idl:"name:Comment;string" json:"comment"`
	// State:  Refers to the State field of DFS_INFO_2. For more information, see section
	// 2.2.3.2.
	State uint32 `idl:"name:State" json:"state"`
	// NumberOfStorages:  The number of DFS targets for this root or link.
	NumberOfStorages uint32 `idl:"name:NumberOfStorages" json:"number_of_storages"`
	// Storage:  A pointer to an array of DFS_STORAGE_INFO structures containing information
	// about each target. (For more information, see section 2.2.2.5). The NumberOfStorages
	// member specifies the number of structures within this storage array.
	Storage []*StorageInfo `idl:"name:Storage;size_is:(NumberOfStorages)" json:"storage"`
}

Info3 structure represents DFS_INFO_3 RPC structure.

The DFS_INFO_3 structure contains information for a DFS root or a DFS link.

The DFS_INFO_3 structure has the following format.

func (*Info3) MarshalNDR

func (o *Info3) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Info3) UnmarshalNDR

func (o *Info3) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Info300

type Info300 struct {
	// Flags:  This value specifies the type of the DFS namespace. This MUST have one of
	// the following two permitted values.
	//
	//	+-----------------------------------------+-----------------------------+
	//	|                                         |                             |
	//	|                  VALUE                  |           MEANING           |
	//	|                                         |                             |
	//	+-----------------------------------------+-----------------------------+
	//	+-----------------------------------------+-----------------------------+
	//	| DFS_VOLUME_FLAVOR_STANDALONE 0x00000100 | Stand-alone DFS namespace.  |
	//	+-----------------------------------------+-----------------------------+
	//	| DFS_VOLUME_FLAVOR_AD_BLOB 0x00000200    | Domain-based DFS namespace. |
	//	+-----------------------------------------+-----------------------------+
	Flags uint32 `idl:"name:Flags" json:"flags"`
	// DfsName:  A pointer to a DFS root path.
	Name string `idl:"name:DfsName;string" json:"name"`
}

Info300 structure represents DFS_INFO_300 RPC structure.

The DFS_INFO_300 structure relates to the NetrDfsEnum and NetrDfsEnumEx methods when used to enumerate DFS roots hosted on a server. The structure contains the name and type (domain-based or stand-alone) of a DFS namespace. The DFS_INFO_300 structure has the following format.

func (*Info300) MarshalNDR

func (o *Info300) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Info300) UnmarshalNDR

func (o *Info300) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Info300Container

type Info300Container struct {
	// EntriesRead:  The number of elements in the array.
	EntriesRead uint32 `idl:"name:EntriesRead" json:"entries_read"`
	// Buffer:  The array of DFS_INFO_300 structures.
	Buffer []*Info300 `idl:"name:Buffer;size_is:(EntriesRead)" json:"buffer"`
}

Info300Container structure represents DFS_INFO_300_CONTAINER RPC structure.

The DFS_INFO_300_CONTAINER structure contains an array of DFS_INFO_300 structures. The DFS_INFO_300_CONTAINER structure has the following format.

func (*Info300Container) MarshalNDR

func (o *Info300Container) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Info300Container) UnmarshalNDR

func (o *Info300Container) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Info3Container

type Info3Container struct {
	// EntriesRead:  The number of elements in the array.
	EntriesRead uint32 `idl:"name:EntriesRead" json:"entries_read"`
	// Buffer:  The array of DFS_INFO_3 structures.
	Buffer []*Info3 `idl:"name:Buffer;size_is:(EntriesRead)" json:"buffer"`
}

Info3Container structure represents DFS_INFO_3_CONTAINER RPC structure.

The DFS_INFO_3_CONTAINER structure contains an array of DFS_INFO_3 structures. The DFS_INFO_3_CONTAINER structure has the following format.

func (*Info3Container) MarshalNDR

func (o *Info3Container) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Info3Container) UnmarshalNDR

func (o *Info3Container) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Info4

type Info4 struct {
	// EntryPath:  A pointer to a DFS root or a DFS link path.
	EntryPath string `idl:"name:EntryPath;string" json:"entry_path"`
	// Comment:  A pointer to a null-terminated Unicode string containing a comment associated
	// with the DFS root or DFS link that is for informational purposes. This string has
	// no protocol-specified restrictions on length or content. The comment is meant for
	// human consumption and does not affect server functionality.
	Comment string `idl:"name:Comment;string" json:"comment"`
	// State:  Refers to the State field of DFS_INFO_2. For more information, see section
	// 2.2.3.2.
	State uint32 `idl:"name:State" json:"state"`
	// Timeout:  The time-out, in seconds, associated with the root or link and used in
	// a DFS referral response to a DFS client.
	Timeout uint32 `idl:"name:Timeout" json:"timeout"`
	// Guid:  The GUID of this root or link.
	GUID *dtyp.GUID `idl:"name:Guid" json:"guid"`
	// NumberOfStorages:  The number of DFS targets for this root or link. There are no
	// protocol-specified restrictions on the number of targets for a root or link.
	NumberOfStorages uint32 `idl:"name:NumberOfStorages" json:"number_of_storages"`
	// Storage:  A pointer to an array of DFS_STORAGE_INFO structures containing information
	// about each target. (For more information, see section 2.2.2.5). The NumberOfStorages
	// member specifies the number of structures within this storage array.
	Storage []*StorageInfo `idl:"name:Storage;size_is:(NumberOfStorages)" json:"storage"`
}

Info4 structure represents DFS_INFO_4 RPC structure.

The DFS_INFO_4 structure contains information for a DFS root or a DFS link.

The DFS_INFO_4 structure has the following format.

func (*Info4) MarshalNDR

func (o *Info4) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Info4) UnmarshalNDR

func (o *Info4) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Info4Container

type Info4Container struct {
	// EntriesRead:  The number of elements in the array.
	EntriesRead uint32 `idl:"name:EntriesRead" json:"entries_read"`
	// Buffer:  The array of DFS_INFO_4 structures.
	Buffer []*Info4 `idl:"name:Buffer;size_is:(EntriesRead)" json:"buffer"`
}

Info4Container structure represents DFS_INFO_4_CONTAINER RPC structure.

The DFS_INFO_4_CONTAINER structure contains an array of DFS_INFO_4 structures. The DFS_INFO_4_CONTAINER structure has the following format.

func (*Info4Container) MarshalNDR

func (o *Info4Container) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Info4Container) UnmarshalNDR

func (o *Info4Container) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Info5

type Info5 struct {
	// EntryPath:   A pointer to a DFS root or a DFS link path.
	EntryPath string `idl:"name:EntryPath;string" json:"entry_path"`
	// Comment:   A pointer to a null-terminated Unicode string containing a comment associated
	// with the DFS root or DFS link that is for informational purposes. This string has
	// no protocol-specified restrictions on length or content. The comment is meant for
	// human consumption and does not affect server functionality.
	Comment string `idl:"name:Comment;string" json:"comment"`
	// State:  Refers to the State field of DFS_INFO_2. For more information, see section
	// 2.2.3.2.
	State uint32 `idl:"name:State" json:"state"`
	// Timeout:   The time-out, in seconds, associated with the root or link and used in
	// a DFS referral response to a DFS client.
	Timeout uint32 `idl:"name:Timeout" json:"timeout"`
	// Guid:  The GUID of this root or link.
	GUID *dtyp.GUID `idl:"name:Guid" json:"guid"`
	// PropertyFlags:   A bit field in which each bit is responsible for a specific property
	// applicable to the entire DFS namespace, the DFS root, or an individual DFS link,
	// depending on the actual property. Any combination of bits is allowed, unless indicated
	// otherwise. The following are valid bit definitions for this field.
	//
	//	+-----------------------------------------------+----------------------------------------------------------------------------------+
	//	|                                               |                                                                                  |
	//	|                     VALUE                     |                                     MEANING                                      |
	//	|                                               |                                                                                  |
	//	+-----------------------------------------------+----------------------------------------------------------------------------------+
	//	+-----------------------------------------------+----------------------------------------------------------------------------------+
	//	| DFS_PROPERTY_FLAG_INSITE_REFERRALS 0x00000001 | When set, indicates that DFS in-site referral mode is enabled.                   |
	//	+-----------------------------------------------+----------------------------------------------------------------------------------+
	//	| DFS_PROPERTY_FLAG_ROOT_SCALABILITY 0x00000002 | When set, indicates DFS root scalability mode is enabled. This flag is valid     |
	//	|                                               | only for the DFS root of a domain-based DFS namespace.                           |
	//	+-----------------------------------------------+----------------------------------------------------------------------------------+
	//	| DFS_PROPERTY_FLAG_SITE_COSTING 0x00000004     | When set, indicates DFS referral site costing is enabled. This flag is valid     |
	//	|                                               | only for a DFS root.                                                             |
	//	+-----------------------------------------------+----------------------------------------------------------------------------------+
	//	| DFS_PROPERTY_FLAG_TARGET_FAILBACK 0x00000008  | When set, indicates DFS client target failback is enabled.                       |
	//	+-----------------------------------------------+----------------------------------------------------------------------------------+
	//	| DFS_PROPERTY_FLAG_CLUSTER_ENABLED 0x00000010  | When set, indicates clustered DFS namespace is enabled.                          |
	//	+-----------------------------------------------+----------------------------------------------------------------------------------+
	//	| DFS_PROPERTY_FLAG_ABDE 0x00000020             | When set, enables Access Based Directory Enumeration (ABDE) mode on a            |
	//	|                                               | domainv2-based DFS namespace or a stand-alone DFS namespace.<5>This flag is not  |
	//	|                                               | supported on domainv1-based namespaces.                                          |
	//	+-----------------------------------------------+----------------------------------------------------------------------------------+
	PropertyFlags uint32 `idl:"name:PropertyFlags" json:"property_flags"`
	// MetadataSize:  The size, in bytes, of the DFS metadata of the DFS namespace. For
	// a DFS link, this MUST be 0.
	MetadataSize uint32 `idl:"name:MetadataSize" json:"metadata_size"`
	// NumberOfStorages:  The number of DFS targets for this root or link.
	NumberOfStorages uint32 `idl:"name:NumberOfStorages" json:"number_of_storages"`
}

Info5 structure represents DFS_INFO_5 RPC structure.

The DFS_INFO_5 structure contains information for a DFS root or a DFS link.

The DFS_INFO_5 structure has the following format.

func (*Info5) MarshalNDR

func (o *Info5) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Info5) UnmarshalNDR

func (o *Info5) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Info50

type Info50 struct {
	// NamespaceMajorVersion:  A value containing the major version number used to determine
	// the DFS metadata format supported in a domain-based DFS namespace or a stand-alone
	// DFS namespace.<7>
	NamespaceMajorVersion uint32 `idl:"name:NamespaceMajorVersion" json:"namespace_major_version"`
	// NamespaceMinorVersion:  A value containing the minor version number used to determine
	// the DFS metadata format supported in a domain-based DFS namespace or stand-alone
	// DFS namespace.<8>
	NamespaceMinorVersion uint32 `idl:"name:NamespaceMinorVersion" json:"namespace_minor_version"`
	// NamespaceCapabilities:  A value containing the capability information of a DFS namespace.
	//
	//	+---------------------------------------------------+----------------------------------------------------------------------------------+
	//	|                                                   |                                                                                  |
	//	|                       VALUE                       |                                     MEANING                                      |
	//	|                                                   |                                                                                  |
	//	+---------------------------------------------------+----------------------------------------------------------------------------------+
	//	+---------------------------------------------------+----------------------------------------------------------------------------------+
	//	| DFS__NAMESPACE_CAPABILITY_ABDE 0x0000000000000001 | The specified DFS root supports using Access Based Directory Enumeration (ABDE)  |
	//	|                                                   | mode.<9>                                                                         |
	//	+---------------------------------------------------+----------------------------------------------------------------------------------+
	NamespaceCapabilities uint64 `idl:"name:NamespaceCapabilities" json:"namespace_capabilities"`
}

Info50 structure represents DFS_INFO_50 RPC structure.

The DFS_INFO_50 structure is used to get the DFS metadata version and the capability information of an existing DFS namespace.

The DFS_INFO_50 structure has the following format.

func (*Info50) MarshalNDR

func (o *Info50) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Info50) UnmarshalNDR

func (o *Info50) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Info5Container

type Info5Container struct {
	// EntriesRead:  The number of elements in the array.
	EntriesRead uint32 `idl:"name:EntriesRead" json:"entries_read"`
	// Buffer:  The array of DFS_INFO_5 structures.
	Buffer []*Info5 `idl:"name:Buffer;size_is:(EntriesRead)" json:"buffer"`
}

Info5Container structure represents DFS_INFO_5_CONTAINER RPC structure.

The DFS_INFO_5_CONTAINER structure contains an array of DFS_INFO_5 structures. The DFS_INFO_5_CONTAINER structure has the following format.

func (*Info5Container) MarshalNDR

func (o *Info5Container) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Info5Container) UnmarshalNDR

func (o *Info5Container) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Info6

type Info6 struct {
	// EntryPath:   A pointer to a DFS root or a DFS link path.
	EntryPath string `idl:"name:EntryPath;string" json:"entry_path"`
	// Comment:   A pointer to a null-terminated Unicode string containing a comment associated
	// with the DFS root or DFS link that is for informational purposes. This string has
	// no protocol-specified restrictions on length or content. The comment is meant for
	// human consumption and does not affect server functionality.
	Comment string `idl:"name:Comment;string" json:"comment"`
	// State:  Refers to the State field of DFS_INFO_2. For more information, see section
	// 2.2.3.2.
	State uint32 `idl:"name:State" json:"state"`
	// Timeout:   The time-out, in seconds, associated with the root or link and used in
	// a DFS referral response to a DFS client.
	Timeout uint32 `idl:"name:Timeout" json:"timeout"`
	// Guid:   The GUID of this root or link.
	GUID *dtyp.GUID `idl:"name:Guid" json:"guid"`
	// PropertyFlags:   Refers to the PropertyFlags field of DFS_INFO_5. For more information,
	// see section 2.2.3.5.
	PropertyFlags uint32 `idl:"name:PropertyFlags" json:"property_flags"`
	// MetadataSize:  The size of the DFS metadata of the DFS namespace. This MUST be 0
	// for a DFS link.
	MetadataSize uint32 `idl:"name:MetadataSize" json:"metadata_size"`
	// NumberOfStorages:   The number of DFS targets for this root or link. The protocol
	// imposes no restrictions on the number of roots or links.
	NumberOfStorages uint32 `idl:"name:NumberOfStorages" json:"number_of_storages"`
	// Storage:  A pointer to an array of DFS_STORAGE_INFO_1 structures containing information
	// about each target. The NumberOfStorages member specifies the number of structures
	// within this storage array.
	Storage []*StorageInfo1 `idl:"name:Storage;size_is:(NumberOfStorages)" json:"storage"`
}

Info6 structure represents DFS_INFO_6 RPC structure.

The DFS_INFO_6 structure contains information for a DFS root or a DFS link.

The DFS_INFO_6 structure has the following format.

func (*Info6) MarshalNDR

func (o *Info6) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Info6) UnmarshalNDR

func (o *Info6) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Info6Container

type Info6Container struct {
	// EntriesRead:  The number of elements in the array.
	EntriesRead uint32 `idl:"name:EntriesRead" json:"entries_read"`
	// Buffer:  The array of DFS_INFO_6 structures.
	Buffer []*Info6 `idl:"name:Buffer;size_is:(EntriesRead)" json:"buffer"`
}

Info6Container structure represents DFS_INFO_6_CONTAINER RPC structure.

The DFS_INFO_6_CONTAINER structure contains an array of DFS_INFO_6 structures. The DFS_INFO_6_CONTAINER structure has the following format.

func (*Info6Container) MarshalNDR

func (o *Info6Container) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Info6Container) UnmarshalNDR

func (o *Info6Container) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Info7

type Info7 struct {
	// GenerationGuid:  This GUID is modified each time DFS metadata is updated.
	//
	// This data type is used to detect when the metadata of a DFS namespace has changed.
	// It MUST be supported for domain-based DFS namespaces. It MAY be supported for stand-alone
	// DFS namespaces; a null GUID (all 128-bits are 0) MUST be returned if this is not
	// supported.<6>
	GenerationGUID *dtyp.GUID `idl:"name:GenerationGuid" json:"generation_guid"`
}

Info7 structure represents DFS_INFO_7 RPC structure.

The DFS_INFO_7 structure contains information about a DFS root.

The DFS_INFO_7 structure has the following format.

func (*Info7) MarshalNDR

func (o *Info7) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Info7) UnmarshalNDR

func (o *Info7) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Info8

type Info8 struct {
	// EntryPath:  A pointer to a DFS root or a DFS link path.
	EntryPath string `idl:"name:EntryPath;string" json:"entry_path"`
	// Comment:  A pointer to a null-terminated Unicode string containing a comment associated
	// with the DFS root or DFS link that is for informational purposes. This string has
	// no protocol-specified restrictions on length or content. The comment is meant for
	// human consumption and does not affect server functionality.
	Comment string `idl:"name:Comment;string" json:"comment"`
	// State:  Refers to the State field of DFS_INFO_2. For more information, see section
	// 2.2.3.2.
	State uint32 `idl:"name:State" json:"state"`
	// Timeout:  The time-out, in seconds, associated with the root or link and used in
	// a DFS referral response to a DFS client.
	Timeout uint32 `idl:"name:Timeout" json:"timeout"`
	// Guid:  The GUID of this root or link.
	GUID *dtyp.GUID `idl:"name:Guid" json:"guid"`
	// PropertyFlags:  Refers to the PropertyFlags field of DFS_INFO_5. For more information,
	// see section 2.2.3.5.
	PropertyFlags uint32 `idl:"name:PropertyFlags" json:"property_flags"`
	// MetadataSize:  The size, in bytes, of the DFS metadata of the DFS namespace. For
	// a DFS link, this MUST be 0.
	MetadataSize uint32 `idl:"name:MetadataSize" json:"metadata_size"`
	// SecurityDescriptorLength:  The length, in bytes, of the buffer that the pSecurityDescriptor
	// field points to.
	SecurityDescriptorLength uint32 `idl:"name:SecurityDescriptorLength" json:"security_descriptor_length"`
	// pSecurityDescriptor:  A self-relative security descriptor to be associated with a
	// DFS link. For more information on security descriptors, see [MS-DTYP] section 2.4.6.
	SecurityDescriptor []byte `idl:"name:pSecurityDescriptor;size_is:(SecurityDescriptorLength)" json:"security_descriptor"`
	// NumberOfStorages:  The number of DFS targets for this root or link. The protocol
	// imposes no restrictions on the number of roots or links.
	NumberOfStorages uint32 `idl:"name:NumberOfStorages" json:"number_of_storages"`
}

Info8 structure represents DFS_INFO_8 RPC structure.

The DFS_INFO_8 structure contains information for a DFS root or a DFS link.

The DFS_INFO_8 structure has the following format.

func (*Info8) MarshalNDR

func (o *Info8) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Info8) UnmarshalNDR

func (o *Info8) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Info8Container

type Info8Container struct {
	// EntriesRead:  The number of DFS_INFO_8 elements in the array.
	EntriesRead uint32 `idl:"name:EntriesRead" json:"entries_read"`
	// Buffer:  The array of DFS_INFO_8 structures.
	Buffer []*Info8 `idl:"name:Buffer;size_is:(EntriesRead)" json:"buffer"`
}

Info8Container structure represents DFS_INFO_8_CONTAINER RPC structure.

The DFS_INFO_8_CONTAINER structure contains an array of DFS_INFO_8 structures. The DFS_INFO_8_CONTAINER structure has the following format.

func (*Info8Container) MarshalNDR

func (o *Info8Container) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Info8Container) UnmarshalNDR

func (o *Info8Container) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Info9

type Info9 struct {
	// EntryPath:  A pointer to a DFS root or a DFS link path.
	EntryPath string `idl:"name:EntryPath;string" json:"entry_path"`
	// Comment:  Pointer to a null-terminated Unicode string containing a comment associated
	// with the DFS root or DFS link that is for informational purposes. There are no protocol-specified
	// restrictions on the length or content of this string. The comment is meant for human
	// readability and has no effect on server functionality.
	Comment string `idl:"name:Comment;string" json:"comment"`
	// State:  Refers to the State field of DFS_INFO_2. For more information, see section
	// 2.2.3.2.
	State uint32 `idl:"name:State" json:"state"`
	// Timeout:  The time-out, in seconds, associated with the root or link and used in
	// a DFS referral response to a DFS client.
	Timeout uint32 `idl:"name:Timeout" json:"timeout"`
	// Guid:  The GUID of this root or link.
	GUID *dtyp.GUID `idl:"name:Guid" json:"guid"`
	// PropertyFlags:  Refers to the PropertyFlags field of DFS_INFO_5. For more information,
	// see section 2.2.3.5.
	PropertyFlags uint32 `idl:"name:PropertyFlags" json:"property_flags"`
	// MetadataSize:  The size, in bytes, of the DFS metadata of the DFS namespace. For
	// a DFS link, this MUST be 0.
	MetadataSize uint32 `idl:"name:MetadataSize" json:"metadata_size"`
	// SecurityDescriptorLength:  The length, in bytes, of the buffer that the pSecurityDescriptor
	// field points to.
	SecurityDescriptorLength uint32 `idl:"name:SecurityDescriptorLength" json:"security_descriptor_length"`
	// pSecurityDescriptor:  A self-relative security descriptor to be associated with a
	// DFS link. For more information on security descriptors, see [MS-DTYP] section 2.4.6.
	SecurityDescriptor []byte `idl:"name:pSecurityDescriptor;size_is:(SecurityDescriptorLength)" json:"security_descriptor"`
	// NumberOfStorages:  The number of DFS targets for this root or link. The protocol
	// imposes no restrictions on the number of roots or links.
	NumberOfStorages uint32 `idl:"name:NumberOfStorages" json:"number_of_storages"`
	// Storage:  A pointer to an array of DFS_STORAGE_INFO_1 structures containing information
	// about each target. The NumberOfStorages member specifies the number of structures
	// within this storage array.
	//
	// For information on target priority rank and class information, see section 2.2.2.6.
	Storage []*StorageInfo1 `idl:"name:Storage;size_is:(NumberOfStorages)" json:"storage"`
}

Info9 structure represents DFS_INFO_9 RPC structure.

The DFS_INFO_9 structure contains information for a DFS root or a DFS link.

The DFS_INFO_9 structure has the following format.

func (*Info9) MarshalNDR

func (o *Info9) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Info9) UnmarshalNDR

func (o *Info9) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Info9Container

type Info9Container struct {
	// EntriesRead:  The number of DFS_INFO_9 elements in the array.
	EntriesRead uint32 `idl:"name:EntriesRead" json:"entries_read"`
	// Buffer:  The array of DFS_INFO_9 structures.
	Buffer []*Info9 `idl:"name:Buffer;size_is:(EntriesRead)" json:"buffer"`
}

Info9Container structure represents DFS_INFO_9_CONTAINER RPC structure.

The DFS_INFO_9_CONTAINER structure contains an array of DFS_INFO_9 structures. The DFS_INFO_9_CONTAINER structure has the following format.

func (*Info9Container) MarshalNDR

func (o *Info9Container) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Info9Container) UnmarshalNDR

func (o *Info9Container) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type InfoContainer_Info1Container

type InfoContainer_Info1Container struct {
	// DfsInfo1Container:  The DFS_INFO_1_CONTAINER structure contains an array of the names
	// of DFS roots or DFS links. For more information, see section 2.2.6.1.
	Info1Container *Info1Container `idl:"name:DfsInfo1Container" json:"info1_container"`
}

InfoContainer_Info1Container structure represents InfoEnum_InfoContainer RPC union arm.

It has following labels: 1

func (*InfoContainer_Info1Container) MarshalNDR

func (*InfoContainer_Info1Container) UnmarshalNDR

func (o *InfoContainer_Info1Container) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type InfoContainer_Info200Container

type InfoContainer_Info200Container struct {
	// DfsInfo200Container:  The DFS_INFO_200_CONTAINER structure contains an array of the
	// names of domain-based DFS namespaces in a domain-based DFS. For more information,
	// see section 2.2.6.9.
	Info200Container *Info200Container `idl:"name:DfsInfo200Container" json:"info200_container"`
}

InfoContainer_Info200Container structure represents InfoEnum_InfoContainer RPC union arm.

It has following labels: 200

func (*InfoContainer_Info200Container) MarshalNDR

func (*InfoContainer_Info200Container) UnmarshalNDR

type InfoContainer_Info2Container

type InfoContainer_Info2Container struct {
	// DfsInfo2Container:  The DFS_INFO_2_CONTAINER structure contains an array of information
	// for DFS roots or DFS links. For more information, see section 2.2.6.2.
	Info2Container *Info2Container `idl:"name:DfsInfo2Container" json:"info2_container"`
}

InfoContainer_Info2Container structure represents InfoEnum_InfoContainer RPC union arm.

It has following labels: 2

func (*InfoContainer_Info2Container) MarshalNDR

func (*InfoContainer_Info2Container) UnmarshalNDR

func (o *InfoContainer_Info2Container) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type InfoContainer_Info300Container

type InfoContainer_Info300Container struct {
	// DfsInfo300Container:  The DFS_INFO_300_CONTAINER structure contains an array of the
	// DFS roots hosted on a server. For more information, see section 2.2.6.10.
	Info300Container *Info300Container `idl:"name:DfsInfo300Container" json:"info300_container"`
}

InfoContainer_Info300Container structure represents InfoEnum_InfoContainer RPC union arm.

It has following labels: 300

func (*InfoContainer_Info300Container) MarshalNDR

func (*InfoContainer_Info300Container) UnmarshalNDR

type InfoContainer_Info3Container

type InfoContainer_Info3Container struct {
	// DfsInfo3Container:  The DFS_INFO_3_CONTAINER structure contains an array of information
	// for DFS roots or DFS links. For more information, see section 2.2.6.3.
	Info3Container *Info3Container `idl:"name:DfsInfo3Container" json:"info3_container"`
}

InfoContainer_Info3Container structure represents InfoEnum_InfoContainer RPC union arm.

It has following labels: 3

func (*InfoContainer_Info3Container) MarshalNDR

func (*InfoContainer_Info3Container) UnmarshalNDR

func (o *InfoContainer_Info3Container) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type InfoContainer_Info4Container

type InfoContainer_Info4Container struct {
	// DfsInfo4Container:  The DFS_INFO_4_CONTAINER structure contains an array of information
	// for DFS roots or DFS links. For more information, see section 2.2.6.4.
	Info4Container *Info4Container `idl:"name:DfsInfo4Container" json:"info4_container"`
}

InfoContainer_Info4Container structure represents InfoEnum_InfoContainer RPC union arm.

It has following labels: 4

func (*InfoContainer_Info4Container) MarshalNDR

func (*InfoContainer_Info4Container) UnmarshalNDR

func (o *InfoContainer_Info4Container) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type InfoContainer_Info5Container

type InfoContainer_Info5Container struct {
	// DfsInfo5Container:  The DFS_INFO_5_CONTAINER structure contains an array of information
	// for DFS roots or DFS links. For more information, see section 2.2.6.5.
	Info5Container *Info5Container `idl:"name:DfsInfo5Container" json:"info5_container"`
}

InfoContainer_Info5Container structure represents InfoEnum_InfoContainer RPC union arm.

It has following labels: 5

func (*InfoContainer_Info5Container) MarshalNDR

func (*InfoContainer_Info5Container) UnmarshalNDR

func (o *InfoContainer_Info5Container) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type InfoContainer_Info6Container

type InfoContainer_Info6Container struct {
	// DfsInfo6Container:  The DFS_INFO_6_CONTAINER structure contains an array of information
	// for DFS roots or DFS links. For more information, see section 2.2.6.6.
	Info6Container *Info6Container `idl:"name:DfsInfo6Container" json:"info6_container"`
}

InfoContainer_Info6Container structure represents InfoEnum_InfoContainer RPC union arm.

It has following labels: 6

func (*InfoContainer_Info6Container) MarshalNDR

func (*InfoContainer_Info6Container) UnmarshalNDR

func (o *InfoContainer_Info6Container) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type InfoContainer_Info8Container

type InfoContainer_Info8Container struct {
	// DfsInfo8Container:  The DFS_INFO_8_CONTAINER structure contains an array of information
	// for DFS roots or DFS links. For more information, see section 2.2.6.7.
	Info8Container *Info8Container `idl:"name:DfsInfo8Container" json:"info8_container"`
}

InfoContainer_Info8Container structure represents InfoEnum_InfoContainer RPC union arm.

It has following labels: 8

func (*InfoContainer_Info8Container) MarshalNDR

func (*InfoContainer_Info8Container) UnmarshalNDR

func (o *InfoContainer_Info8Container) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type InfoContainer_Info9Container

type InfoContainer_Info9Container struct {
	// DfsInfo9Container:  The DFS_INFO_9_CONTAINER structure contains an array of information
	// for DFS roots or DFS links. For more information, see section 2.2.6.8.
	Info9Container *Info9Container `idl:"name:DfsInfo9Container" json:"info9_container"`
}

InfoContainer_Info9Container structure represents InfoEnum_InfoContainer RPC union arm.

It has following labels: 9

func (*InfoContainer_Info9Container) MarshalNDR

func (*InfoContainer_Info9Container) UnmarshalNDR

func (o *InfoContainer_Info9Container) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type InfoEnum

type InfoEnum struct {
	// Level:  Specifies the case of the DfsInfoContainer union.
	Level uint32 `idl:"name:Level" json:"level"`
	// DfsInfoContainer:  Union of the possible enumeration containers.
	InfoContainer *InfoEnum_InfoContainer `idl:"name:DfsInfoContainer;switch_is:Level" json:"info_container"`
}

InfoEnum structure represents DFS_INFO_ENUM_STRUCT RPC structure.

The DFS_INFO_ENUM_STRUCT union relates to the NetrDfsEnum and NetrDfsEnumEx methods when used to enumerate the configuration of the DFS server.

The DFS_INFO_ENUM_STRUCT union structure has the following format.

func (*InfoEnum) MarshalNDR

func (o *InfoEnum) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*InfoEnum) UnmarshalNDR

func (o *InfoEnum) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type InfoEnum_InfoContainer

type InfoEnum_InfoContainer struct {
	// Types that are assignable to Value
	//
	// *InfoContainer_Info1Container
	// *InfoContainer_Info2Container
	// *InfoContainer_Info3Container
	// *InfoContainer_Info4Container
	// *InfoContainer_Info5Container
	// *InfoContainer_Info6Container
	// *InfoContainer_Info8Container
	// *InfoContainer_Info9Container
	// *InfoContainer_Info200Container
	// *InfoContainer_Info300Container
	Value is_InfoEnum_InfoContainer `json:"value"`
}

InfoEnum_InfoContainer structure represents DFS_INFO_ENUM_STRUCT union anonymous member.

The DFS_INFO_ENUM_STRUCT union relates to the NetrDfsEnum and NetrDfsEnumEx methods when used to enumerate the configuration of the DFS server.

The DFS_INFO_ENUM_STRUCT union structure has the following format.

func (*InfoEnum_InfoContainer) GetValue

func (o *InfoEnum_InfoContainer) GetValue() any

func (*InfoEnum_InfoContainer) MarshalUnionNDR

func (o *InfoEnum_InfoContainer) MarshalUnionNDR(ctx context.Context, w ndr.Writer, sw uint32) error

func (*InfoEnum_InfoContainer) NDRSwitchValue

func (o *InfoEnum_InfoContainer) NDRSwitchValue(sw uint32) uint32

func (*InfoEnum_InfoContainer) UnmarshalUnionNDR

func (o *InfoEnum_InfoContainer) UnmarshalUnionNDR(ctx context.Context, w ndr.Reader, sw uint32) error

type Info_1

type Info_1 struct {
	// DfsInfo1:  The DFS_INFO_1 structure contains the name of a DFS root or DFS link.
	// For more information on the specifications, see section 2.2.3.1.
	Info1 *Info1 `idl:"name:DfsInfo1" json:"info1"`
}

Info_1 structure represents DFS_INFO_STRUCT RPC union arm.

It has following labels: 1

func (*Info_1) MarshalNDR

func (o *Info_1) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Info_1) UnmarshalNDR

func (o *Info_1) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Info_100

type Info_100 struct {
	// DfsInfo100:  The DFS_INFO_100 structure contains a comment associated with a DFS
	// root or DFS link. For more information on specifications, see section 2.2.5.1.
	Info100 *Info100 `idl:"name:DfsInfo100" json:"info100"`
}

Info_100 structure represents DFS_INFO_STRUCT RPC union arm.

It has following labels: 100

func (*Info_100) MarshalNDR

func (o *Info_100) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Info_100) UnmarshalNDR

func (o *Info_100) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Info_101

type Info_101 struct {
	// DfsInfo101:  The DFS_INFO_101 structure describes the storage state on a DFS root,
	// DFS link, DFS root target, or DFS link target. For more information on specifications,
	// see section 2.2.4.1.
	Info101 *Info101 `idl:"name:DfsInfo101" json:"info101"`
}

Info_101 structure represents DFS_INFO_STRUCT RPC union arm.

It has following labels: 101

func (*Info_101) MarshalNDR

func (o *Info_101) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Info_101) UnmarshalNDR

func (o *Info_101) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Info_102

type Info_102 struct {
	// DfsInfo102:  The DFS_INFO_102 structure contains a time-out value for a DFS root
	// or DFS link. For more information on specifications, see section 2.2.4.2.
	Info102 *Info102 `idl:"name:DfsInfo102" json:"info102"`
}

Info_102 structure represents DFS_INFO_STRUCT RPC union arm.

It has following labels: 102

func (*Info_102) MarshalNDR

func (o *Info_102) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Info_102) UnmarshalNDR

func (o *Info_102) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Info_103

type Info_103 struct {
	// DfsInfo103:  The DFS_INFO_103 structure contains properties that set specific behaviors
	// for a DFS root or DFS link. For more information on specifications, see section 2.2.4.3.
	Info103 *Info103 `idl:"name:DfsInfo103" json:"info103"`
}

Info_103 structure represents DFS_INFO_STRUCT RPC union arm.

It has following labels: 103

func (*Info_103) MarshalNDR

func (o *Info_103) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Info_103) UnmarshalNDR

func (o *Info_103) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Info_104

type Info_104 struct {
	// DfsInfo104:  The DFS_INFO_104 structure contains the priority of a DFS root target
	// or DFS link target. For more information on specifications, see section 2.2.4.4.
	Info104 *Info104 `idl:"name:DfsInfo104" json:"info104"`
}

Info_104 structure represents DFS_INFO_STRUCT RPC union arm.

It has following labels: 104

func (*Info_104) MarshalNDR

func (o *Info_104) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Info_104) UnmarshalNDR

func (o *Info_104) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Info_105

type Info_105 struct {
	// DfsInfo105:  The DFS_INFO_105 structure contains information about a DFS root or
	// DFS link, including comment, state, time-out, and DFS behaviors that property flags
	// specify. For more information on specifications, see section 2.2.4.5.
	Info105 *Info105 `idl:"name:DfsInfo105" json:"info105"`
}

Info_105 structure represents DFS_INFO_STRUCT RPC union arm.

It has following labels: 105

func (*Info_105) MarshalNDR

func (o *Info_105) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Info_105) UnmarshalNDR

func (o *Info_105) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Info_106

type Info_106 struct {
	// DfsInfo106:  The DFS_INFO_106 structure contains the storage state and priority for
	// a DFS root target or DFS link target. For more information on specifications, see
	// section 2.2.4.6.
	Info106 *Info106 `idl:"name:DfsInfo106" json:"info106"`
}

Info_106 structure represents DFS_INFO_STRUCT RPC union arm.

It has following labels: 106

func (*Info_106) MarshalNDR

func (o *Info_106) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Info_106) UnmarshalNDR

func (o *Info_106) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Info_107

type Info_107 struct {
	// DfsInfo107:  The DFS_INFO_107 structure contains the storage state and priority for
	// a DFS root target or DFS link target. For more information on specifications, see
	// section 2.2.4.7.
	Info107 *Info107 `idl:"name:DfsInfo107" json:"info107"`
}

Info_107 structure represents DFS_INFO_STRUCT RPC union arm.

It has following labels: 107

func (*Info_107) MarshalNDR

func (o *Info_107) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Info_107) UnmarshalNDR

func (o *Info_107) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Info_150

type Info_150 struct {
	// DfsInfo150:  The DFS_INFO_150 structure contains the self-relative security descriptor
	// associated with the DFS link. For more information on specifications, see section
	// 2.2.5.2.
	Info150 *Info150 `idl:"name:DfsInfo150" json:"info150"`
}

Info_150 structure represents DFS_INFO_STRUCT RPC union arm.

It has following labels: 150

func (*Info_150) MarshalNDR

func (o *Info_150) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Info_150) UnmarshalNDR

func (o *Info_150) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Info_2

type Info_2 struct {
	// DfsInfo2:  The DFS_INFO_2 structure contains information for a DFS root or DFS link.
	// For more information on specifications, see section 2.2.3.2.
	Info2 *Info2 `idl:"name:DfsInfo2" json:"info2"`
}

Info_2 structure represents DFS_INFO_STRUCT RPC union arm.

It has following labels: 2

func (*Info_2) MarshalNDR

func (o *Info_2) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Info_2) UnmarshalNDR

func (o *Info_2) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Info_3

type Info_3 struct {
	// DfsInfo3:  The DFS_INFO_3 structure contains information for a DFS root or DFS link.
	// For more information on specifications, see section 2.2.3.3.
	Info3 *Info3 `idl:"name:DfsInfo3" json:"info3"`
}

Info_3 structure represents DFS_INFO_STRUCT RPC union arm.

It has following labels: 3

func (*Info_3) MarshalNDR

func (o *Info_3) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Info_3) UnmarshalNDR

func (o *Info_3) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Info_4

type Info_4 struct {
	// DfsInfo4:  The DFS_INFO_4 structure contains information for a DFS root or DFS link.
	// For more information on specifications, see section 2.2.3.4.
	Info4 *Info4 `idl:"name:DfsInfo4" json:"info4"`
}

Info_4 structure represents DFS_INFO_STRUCT RPC union arm.

It has following labels: 4

func (*Info_4) MarshalNDR

func (o *Info_4) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Info_4) UnmarshalNDR

func (o *Info_4) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Info_5

type Info_5 struct {
	// DfsInfo5:  The DFS_INFO_5 structure contains information for a DFS root or DFS link.
	// For more information on specifications, see section 2.2.3.5.
	Info5 *Info5 `idl:"name:DfsInfo5" json:"info5"`
}

Info_5 structure represents DFS_INFO_STRUCT RPC union arm.

It has following labels: 5

func (*Info_5) MarshalNDR

func (o *Info_5) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Info_5) UnmarshalNDR

func (o *Info_5) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Info_50

type Info_50 struct {
	// DfsInfo50:  The DFS_INFO_50 structure contains information about a DFS root or DFS
	// link. For more information on specifications, see section 2.2.3.10.
	Info50 *Info50 `idl:"name:DfsInfo50" json:"info50"`
}

Info_50 structure represents DFS_INFO_STRUCT RPC union arm.

It has following labels: 50

func (*Info_50) MarshalNDR

func (o *Info_50) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Info_50) UnmarshalNDR

func (o *Info_50) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Info_6

type Info_6 struct {
	// DfsInfo6:  The DFS_INFO_6 structure contains information for a DFS root or DFS link.
	// For more information on specifications, see section 2.2.3.6.
	Info6 *Info6 `idl:"name:DfsInfo6" json:"info6"`
}

Info_6 structure represents DFS_INFO_STRUCT RPC union arm.

It has following labels: 6

func (*Info_6) MarshalNDR

func (o *Info_6) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Info_6) UnmarshalNDR

func (o *Info_6) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Info_7

type Info_7 struct {
	// DfsInfo7:  The DFS_INFO_7 structure contains information about a DFS root or DFS
	// link. For more information on specifications, see section 2.2.3.7.
	Info7 *Info7 `idl:"name:DfsInfo7" json:"info7"`
}

Info_7 structure represents DFS_INFO_STRUCT RPC union arm.

It has following labels: 7

func (*Info_7) MarshalNDR

func (o *Info_7) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Info_7) UnmarshalNDR

func (o *Info_7) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Info_8

type Info_8 struct {
	// DfsInfo8:  The DFS_INFO_8 structure contains information about a DFS root or DFS
	// link. For more information on specifications, see section 2.2.3.8.
	Info8 *Info8 `idl:"name:DfsInfo8" json:"info8"`
}

Info_8 structure represents DFS_INFO_STRUCT RPC union arm.

It has following labels: 8

func (*Info_8) MarshalNDR

func (o *Info_8) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Info_8) UnmarshalNDR

func (o *Info_8) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Info_9

type Info_9 struct {
	// DfsInfo9:  The DFS_INFO_9 structure contains information about a DFS root or DFS
	// link. For more information on specifications, see section 2.2.3.9.
	Info9 *Info9 `idl:"name:DfsInfo9" json:"info9"`
}

Info_9 structure represents DFS_INFO_STRUCT RPC union arm.

It has following labels: 9

func (*Info_9) MarshalNDR

func (o *Info_9) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Info_9) UnmarshalNDR

func (o *Info_9) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Info_DefaultInfo

type Info_DefaultInfo struct {
}

Info_DefaultInfo structure represents DFS_INFO_STRUCT RPC default union arm.

func (*Info_DefaultInfo) MarshalNDR

func (o *Info_DefaultInfo) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Info_DefaultInfo) UnmarshalNDR

func (o *Info_DefaultInfo) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type ManagerGetVersionRequest

type ManagerGetVersionRequest struct {
}

ManagerGetVersionRequest structure represents the NetrDfsManagerGetVersion operation request

func (*ManagerGetVersionRequest) MarshalNDR

func (o *ManagerGetVersionRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ManagerGetVersionRequest) UnmarshalNDR

func (o *ManagerGetVersionRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type ManagerGetVersionResponse

type ManagerGetVersionResponse struct {
	// Return: The NetrDfsManagerGetVersion return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

ManagerGetVersionResponse structure represents the NetrDfsManagerGetVersion operation response

func (*ManagerGetVersionResponse) MarshalNDR

func (o *ManagerGetVersionResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ManagerGetVersionResponse) UnmarshalNDR

func (o *ManagerGetVersionResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type ManagerInitializeRequest

type ManagerInitializeRequest struct {
	// ServerName: The pointer to a null-terminated Unicode host name string of the DFS
	// root target server or DC where the DFS service is to be reinitialized.
	ServerName string `idl:"name:ServerName;string" json:"server_name"`
	// Flags: This parameter MUST be zero.
	Flags uint32 `idl:"name:Flags" json:"flags"`
}

ManagerInitializeRequest structure represents the NetrDfsManagerInitialize operation request

func (*ManagerInitializeRequest) MarshalNDR

func (o *ManagerInitializeRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ManagerInitializeRequest) UnmarshalNDR

func (o *ManagerInitializeRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type ManagerInitializeResponse

type ManagerInitializeResponse struct {
	// Return: The NetrDfsManagerInitialize return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

ManagerInitializeResponse structure represents the NetrDfsManagerInitialize operation response

func (*ManagerInitializeResponse) MarshalNDR

func (o *ManagerInitializeResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*ManagerInitializeResponse) UnmarshalNDR

func (o *ManagerInitializeResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type MoveRequest

type MoveRequest struct {
	// DfsEntryPath: The pointer to a DFS path, this parameter specifies the source path
	// for the move operation. This MUST be a DFS link or the path prefix of any DFS link
	// in the DFS namespace.
	EntryPath string `idl:"name:DfsEntryPath;string" json:"entry_path"`
	// NewDfsEntryPath: The pointer to a DFS path, this parameter specifies the destination
	// DFS path for the move operation. This MUST be a path or a DFS link in the same DFS
	// namespace.
	NewDFSEntryPath string `idl:"name:NewDfsEntryPath;string" json:"new_dfs_entry_path"`
	// Flags: A bit field specifying additional actions to take.
	//
	//	+--------------------------------------------+----------------------------------------------------------------------------------+
	//	|                                            |                                                                                  |
	//	|                   VALUE                    |                                     MEANING                                      |
	//	|                                            |                                                                                  |
	//	+--------------------------------------------+----------------------------------------------------------------------------------+
	//	+--------------------------------------------+----------------------------------------------------------------------------------+
	//	| DFS_MOVE_FLAG_REPLACE_IF_EXISTS 0x00000001 | If the destination path is an existing link, replace it as part of the move      |
	//	|                                            | operation.                                                                       |
	//	+--------------------------------------------+----------------------------------------------------------------------------------+
	Flags uint32 `idl:"name:Flags" json:"flags"`
}

MoveRequest structure represents the NetrDfsMove operation request

func (*MoveRequest) MarshalNDR

func (o *MoveRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*MoveRequest) UnmarshalNDR

func (o *MoveRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type MoveResponse

type MoveResponse struct {
	// Return: The NetrDfsMove return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

MoveResponse structure represents the NetrDfsMove operation response

func (*MoveResponse) MarshalNDR

func (o *MoveResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*MoveResponse) UnmarshalNDR

func (o *MoveResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type NamespaceVersionOrigin

type NamespaceVersionOrigin uint16

NamespaceVersionOrigin type represents DFS_NAMESPACE_VERSION_ORIGIN RPC enumeration.

The DFS_NAMESPACE_VERSION_ORIGIN is an enumeration that relates to the NetrDfsGetSupportedNamespaceVersion method when used to determine the supported DFS metadata version number.

The DFS_NAMESPACE_VERSION_ORIGIN enumeration has the following format.

var (
	// DFS_NAMESPACE_VERSION_ORIGIN_COMBINED:  This value is not used in communication.
	NamespaceVersionOriginCombined NamespaceVersionOrigin = 0
	// DFS_NAMESPACE_VERSION_ORIGIN_SERVER:  The maximum version that a server can support.
	NamespaceVersionOriginServer NamespaceVersionOrigin = 1
	// DFS_NAMESPACE_VERSION_ORIGIN_DOMAIN:  The maximum version that the domain can support.
	NamespaceVersionOriginDomain NamespaceVersionOrigin = 2
)

func (NamespaceVersionOrigin) String

func (o NamespaceVersionOrigin) String() string

type NetdfsClient

type NetdfsClient interface {

	// The NetrDfsManagerGetVersion method returns the version number of the DFS server
	// in use on the server.
	//
	// The NetrDfsManagerGetVersion method has the following MIDL syntax.
	//
	// This method has no parameters.
	//
	// Return Values: This method MUST return one of the following values.
	//
	//	+--------------+----------------------------------------------------------------------------------+
	//	|    RETURN    |                                                                                  |
	//	|    VALUE     |                                   DESCRIPTION                                    |
	//	|              |                                                                                  |
	//	+--------------+----------------------------------------------------------------------------------+
	//	+--------------+----------------------------------------------------------------------------------+
	//	| 0x00000001   | The server MUST support stand-alone DFS namespaces and opnums from 0 through 5,  |
	//	|              | inclusive. The server MAY support domain-based DFS namespaces and other opnums.  |
	//	+--------------+----------------------------------------------------------------------------------+
	//	| 0x00000002   | In addition to the preceding, the server MUST support domainv1-based DFS         |
	//	|              | namespaces and opnums 10 through 22, inclusive. The server MAY support hosting   |
	//	|              | more than one DFS namespace on the same server.                                  |
	//	+--------------+----------------------------------------------------------------------------------+
	//	| 0x00000004   | In addition to the preceding, the server MUST support hosting more than one DFS  |
	//	|              | namespace on the same server and Level parameter value 200 of the NetrDfsEnumEx  |
	//	|              | method. It SHOULD support opnum 6.                                               |
	//	+--------------+----------------------------------------------------------------------------------+
	//	| 0x00000006   | In addition to the preceding, the server MUST support domainv2-based DFS         |
	//	|              | namespace and opnums 23 through 25, inclusive.                                   |
	//	+--------------+----------------------------------------------------------------------------------+
	//
	// The clients MAY use the version information to determine the RPC methods that the
	// DFS server supports.<37><38><39><40><41>
	ManagerGetVersion(context.Context, *ManagerGetVersionRequest, ...dcerpc.CallOption) (*ManagerGetVersionResponse, error)

	// The NetrDfsAdd method creates a new DFS link or adds a new target to an existing
	// link of a DFS namespace.
	//
	// The NetrDfsAdd (Opnum 1) method has the following MIDL syntax.
	//
	// Return Values: The method MUST return 0 on success and a nonzero error code on failure.
	// The method can return any specific error code value, as specified in [MS-ERREF] section
	// 2.2. The most common error codes are listed in the following table.
	//
	//	+------------------------------------+-------------------------------------------------------+
	//	|               RETURN               |                                                       |
	//	|             VALUE/CODE             |                      DESCRIPTION                      |
	//	|                                    |                                                       |
	//	+------------------------------------+-------------------------------------------------------+
	//	+------------------------------------+-------------------------------------------------------+
	//	| 0x00000000 ERROR_SUCCESS           | Successful completion.                                |
	//	+------------------------------------+-------------------------------------------------------+
	//	| 0x00000005 ERROR_ACCESS_DENIED     | Permission to perform the operation was denied.       |
	//	+------------------------------------+-------------------------------------------------------+
	//	| 0x00000050 ERROR_FILE_EXISTS       | The specified DFS link target already exists.         |
	//	+------------------------------------+-------------------------------------------------------+
	//	| 0x00000057 ERROR_INVALID_PARAMETER | An incorrect parameter was specified.                 |
	//	+------------------------------------+-------------------------------------------------------+
	//	| 0x00000490 ERROR_NOT_FOUND         | The specified DFS root namespace does not exist.      |
	//	+------------------------------------+-------------------------------------------------------+
	//	| 0x00000032 ERROR_NOT_SUPPORTED     | The method does not support a domain-based namespace. |
	//	+------------------------------------+-------------------------------------------------------+
	//	| 0x00000906 NERR_NetNameNotFound    | The DFS link target does not exist.                   |
	//	+------------------------------------+-------------------------------------------------------+
	//
	// The NetrDfsAdd method SHOULD<42> support a domain-based DFS namespace. If it does
	// not support a domain-based DFS namespace it MUST return ERROR_NOT_SUPPORTED.
	Add(context.Context, *AddRequest, ...dcerpc.CallOption) (*AddResponse, error)

	// The NetrDfsRemove method removes a link or a link target from a DFS namespace. A
	// link can be removed regardless of the number of targets associated with it.
	//
	// The NetrDfsRemove method has the following MIDL syntax.
	//
	// Return Values: This method MUST return 0 on success and a nonzero error code on failure.
	// The method can return any specific error code value, as specified in [MS-ERREF] section
	// 2.2. The most common error codes are listed in the following table.
	//
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	|               RETURN               |                                                                                  |
	//	|             VALUE/CODE             |                                   DESCRIPTION                                    |
	//	|                                    |                                                                                  |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000000 ERROR_SUCCESS           | Successful completion.                                                           |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000002 ERROR_FILE_NOT_FOUND    | The specified DFS link target was not found as a target of the specified DFS     |
	//	|                                    | link.                                                                            |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000005 ERROR_ACCESS_DENIED     | Permission to perform the operation was denied.                                  |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000057 ERROR_INVALID_PARAMETER | An incorrect parameter was specified.                                            |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000032 ERROR_NOT_SUPPORTED     | The method does not support a domain-based namespace.                            |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000490 ERROR_NOT_FOUND         | The specified DFS namespace or DFS link does not exist.                          |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//
	// The NetrDfsRemove method SHOULD<49> support a domain-based DFS namespace. If it does
	// not support a domain-based DFS namespace it MUST return ERROR_NOT_SUPPORTED.
	Remove(context.Context, *RemoveRequest, ...dcerpc.CallOption) (*RemoveResponse, error)

	// The NetrDfsSetInfo method sets or modifies information relevant to a specific DFS
	// root, DFS root target, DFS link, or DFS link target.
	//
	// The NetrDfsSetInfo method uses the following MIDL syntax.
	//
	// Return Values: This method MUST return 0 on success and a nonzero error code on failure.
	// The method can return any specific error code value, as specified in [MS-ERREF],
	// section 2.2. The most common error codes are listed in the following table.
	//
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	|               RETURN               |                                                                                  |
	//	|             VALUE/CODE             |                                   DESCRIPTION                                    |
	//	|                                    |                                                                                  |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000000 ERROR_SUCCESS           | Successful completion.                                                           |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000002 ERROR_FILE_NOT_FOUND    | The specified DFS link target was not found as a target of the specified DFS     |
	//	|                                    | link.                                                                            |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000005 ERROR_ACCESS_DENIED     | Permission to perform the operation was denied.                                  |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000032 ERROR_NOT_SUPPORTED     | The specified operation is not supported.                                        |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000057 ERROR_INVALID_PARAMETER | An incorrect parameter was specified.                                            |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000490 ERROR_NOT_FOUND         | The specified DFS root namespace or DFS link, or DFS link or root target, does   |
	//	|                                    | not exist.                                                                       |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//
	// The NetrDfsSetInfo method SHOULD<56> support a domain-based DFS namespace. If it
	// does not support a domain-based DFS namespace it MUST return ERROR_NOT_SUPPORTED.
	SetInfo(context.Context, *SetInfoRequest, ...dcerpc.CallOption) (*SetInfoResponse, error)

	// The NetrDfsGetInfo method returns information about a DFS root or a DFS link of the
	// specified DFS namespace.
	//
	// The NetrDfsGetInfo method has the following MIDL syntax.
	//
	// Return Values: The method MUST return 0 on success and a nonzero error code on failure.
	// The method can return any specific error code value, as specified in [MS-ERREF] section
	// 2.2. The most common error codes are listed in the following table.
	//
	//	+------------------------------------+--------------------------------------------------------------------------------+
	//	|               RETURN               |                                                                                |
	//	|             VALUE/CODE             |                                  DESCRIPTION                                   |
	//	|                                    |                                                                                |
	//	+------------------------------------+--------------------------------------------------------------------------------+
	//	+------------------------------------+--------------------------------------------------------------------------------+
	//	| 0x00000000 ERROR_SUCCESS           | Successful completion.                                                         |
	//	+------------------------------------+--------------------------------------------------------------------------------+
	//	| 0x00000032 ERROR_NOT_SUPPORTED     | The specified operation is not supported.                                      |
	//	+------------------------------------+--------------------------------------------------------------------------------+
	//	| 0x00000057 ERROR_INVALID_PARAMETER | An incorrect parameter was specified.                                          |
	//	+------------------------------------+--------------------------------------------------------------------------------+
	//	| 0x00000490 ERROR_NOT_FOUND         | The specified DFS root or DFS link, or DFS link or root target does not exist. |
	//	+------------------------------------+--------------------------------------------------------------------------------+
	GetInfo(context.Context, *GetInfoRequest, ...dcerpc.CallOption) (*GetInfoResponse, error)

	// The NetrDfsEnum method enumerates the DFS root hosted on a server or the DFS links
	// of the namespace hosted by a server. Depending on the information level, the targets
	// of the root and links are also displayed.
	//
	// The NetrDfsEnum method uses the following MIDL syntax.
	//
	// Return Values: The method MUST return 0 on success and a nonzero error code on failure.
	// The method can return any specific error code value, as specified in [MS-ERREF] section
	// 2.2. The most common error codes are listed in the following table.
	//
	//	+---------------------------------------+--------------------------------------------------+
	//	|                RETURN                 |                                                  |
	//	|              VALUE/CODE               |                   DESCRIPTION                    |
	//	|                                       |                                                  |
	//	+---------------------------------------+--------------------------------------------------+
	//	+---------------------------------------+--------------------------------------------------+
	//	| 0x00000000 ERROR_SUCCESS              | Successful completion.                           |
	//	+---------------------------------------+--------------------------------------------------+
	//	| 0x00000057 ERROR_INVALID_PARAMETER    | An incorrect parameter was specified.            |
	//	+---------------------------------------+--------------------------------------------------+
	//	| 0x00000103 ERROR_NO_MORE_ITEMS        | There is no data to return.                      |
	//	+---------------------------------------+--------------------------------------------------+
	//	| 0x00000490 ERROR_NOT_FOUND            | The specified DFS root namespace does not exist. |
	//	+---------------------------------------+--------------------------------------------------+
	//	| 0x000010DF ERROR_DEVICE_NOT_AVAILABLE | The server hosts more than one root.             |
	//	+---------------------------------------+--------------------------------------------------+
	//
	// A server MAY<66> implement this method.
	Enum(context.Context, *EnumRequest, ...dcerpc.CallOption) (*EnumResponse, error)

	// The NetrDfsMove (Opnum 6) method renames or moves a DFS link. This method has the
	// following MIDL syntax.
	//
	// Return Values: The method MUST return 0 on success and a nonzero error code on failure.
	// The method can return any specific error code value, as specified in [MS-ERREF] section
	// 2.2. The most common error codes are listed in the following table.
	//
	//	+------------------------------------+--------------------------------------------------------------------------+
	//	|               RETURN               |                                                                          |
	//	|             VALUE/CODE             |                               DESCRIPTION                                |
	//	|                                    |                                                                          |
	//	+------------------------------------+--------------------------------------------------------------------------+
	//	+------------------------------------+--------------------------------------------------------------------------+
	//	| 0x00000000 ERROR_SUCCESS           | Successful completion.                                                   |
	//	+------------------------------------+--------------------------------------------------------------------------+
	//	| 0x00000005 ERROR_ACCESS_DENIED     | Permission to perform the operation was denied.                          |
	//	+------------------------------------+--------------------------------------------------------------------------+
	//	| 0x00000032 ERROR_NOT_SUPPORTED     | The specified operation is not supported.                                |
	//	+------------------------------------+--------------------------------------------------------------------------+
	//	| 0x00000050 ERROR_FILE_EXISTS       | The destination path specifies an existing link.                         |
	//	+------------------------------------+--------------------------------------------------------------------------+
	//	| 0x00000057 ERROR_INVALID_PARAMETER | An incorrect parameter was specified.                                    |
	//	+------------------------------------+--------------------------------------------------------------------------+
	//	| 0x00000490 ERROR_NOT_FOUND         | A specified DFS root namespace does not exist, or no links were matched. |
	//	+------------------------------------+--------------------------------------------------------------------------+
	Move(context.Context, *MoveRequest, ...dcerpc.CallOption) (*MoveResponse, error)

	// The NetrDfsAddFtRoot (Opnum 10) method creates a new domainv1-based DFS namespace
	// or adds a root target to an existing namespace.
	//
	// The NetrDfsAddFtRoot method uses the following MIDL syntax.
	//
	// Return Values: The method MUST return 0 on success and a nonzero error code on failure.
	// The method can return any specific error code value, as specified in [MS-ERREF] section
	// 2.2. The most common error codes are listed in the following table.
	//
	//	+------------------------------------+--------------------------------------------------------------------------+
	//	|               RETURN               |                                                                          |
	//	|             VALUE/CODE             |                               DESCRIPTION                                |
	//	|                                    |                                                                          |
	//	+------------------------------------+--------------------------------------------------------------------------+
	//	+------------------------------------+--------------------------------------------------------------------------+
	//	| 0x00000000 ERROR_SUCCESS           | Successful completion.                                                   |
	//	+------------------------------------+--------------------------------------------------------------------------+
	//	| 0x00000005 ERROR_ACCESS_DENIED     | Permission to perform the operation was denied.                          |
	//	+------------------------------------+--------------------------------------------------------------------------+
	//	| 0x00000057 ERROR_INVALID_PARAMETER | An incorrect parameter was specified.                                    |
	//	+------------------------------------+--------------------------------------------------------------------------+
	//	| 0x000000B7 ERROR_ALREADY_EXISTS    | A namespace of the specified name already exists on the server.          |
	//	+------------------------------------+--------------------------------------------------------------------------+
	//	| 0x00000906 NERR_NetNameNotFound    | The share that the RootShare parameter specifies does not already exist. |
	//	+------------------------------------+--------------------------------------------------------------------------+
	//
	// The share that the RootShare parameter specifies MUST already exist on the server.
	//
	// If the DcName parameter is not NULL, the server assumes that this is the PDC for
	// the domain in which the DFS namespace is to be created.
	//
	// If the domain-based DFS namespace already exists, and the ServerName and RootShare
	// parameters are a root target, the server MUST fail with ERROR_ALREADY_EXISTS.
	//
	// If the share that the RootShare parameter specifies does not already exist, the RPC
	// method MUST fail with NERR_NetNameNotFound (0x00000906).
	AddFTRoot(context.Context, *AddFTRootRequest, ...dcerpc.CallOption) (*AddFTRootResponse, error)

	// The NetrDfsRemoveFtRoot (Opnum 11) method removes the specified root target from
	// a domainv1-based DFS namespace.<112> If the target is the last one associated with
	// the DFS namespace, then this method also deletes the DFS namespace. The DFS namespace
	// can be removed without first removing all of the links in it.
	//
	// If a client tries to use this method on a domainv2-based DFS namespace target, then
	// the server MUST fail with the return value of ERROR_NOT_SUPPORTED.
	//
	// The NetrDfsRemoveFtRoot method uses the following MIDL syntax.
	//
	// Return Values: The method MUST return 0 on success and a nonzero error code on failure.
	// The method can return any specific error code value, as specified in [MS-ERREF] section
	// 2.2.The most common error codes are listed in the following table.
	//
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	|               RETURN               |                                                                                  |
	//	|             VALUE/CODE             |                                   DESCRIPTION                                    |
	//	|                                    |                                                                                  |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000000 ERROR_SUCCESS           | Successful completion.                                                           |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000002 ERROR_FILE_NOT_FOUND    | The specified DFS root target was not found as a target of the specified DFS     |
	//	|                                    | namespace.                                                                       |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000005 ERROR_ACCESS_DENIED     | Permission to perform the operation was denied.                                  |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000057 ERROR_INVALID_PARAMETER | An incorrect parameter was specified.                                            |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000490 ERROR_NOT_FOUND         | The specified DFS rootnamespace does not exist.                                  |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	RemoveFTRoot(context.Context, *RemoveFTRootRequest, ...dcerpc.CallOption) (*RemoveFTRootResponse, error)

	// The NetrDfsAddStdRoot (Opnum 12) method creates a new stand-alone DFS namespace.<118><119>
	//
	// The NetrDfsAddStdRoot method uses the following MIDL syntax.
	//
	// Return Values: The method MUST return 0 on success and a nonzero error code on failure.
	// The method can return any specific error code value, as specified in [MS-ERREF] section
	// 2.2. The most common error codes are listed in the following table.
	//
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	|             RETURN              |                                                                                  |
	//	|           VALUE/CODE            |                                   DESCRIPTION                                    |
	//	|                                 |                                                                                  |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000000 ERROR_SUCCESS        | Successful completion.                                                           |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000005 ERROR_ACCESS_DENIED  | Permission to perform the operation was denied.                                  |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000050 ERROR_FILE_EXISTS    | The DFS namespace that the ServerName and RootShare parameters specify already   |
	//	|                                 | exists.<120>                                                                     |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 0x000000B7 ERROR_ALREADY_EXISTS | The DFS namespace that the ServerName and RootShare parameters specify already   |
	//	|                                 | exists.<121>                                                                     |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000906 NERR_NetNameNotFound | The share that the RootShare parameter specifies does not already exist.         |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	AddStdRoot(context.Context, *AddStdRootRequest, ...dcerpc.CallOption) (*AddStdRootResponse, error)

	// The NetrDfsRemoveStdRoot (Opnum 13) method deletes the specified stand-alone DFS
	// namespace.<122> The DFS namespace can be removed without first removing all of the
	// links in it.
	//
	// The NetrDfsRemoveStdRoot method uses the following MIDL syntax.
	//
	// Return Values: The method MUST return 0 on success and a nonzero error code on failure.
	// The method can return any specific error code value, as specified in [MS-ERREF] section
	// 2.2. The most common error codes are listed in the following table.
	//
	//	+--------------------------------+----------------------------------------------------------------------------------+
	//	|             RETURN             |                                                                                  |
	//	|           VALUE/CODE           |                                   DESCRIPTION                                    |
	//	|                                |                                                                                  |
	//	+--------------------------------+----------------------------------------------------------------------------------+
	//	+--------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000000 ERROR_SUCCESS       | Successful completion.                                                           |
	//	+--------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000005 ERROR_ACCESS_DENIED | Permission to perform the operation was denied.                                  |
	//	+--------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000490 ERROR_NOT_FOUND     | The DFS namespace that the ServerName and RootShare parameters specify does not  |
	//	|                                | already exist.                                                                   |
	//	+--------------------------------+----------------------------------------------------------------------------------+
	RemoveStdRoot(context.Context, *RemoveStdRootRequest, ...dcerpc.CallOption) (*RemoveStdRootResponse, error)

	// The NetrDfsManagerInitialize method instructs the DFS server to discard its current
	// state and reinitialize itself from its stored configuration settings. The server
	// SHOULD<35> choose to implement this method.
	//
	// The NetrDfsManagerInitialize method has the following Microsoft Interface Definition
	// Language (MIDL) syntax.
	//
	// Return Values: The method MUST return 0 on success and a nonzero error code on failure.
	// The method can return any specific error code value, as specified in [MS-ERREF] section
	// 2.2. The most common error codes are listed in the following table.
	//
	//	+--------------------------------+--------------------------------------------------+
	//	|             RETURN             |                                                  |
	//	|           VALUE/CODE           |                   DESCRIPTION                    |
	//	|                                |                                                  |
	//	+--------------------------------+--------------------------------------------------+
	//	+--------------------------------+--------------------------------------------------+
	//	| 0x00000000 ERROR_SUCCESS       | Successful completion.                           |
	//	+--------------------------------+--------------------------------------------------+
	//	| 0x00000005 ERROR_ACCESS_DENIED | Permission to perform the operation was denied.  |
	//	+--------------------------------+--------------------------------------------------+
	//	| 0x00000032 ERROR_NOT_SUPPORTED | Server does not support the requested operation. |
	//	+--------------------------------+--------------------------------------------------+
	//
	// If this method is implemented, the DFS server SHOULD<36> discard its current state
	// and reinitialize itself from its stored configuration settings.
	ManagerInitialize(context.Context, *ManagerInitializeRequest, ...dcerpc.CallOption) (*ManagerInitializeResponse, error)

	// The NetrDfsAddStdRootForced (Opnum 15) method creates a new stand-alone DFS namespace
	// without checking for the availability and accessibility of the specified share.<123><124><125>
	//
	// The NetrDfsAddStdRootForced method uses the following MIDL syntax.
	//
	// Return Values: The method MUST return 0 on success and a nonzero error code on failure.
	// The method can return any specific error code value, as specified in [MS-ERREF] section
	// 2.2. The most common error codes are listed in the following table.
	//
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	|             RETURN              |                                                                                  |
	//	|           VALUE/CODE            |                                   DESCRIPTION                                    |
	//	|                                 |                                                                                  |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000000 ERROR_SUCCESS        | Successful completion.                                                           |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000005 ERROR_ACCESS_DENIED  | Permission to perform the operation was denied.                                  |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 0x000000B7 ERROR_ALREADY_EXISTS | The DFS namespace that the ServerName and RootShare parameters specify already   |
	//	|                                 | exists.                                                                          |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//
	// The support for this method is optional. If supported, then the server MUST support
	// the ability to create a DFS namespace even when the share that the RootShare parameter
	// specifies is not available or accessible.
	AddStdRootForced(context.Context, *AddStdRootForcedRequest, ...dcerpc.CallOption) (*AddStdRootForcedResponse, error)

	// The NetrDfsGetDcAddress (Opnum 16) method returns the DC host name that is used by
	// the DFS server to which the RPC method is issued.<126> The client MUST use this DC
	// to create a domain-based DFS namespace, add a root target to a domain-based DFS namespace,
	// remove a root target from a domain-based DFS namespace, or remove a domain-based
	// DFS namespace.
	//
	// The NetrDfsGetDcAddress method uses the following MIDL syntax.
	//
	// Return Values: The method MUST return 0 on success and a nonzero error code on failure.
	// The method can return any specific error code value, as specified in [MS-ERREF] section
	// 2.2. The most common error codes are listed in the following table.
	//
	//	+--------------------------+------------------------+
	//	|          RETURN          |                        |
	//	|        VALUE/CODE        |      DESCRIPTION       |
	//	|                          |                        |
	//	+--------------------------+------------------------+
	//	+--------------------------+------------------------+
	//	| 0x00000000 ERROR_SUCCESS | Successful completion. |
	//	+--------------------------+------------------------+
	//
	// A server MAY<131> implement this method if it supports domain-based DFS namespaces.
	//
	// In the DcName parameter, the server SHOULD return the host name of the DC it is using
	// to access DFS metadata for any domain-based DFS namespace that the server is hosting.
	// If the server is not currently using a DC, it MUST determine a DC and return its
	// name.
	//
	// The server SHOULD also return a time-out value, in seconds, that is equal to the
	// length of time that the server will be using the DC in the Timeout parameter, assuming
	// that another RPC method does not change it.
	//
	// The server uses the IsRoot parameter to specify whether it supports the ability to
	// host more than one DFS namespace, and to indicate whether it is currently hosting
	// a DFS namespace. If the server supports the ability to host more than one DFS namespace,
	// it MUST return a value of FALSE in the IsRoot parameter, regardless of whether it
	// is actually hosting a DFS namespace. If the server does not support the ability to
	// host more than one DFS namespace, and if it currently hosts a DFS namespace, it SHOULD
	// return a value of TRUE in the IsRoot parameter; otherwise, it SHOULD return FALSE.
	GetDCAddress(context.Context, *GetDCAddressRequest, ...dcerpc.CallOption) (*GetDCAddressResponse, error)

	// The NetrDfsSetDcAddress (Opnum 17) method instructs the server receiving the RPC
	// method to use the specified DC for DFS metadata accesses for domain-based DFS namespaces.<132>
	//
	// The NetrDfsSetDcAddress method uses the following MIDL syntax.
	//
	// Return Values: The method MUST return 0 on success and a nonzero error code on failure.
	// The method can return any specific error code value, as specified in [MS-ERREF] section
	// 2.2. The most common error codes are listed in the following table.
	//
	//	+--------------------------------+-------------------------------------------------+
	//	|             RETURN             |                                                 |
	//	|           VALUE/CODE           |                   DESCRIPTION                   |
	//	|                                |                                                 |
	//	+--------------------------------+-------------------------------------------------+
	//	+--------------------------------+-------------------------------------------------+
	//	| 0x00000000 ERROR_SUCCESS       | Successful completion.                          |
	//	+--------------------------------+-------------------------------------------------+
	//	| 0x00000005 ERROR_ACCESS_DENIED | Permission to perform the operation was denied. |
	//	+--------------------------------+-------------------------------------------------+
	//
	// Servers MAY choose not to implement this method or implement it as a method with
	// no effect that returns ERROR_SUCCESS.<134>
	//
	// Otherwise, the server MUST update the DC it uses for accessing DFS metadata for the
	// domain-based DFS namespace it is hosting with the specified DC. If no time-out is
	// specified in the Timeout parameter (NET_DFS_SETDC_TIMEOUT is not set in the Flags
	// parameter), the server MUST use its default time-out. The DC the server uses at the
	// end of this time-out is implementation-defined.
	//
	// When NET_DFS_SETDC_INIT_PKT is set in the Flags parameter, the server SHOULD initiate
	// a background synchronization of the domain-based DFS namespace it is hosting with
	// either the DC specified by this method or the default DC the server is using. This
	// MUST be treated as functionally equivalent to receiving a NetrDfsSetInfo (Opnum 3)
	// method with the Level parameter value 101 and the State field of DFS_INFO_101 set
	// to DFS_VOLUME_STATE_RESYNCHRONIZE.<135>
	SetDCAddress(context.Context, *SetDCAddressRequest, ...dcerpc.CallOption) (*SetDCAddressResponse, error)

	// The NetrDfsFlushFtTable method instructs the DFS server on a DC to purge the specified
	// domainv1-based DFS entry from any DFS root referral cache it might have.
	//
	// Note  This method MUST fail on non-DC servers, as specified in this section.
	//
	// The NetrDfsFlushFtTable method uses the following MIDL syntax.
	//
	// Return Values: This method MUST return 0 on success and a nonzero error code on failure.
	// The values transmitted in this field are implementation-specific. For protocol purposes,
	// all nonzero values MUST be treated as equivalent failures.
	//
	// Note  This method MUST return ERROR_NOT_SUPPORTED on non-DC servers.
	//
	//	+--------------------------------+----------------------------------------------------------------------------------+
	//	|             RETURN             |                                                                                  |
	//	|           VALUE/CODE           |                                   DESCRIPTION                                    |
	//	|                                |                                                                                  |
	//	+--------------------------------+----------------------------------------------------------------------------------+
	//	+--------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000000 ERROR_SUCCESS       | Successful completion.                                                           |
	//	+--------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000032 ERROR_NOT_SUPPORTED | Operation not supported. This MUST be returned if the server does not implement  |
	//	|                                | the method.                                                                      |
	//	+--------------------------------+----------------------------------------------------------------------------------+
	//
	// The server MAY choose not to implement this method.<149> If it does, ERROR_NOT_SUPPORTED
	// MUST be returned.
	FlushFTTable(context.Context, *FlushFTTableRequest, ...dcerpc.CallOption) (*FlushFTTableResponse, error)

	// The NetrDfsAdd2 (Opnum 19) method creates a new DFS link or adds a new target to
	// an existing link of a DFS namespace.
	//
	// The NetrDfsAdd2 method has the following MIDL syntax.
	//
	// Return Values: The method MUST return 0 on success and a nonzero error code on failure.
	// The method can return any specific error code value, as specified in [MS-ERREF] section
	// 2.2. The most common error codes are listed in the following table.
	//
	//	+------------------------------------+-------------------------------------------------+
	//	|               RETURN               |                                                 |
	//	|             VALUE/CODE             |                   DESCRIPTION                   |
	//	|                                    |                                                 |
	//	+------------------------------------+-------------------------------------------------+
	//	+------------------------------------+-------------------------------------------------+
	//	| 0x00000000 ERROR_SUCCESS           | The operation completed successfully.           |
	//	+------------------------------------+-------------------------------------------------+
	//	| 0x00000005 ERROR_ACCESS_DENIED     | Permission to perform the operation was denied. |
	//	+------------------------------------+-------------------------------------------------+
	//	| 0x00000050 ERROR_FILE_EXISTS       | The specified DFS link target already exists.   |
	//	+------------------------------------+-------------------------------------------------+
	//	| 0x00000057 ERROR_INVALID_PARAMETER | An incorrect parameter was specified.           |
	//	+------------------------------------+-------------------------------------------------+
	//	| 0x00000490 ERROR_NOT_FOUND         | The specified DFS namespace does not exist.     |
	//	+------------------------------------+-------------------------------------------------+
	//	| 0x00000906 NERR_NetNameNotFound    | The DFS link target does not exist.             |
	//	+------------------------------------+-------------------------------------------------+
	//
	// A server MAY<81> implement this method.
	//
	// If the NetrDfsAdd (Opnum 1) method on a server does not support a domain-based namespace,
	// the server SHOULD support a domain-based namespace in the NetrDfsAdd2 (Opnum 19)
	// method. <82><83>
	Add2(context.Context, *Add2Request, ...dcerpc.CallOption) (*Add2Response, error)

	// The NetrDfsRemove2 (Opnum 20) method removes the specified link or link target.
	//
	// The NetrDfsRemove2 method uses the following MIDL syntax.
	//
	// Return Values: The method MUST return 0 on success and a nonzero error code on failure.
	// The method can return any specific error code value, as specified in [MS-ERREF] section
	// 2.2. The most common error codes are listed in the following table.
	//
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	|               RETURN               |                                                                                  |
	//	|             VALUE/CODE             |                                   DESCRIPTION                                    |
	//	|                                    |                                                                                  |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000000 ERROR_SUCCESS           | Successful completion.                                                           |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000002 ERROR_FILE_NOT_FOUND    | The specified DFS link target was not found as a target of the specified DFS     |
	//	|                                    | link.                                                                            |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000005 ERROR_ACCESS_DENIED     | Permission to perform the operation was denied.                                  |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000057 ERROR_INVALID_PARAMETER | An incorrect parameter was specified.                                            |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000490 ERROR_NOT_FOUND         | The specified DFS namespace or DFS link does not exist.                          |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//
	// The server MAY<89> implement this method.
	//
	// If the NetrDfsRemove (Opnum 2) method on a server does not support a domain-based
	// namespace, the server SHOULD support a domain-based namespace in the NetrDfsRemove2
	// (Opnum 20) method.<90><91>
	Remove2(context.Context, *Remove2Request, ...dcerpc.CallOption) (*Remove2Response, error)

	// The NetrDfsEnumEx (Opnum 21) method enumerates the DFS roots hosted on a server,
	// or DFS links of a namespace hosted by the server.<92><93> Depending on the information
	// level, the targets associated with the roots and links are also displayed.
	//
	// The NetrDfsEnumEx method uses the following MIDL syntax.
	//
	// Return Values: The method MUST return 0 on success and a nonzero error code on failure.
	// The method can return any specific error code value, as specified in [MS-ERREF],
	// section 2.2. The most common error codes are listed in the following table.
	//
	//	+------------------------------------+--------------------------------------------------+
	//	|               RETURN               |                                                  |
	//	|             VALUE/CODE             |                   DESCRIPTION                    |
	//	|                                    |                                                  |
	//	+------------------------------------+--------------------------------------------------+
	//	+------------------------------------+--------------------------------------------------+
	//	| 0x00000000 ERROR_SUCCESS           | Successful completion.                           |
	//	+------------------------------------+--------------------------------------------------+
	//	| 0x00000057 ERROR_INVALID_PARAMETER | An incorrect parameter was specified.            |
	//	+------------------------------------+--------------------------------------------------+
	//	| 0x00000103 ERROR_NO_MORE_ITEMS     | There is no data to return.                      |
	//	+------------------------------------+--------------------------------------------------+
	//	| 0x00000490 ERROR_NOT_FOUND         | The specified DFS root namespace does not exist. |
	//	+------------------------------------+--------------------------------------------------+
	EnumEx(context.Context, *EnumExRequest, ...dcerpc.CallOption) (*EnumExResponse, error)

	// The NetrDfsSetInfo2 (Opnum 22) method sets or modifies the information associated
	// with a DFS root, a DFS root target, a DFS link, or a DFS link target.
	//
	// The NetrDfsSetInfo2 method has the following MIDL syntax.
	//
	// Return Values: The method MUST return 0 on success and a nonzero error code on failure.
	// The method can return any specific error code value, as specified in [MS-ERREF] section
	// 2.2. The most common error codes are listed in the following table.
	//
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	|               RETURN               |                                                                                  |
	//	|             VALUE/CODE             |                                   DESCRIPTION                                    |
	//	|                                    |                                                                                  |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000000 ERROR_SUCCESS           | Successful completion.                                                           |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000002 ERROR_FILE_NOT_FOUND    | The specified DFS link target was not found as a target of the specified DFS     |
	//	|                                    | link.                                                                            |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000005 ERROR_ACCESS_DENIED     | Permission to perform the operation was denied.                                  |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000032 ERROR_NOT_SUPPORTED     | The specified operation is not supported.                                        |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000057 ERROR_INVALID_PARAMETER | An incorrect parameter was specified.                                            |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000490 ERROR_NOT_FOUND         | The specified DFS root, DFS link, or DFS link or root target does not exist.     |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//
	// The server MAY<105> implement this method.
	//
	// If the NetrDfsSetInfo (Opnum 3) method on a server does not support a domain-based
	// namespace, the server SHOULD support a domain-based namespace in the NetrDfsSetInfo2
	// (Opnum 22) method.<106><107>
	SetInfo2(context.Context, *SetInfo2Request, ...dcerpc.CallOption) (*SetInfo2Response, error)

	// The NetrDfsAddRootTarget method is used to create a stand-alone DFS namespace, a
	// domainv1-based DFS namespace, or a domainv2-based DFS namespace.<73>
	//
	// The NetrDfsAddRootTarget method uses the following MIDL syntax.
	//
	// Return Values: The method MUST return 0 on success and a nonzero error code on failure.
	// The method can return any specific error code value, as specified in [MS-ERREF] section
	// 2.2. The most common error codes are listed in the following table.
	//
	//	+---------------------------------+---------------------------------------------------------------------------+
	//	|             RETURN              |                                                                           |
	//	|           VALUE/CODE            |                                DESCRIPTION                                |
	//	|                                 |                                                                           |
	//	+---------------------------------+---------------------------------------------------------------------------+
	//	+---------------------------------+---------------------------------------------------------------------------+
	//	| 0x00000000 ERROR_SUCCESS        | Successful completion.                                                    |
	//	+---------------------------------+---------------------------------------------------------------------------+
	//	| 0x00000005 ERROR_ACCESS_DENIED  | Permission to perform the operation was denied.                           |
	//	+---------------------------------+---------------------------------------------------------------------------+
	//	| 0x000000B7 ERROR_ALREADY_EXISTS | The specified namespace already exists on this server.                    |
	//	+---------------------------------+---------------------------------------------------------------------------+
	//	| 0x00000906 NERR_NetNameNotFound | The share that the TargetPath parameter specifies does not already exist. |
	//	+---------------------------------+---------------------------------------------------------------------------+
	//
	// The following table summarizes the various actions that the NetrDfsAddRootTarget
	// method takes based on the parameter values.
	//
	//	+----------------------+-----------------------+------------------------+----------------------------------------------------------------------------------+
	//	|       PDFSPATH       |      PTARGETPATH      |      MAJORVERSION      |                                                                                  |
	//	|      PARAMETER       |       PARAMETER       |       PARAMETER        |                                   EXPLANATION                                    |
	//	|                      |                       |                        |                                                                                  |
	//	+----------------------+-----------------------+------------------------+----------------------------------------------------------------------------------+
	//	+----------------------+-----------------------+------------------------+----------------------------------------------------------------------------------+
	//	| \\<domain>\<dfsname> | \\<server>\<share>    |                      1 | Creates a new domainv1-based DFS namespace or adds a new root target to an       |
	//	|                      |                       |                        | existing domainv1-based DFS namespace. If a DFS namespace already exists, the    |
	//	|                      |                       |                        | version specified MUST match the DFS namespace; otherwise, the call fails.       |
	//	+----------------------+-----------------------+------------------------+----------------------------------------------------------------------------------+
	//	| \\<domain>\<dfsname> | \\<server>\<share>    |                      2 | Creates a new domainv2-based DFS namespace or adds a new root target to an       |
	//	|                      |                       |                        | existing domainv2-based DFS namespace. If a DFS namespace already exists, the    |
	//	|                      |                       |                        | version specified MUST match the DFS namespace; otherwise, the call fails.       |
	//	+----------------------+-----------------------+------------------------+----------------------------------------------------------------------------------+
	//	| \\<domain>\<dfsname> | \\<server>\<share>    |                      0 | Adds a new root target to an existing domain-based DFS namespace or a            |
	//	|                      |                       |                        | domainv2-based DFS namespace. If a DFS namespace does not already exist, the     |
	//	|                      |                       |                        | call fails.                                                                      |
	//	+----------------------+-----------------------+------------------------+----------------------------------------------------------------------------------+
	//	| \\<server>\<share>   | NULL                  |                      1 | Creates a new stand-alone DFS namespace.                                         |
	//	+----------------------+-----------------------+------------------------+----------------------------------------------------------------------------------+
	//
	// The following scheme is used to create a new domainv2-based DFS namespace:
	//
	// * NetrDfsGetSupportedNamespaceVersion ( 7c34ae60-9d4d-46b5-b2e1-e8ca09ac4d10 ) is
	// called to determine an appropriate version number to pass to the NetrDfsAddRootTarget()
	// method.
	//
	// * The client-side method creates a DFS metadata, format-independent LDAP ( a9bc4403-a862-48b9-b99b-1b44a887d177#gt_45643bfb-b4c4-432c-a10f-b98790063f8d
	// ) entry called the DFS namespace anchor. It contains only the DFS metadata major
	// version number.
	//
	// * Updates the access control list (ACL) ( a9bc4403-a862-48b9-b99b-1b44a887d177#gt_9f92aa05-dd0a-45f2-88d6-89f1fb654395
	// ) on the object ( a9bc4403-a862-48b9-b99b-1b44a887d177#gt_8bb43a65-7a8c-4585-a7ed-23044772f8ca
	// ) of the DFS namespace to permit read/write access by the DFS root target server.
	//
	// * The client-side method then issues an RPC ( a9bc4403-a862-48b9-b99b-1b44a887d177#gt_8a7f6700-8311-45bc-af10-82e10accd331
	// ) call to the DFS root target server.
	//
	// * The DFS server ( a9bc4403-a862-48b9-b99b-1b44a887d177#gt_3de8e640-501a-4b25-80a7-0ba769f3c0b9
	// ) creates a new DFS namespace LDAP entry with the DFS namespace anchor LDAP entry
	// as its parent.
	//
	// * All DFS links ( a9bc4403-a862-48b9-b99b-1b44a887d177#gt_0611e93d-f0e7-42ee-a591-d77ebcbb6619
	// ) are created with the DFS namespace LDAP entry as the parent. For more information,
	// see section 2.3.2 ( 6317bce5-9588-421d-a007-f61e459b4083 ).
	//
	// This results in two LDAP entries in domainv2 corresponding to the single LDAP entry
	// in domainv1.
	//
	// If the domain-based DFS namespace already exists, and the ServerName and RootShare
	// parameters are a root target, the server MUST fail with ERROR_ALREADY_EXISTS.
	//
	// If the share that the pTargetPath parameter specifies does not already exist, the
	// RPC method MUST fail with NERR_NetNameNotFound (0x00000906).
	AddRootTarget(context.Context, *AddRootTargetRequest, ...dcerpc.CallOption) (*AddRootTargetResponse, error)

	// The NetrDfsRemoveRootTarget (Opnum 24) method is the unified DFS namespace deletion
	// method. It deletes stand-alone DFS namespaces, domainv1-based DFS namespaces, or
	// domainv2-based DFS namespaces based on parameters specified.<74>
	//
	// The NetrDfsRemoveRootTarget (Opnum 24) method has the following MIDL syntax.
	//
	// Return Values: The method MUST return 0 on success and a nonzero error code on failure.
	// The method can return any specific error code value, as specified in [MS-ERREF] section
	// 2.2. The most common error codes are listed in the following table.
	//
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	|               RETURN               |                                                                                  |
	//	|             VALUE/CODE             |                                   DESCRIPTION                                    |
	//	|                                    |                                                                                  |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000000 ERROR_SUCCESS           | Successful completion.                                                           |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000002 ERROR_FILE_NOT_FOUND    | The specified DFS root target was not found as a target of the specified DFS     |
	//	|                                    | namespace.                                                                       |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000005 ERROR_ACCESS_DENIED     | Permission to perform the operation was denied.                                  |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000057 ERROR_INVALID_PARAMETER | An incorrect parameter was specified.                                            |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000490 ERROR_NOT_FOUND         | The specified DFS root namespace does not exist.                                 |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	RemoveRootTarget(context.Context, *RemoveRootTargetRequest, ...dcerpc.CallOption) (*RemoveRootTargetResponse, error)

	// The NetrDfsGetSupportedNamespaceVersion (Opnum 25) method is used to determine the
	// supported DFS metadata version number.<78>
	//
	// The NetrDfsGetSupportedNamespaceVersion (Opnum 25) method has the following MIDL
	// syntax.
	//
	// Return Values: The method MUST return 0 on success and a nonzero error code on failure.
	// The method can return any specific error code value, as specified in [MS-ERREF] section
	// 2.2. The most common error codes are listed in the following table.
	//
	//	+--------------------------+------------------------+
	//	|          RETURN          |                        |
	//	|        VALUE/CODE        |      DESCRIPTION       |
	//	|                          |                        |
	//	+--------------------------+------------------------+
	//	+--------------------------+------------------------+
	//	| 0x00000000 ERROR_SUCCESS | Successful completion. |
	//	+--------------------------+------------------------+
	//
	// The standalone namespace version supported by a server can be unaffected by the domain
	// metadata schema. If this is the case, the server MUST return a standalone DFS major
	// and minor version of zero for the DFS_NAMESPACE_VERSION_ORIGIN_DOMAIN query. In this
	// case, the standalone DFS capability field has no meaning and MUST also be zero.
	//
	// The version number of the DFS metadata that can be used for a new DFS namespace depends
	// on the following:
	//
	// * For domain-based DFS namespaces ( a9bc4403-a862-48b9-b99b-1b44a887d177#gt_c37de1c8-4bd3-406f-ad8c-50c877666f91
	// ) , the version supported by the DFS metadata schema in use in the server's domain
	// ( a9bc4403-a862-48b9-b99b-1b44a887d177#gt_b0276eb2-4e65-4cf1-a718-e0920a614aca ).
	//
	// * The version supported by the server that is to host the DFS root target ( a9bc4403-a862-48b9-b99b-1b44a887d177#gt_ac90b498-3ba4-48d6-bcd6-5495f1654671
	// ).
	//
	// Thus, the version that can be used for creating a new DFS namespace is the minimum
	// version that the domain and the server support.
	//
	// This method is useful in determining an appropriate version number to pass to the
	// NetrDfsAddRootTarget method.
	GetSupportedNamespaceVersion(context.Context, *GetSupportedNamespaceVersionRequest, ...dcerpc.CallOption) (*GetSupportedNamespaceVersionResponse, error)

	// AlterContext alters the client context.
	AlterContext(context.Context, ...dcerpc.Option) error
}

netdfs interface.

func NewNetdfsClient

func NewNetdfsClient(ctx context.Context, cc dcerpc.Conn, opts ...dcerpc.Option) (NetdfsClient, error)

type NetdfsServer

type NetdfsServer interface {

	// The NetrDfsManagerGetVersion method returns the version number of the DFS server
	// in use on the server.
	//
	// The NetrDfsManagerGetVersion method has the following MIDL syntax.
	//
	// This method has no parameters.
	//
	// Return Values: This method MUST return one of the following values.
	//
	//	+--------------+----------------------------------------------------------------------------------+
	//	|    RETURN    |                                                                                  |
	//	|    VALUE     |                                   DESCRIPTION                                    |
	//	|              |                                                                                  |
	//	+--------------+----------------------------------------------------------------------------------+
	//	+--------------+----------------------------------------------------------------------------------+
	//	| 0x00000001   | The server MUST support stand-alone DFS namespaces and opnums from 0 through 5,  |
	//	|              | inclusive. The server MAY support domain-based DFS namespaces and other opnums.  |
	//	+--------------+----------------------------------------------------------------------------------+
	//	| 0x00000002   | In addition to the preceding, the server MUST support domainv1-based DFS         |
	//	|              | namespaces and opnums 10 through 22, inclusive. The server MAY support hosting   |
	//	|              | more than one DFS namespace on the same server.                                  |
	//	+--------------+----------------------------------------------------------------------------------+
	//	| 0x00000004   | In addition to the preceding, the server MUST support hosting more than one DFS  |
	//	|              | namespace on the same server and Level parameter value 200 of the NetrDfsEnumEx  |
	//	|              | method. It SHOULD support opnum 6.                                               |
	//	+--------------+----------------------------------------------------------------------------------+
	//	| 0x00000006   | In addition to the preceding, the server MUST support domainv2-based DFS         |
	//	|              | namespace and opnums 23 through 25, inclusive.                                   |
	//	+--------------+----------------------------------------------------------------------------------+
	//
	// The clients MAY use the version information to determine the RPC methods that the
	// DFS server supports.<37><38><39><40><41>
	ManagerGetVersion(context.Context, *ManagerGetVersionRequest) (*ManagerGetVersionResponse, error)

	// The NetrDfsAdd method creates a new DFS link or adds a new target to an existing
	// link of a DFS namespace.
	//
	// The NetrDfsAdd (Opnum 1) method has the following MIDL syntax.
	//
	// Return Values: The method MUST return 0 on success and a nonzero error code on failure.
	// The method can return any specific error code value, as specified in [MS-ERREF] section
	// 2.2. The most common error codes are listed in the following table.
	//
	//	+------------------------------------+-------------------------------------------------------+
	//	|               RETURN               |                                                       |
	//	|             VALUE/CODE             |                      DESCRIPTION                      |
	//	|                                    |                                                       |
	//	+------------------------------------+-------------------------------------------------------+
	//	+------------------------------------+-------------------------------------------------------+
	//	| 0x00000000 ERROR_SUCCESS           | Successful completion.                                |
	//	+------------------------------------+-------------------------------------------------------+
	//	| 0x00000005 ERROR_ACCESS_DENIED     | Permission to perform the operation was denied.       |
	//	+------------------------------------+-------------------------------------------------------+
	//	| 0x00000050 ERROR_FILE_EXISTS       | The specified DFS link target already exists.         |
	//	+------------------------------------+-------------------------------------------------------+
	//	| 0x00000057 ERROR_INVALID_PARAMETER | An incorrect parameter was specified.                 |
	//	+------------------------------------+-------------------------------------------------------+
	//	| 0x00000490 ERROR_NOT_FOUND         | The specified DFS root namespace does not exist.      |
	//	+------------------------------------+-------------------------------------------------------+
	//	| 0x00000032 ERROR_NOT_SUPPORTED     | The method does not support a domain-based namespace. |
	//	+------------------------------------+-------------------------------------------------------+
	//	| 0x00000906 NERR_NetNameNotFound    | The DFS link target does not exist.                   |
	//	+------------------------------------+-------------------------------------------------------+
	//
	// The NetrDfsAdd method SHOULD<42> support a domain-based DFS namespace. If it does
	// not support a domain-based DFS namespace it MUST return ERROR_NOT_SUPPORTED.
	Add(context.Context, *AddRequest) (*AddResponse, error)

	// The NetrDfsRemove method removes a link or a link target from a DFS namespace. A
	// link can be removed regardless of the number of targets associated with it.
	//
	// The NetrDfsRemove method has the following MIDL syntax.
	//
	// Return Values: This method MUST return 0 on success and a nonzero error code on failure.
	// The method can return any specific error code value, as specified in [MS-ERREF] section
	// 2.2. The most common error codes are listed in the following table.
	//
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	|               RETURN               |                                                                                  |
	//	|             VALUE/CODE             |                                   DESCRIPTION                                    |
	//	|                                    |                                                                                  |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000000 ERROR_SUCCESS           | Successful completion.                                                           |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000002 ERROR_FILE_NOT_FOUND    | The specified DFS link target was not found as a target of the specified DFS     |
	//	|                                    | link.                                                                            |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000005 ERROR_ACCESS_DENIED     | Permission to perform the operation was denied.                                  |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000057 ERROR_INVALID_PARAMETER | An incorrect parameter was specified.                                            |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000032 ERROR_NOT_SUPPORTED     | The method does not support a domain-based namespace.                            |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000490 ERROR_NOT_FOUND         | The specified DFS namespace or DFS link does not exist.                          |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//
	// The NetrDfsRemove method SHOULD<49> support a domain-based DFS namespace. If it does
	// not support a domain-based DFS namespace it MUST return ERROR_NOT_SUPPORTED.
	Remove(context.Context, *RemoveRequest) (*RemoveResponse, error)

	// The NetrDfsSetInfo method sets or modifies information relevant to a specific DFS
	// root, DFS root target, DFS link, or DFS link target.
	//
	// The NetrDfsSetInfo method uses the following MIDL syntax.
	//
	// Return Values: This method MUST return 0 on success and a nonzero error code on failure.
	// The method can return any specific error code value, as specified in [MS-ERREF],
	// section 2.2. The most common error codes are listed in the following table.
	//
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	|               RETURN               |                                                                                  |
	//	|             VALUE/CODE             |                                   DESCRIPTION                                    |
	//	|                                    |                                                                                  |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000000 ERROR_SUCCESS           | Successful completion.                                                           |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000002 ERROR_FILE_NOT_FOUND    | The specified DFS link target was not found as a target of the specified DFS     |
	//	|                                    | link.                                                                            |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000005 ERROR_ACCESS_DENIED     | Permission to perform the operation was denied.                                  |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000032 ERROR_NOT_SUPPORTED     | The specified operation is not supported.                                        |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000057 ERROR_INVALID_PARAMETER | An incorrect parameter was specified.                                            |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000490 ERROR_NOT_FOUND         | The specified DFS root namespace or DFS link, or DFS link or root target, does   |
	//	|                                    | not exist.                                                                       |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//
	// The NetrDfsSetInfo method SHOULD<56> support a domain-based DFS namespace. If it
	// does not support a domain-based DFS namespace it MUST return ERROR_NOT_SUPPORTED.
	SetInfo(context.Context, *SetInfoRequest) (*SetInfoResponse, error)

	// The NetrDfsGetInfo method returns information about a DFS root or a DFS link of the
	// specified DFS namespace.
	//
	// The NetrDfsGetInfo method has the following MIDL syntax.
	//
	// Return Values: The method MUST return 0 on success and a nonzero error code on failure.
	// The method can return any specific error code value, as specified in [MS-ERREF] section
	// 2.2. The most common error codes are listed in the following table.
	//
	//	+------------------------------------+--------------------------------------------------------------------------------+
	//	|               RETURN               |                                                                                |
	//	|             VALUE/CODE             |                                  DESCRIPTION                                   |
	//	|                                    |                                                                                |
	//	+------------------------------------+--------------------------------------------------------------------------------+
	//	+------------------------------------+--------------------------------------------------------------------------------+
	//	| 0x00000000 ERROR_SUCCESS           | Successful completion.                                                         |
	//	+------------------------------------+--------------------------------------------------------------------------------+
	//	| 0x00000032 ERROR_NOT_SUPPORTED     | The specified operation is not supported.                                      |
	//	+------------------------------------+--------------------------------------------------------------------------------+
	//	| 0x00000057 ERROR_INVALID_PARAMETER | An incorrect parameter was specified.                                          |
	//	+------------------------------------+--------------------------------------------------------------------------------+
	//	| 0x00000490 ERROR_NOT_FOUND         | The specified DFS root or DFS link, or DFS link or root target does not exist. |
	//	+------------------------------------+--------------------------------------------------------------------------------+
	GetInfo(context.Context, *GetInfoRequest) (*GetInfoResponse, error)

	// The NetrDfsEnum method enumerates the DFS root hosted on a server or the DFS links
	// of the namespace hosted by a server. Depending on the information level, the targets
	// of the root and links are also displayed.
	//
	// The NetrDfsEnum method uses the following MIDL syntax.
	//
	// Return Values: The method MUST return 0 on success and a nonzero error code on failure.
	// The method can return any specific error code value, as specified in [MS-ERREF] section
	// 2.2. The most common error codes are listed in the following table.
	//
	//	+---------------------------------------+--------------------------------------------------+
	//	|                RETURN                 |                                                  |
	//	|              VALUE/CODE               |                   DESCRIPTION                    |
	//	|                                       |                                                  |
	//	+---------------------------------------+--------------------------------------------------+
	//	+---------------------------------------+--------------------------------------------------+
	//	| 0x00000000 ERROR_SUCCESS              | Successful completion.                           |
	//	+---------------------------------------+--------------------------------------------------+
	//	| 0x00000057 ERROR_INVALID_PARAMETER    | An incorrect parameter was specified.            |
	//	+---------------------------------------+--------------------------------------------------+
	//	| 0x00000103 ERROR_NO_MORE_ITEMS        | There is no data to return.                      |
	//	+---------------------------------------+--------------------------------------------------+
	//	| 0x00000490 ERROR_NOT_FOUND            | The specified DFS root namespace does not exist. |
	//	+---------------------------------------+--------------------------------------------------+
	//	| 0x000010DF ERROR_DEVICE_NOT_AVAILABLE | The server hosts more than one root.             |
	//	+---------------------------------------+--------------------------------------------------+
	//
	// A server MAY<66> implement this method.
	Enum(context.Context, *EnumRequest) (*EnumResponse, error)

	// The NetrDfsMove (Opnum 6) method renames or moves a DFS link. This method has the
	// following MIDL syntax.
	//
	// Return Values: The method MUST return 0 on success and a nonzero error code on failure.
	// The method can return any specific error code value, as specified in [MS-ERREF] section
	// 2.2. The most common error codes are listed in the following table.
	//
	//	+------------------------------------+--------------------------------------------------------------------------+
	//	|               RETURN               |                                                                          |
	//	|             VALUE/CODE             |                               DESCRIPTION                                |
	//	|                                    |                                                                          |
	//	+------------------------------------+--------------------------------------------------------------------------+
	//	+------------------------------------+--------------------------------------------------------------------------+
	//	| 0x00000000 ERROR_SUCCESS           | Successful completion.                                                   |
	//	+------------------------------------+--------------------------------------------------------------------------+
	//	| 0x00000005 ERROR_ACCESS_DENIED     | Permission to perform the operation was denied.                          |
	//	+------------------------------------+--------------------------------------------------------------------------+
	//	| 0x00000032 ERROR_NOT_SUPPORTED     | The specified operation is not supported.                                |
	//	+------------------------------------+--------------------------------------------------------------------------+
	//	| 0x00000050 ERROR_FILE_EXISTS       | The destination path specifies an existing link.                         |
	//	+------------------------------------+--------------------------------------------------------------------------+
	//	| 0x00000057 ERROR_INVALID_PARAMETER | An incorrect parameter was specified.                                    |
	//	+------------------------------------+--------------------------------------------------------------------------+
	//	| 0x00000490 ERROR_NOT_FOUND         | A specified DFS root namespace does not exist, or no links were matched. |
	//	+------------------------------------+--------------------------------------------------------------------------+
	Move(context.Context, *MoveRequest) (*MoveResponse, error)

	// The NetrDfsAddFtRoot (Opnum 10) method creates a new domainv1-based DFS namespace
	// or adds a root target to an existing namespace.
	//
	// The NetrDfsAddFtRoot method uses the following MIDL syntax.
	//
	// Return Values: The method MUST return 0 on success and a nonzero error code on failure.
	// The method can return any specific error code value, as specified in [MS-ERREF] section
	// 2.2. The most common error codes are listed in the following table.
	//
	//	+------------------------------------+--------------------------------------------------------------------------+
	//	|               RETURN               |                                                                          |
	//	|             VALUE/CODE             |                               DESCRIPTION                                |
	//	|                                    |                                                                          |
	//	+------------------------------------+--------------------------------------------------------------------------+
	//	+------------------------------------+--------------------------------------------------------------------------+
	//	| 0x00000000 ERROR_SUCCESS           | Successful completion.                                                   |
	//	+------------------------------------+--------------------------------------------------------------------------+
	//	| 0x00000005 ERROR_ACCESS_DENIED     | Permission to perform the operation was denied.                          |
	//	+------------------------------------+--------------------------------------------------------------------------+
	//	| 0x00000057 ERROR_INVALID_PARAMETER | An incorrect parameter was specified.                                    |
	//	+------------------------------------+--------------------------------------------------------------------------+
	//	| 0x000000B7 ERROR_ALREADY_EXISTS    | A namespace of the specified name already exists on the server.          |
	//	+------------------------------------+--------------------------------------------------------------------------+
	//	| 0x00000906 NERR_NetNameNotFound    | The share that the RootShare parameter specifies does not already exist. |
	//	+------------------------------------+--------------------------------------------------------------------------+
	//
	// The share that the RootShare parameter specifies MUST already exist on the server.
	//
	// If the DcName parameter is not NULL, the server assumes that this is the PDC for
	// the domain in which the DFS namespace is to be created.
	//
	// If the domain-based DFS namespace already exists, and the ServerName and RootShare
	// parameters are a root target, the server MUST fail with ERROR_ALREADY_EXISTS.
	//
	// If the share that the RootShare parameter specifies does not already exist, the RPC
	// method MUST fail with NERR_NetNameNotFound (0x00000906).
	AddFTRoot(context.Context, *AddFTRootRequest) (*AddFTRootResponse, error)

	// The NetrDfsRemoveFtRoot (Opnum 11) method removes the specified root target from
	// a domainv1-based DFS namespace.<112> If the target is the last one associated with
	// the DFS namespace, then this method also deletes the DFS namespace. The DFS namespace
	// can be removed without first removing all of the links in it.
	//
	// If a client tries to use this method on a domainv2-based DFS namespace target, then
	// the server MUST fail with the return value of ERROR_NOT_SUPPORTED.
	//
	// The NetrDfsRemoveFtRoot method uses the following MIDL syntax.
	//
	// Return Values: The method MUST return 0 on success and a nonzero error code on failure.
	// The method can return any specific error code value, as specified in [MS-ERREF] section
	// 2.2.The most common error codes are listed in the following table.
	//
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	|               RETURN               |                                                                                  |
	//	|             VALUE/CODE             |                                   DESCRIPTION                                    |
	//	|                                    |                                                                                  |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000000 ERROR_SUCCESS           | Successful completion.                                                           |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000002 ERROR_FILE_NOT_FOUND    | The specified DFS root target was not found as a target of the specified DFS     |
	//	|                                    | namespace.                                                                       |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000005 ERROR_ACCESS_DENIED     | Permission to perform the operation was denied.                                  |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000057 ERROR_INVALID_PARAMETER | An incorrect parameter was specified.                                            |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000490 ERROR_NOT_FOUND         | The specified DFS rootnamespace does not exist.                                  |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	RemoveFTRoot(context.Context, *RemoveFTRootRequest) (*RemoveFTRootResponse, error)

	// The NetrDfsAddStdRoot (Opnum 12) method creates a new stand-alone DFS namespace.<118><119>
	//
	// The NetrDfsAddStdRoot method uses the following MIDL syntax.
	//
	// Return Values: The method MUST return 0 on success and a nonzero error code on failure.
	// The method can return any specific error code value, as specified in [MS-ERREF] section
	// 2.2. The most common error codes are listed in the following table.
	//
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	|             RETURN              |                                                                                  |
	//	|           VALUE/CODE            |                                   DESCRIPTION                                    |
	//	|                                 |                                                                                  |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000000 ERROR_SUCCESS        | Successful completion.                                                           |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000005 ERROR_ACCESS_DENIED  | Permission to perform the operation was denied.                                  |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000050 ERROR_FILE_EXISTS    | The DFS namespace that the ServerName and RootShare parameters specify already   |
	//	|                                 | exists.<120>                                                                     |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 0x000000B7 ERROR_ALREADY_EXISTS | The DFS namespace that the ServerName and RootShare parameters specify already   |
	//	|                                 | exists.<121>                                                                     |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000906 NERR_NetNameNotFound | The share that the RootShare parameter specifies does not already exist.         |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	AddStdRoot(context.Context, *AddStdRootRequest) (*AddStdRootResponse, error)

	// The NetrDfsRemoveStdRoot (Opnum 13) method deletes the specified stand-alone DFS
	// namespace.<122> The DFS namespace can be removed without first removing all of the
	// links in it.
	//
	// The NetrDfsRemoveStdRoot method uses the following MIDL syntax.
	//
	// Return Values: The method MUST return 0 on success and a nonzero error code on failure.
	// The method can return any specific error code value, as specified in [MS-ERREF] section
	// 2.2. The most common error codes are listed in the following table.
	//
	//	+--------------------------------+----------------------------------------------------------------------------------+
	//	|             RETURN             |                                                                                  |
	//	|           VALUE/CODE           |                                   DESCRIPTION                                    |
	//	|                                |                                                                                  |
	//	+--------------------------------+----------------------------------------------------------------------------------+
	//	+--------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000000 ERROR_SUCCESS       | Successful completion.                                                           |
	//	+--------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000005 ERROR_ACCESS_DENIED | Permission to perform the operation was denied.                                  |
	//	+--------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000490 ERROR_NOT_FOUND     | The DFS namespace that the ServerName and RootShare parameters specify does not  |
	//	|                                | already exist.                                                                   |
	//	+--------------------------------+----------------------------------------------------------------------------------+
	RemoveStdRoot(context.Context, *RemoveStdRootRequest) (*RemoveStdRootResponse, error)

	// The NetrDfsManagerInitialize method instructs the DFS server to discard its current
	// state and reinitialize itself from its stored configuration settings. The server
	// SHOULD<35> choose to implement this method.
	//
	// The NetrDfsManagerInitialize method has the following Microsoft Interface Definition
	// Language (MIDL) syntax.
	//
	// Return Values: The method MUST return 0 on success and a nonzero error code on failure.
	// The method can return any specific error code value, as specified in [MS-ERREF] section
	// 2.2. The most common error codes are listed in the following table.
	//
	//	+--------------------------------+--------------------------------------------------+
	//	|             RETURN             |                                                  |
	//	|           VALUE/CODE           |                   DESCRIPTION                    |
	//	|                                |                                                  |
	//	+--------------------------------+--------------------------------------------------+
	//	+--------------------------------+--------------------------------------------------+
	//	| 0x00000000 ERROR_SUCCESS       | Successful completion.                           |
	//	+--------------------------------+--------------------------------------------------+
	//	| 0x00000005 ERROR_ACCESS_DENIED | Permission to perform the operation was denied.  |
	//	+--------------------------------+--------------------------------------------------+
	//	| 0x00000032 ERROR_NOT_SUPPORTED | Server does not support the requested operation. |
	//	+--------------------------------+--------------------------------------------------+
	//
	// If this method is implemented, the DFS server SHOULD<36> discard its current state
	// and reinitialize itself from its stored configuration settings.
	ManagerInitialize(context.Context, *ManagerInitializeRequest) (*ManagerInitializeResponse, error)

	// The NetrDfsAddStdRootForced (Opnum 15) method creates a new stand-alone DFS namespace
	// without checking for the availability and accessibility of the specified share.<123><124><125>
	//
	// The NetrDfsAddStdRootForced method uses the following MIDL syntax.
	//
	// Return Values: The method MUST return 0 on success and a nonzero error code on failure.
	// The method can return any specific error code value, as specified in [MS-ERREF] section
	// 2.2. The most common error codes are listed in the following table.
	//
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	|             RETURN              |                                                                                  |
	//	|           VALUE/CODE            |                                   DESCRIPTION                                    |
	//	|                                 |                                                                                  |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000000 ERROR_SUCCESS        | Successful completion.                                                           |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000005 ERROR_ACCESS_DENIED  | Permission to perform the operation was denied.                                  |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//	| 0x000000B7 ERROR_ALREADY_EXISTS | The DFS namespace that the ServerName and RootShare parameters specify already   |
	//	|                                 | exists.                                                                          |
	//	+---------------------------------+----------------------------------------------------------------------------------+
	//
	// The support for this method is optional. If supported, then the server MUST support
	// the ability to create a DFS namespace even when the share that the RootShare parameter
	// specifies is not available or accessible.
	AddStdRootForced(context.Context, *AddStdRootForcedRequest) (*AddStdRootForcedResponse, error)

	// The NetrDfsGetDcAddress (Opnum 16) method returns the DC host name that is used by
	// the DFS server to which the RPC method is issued.<126> The client MUST use this DC
	// to create a domain-based DFS namespace, add a root target to a domain-based DFS namespace,
	// remove a root target from a domain-based DFS namespace, or remove a domain-based
	// DFS namespace.
	//
	// The NetrDfsGetDcAddress method uses the following MIDL syntax.
	//
	// Return Values: The method MUST return 0 on success and a nonzero error code on failure.
	// The method can return any specific error code value, as specified in [MS-ERREF] section
	// 2.2. The most common error codes are listed in the following table.
	//
	//	+--------------------------+------------------------+
	//	|          RETURN          |                        |
	//	|        VALUE/CODE        |      DESCRIPTION       |
	//	|                          |                        |
	//	+--------------------------+------------------------+
	//	+--------------------------+------------------------+
	//	| 0x00000000 ERROR_SUCCESS | Successful completion. |
	//	+--------------------------+------------------------+
	//
	// A server MAY<131> implement this method if it supports domain-based DFS namespaces.
	//
	// In the DcName parameter, the server SHOULD return the host name of the DC it is using
	// to access DFS metadata for any domain-based DFS namespace that the server is hosting.
	// If the server is not currently using a DC, it MUST determine a DC and return its
	// name.
	//
	// The server SHOULD also return a time-out value, in seconds, that is equal to the
	// length of time that the server will be using the DC in the Timeout parameter, assuming
	// that another RPC method does not change it.
	//
	// The server uses the IsRoot parameter to specify whether it supports the ability to
	// host more than one DFS namespace, and to indicate whether it is currently hosting
	// a DFS namespace. If the server supports the ability to host more than one DFS namespace,
	// it MUST return a value of FALSE in the IsRoot parameter, regardless of whether it
	// is actually hosting a DFS namespace. If the server does not support the ability to
	// host more than one DFS namespace, and if it currently hosts a DFS namespace, it SHOULD
	// return a value of TRUE in the IsRoot parameter; otherwise, it SHOULD return FALSE.
	GetDCAddress(context.Context, *GetDCAddressRequest) (*GetDCAddressResponse, error)

	// The NetrDfsSetDcAddress (Opnum 17) method instructs the server receiving the RPC
	// method to use the specified DC for DFS metadata accesses for domain-based DFS namespaces.<132>
	//
	// The NetrDfsSetDcAddress method uses the following MIDL syntax.
	//
	// Return Values: The method MUST return 0 on success and a nonzero error code on failure.
	// The method can return any specific error code value, as specified in [MS-ERREF] section
	// 2.2. The most common error codes are listed in the following table.
	//
	//	+--------------------------------+-------------------------------------------------+
	//	|             RETURN             |                                                 |
	//	|           VALUE/CODE           |                   DESCRIPTION                   |
	//	|                                |                                                 |
	//	+--------------------------------+-------------------------------------------------+
	//	+--------------------------------+-------------------------------------------------+
	//	| 0x00000000 ERROR_SUCCESS       | Successful completion.                          |
	//	+--------------------------------+-------------------------------------------------+
	//	| 0x00000005 ERROR_ACCESS_DENIED | Permission to perform the operation was denied. |
	//	+--------------------------------+-------------------------------------------------+
	//
	// Servers MAY choose not to implement this method or implement it as a method with
	// no effect that returns ERROR_SUCCESS.<134>
	//
	// Otherwise, the server MUST update the DC it uses for accessing DFS metadata for the
	// domain-based DFS namespace it is hosting with the specified DC. If no time-out is
	// specified in the Timeout parameter (NET_DFS_SETDC_TIMEOUT is not set in the Flags
	// parameter), the server MUST use its default time-out. The DC the server uses at the
	// end of this time-out is implementation-defined.
	//
	// When NET_DFS_SETDC_INIT_PKT is set in the Flags parameter, the server SHOULD initiate
	// a background synchronization of the domain-based DFS namespace it is hosting with
	// either the DC specified by this method or the default DC the server is using. This
	// MUST be treated as functionally equivalent to receiving a NetrDfsSetInfo (Opnum 3)
	// method with the Level parameter value 101 and the State field of DFS_INFO_101 set
	// to DFS_VOLUME_STATE_RESYNCHRONIZE.<135>
	SetDCAddress(context.Context, *SetDCAddressRequest) (*SetDCAddressResponse, error)

	// The NetrDfsFlushFtTable method instructs the DFS server on a DC to purge the specified
	// domainv1-based DFS entry from any DFS root referral cache it might have.
	//
	// Note  This method MUST fail on non-DC servers, as specified in this section.
	//
	// The NetrDfsFlushFtTable method uses the following MIDL syntax.
	//
	// Return Values: This method MUST return 0 on success and a nonzero error code on failure.
	// The values transmitted in this field are implementation-specific. For protocol purposes,
	// all nonzero values MUST be treated as equivalent failures.
	//
	// Note  This method MUST return ERROR_NOT_SUPPORTED on non-DC servers.
	//
	//	+--------------------------------+----------------------------------------------------------------------------------+
	//	|             RETURN             |                                                                                  |
	//	|           VALUE/CODE           |                                   DESCRIPTION                                    |
	//	|                                |                                                                                  |
	//	+--------------------------------+----------------------------------------------------------------------------------+
	//	+--------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000000 ERROR_SUCCESS       | Successful completion.                                                           |
	//	+--------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000032 ERROR_NOT_SUPPORTED | Operation not supported. This MUST be returned if the server does not implement  |
	//	|                                | the method.                                                                      |
	//	+--------------------------------+----------------------------------------------------------------------------------+
	//
	// The server MAY choose not to implement this method.<149> If it does, ERROR_NOT_SUPPORTED
	// MUST be returned.
	FlushFTTable(context.Context, *FlushFTTableRequest) (*FlushFTTableResponse, error)

	// The NetrDfsAdd2 (Opnum 19) method creates a new DFS link or adds a new target to
	// an existing link of a DFS namespace.
	//
	// The NetrDfsAdd2 method has the following MIDL syntax.
	//
	// Return Values: The method MUST return 0 on success and a nonzero error code on failure.
	// The method can return any specific error code value, as specified in [MS-ERREF] section
	// 2.2. The most common error codes are listed in the following table.
	//
	//	+------------------------------------+-------------------------------------------------+
	//	|               RETURN               |                                                 |
	//	|             VALUE/CODE             |                   DESCRIPTION                   |
	//	|                                    |                                                 |
	//	+------------------------------------+-------------------------------------------------+
	//	+------------------------------------+-------------------------------------------------+
	//	| 0x00000000 ERROR_SUCCESS           | The operation completed successfully.           |
	//	+------------------------------------+-------------------------------------------------+
	//	| 0x00000005 ERROR_ACCESS_DENIED     | Permission to perform the operation was denied. |
	//	+------------------------------------+-------------------------------------------------+
	//	| 0x00000050 ERROR_FILE_EXISTS       | The specified DFS link target already exists.   |
	//	+------------------------------------+-------------------------------------------------+
	//	| 0x00000057 ERROR_INVALID_PARAMETER | An incorrect parameter was specified.           |
	//	+------------------------------------+-------------------------------------------------+
	//	| 0x00000490 ERROR_NOT_FOUND         | The specified DFS namespace does not exist.     |
	//	+------------------------------------+-------------------------------------------------+
	//	| 0x00000906 NERR_NetNameNotFound    | The DFS link target does not exist.             |
	//	+------------------------------------+-------------------------------------------------+
	//
	// A server MAY<81> implement this method.
	//
	// If the NetrDfsAdd (Opnum 1) method on a server does not support a domain-based namespace,
	// the server SHOULD support a domain-based namespace in the NetrDfsAdd2 (Opnum 19)
	// method. <82><83>
	Add2(context.Context, *Add2Request) (*Add2Response, error)

	// The NetrDfsRemove2 (Opnum 20) method removes the specified link or link target.
	//
	// The NetrDfsRemove2 method uses the following MIDL syntax.
	//
	// Return Values: The method MUST return 0 on success and a nonzero error code on failure.
	// The method can return any specific error code value, as specified in [MS-ERREF] section
	// 2.2. The most common error codes are listed in the following table.
	//
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	|               RETURN               |                                                                                  |
	//	|             VALUE/CODE             |                                   DESCRIPTION                                    |
	//	|                                    |                                                                                  |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000000 ERROR_SUCCESS           | Successful completion.                                                           |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000002 ERROR_FILE_NOT_FOUND    | The specified DFS link target was not found as a target of the specified DFS     |
	//	|                                    | link.                                                                            |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000005 ERROR_ACCESS_DENIED     | Permission to perform the operation was denied.                                  |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000057 ERROR_INVALID_PARAMETER | An incorrect parameter was specified.                                            |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000490 ERROR_NOT_FOUND         | The specified DFS namespace or DFS link does not exist.                          |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//
	// The server MAY<89> implement this method.
	//
	// If the NetrDfsRemove (Opnum 2) method on a server does not support a domain-based
	// namespace, the server SHOULD support a domain-based namespace in the NetrDfsRemove2
	// (Opnum 20) method.<90><91>
	Remove2(context.Context, *Remove2Request) (*Remove2Response, error)

	// The NetrDfsEnumEx (Opnum 21) method enumerates the DFS roots hosted on a server,
	// or DFS links of a namespace hosted by the server.<92><93> Depending on the information
	// level, the targets associated with the roots and links are also displayed.
	//
	// The NetrDfsEnumEx method uses the following MIDL syntax.
	//
	// Return Values: The method MUST return 0 on success and a nonzero error code on failure.
	// The method can return any specific error code value, as specified in [MS-ERREF],
	// section 2.2. The most common error codes are listed in the following table.
	//
	//	+------------------------------------+--------------------------------------------------+
	//	|               RETURN               |                                                  |
	//	|             VALUE/CODE             |                   DESCRIPTION                    |
	//	|                                    |                                                  |
	//	+------------------------------------+--------------------------------------------------+
	//	+------------------------------------+--------------------------------------------------+
	//	| 0x00000000 ERROR_SUCCESS           | Successful completion.                           |
	//	+------------------------------------+--------------------------------------------------+
	//	| 0x00000057 ERROR_INVALID_PARAMETER | An incorrect parameter was specified.            |
	//	+------------------------------------+--------------------------------------------------+
	//	| 0x00000103 ERROR_NO_MORE_ITEMS     | There is no data to return.                      |
	//	+------------------------------------+--------------------------------------------------+
	//	| 0x00000490 ERROR_NOT_FOUND         | The specified DFS root namespace does not exist. |
	//	+------------------------------------+--------------------------------------------------+
	EnumEx(context.Context, *EnumExRequest) (*EnumExResponse, error)

	// The NetrDfsSetInfo2 (Opnum 22) method sets or modifies the information associated
	// with a DFS root, a DFS root target, a DFS link, or a DFS link target.
	//
	// The NetrDfsSetInfo2 method has the following MIDL syntax.
	//
	// Return Values: The method MUST return 0 on success and a nonzero error code on failure.
	// The method can return any specific error code value, as specified in [MS-ERREF] section
	// 2.2. The most common error codes are listed in the following table.
	//
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	|               RETURN               |                                                                                  |
	//	|             VALUE/CODE             |                                   DESCRIPTION                                    |
	//	|                                    |                                                                                  |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000000 ERROR_SUCCESS           | Successful completion.                                                           |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000002 ERROR_FILE_NOT_FOUND    | The specified DFS link target was not found as a target of the specified DFS     |
	//	|                                    | link.                                                                            |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000005 ERROR_ACCESS_DENIED     | Permission to perform the operation was denied.                                  |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000032 ERROR_NOT_SUPPORTED     | The specified operation is not supported.                                        |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000057 ERROR_INVALID_PARAMETER | An incorrect parameter was specified.                                            |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000490 ERROR_NOT_FOUND         | The specified DFS root, DFS link, or DFS link or root target does not exist.     |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//
	// The server MAY<105> implement this method.
	//
	// If the NetrDfsSetInfo (Opnum 3) method on a server does not support a domain-based
	// namespace, the server SHOULD support a domain-based namespace in the NetrDfsSetInfo2
	// (Opnum 22) method.<106><107>
	SetInfo2(context.Context, *SetInfo2Request) (*SetInfo2Response, error)

	// The NetrDfsAddRootTarget method is used to create a stand-alone DFS namespace, a
	// domainv1-based DFS namespace, or a domainv2-based DFS namespace.<73>
	//
	// The NetrDfsAddRootTarget method uses the following MIDL syntax.
	//
	// Return Values: The method MUST return 0 on success and a nonzero error code on failure.
	// The method can return any specific error code value, as specified in [MS-ERREF] section
	// 2.2. The most common error codes are listed in the following table.
	//
	//	+---------------------------------+---------------------------------------------------------------------------+
	//	|             RETURN              |                                                                           |
	//	|           VALUE/CODE            |                                DESCRIPTION                                |
	//	|                                 |                                                                           |
	//	+---------------------------------+---------------------------------------------------------------------------+
	//	+---------------------------------+---------------------------------------------------------------------------+
	//	| 0x00000000 ERROR_SUCCESS        | Successful completion.                                                    |
	//	+---------------------------------+---------------------------------------------------------------------------+
	//	| 0x00000005 ERROR_ACCESS_DENIED  | Permission to perform the operation was denied.                           |
	//	+---------------------------------+---------------------------------------------------------------------------+
	//	| 0x000000B7 ERROR_ALREADY_EXISTS | The specified namespace already exists on this server.                    |
	//	+---------------------------------+---------------------------------------------------------------------------+
	//	| 0x00000906 NERR_NetNameNotFound | The share that the TargetPath parameter specifies does not already exist. |
	//	+---------------------------------+---------------------------------------------------------------------------+
	//
	// The following table summarizes the various actions that the NetrDfsAddRootTarget
	// method takes based on the parameter values.
	//
	//	+----------------------+-----------------------+------------------------+----------------------------------------------------------------------------------+
	//	|       PDFSPATH       |      PTARGETPATH      |      MAJORVERSION      |                                                                                  |
	//	|      PARAMETER       |       PARAMETER       |       PARAMETER        |                                   EXPLANATION                                    |
	//	|                      |                       |                        |                                                                                  |
	//	+----------------------+-----------------------+------------------------+----------------------------------------------------------------------------------+
	//	+----------------------+-----------------------+------------------------+----------------------------------------------------------------------------------+
	//	| \\<domain>\<dfsname> | \\<server>\<share>    |                      1 | Creates a new domainv1-based DFS namespace or adds a new root target to an       |
	//	|                      |                       |                        | existing domainv1-based DFS namespace. If a DFS namespace already exists, the    |
	//	|                      |                       |                        | version specified MUST match the DFS namespace; otherwise, the call fails.       |
	//	+----------------------+-----------------------+------------------------+----------------------------------------------------------------------------------+
	//	| \\<domain>\<dfsname> | \\<server>\<share>    |                      2 | Creates a new domainv2-based DFS namespace or adds a new root target to an       |
	//	|                      |                       |                        | existing domainv2-based DFS namespace. If a DFS namespace already exists, the    |
	//	|                      |                       |                        | version specified MUST match the DFS namespace; otherwise, the call fails.       |
	//	+----------------------+-----------------------+------------------------+----------------------------------------------------------------------------------+
	//	| \\<domain>\<dfsname> | \\<server>\<share>    |                      0 | Adds a new root target to an existing domain-based DFS namespace or a            |
	//	|                      |                       |                        | domainv2-based DFS namespace. If a DFS namespace does not already exist, the     |
	//	|                      |                       |                        | call fails.                                                                      |
	//	+----------------------+-----------------------+------------------------+----------------------------------------------------------------------------------+
	//	| \\<server>\<share>   | NULL                  |                      1 | Creates a new stand-alone DFS namespace.                                         |
	//	+----------------------+-----------------------+------------------------+----------------------------------------------------------------------------------+
	//
	// The following scheme is used to create a new domainv2-based DFS namespace:
	//
	// * NetrDfsGetSupportedNamespaceVersion ( 7c34ae60-9d4d-46b5-b2e1-e8ca09ac4d10 ) is
	// called to determine an appropriate version number to pass to the NetrDfsAddRootTarget()
	// method.
	//
	// * The client-side method creates a DFS metadata, format-independent LDAP ( a9bc4403-a862-48b9-b99b-1b44a887d177#gt_45643bfb-b4c4-432c-a10f-b98790063f8d
	// ) entry called the DFS namespace anchor. It contains only the DFS metadata major
	// version number.
	//
	// * Updates the access control list (ACL) ( a9bc4403-a862-48b9-b99b-1b44a887d177#gt_9f92aa05-dd0a-45f2-88d6-89f1fb654395
	// ) on the object ( a9bc4403-a862-48b9-b99b-1b44a887d177#gt_8bb43a65-7a8c-4585-a7ed-23044772f8ca
	// ) of the DFS namespace to permit read/write access by the DFS root target server.
	//
	// * The client-side method then issues an RPC ( a9bc4403-a862-48b9-b99b-1b44a887d177#gt_8a7f6700-8311-45bc-af10-82e10accd331
	// ) call to the DFS root target server.
	//
	// * The DFS server ( a9bc4403-a862-48b9-b99b-1b44a887d177#gt_3de8e640-501a-4b25-80a7-0ba769f3c0b9
	// ) creates a new DFS namespace LDAP entry with the DFS namespace anchor LDAP entry
	// as its parent.
	//
	// * All DFS links ( a9bc4403-a862-48b9-b99b-1b44a887d177#gt_0611e93d-f0e7-42ee-a591-d77ebcbb6619
	// ) are created with the DFS namespace LDAP entry as the parent. For more information,
	// see section 2.3.2 ( 6317bce5-9588-421d-a007-f61e459b4083 ).
	//
	// This results in two LDAP entries in domainv2 corresponding to the single LDAP entry
	// in domainv1.
	//
	// If the domain-based DFS namespace already exists, and the ServerName and RootShare
	// parameters are a root target, the server MUST fail with ERROR_ALREADY_EXISTS.
	//
	// If the share that the pTargetPath parameter specifies does not already exist, the
	// RPC method MUST fail with NERR_NetNameNotFound (0x00000906).
	AddRootTarget(context.Context, *AddRootTargetRequest) (*AddRootTargetResponse, error)

	// The NetrDfsRemoveRootTarget (Opnum 24) method is the unified DFS namespace deletion
	// method. It deletes stand-alone DFS namespaces, domainv1-based DFS namespaces, or
	// domainv2-based DFS namespaces based on parameters specified.<74>
	//
	// The NetrDfsRemoveRootTarget (Opnum 24) method has the following MIDL syntax.
	//
	// Return Values: The method MUST return 0 on success and a nonzero error code on failure.
	// The method can return any specific error code value, as specified in [MS-ERREF] section
	// 2.2. The most common error codes are listed in the following table.
	//
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	|               RETURN               |                                                                                  |
	//	|             VALUE/CODE             |                                   DESCRIPTION                                    |
	//	|                                    |                                                                                  |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000000 ERROR_SUCCESS           | Successful completion.                                                           |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000002 ERROR_FILE_NOT_FOUND    | The specified DFS root target was not found as a target of the specified DFS     |
	//	|                                    | namespace.                                                                       |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000005 ERROR_ACCESS_DENIED     | Permission to perform the operation was denied.                                  |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000057 ERROR_INVALID_PARAMETER | An incorrect parameter was specified.                                            |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000490 ERROR_NOT_FOUND         | The specified DFS root namespace does not exist.                                 |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	RemoveRootTarget(context.Context, *RemoveRootTargetRequest) (*RemoveRootTargetResponse, error)

	// The NetrDfsGetSupportedNamespaceVersion (Opnum 25) method is used to determine the
	// supported DFS metadata version number.<78>
	//
	// The NetrDfsGetSupportedNamespaceVersion (Opnum 25) method has the following MIDL
	// syntax.
	//
	// Return Values: The method MUST return 0 on success and a nonzero error code on failure.
	// The method can return any specific error code value, as specified in [MS-ERREF] section
	// 2.2. The most common error codes are listed in the following table.
	//
	//	+--------------------------+------------------------+
	//	|          RETURN          |                        |
	//	|        VALUE/CODE        |      DESCRIPTION       |
	//	|                          |                        |
	//	+--------------------------+------------------------+
	//	+--------------------------+------------------------+
	//	| 0x00000000 ERROR_SUCCESS | Successful completion. |
	//	+--------------------------+------------------------+
	//
	// The standalone namespace version supported by a server can be unaffected by the domain
	// metadata schema. If this is the case, the server MUST return a standalone DFS major
	// and minor version of zero for the DFS_NAMESPACE_VERSION_ORIGIN_DOMAIN query. In this
	// case, the standalone DFS capability field has no meaning and MUST also be zero.
	//
	// The version number of the DFS metadata that can be used for a new DFS namespace depends
	// on the following:
	//
	// * For domain-based DFS namespaces ( a9bc4403-a862-48b9-b99b-1b44a887d177#gt_c37de1c8-4bd3-406f-ad8c-50c877666f91
	// ) , the version supported by the DFS metadata schema in use in the server's domain
	// ( a9bc4403-a862-48b9-b99b-1b44a887d177#gt_b0276eb2-4e65-4cf1-a718-e0920a614aca ).
	//
	// * The version supported by the server that is to host the DFS root target ( a9bc4403-a862-48b9-b99b-1b44a887d177#gt_ac90b498-3ba4-48d6-bcd6-5495f1654671
	// ).
	//
	// Thus, the version that can be used for creating a new DFS namespace is the minimum
	// version that the domain and the server support.
	//
	// This method is useful in determining an appropriate version number to pass to the
	// NetrDfsAddRootTarget method.
	GetSupportedNamespaceVersion(context.Context, *GetSupportedNamespaceVersionRequest) (*GetSupportedNamespaceVersionResponse, error)
}

netdfs server interface.

type Remove2Request

type Remove2Request struct {
	// DfsEntryPath: The pointer to a DFS link path that contains the name of the DFS link
	// to remove.
	EntryPath string `idl:"name:DfsEntryPath;string" json:"entry_path"`
	// DcName: The pointer to a null-terminated Unicode string. For a domain-based DFS namespace,
	// this string contains the host name of the DC to be used by the DFS root target that
	// is removing the DFS link. This parameter MAY be a NULL pointer; otherwise, it MUST
	// be the PDC for the domain of the DFS namespace.<87>
	DCName string `idl:"name:DcName;string" json:"dc_name"`
	// ServerName: The pointer to a null-terminated Unicode DFS link target host name string.
	// This MUST be a NULL pointer when the link and all of the link targets are to be removed.
	ServerName string `idl:"name:ServerName;string;pointer:unique" json:"server_name"`
	// ShareName: The pointer to a null-terminated Unicode DFS link target share name string.
	// This MUST be a NULL pointer when the link and all of the link targets are to be removed.
	ShareName string `idl:"name:ShareName;string;pointer:unique" json:"share_name"`
	// ppRootList: On success, returns a list of DFS root targets in the domain-based DFS
	// namespace that the client will be responsible for notifying of the change in the
	// DFS namespace. See section 3.2.4.2.2. This list MAY be empty if the server has performed
	// the notification.<88>
	RootList *RootList `idl:"name:ppRootList;pointer:unique" json:"root_list"`
}

Remove2Request structure represents the NetrDfsRemove2 operation request

func (*Remove2Request) MarshalNDR

func (o *Remove2Request) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Remove2Request) UnmarshalNDR

func (o *Remove2Request) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type Remove2Response

type Remove2Response struct {
	// ppRootList: On success, returns a list of DFS root targets in the domain-based DFS
	// namespace that the client will be responsible for notifying of the change in the
	// DFS namespace. See section 3.2.4.2.2. This list MAY be empty if the server has performed
	// the notification.<88>
	RootList *RootList `idl:"name:ppRootList;pointer:unique" json:"root_list"`
	// Return: The NetrDfsRemove2 return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

Remove2Response structure represents the NetrDfsRemove2 operation response

func (*Remove2Response) MarshalNDR

func (o *Remove2Response) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Remove2Response) UnmarshalNDR

func (o *Remove2Response) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type RemoveFTRootRequest

type RemoveFTRootRequest struct {
	// ServerName: The pointer to a null-terminated Unicode string. This is the host name
	// DFS root target to be removed.
	ServerName string `idl:"name:ServerName;string" json:"server_name"`
	// DcName: The pointer to a null-terminated Unicode string. For a domainv1-based DFS
	// namespace, this string contains the host name of the DC to be used by the DFS root
	// targets being removed for getting or updating DFS metadata for the DFS namespace.
	// This parameter MAY be a NULL pointer; otherwise, it MUST be the PDC for the domain
	// of the DFS namespace.
	DCName string `idl:"name:DcName;string" json:"dc_name"`
	// RootShare: The pointer to a null-terminated Unicode DFS root target share name string.
	// The share is not removed automatically when the method is successful; it MUST be
	// removed explicitly as needed.
	RootShare string `idl:"name:RootShare;string" json:"root_share"`
	// FtDfsName: The pointer to a null-terminated Unicode string that contains the DFS
	// namespace in which the operation is to be performed. It MAY be different from the
	// RootShare.
	FTDFSName string `idl:"name:FtDfsName;string" json:"ft_dfs_name"`
	// ApiFlags: The only supported bit in the ApiFlags parameter is DFS_FORCE_REMOVE.
	//
	//	+-----------------------------+----------------------------------------------------------------------------------+
	//	|                             |                                                                                  |
	//	|            VALUE            |                                     MEANING                                      |
	//	|                             |                                                                                  |
	//	+-----------------------------+----------------------------------------------------------------------------------+
	//	+-----------------------------+----------------------------------------------------------------------------------+
	//	| DFS_FORCE_REMOVE 0x80000000 | Removes the named DFS root target from the namespace's directory service         |
	//	|                             | metadata only.                                                                   |
	//	+-----------------------------+----------------------------------------------------------------------------------+
	Flags uint32 `idl:"name:ApiFlags" json:"flags"`
	// ppRootList: On success, returns a list of DFS root targets in the domain-based DFS
	// namespace which the client will be responsible for notifying about the change in
	// the DFS namespace. See section 3.2.4.3.2. The list MAY be empty if the server has
	// performed the notification.<114>
	RootList *RootList `idl:"name:ppRootList;pointer:unique" json:"root_list"`
}

RemoveFTRootRequest structure represents the NetrDfsRemoveFtRoot operation request

func (*RemoveFTRootRequest) MarshalNDR

func (o *RemoveFTRootRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*RemoveFTRootRequest) UnmarshalNDR

func (o *RemoveFTRootRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type RemoveFTRootResponse

type RemoveFTRootResponse struct {
	// ppRootList: On success, returns a list of DFS root targets in the domain-based DFS
	// namespace which the client will be responsible for notifying about the change in
	// the DFS namespace. See section 3.2.4.3.2. The list MAY be empty if the server has
	// performed the notification.<114>
	RootList *RootList `idl:"name:ppRootList;pointer:unique" json:"root_list"`
	// Return: The NetrDfsRemoveFtRoot return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

RemoveFTRootResponse structure represents the NetrDfsRemoveFtRoot operation response

func (*RemoveFTRootResponse) MarshalNDR

func (o *RemoveFTRootResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*RemoveFTRootResponse) UnmarshalNDR

func (o *RemoveFTRootResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type RemoveRequest

type RemoveRequest struct {
	// DfsEntryPath: The pointer to the DFS link path that contains the name of an existing
	// link.
	EntryPath string `idl:"name:DfsEntryPath;string" json:"entry_path"`
	// ServerName: The pointer to a null-terminated Unicode DFS link target host name string.
	// Clients MUST set ServerName to a NULL pointer in requests to remove the link and
	// all its link targets.
	ServerName string `idl:"name:ServerName;string;pointer:unique" json:"server_name"`
	// ShareName: The pointer to a null-terminated Unicode DFS link target share name string.
	// This can also be a share name with a path relative to the share, for example, "share1\mydir1\mydir2".
	// Clients MUST set ShareName to a NULL pointer in requests to remove the link and all
	// its link targets.
	ShareName string `idl:"name:ShareName;string;pointer:unique" json:"share_name"`
}

RemoveRequest structure represents the NetrDfsRemove operation request

func (*RemoveRequest) MarshalNDR

func (o *RemoveRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*RemoveRequest) UnmarshalNDR

func (o *RemoveRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type RemoveResponse

type RemoveResponse struct {
	// Return: The NetrDfsRemove return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

RemoveResponse structure represents the NetrDfsRemove operation response

func (*RemoveResponse) MarshalNDR

func (o *RemoveResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*RemoveResponse) UnmarshalNDR

func (o *RemoveResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type RemoveRootTargetRequest

type RemoveRootTargetRequest struct {
	// pDfsPath: The pointer to a null-terminated Unicode string. This MUST be \\<domain>\<dfsname>
	// for domain-based DFS or \\<server>\<share> for stand-alone DFS.
	DFSPath string `idl:"name:pDfsPath;string;pointer:unique" json:"dfs_path"`
	// pTargetPath: The pointer to a null-terminated Unicode string. This MUST be \\<server>\<share>[\<path>]
	// for domain-based DFS or NULL for stand-alone DFS.
	TargetPath string `idl:"name:pTargetPath;string;pointer:unique" json:"target_path"`
	// Flags: A bit field specifying the type of removal operation. For a standalone namespace,
	// this bit-field parameter MUST be zero. For a domain-based DFS namespace, it can be
	// zero or the following value. Zero indicates a normal removal operation.
	//
	//	+-----------------------------+----------------------------------------------------------------------------------+
	//	|                             |                                                                                  |
	//	|            VALUE            |                                     MEANING                                      |
	//	|                             |                                                                                  |
	//	+-----------------------------+----------------------------------------------------------------------------------+
	//	+-----------------------------+----------------------------------------------------------------------------------+
	//	| DFS_FORCE_REMOVE 0x80000000 | Specifying this flag for a domain-based DFS namespace removes the root target    |
	//	|                             | even if it is not accessible.                                                    |
	//	+-----------------------------+----------------------------------------------------------------------------------+
	Flags uint32 `idl:"name:Flags" json:"flags"`
}

RemoveRootTargetRequest structure represents the NetrDfsRemoveRootTarget operation request

func (*RemoveRootTargetRequest) MarshalNDR

func (o *RemoveRootTargetRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*RemoveRootTargetRequest) UnmarshalNDR

func (o *RemoveRootTargetRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type RemoveRootTargetResponse

type RemoveRootTargetResponse struct {
	// Return: The NetrDfsRemoveRootTarget return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

RemoveRootTargetResponse structure represents the NetrDfsRemoveRootTarget operation response

func (*RemoveRootTargetResponse) MarshalNDR

func (o *RemoveRootTargetResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*RemoveRootTargetResponse) UnmarshalNDR

func (o *RemoveRootTargetResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type RemoveStdRootRequest

type RemoveStdRootRequest struct {
	// ServerName: The pointer to a null-terminated Unicode string. This is the host name
	// of the DFS root target to be removed.
	ServerName string `idl:"name:ServerName;string" json:"server_name"`
	// RootShare: The pointer to a null-terminated Unicode DFS root target share name string.
	// This is also the DFS namespace name. The share is not removed automatically when
	// the method is successful; it MUST be removed explicitly, as needed.
	RootShare string `idl:"name:RootShare;string" json:"root_share"`
	// ApiFlags: This parameter is reserved for future use and is ignored by the server.
	Flags uint32 `idl:"name:ApiFlags" json:"flags"`
}

RemoveStdRootRequest structure represents the NetrDfsRemoveStdRoot operation request

func (*RemoveStdRootRequest) MarshalNDR

func (o *RemoveStdRootRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*RemoveStdRootRequest) UnmarshalNDR

func (o *RemoveStdRootRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type RemoveStdRootResponse

type RemoveStdRootResponse struct {
	// Return: The NetrDfsRemoveStdRoot return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

RemoveStdRootResponse structure represents the NetrDfsRemoveStdRoot operation response

func (*RemoveStdRootResponse) MarshalNDR

func (o *RemoveStdRootResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*RemoveStdRootResponse) UnmarshalNDR

func (o *RemoveStdRootResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type RootList

type RootList struct {
	// cEntries:  The number of DFS targets. The value of this member indicates the size
	// of the array in the Entry member.
	EntriesCount uint32 `idl:"name:cEntries" json:"entries_count"`
	// Entry:  An array of DFSM_ROOT_LIST_ENTRY structures. Each structure provides information
	// about one DFS target. For more information, see section 2.2.2.10.
	Entry []*RootListEntry `idl:"name:Entry;size_is:(cEntries)" json:"entry"`
}

RootList structure represents DFSM_ROOT_LIST RPC structure.

The DFSM_ROOT_LIST structure relates to the NetrDfsAdd2, NetrDfsAddFtRoot, and NetrDfsSetInfo2 methods when used to add a DFS link or a DFS root target, or to modify the configuration of a domain-based DFS namespace. The structure contains an array of DFSM_ROOT_LIST_ENTRY structures, each of which contains information about a DFS root target.

The DFSM_ROOT_LIST structure has the following format.

func (*RootList) MarshalNDR

func (o *RootList) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*RootList) NDRSizeInfo

func (o *RootList) NDRSizeInfo() []uint64

func (*RootList) UnmarshalNDR

func (o *RootList) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type RootListEntry

type RootListEntry struct {
	// ServerShare:  Specifies a DFS root target.
	ServerShare string `idl:"name:ServerShare;string;pointer:unique" json:"server_share"`
}

RootListEntry structure represents DFSM_ROOT_LIST_ENTRY RPC structure.

The DFSM_ROOT_LIST_ENTRY structure relates to the NetrDfsAdd2, NetrDfsAddFtRoot, and NetrDfsSetInfo2 methods when used to add a DFS link or a DFS root target, or to modify the configuration of a domain-based DFS namespace. The structure contains information about a DFS root target.

The DFSM_ROOT_LIST_ENTRY structure has the following format.

func (*RootListEntry) MarshalNDR

func (o *RootListEntry) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*RootListEntry) UnmarshalNDR

func (o *RootListEntry) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type SetDCAddressRequest

type SetDCAddressRequest struct {
	// ServerName: The pointer to a null-terminated Unicode string. This is the host name
	// of the server to which the RPC method is issued.
	ServerName string `idl:"name:ServerName;string" json:"server_name"`
	// DcName: The pointer to a null-terminated Unicode DC host name string.
	DCName string `idl:"name:DcName;string" json:"dc_name"`
	// Timeout: The time period, in seconds, that the server uses the specified DC when
	// storing and retrieving domain-based DFS metadata. This is valid only when the NET_DFS_SETDC_TIMEOUT
	// bit of the Flags parameter is set.
	Timeout uint32 `idl:"name:Timeout" json:"timeout"`
	// Flags: The bit field specifying additional operations to perform. Possible values
	// are as follows.
	//
	//	+-----------------------------------+-------------------------------------------------------------------------------+
	//	|                                   |                                                                               |
	//	|               VALUE               |                                    MEANING                                    |
	//	|                                   |                                                                               |
	//	+-----------------------------------+-------------------------------------------------------------------------------+
	//	+-----------------------------------+-------------------------------------------------------------------------------+
	//	| NET_DFS_SETDC_FLAGS 0x00000000    | Indicates that no additional operation is requested.                          |
	//	+-----------------------------------+-------------------------------------------------------------------------------+
	//	| NET_DFS_SETDC_TIMEOUT 0x00000001  | Sets the time-out value based on the Timeout parameter.                       |
	//	+-----------------------------------+-------------------------------------------------------------------------------+
	//	| NET_DFS_SETDC_INIT_PKT 0x00000002 | Instructs the called server to reload its DFS metadata from the specified DC. |
	//	+-----------------------------------+-------------------------------------------------------------------------------+
	Flags uint32 `idl:"name:Flags" json:"flags"`
}

SetDCAddressRequest structure represents the NetrDfsSetDcAddress operation request

func (*SetDCAddressRequest) MarshalNDR

func (o *SetDCAddressRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*SetDCAddressRequest) UnmarshalNDR

func (o *SetDCAddressRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type SetDCAddressResponse

type SetDCAddressResponse struct {
	// Return: The NetrDfsSetDcAddress return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

SetDCAddressResponse structure represents the NetrDfsSetDcAddress operation response

func (*SetDCAddressResponse) MarshalNDR

func (o *SetDCAddressResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*SetDCAddressResponse) UnmarshalNDR

func (o *SetDCAddressResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type SetInfo2Request

type SetInfo2Request struct {
	// DfsEntryPath: The pointer to a DFS root path or a DFS link path that contains the
	// name of a DFS root or DFS link name.
	EntryPath string `idl:"name:DfsEntryPath;string" json:"entry_path"`
	// DcName: The pointer to a null-terminated Unicode string. It MUST be ignored for a
	// stand-alone DFS namespace. For a domain-based DFS namespace, this string contains
	// the host name of the DC that the DFS root target uses to get or update DFS metadata
	// for the DFS namespace. This parameter MAY be a NULL pointer; otherwise, it MUST be
	// the PDC for the domain of the DFS namespace.<99>
	DCName string `idl:"name:DcName;string" json:"dc_name"`
	// ServerName: The pointer to a null-terminated Unicode DFS root target or a DFS link
	// target host name string. This parameter MUST be a NULL pointer if the operation is
	// intended for a DFS root or a DFS link and not for targets.
	ServerName string `idl:"name:ServerName;string;pointer:unique" json:"server_name"`
	// ShareName: The pointer to a null-terminated Unicode DFS root target or a DFS link
	// target share name string. This parameter MUST be a NULL pointer if the operation
	// is intended for a DFS root or a DFS link and not for targets.
	ShareName string `idl:"name:ShareName;string;pointer:unique" json:"share_name"`
	// Level: This parameter specifies the information level of the data and, in turn, determines
	// the action the method performs.
	//
	//	+----------------------+----------------------------------------------------------------------------------+
	//	|                      |                                                                                  |
	//	|        VALUE         |                                     MEANING                                      |
	//	|                      |                                                                                  |
	//	+----------------------+----------------------------------------------------------------------------------+
	//	+----------------------+----------------------------------------------------------------------------------+
	//	| Level_100 0x00000064 | Sets the comment associated with the root or link that specified in DfsInfo.     |
	//	+----------------------+----------------------------------------------------------------------------------+
	//	| Level_101 0x00000065 | Sets the storage state associated with the root, link, root target, or link      |
	//	|                      | target specified in DfsInfo.<100>                                                |
	//	+----------------------+----------------------------------------------------------------------------------+
	//	| Level_102 0x00000066 | Sets the time-out value associated with the root or link specified in DfsInfo.   |
	//	+----------------------+----------------------------------------------------------------------------------+
	//	| Level_103 0x00000067 | Sets the property flags for the root or link specified in DfsInfo.               |
	//	+----------------------+----------------------------------------------------------------------------------+
	//	| Level_104 0x00000068 | Sets the target priority rank and class for the root target or link target       |
	//	|                      | specified in DfsInfo.                                                            |
	//	+----------------------+----------------------------------------------------------------------------------+
	//	| Level_105 0x00000069 | Sets the comment, state, time-out information, and property flags for the root   |
	//	|                      | or link specified in DfsInfo. This does not apply to a root target or link       |
	//	|                      | target.                                                                          |
	//	+----------------------+----------------------------------------------------------------------------------+
	//	| Level_106 0x0000006A | Sets the target state and priority for the root target or link target specified  |
	//	|                      | in DfsInfo. This does not apply to the DFS namespace root or link.<101>          |
	//	+----------------------+----------------------------------------------------------------------------------+
	//	| Level_107 0x0000006B | Sets the comment, state, time-out, security descriptor information, and property |
	//	|                      | flags for the root or link specified in DfsInfo. Does not apply to a root        |
	//	|                      | target or link target. The ServerName and ShareName parameters MUST be NULL. The |
	//	|                      | security descriptor MUST NOT have an owner, group, or SACLs in it. The security  |
	//	|                      | descriptor MUST be a NULL, zero length value if used on a namespace root. In     |
	//	|                      | this case, note that it is equivalent to using Level_105.                        |
	//	+----------------------+----------------------------------------------------------------------------------+
	//	| Level_150 0x00000096 | Sets the security descriptor associated with a link. Only stand-alone DFS        |
	//	|                      | namespaces and domainv2-based DFS namespaces are supported. The ServerName and   |
	//	|                      | ShareName parameters MUST both be NULL. The security descriptor MUST NOT have an |
	//	|                      | owner, group, or SACLs in it.                                                    |
	//	+----------------------+----------------------------------------------------------------------------------+
	Level uint32 `idl:"name:Level" json:"level"`
	// pDfsInfo: The pointer to a DFS_INFO_STRUCT union that contains the specified data.
	// The Level parameter value determines the case of the union.
	DFSInfo *Info `idl:"name:pDfsInfo;switch_is:Level" json:"dfs_info"`
	// ppRootList: On success, returns a list of DFS root targets in the domain-based DFS
	// namespace which the client will be responsible for notifying about the change in
	// the DFS namespace. See section 3.2.4.2.3. This list MAY be empty if the server has
	// performed the notification.<104>
	RootList *RootList `idl:"name:ppRootList;pointer:unique" json:"root_list"`
}

SetInfo2Request structure represents the NetrDfsSetInfo2 operation request

func (*SetInfo2Request) MarshalNDR

func (o *SetInfo2Request) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*SetInfo2Request) UnmarshalNDR

func (o *SetInfo2Request) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type SetInfo2Response

type SetInfo2Response struct {
	// ppRootList: On success, returns a list of DFS root targets in the domain-based DFS
	// namespace which the client will be responsible for notifying about the change in
	// the DFS namespace. See section 3.2.4.2.3. This list MAY be empty if the server has
	// performed the notification.<104>
	RootList *RootList `idl:"name:ppRootList;pointer:unique" json:"root_list"`
	// Return: The NetrDfsSetInfo2 return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

SetInfo2Response structure represents the NetrDfsSetInfo2 operation response

func (*SetInfo2Response) MarshalNDR

func (o *SetInfo2Response) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*SetInfo2Response) UnmarshalNDR

func (o *SetInfo2Response) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type SetInfoRequest

type SetInfoRequest struct {
	// DfsEntryPath: The pointer to a DFS root or a DFS link path.
	EntryPath string `idl:"name:DfsEntryPath;string" json:"entry_path"`
	// ServerName: The pointer to a null-terminated Unicode DFS root target or DFS link
	// target host name string. Clients MUST set this to a NULL pointer when the DFS root
	// or DFS link is used and not the DFS root target or DFS link target.
	ServerName string `idl:"name:ServerName;string;pointer:unique" json:"server_name"`
	// ShareName: The pointer to a null-terminated Unicode string DFS root target or DFS
	// link target host name. Clients MUST set this to a NULL pointer when the DFS root
	// or DFS link is used and not the DFS root target or DFS link target.
	ShareName string `idl:"name:ShareName;string;pointer:unique" json:"share_name"`
	// Level: Specifies the information level of the data and, in turn, determines the action
	// the method performs.
	//
	//	+----------------------+----------------------------------------------------------------------------------+
	//	|                      |                                                                                  |
	//	|        VALUE         |                                     MEANING                                      |
	//	|                      |                                                                                  |
	//	+----------------------+----------------------------------------------------------------------------------+
	//	+----------------------+----------------------------------------------------------------------------------+
	//	| Level_100 0x00000064 | Sets the comment associated with the root or link specified in the DfsInfo       |
	//	|                      | parameter. The ServerName and ShareName parameters MUST be NULL.                 |
	//	+----------------------+----------------------------------------------------------------------------------+
	//	| Level_101 0x00000065 | Sets the state associated with the root, link, root target, or link target       |
	//	|                      | specified in DfsInfo.<52>                                                        |
	//	+----------------------+----------------------------------------------------------------------------------+
	//	| Level_102 0x00000066 | Sets the time-out value associated with the root or link specified in DfsInfo.   |
	//	|                      | The ServerName and ShareName parameters MUST be ignored.                         |
	//	+----------------------+----------------------------------------------------------------------------------+
	//	| Level_103 0x00000067 | Sets the property flags for the root or link specified in DfsInfo. The           |
	//	|                      | ServerName and ShareName parameters MUST be NULL.                                |
	//	+----------------------+----------------------------------------------------------------------------------+
	//	| Level_104 0x00000068 | Sets the target priority rank and class for the root target or link target       |
	//	|                      | specified in DfsInfo.                                                            |
	//	+----------------------+----------------------------------------------------------------------------------+
	//	| Level_105 0x00000069 | Sets the comment, state, time-out information, and property flags for the        |
	//	|                      | namespace root or link specified in DfsInfo. Does not apply to a root target or  |
	//	|                      | link target. The ServerName and ShareName parameters MUST be NULL.               |
	//	+----------------------+----------------------------------------------------------------------------------+
	//	| Level_106 0x0000006A | Sets the target state and priority for the DFS root target or DFS link target    |
	//	|                      | specified in DfsInfo.<53> This does not apply to the DFS namespace root or link. |
	//	+----------------------+----------------------------------------------------------------------------------+
	//	| Level_107 0x0000006B | Sets the comment, state, time-out, security descriptor information, and property |
	//	|                      | flags for the namespace root or link specified in DfsInfo. Does not apply to     |
	//	|                      | a root target or link target. The ServerName and ShareName parameters MUST be    |
	//	|                      | NULL. The security descriptor MUST NOT have owner, group, or SACLs in it. The    |
	//	|                      | security descriptor MUST be a NULL, zero length value if used on a namespace     |
	//	|                      | root. In this case, note that it is equivalent to using Level_105.               |
	//	+----------------------+----------------------------------------------------------------------------------+
	//	| Level_150 0x00000096 | Sets the security descriptor associated with a DFS link. Only stand-alone DFS    |
	//	|                      | namespaces and domainv2-based DFS namespaces are supported. The ServerName and   |
	//	|                      | ShareName parameters MUST both be NULL. The security descriptor MUST NOT have    |
	//	|                      | owner, group, or SACLs in it.                                                    |
	//	+----------------------+----------------------------------------------------------------------------------+
	Level uint32 `idl:"name:Level" json:"level"`
	// DfsInfo: The pointer to a DFS_INFO_STRUCT union that contains the specified data.
	// The value of the Level parameter selects the case of the union.
	Info *Info `idl:"name:DfsInfo;switch_is:Level" json:"info"`
}

SetInfoRequest structure represents the NetrDfsSetInfo operation request

func (*SetInfoRequest) MarshalNDR

func (o *SetInfoRequest) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*SetInfoRequest) UnmarshalNDR

func (o *SetInfoRequest) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type SetInfoResponse

type SetInfoResponse struct {
	// Return: The NetrDfsSetInfo return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

SetInfoResponse structure represents the NetrDfsSetInfo operation response

func (*SetInfoResponse) MarshalNDR

func (o *SetInfoResponse) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*SetInfoResponse) UnmarshalNDR

func (o *SetInfoResponse) UnmarshalNDR(ctx context.Context, r ndr.Reader) error

type StorageInfo

type StorageInfo struct {
	// State:  Refers to the State field of DFS_INFO_106. For more information, see section
	// 2.2.4.6.
	State uint32 `idl:"name:State" json:"state"`
	// ServerName:  The pointer to a null-terminated Unicode string containing the DFS target
	// host name.
	ServerName string `idl:"name:ServerName;string" json:"server_name"`
	// ShareName:  The pointer to a null-terminated Unicode string containing the DFS target
	// share name.
	//
	// DFS_INFO_3 and DFS_INFO_4 structures contain one or more DFS_STORAGE_INFO structures,
	// one for each DFS target.
	ShareName string `idl:"name:ShareName;string" json:"share_name"`
}

StorageInfo structure represents DFS_STORAGE_INFO RPC structure.

The DFS_STORAGE_INFO structure relates to the NetrDfsEnum, NetrDfsEnumEx, and NetrDfsGetInfo methods when used to enumerate DFS links and DFS targets in a namespace or to get information about a DFS link. The structure contains information about the target of a DFS root or DFS link.

The DFS_STORAGE_INFO structure has the following format.

func (*StorageInfo) MarshalNDR

func (o *StorageInfo) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*StorageInfo) UnmarshalNDR

func (o *StorageInfo) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type StorageInfo1

type StorageInfo1 struct {
	// State:  Refers to the State field of DFS_INFO_106. For more information, see section
	// 2.2.4.6.
	State uint32 `idl:"name:State" json:"state"`
	// ServerName:  A pointer to a null-terminated Unicode string containing the DFS target
	// host name.
	ServerName string `idl:"name:ServerName;string" json:"server_name"`
	// ShareName:  A pointer to a null-terminated Unicode string containing the DFS target
	// share name.
	ShareName string `idl:"name:ShareName;string" json:"share_name"`
	// TargetPriority:  A DFS_TARGET_PRIORITY structure containing the priority class and
	// priority rank.
	TargetPriority *TargetPriority `idl:"name:TargetPriority" json:"target_priority"`
}

StorageInfo1 structure represents DFS_STORAGE_INFO_1 RPC structure.

The DFS_STORAGE_INFO_1 structure relates to the NetrDfsEnum, NetrDfsEnumEx, and NetrDfsGetInfo methods when used to enumerate DFS links and targets in a namespace or to get information about a DFS link. The structure contains data about a DFS target, including the host name and share name, as well as the target state and priority. For more information on prioritization, see section 2.2.2.7.

The DFS_STORAGE_INFO_1 structure has the following format.

func (*StorageInfo1) MarshalNDR

func (o *StorageInfo1) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*StorageInfo1) UnmarshalNDR

func (o *StorageInfo1) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type SupportedNamespaceVersionInfo

type SupportedNamespaceVersionInfo struct {
	// DomainDfsMajorVersion:  A value containing the major version number of the DFS metadata
	// format supported by a domain-based DFS namespace.
	DomainDFSMajorVersion uint32 `idl:"name:DomainDfsMajorVersion" json:"domain_dfs_major_version"`
	// DomainDfsMinorVersion:  A value containing the minor version number of the DFS metadata
	// format supported by a domain-based DFS namespace.
	DomainDFSMinorVersion uint32 `idl:"name:DomainDfsMinorVersion" json:"domain_dfs_minor_version"`
	// DomainDfsCapabilities:  A value containing the capability information of a domain-based
	// DFS namespace.
	DomainDFSCapabilities uint64 `idl:"name:DomainDfsCapabilities" json:"domain_dfs_capabilities"`
	// StandaloneDfsMajorVersion:  A value containing the major version number of a stand-alone
	// DFS namespace.
	StandaloneDFSMajorVersion uint32 `idl:"name:StandaloneDfsMajorVersion" json:"standalone_dfs_major_version"`
	// StandaloneDfsMinorVersion:  A value containing the minor version number of a stand-alone
	// DFS namespace.
	StandaloneDFSMinorVersion uint32 `idl:"name:StandaloneDfsMinorVersion" json:"standalone_dfs_minor_version"`
	// StandaloneDfsCapabilities:  A value containing the capability information of a stand-alone
	// DFS namespace.
	//
	// DomainDfsCapabilities and StandaloneDfsCapabilities are bit fields with the following
	// defined value.
	//
	//	+--------------------------------------------------+-------------------------------------------------------------------------------+
	//	|                                                  |                                                                               |
	//	|                      VALUE                       |                                    MEANING                                    |
	//	|                                                  |                                                                               |
	//	+--------------------------------------------------+-------------------------------------------------------------------------------+
	//	+--------------------------------------------------+-------------------------------------------------------------------------------+
	//	| DFS_NAMESPACE_CAPABILITY_ABDE 0x0000000000000001 | This specifies support for Access Based Directory Enumeration (ABDE) mode.<4> |
	//	+--------------------------------------------------+-------------------------------------------------------------------------------+
	//
	// When this structure is used for communication, all undefined bit fields MUST be set
	// to zero. A client SHOULD ignore all bit fields it does not understand.
	StandaloneDFSCapabilities uint64 `idl:"name:StandaloneDfsCapabilities" json:"standalone_dfs_capabilities"`
}

SupportedNamespaceVersionInfo structure represents DFS_SUPPORTED_NAMESPACE_VERSION_INFO RPC structure.

The DFS_SUPPORTED_NAMESPACE_VERSION_INFO structure relates to the NetrDfsGetSupportedNamespaceVersion method when used to determine the domain-based or standalone-based DFS major and minor version information.

The DFS_SUPPORTED_NAMESPACE_VERSION_INFO structure has the following format.

func (*SupportedNamespaceVersionInfo) MarshalNDR

func (*SupportedNamespaceVersionInfo) UnmarshalNDR

func (o *SupportedNamespaceVersionInfo) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type TargetPriority

type TargetPriority struct {
	// TargetPriorityClass:  The DFS_TARGET_PRIORITY_CLASS enumeration value that specifies
	// the priority class of the target. For more information, see section 2.2.2.8.
	TargetPriorityClass TargetPriorityClass `idl:"name:TargetPriorityClass" json:"target_priority_class"`
	// TargetPriorityRank:  The priority rank of the target, ranging in value from 0x0000
	// to 0x001F, where 0x0000 is the highest rank. Priority ranks apply only within a priority
	// class, not across priority classes.
	TargetPriorityRank uint16 `idl:"name:TargetPriorityRank" json:"target_priority_rank"`
	// contains filtered or unexported fields
}

TargetPriority structure represents DFS_TARGET_PRIORITY RPC structure.

The DFS_TARGET_PRIORITY structure relates to the NetrDfsSetInfo and NetrDfsSetInfo2 methods when used to set the priority of a DFS target in referrals from a server. It also relates to the DFS_STORAGE_INFO_1 structure that the NetrDfsEnum, NetrDfsEnumEx, and NetrDfsGetInfo methods return. The structure defines the priority of a DFS target. The DFS targets can be prioritized independently of site cost. The DFS target priority is manually assigned to link targets and root targets and allows for load balancing of clients.

The DFS_TARGET_PRIORITY structure has the following format.

func (*TargetPriority) MarshalNDR

func (o *TargetPriority) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*TargetPriority) UnmarshalNDR

func (o *TargetPriority) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type TargetPriorityClass

type TargetPriorityClass uint32

TargetPriorityClass type represents DFS_TARGET_PRIORITY_CLASS RPC enumeration.

The DFS_TARGET_PRIORITY_CLASS enumeration relates to the NetrDfsSetInfo and NetrDfsSetInfo2 methods when used to set the priority of DFS targets in referrals from a server. For more information on prioritization, see section 2.2.2.7. The enumeration defines five possible DFS target priority class settings.

var (
	// DfsInvalidPriorityClass:  This is not a valid priority class.
	TargetPriorityClassInvalidPriorityClass TargetPriorityClass = 1
	// DfsSiteCostNormalPriorityClass:  The default or "normal" site cost priority class
	// for a DFS target.
	TargetPriorityClassSiteCostNormalPriorityClass TargetPriorityClass = 0
	// DfsGlobalHighPriorityClass:  The highest priority class for a DFS target. Targets
	// assigned to this class receive global preference.
	TargetPriorityClassGlobalHighPriorityClass TargetPriorityClass = 1
	// DfsSiteCostHighPriorityClass:  The highest site cost priority class for a DFS target.
	// Targets assigned to this class receive the highest preference among targets of the
	// same site cost for a given DFS client.
	TargetPriorityClassSiteCostHighPriorityClass TargetPriorityClass = 2
	// DfsSiteCostLowPriorityClass:  The lowest site cost priority class for a DFS target.
	// Targets assigned to this class receive the least preference among targets of the
	// same site cost for a given DFS client.
	TargetPriorityClassSiteCostLowPriorityClass TargetPriorityClass = 3
	// DfsGlobalLowPriorityClass:  The lowest priority class level for a DFS target. Targets
	// assigned to this class receive the least preference globally.
	//
	// The underlying data type of this enumeration is long integer.
	//
	// The order of priority classes, from highest to lowest, is as follows:
	//
	// * DfsGlobalHighPriorityClass
	//
	// * DfsSiteCostHighPriorityClass
	//
	// * DfsSiteCostNormalPriorityClass
	//
	// * DfsSiteCostLowPriorityClass
	//
	// * DfsGlobalLowPriorityClass
	//
	// Server targets are initially grouped into global high-priority, normal-priority,
	// and global low-priority classes. The normal-priority class is then subdivided, based
	// on site cost, into site cost high-priority, site cost normal-priority, and site-cost
	// low-priority classes.
	//
	// For example, all server targets with a site cost value of 0 are grouped into site
	// cost high-priority, normal-priority, and low-priority classes. Then, all server targets
	// with higher site costs are likewise separated into site cost high-priority, normal-priority,
	// and low-priority classes. Thus, a server target with a site cost value of 0 and a
	// site cost low-priority class is still ranked higher than a server target with a site
	// cost value of 1 and a site cost high-priority class.
	//
	// Be aware that the value for a "normal-priority class" is set to 0 even though it
	// is lower in priority than DfsGlobalHighPriorityClass and DfsSiteCostHighPriorityClass.
	// This is the default priority class setting. For added granularity, priority rank
	// can be used to discriminate within a priority class.
	TargetPriorityClassGlobalLowPriorityClass TargetPriorityClass = 4
)

func (TargetPriorityClass) String

func (o TargetPriorityClass) String() string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL