wkssvc

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
	WkssvcSyntaxUUID = &uuid.UUID{TimeLow: 0x6bffd098, TimeMid: 0xa112, TimeHiAndVersion: 0x3610, ClockSeqHiAndReserved: 0x98, ClockSeqLow: 0x33, Node: [6]uint8{0x46, 0xc3, 0xf8, 0x7e, 0x34, 0x5a}}
	// Syntax ID
	WkssvcSyntaxV1_0 = &dcerpc.SyntaxID{IfUUID: WkssvcSyntaxUUID, IfVersionMajor: 1, IfVersionMinor: 0}
)
View Source
var (
	// import guard
	GoPackage = "wkst"
)
View Source
var JoinMaxPasswordLength = 256

JoinMaxPasswordLength represents the JOIN_MAX_PASSWORD_LENGTH RPC constant

View Source
var JoinObfuscatorLength = 8

JoinObfuscatorLength represents the JOIN_OBFUSCATOR_LENGTH RPC constant

Functions

func NewWkssvcServerHandle

func NewWkssvcServerHandle(o WkssvcServer) dcerpc.ServerHandle

func RegisterWkssvcServer

func RegisterWkssvcServer(conn dcerpc.Conn, o WkssvcServer, opts ...dcerpc.Option)

func WkssvcServerHandle

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

Types

type AddAlternateComputerNameRequest

type AddAlternateComputerNameRequest struct {
	// ServerName: This parameter has no effect on message processing in any environment.
	// The client MUST set this parameter to a value that resolves to the IP protocol layer
	// destination address of the RPC packets it transmits ([MS-RPCE] section 2.1.1.2).
	// The server MUST ignore this parameter.
	ServerName string `idl:"name:ServerName;string;pointer:unique" json:"server_name"`
	// AlternateName: A pointer to a string that specifies the new alternate name to add.
	// The name MUST be a valid DNS host name [RFC1035].
	AlternateName string `idl:"name:AlternateName;string;pointer:unique" json:"alternate_name"`
	// DomainAccount: A pointer to a string that specifies the account name in the domain
	// to use when connecting to a domain controller. This parameter is optional. If this
	// parameter is NULL, the caller's account name MUST be used. If this parameter is specified,
	// the format MUST be one of the following:
	//
	// * <NetBIOSDomainName>\<UserName>
	//
	// * <FullyQualifiedDNSDomainName>\<UserName>
	//
	// * <UserName>@<FullyQualifiedDNSDomainName>
	DomainAccount string `idl:"name:DomainAccount;string;pointer:unique" json:"domain_account"`
	// EncryptedPassword: An optional pointer to a JOINPR_ENCRYPTED_USER_PASSWORD structure
	// (section 2.2.5.18) that specifies the encrypted password to use with the DomainAccount
	// parameter. If the DomainAccount parameter is NULL, the caller's security context
	// MUST be used, and this parameter MUST be ignored.
	EncryptedPassword *EncryptedUserPassword `idl:"name:EncryptedPassword;pointer:unique" json:"encrypted_password"`
}

AddAlternateComputerNameRequest structure represents the NetrAddAlternateComputerName operation request

func (*AddAlternateComputerNameRequest) MarshalNDR

func (*AddAlternateComputerNameRequest) UnmarshalNDR

type AddAlternateComputerNameResponse

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

AddAlternateComputerNameResponse structure represents the NetrAddAlternateComputerName operation response

func (*AddAlternateComputerNameResponse) MarshalNDR

func (*AddAlternateComputerNameResponse) UnmarshalNDR

type EncryptedUserPassword

type EncryptedUserPassword struct {
	// Buffer: An array of bytes that contains a JOINPR_USER_PASSWORD structure (section
	// 2.2.5.17).
	//
	// The sections that follow specify the encoding, encryption, decryption, and decoding
	// of a password. (Encoding and encryption are performed by the client, but their explanations
	// are included for completeness and to facilitate the reader's understanding of server
	// (2) message processing.) The server decrypts and decodes a Buffer structure to extract
	// the cleartext password.
	//
	// The encoding, encryption, decryption, and decoding of a password requires the following
	// steps:
	//
	// *
	//
	// Encoding the cleartext password (section 2.2.5.18.1 ( 6613c3dc-744f-424c-b652-7f8804370c85
	// ) ).
	//
	// *
	//
	// Initializing *JOINPR_USER_PASSWORD* with the result of step 1 (section 2.2.5.18.2
	// ( fabd6340-5c6d-437d-b50a-0bc94340bcff ) ).
	//
	// *
	//
	// Initializing *JOINPR_ENCRYPTED_USER_PASSWORD.Buffer* with the encrypted result of
	// step 2, and subsequently decrypting *JOINPR_ENCRYPTED_USER_PASSWORD.Buffer* (section
	// 2.2.5.18.3 ( bead3d50-0440-448a-90e3-e478d74c7555 ) ).
	//
	// *
	//
	// Decoding the result of step 3, as a *JOINPR_USER_PASSWORD* structure, to recover
	// the cleartext password (section 2.2.5.18.4 ( b8d68e41-76a1-4895-97e5-b1f20a86fb04
	// ) ).
	Buffer []byte `idl:"name:Buffer" json:"buffer"`
}

EncryptedUserPassword structure represents JOINPR_ENCRYPTED_USER_PASSWORD RPC structure.

The JOINPR_ENCRYPTED_USER_PASSWORD structure is the container for a password during the encoding, encryption, decryption and decoding process.

func (*EncryptedUserPassword) MarshalNDR

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

func (*EncryptedUserPassword) UnmarshalNDR

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

type EnumerateComputerNamesRequest

type EnumerateComputerNamesRequest struct {
	// ServerName: A WKSSVC_IMPERSONATE_HANDLE structure (section 2.2.2.2) that specifies
	// the server. The client MUST map this structure to an RPC binding handle ([C706] sections
	// 4.3.5 and 5.1.5.2). The server MUST ignore this parameter.
	ServerName string `idl:"name:ServerName;string;pointer:unique" json:"server_name"`
	// NameType: The type of query issued. See NET_COMPUTER_NAME_TYPE (section 2.2.3.3).
	NameType NetComputerNameType `idl:"name:NameType" json:"name_type"`
}

EnumerateComputerNamesRequest structure represents the NetrEnumerateComputerNames operation request

func (*EnumerateComputerNamesRequest) MarshalNDR

func (*EnumerateComputerNamesRequest) UnmarshalNDR

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

type EnumerateComputerNamesResponse

type EnumerateComputerNamesResponse struct {
	// ComputerNames: A pointer to structure containing a list of computer name strings.
	// See NET_COMPUTER_NAME_ARRAY (section 2.2.5.21).
	ComputerNames *NetComputerNameArray `idl:"name:ComputerNames" json:"computer_names"`
	// Return: The NetrEnumerateComputerNames return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

EnumerateComputerNamesResponse structure represents the NetrEnumerateComputerNames operation response

func (*EnumerateComputerNamesResponse) MarshalNDR

func (*EnumerateComputerNamesResponse) UnmarshalNDR

type GetInfoRequest

type GetInfoRequest struct {
	// ServerName: A WKSSVC_IDENTIFY_HANDLE structure (section 2.2.2.1) that identifies
	// the server (2). The client MUST map this structure to an RPC binding handle ([C706]
	// sections 4.3.5 and 5.1.5.2). The server MUST ignore this parameter.
	ServerName string `idl:"name:ServerName;string;pointer:unique" json:"server_name"`
	// Level: The information level of the data. This parameter MUST be one of the following
	// values.
	//
	//	+------------+-----------------------------------------------------------------------+
	//	|            |                                                                       |
	//	|   VALUE    |                                MEANING                                |
	//	|            |                                                                       |
	//	+------------+-----------------------------------------------------------------------+
	//	+------------+-----------------------------------------------------------------------+
	//	| 0x00000064 | Details are returned in a WKSTA_INFO_100 structure (section 2.2.5.1). |
	//	+------------+-----------------------------------------------------------------------+
	//	| 0x00000065 | Details are returned in a WKSTA_INFO_101 structure (section 2.2.5.2). |
	//	+------------+-----------------------------------------------------------------------+
	//	| 0x00000066 | Details are returned in a WKSTA_INFO_102 structure (section 2.2.5.3). |
	//	+------------+-----------------------------------------------------------------------+
	//	| 0x000001F6 | Details are returned in a WKSTA_INFO_502 structure (section 2.2.5.4). |
	//	+------------+-----------------------------------------------------------------------+
	Level uint32 `idl:"name:Level" json:"level"`
}

GetInfoRequest structure represents the NetrWkstaGetInfo 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 {
	// WkstaInfo: A pointer to the buffer that receives the data. The format of this data
	// depends on the value of the level parameter.
	WorkstationInfo *WorkstationInfo `idl:"name:WkstaInfo;switch_is:Level" json:"workstation_info"`
	// Return: The NetrWkstaGetInfo return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

GetInfoResponse structure represents the NetrWkstaGetInfo 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 GetJoinInformationRequest

type GetJoinInformationRequest struct {
	// ServerName: A WKSSVC_IMPERSONATE_HANDLE structure (section 2.2.2.2) that specifies
	// the server (2). The client MUST map this structure to an RPC binding handle ([C706]
	// sections 4.3.5 and 5.1.5.2). The server MUST ignore this parameter.
	ServerName string `idl:"name:ServerName;string;pointer:unique" json:"server_name"`
	// NameBuffer: A pointer to the address of the buffer that receives the name of the
	// domain or workgroup to which the computer is joined, and that also specifies the
	// computer name as input. The server MUST ignore this parameter on input.
	NameBuffer string `idl:"name:NameBuffer;string" json:"name_buffer"`
}

GetJoinInformationRequest structure represents the NetrGetJoinInformation operation request

func (*GetJoinInformationRequest) MarshalNDR

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

func (*GetJoinInformationRequest) UnmarshalNDR

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

type GetJoinInformationResponse

type GetJoinInformationResponse struct {
	// NameBuffer: A pointer to the address of the buffer that receives the name of the
	// domain or workgroup to which the computer is joined, and that also specifies the
	// computer name as input. The server MUST ignore this parameter on input.
	NameBuffer string `idl:"name:NameBuffer;string" json:"name_buffer"`
	// BufferType: A pointer to a value from the NETSETUP_JOIN_STATUS enumeration (section
	// 2.2.3.1) that specifies the status of a workstation.
	BufferType NetsetupJoinStatus `idl:"name:BufferType" json:"buffer_type"`
	// Return: The NetrGetJoinInformation return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

GetJoinInformationResponse structure represents the NetrGetJoinInformation operation response

func (*GetJoinInformationResponse) MarshalNDR

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

func (*GetJoinInformationResponse) UnmarshalNDR

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

type GetJoinableOUs2Request

type GetJoinableOUs2Request struct {
	// ServerName: This parameter has no effect on message processing in any environment.
	// The client MUST set this parameter to a value that resolves to the IP protocol layer
	// destination address of the RPC packets it transmits ([MS-RPCE] section 2.1.1.2).
	// The server (2) MUST ignore this parameter.
	ServerName string `idl:"name:ServerName;string;pointer:unique" json:"server_name"`
	// DomainNameParam: A pointer to a string that specifies the root domain under which
	// the method searches for OUs. This parameter is also the domain of the account that
	// the AccountName parameter is in.
	DomainNameParam string `idl:"name:DomainNameParam;string" json:"domain_name_param"`
	// AccountName: A pointer to a string that specifies the account name to use when connecting
	// to a domain controller. This parameter is optional. If this parameter is NULL, the
	// caller's account name MUST be used.
	AccountName string `idl:"name:AccountName;string;pointer:unique" json:"account_name"`
	// Password: An optional pointer to a JOINPR_ENCRYPTED_USER_PASSWORD structure (section
	// 2.2.5.18) that specifies the encrypted password to use with the AccountName parameter.
	// If the AccountName parameter is NULL, the caller's security context MUST be used,
	// and this parameter MUST be ignored.
	Password *EncryptedUserPassword `idl:"name:Password;pointer:unique" json:"password"`
	// OUCount: A pointer to the count of OUs that the method returns. The server MUST ignore
	// this parameter on input.
	OUCount uint32 `idl:"name:OUCount" json:"ou_count"`
}

GetJoinableOUs2Request structure represents the NetrGetJoinableOUs2 operation request

func (*GetJoinableOUs2Request) MarshalNDR

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

func (*GetJoinableOUs2Request) UnmarshalNDR

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

type GetJoinableOUs2Response

type GetJoinableOUs2Response struct {
	// OUCount: A pointer to the count of OUs that the method returns. The server MUST ignore
	// this parameter on input.
	OUCount uint32 `idl:"name:OUCount" json:"ou_count"`
	// OUs: A pointer to a pointer of size OUCount to a block of strings that are the joinable
	// OUs that the method returns.
	OUs []string `idl:"name:OUs;size_is:(, OUCount);string" json:"ous"`
	// Return: The NetrGetJoinableOUs2 return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

GetJoinableOUs2Response structure represents the NetrGetJoinableOUs2 operation response

func (*GetJoinableOUs2Response) MarshalNDR

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

func (*GetJoinableOUs2Response) UnmarshalNDR

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

type JoinDomain2Request

type JoinDomain2Request struct {
	// ServerName: This parameter has no effect on message processing in any environment.
	// The client MUST set this parameter to a value that resolves to the IP protocol layer
	// destination address of the RPC packets it transmits ([MS-RPCE] section 2.1.1.2).
	// The server (2) MUST ignore this parameter.
	ServerName string `idl:"name:ServerName;string;pointer:unique" json:"server_name"`
	// DomainNameParam: A pointer to a string that specifies the domain name (2) or workgroup
	// name to join, and optionally the domain controller machine name within the domain.
	// This parameter MUST NOT be NULL.
	//
	// * NetBIOS name\NetBIOS name
	//
	// * NetBIOS name\Internet host name
	//
	// * FQDN (2)\NetBIOS name
	DomainNameParam string `idl:"name:DomainNameParam;string" json:"domain_name_param"`
	// MachineAccountOU: A pointer to a string that contains [RFC1777] the format name of
	// the organizational unit (OU) directory object under which the machine account directory
	// object is created. This parameter is optional. If specified, this string MUST contain
	// the full path; for example, OU=testOU,DC=domain,DC=Domain,DC=com.
	MachineAccountOU string `idl:"name:MachineAccountOU;string;pointer:unique" json:"machine_account_ou"`
	// AccountName: A pointer to a string that specifies an account name in the domain DomainNameParam
	// to use when connecting to a domain controller. This parameter is optional. If this
	// parameter is NULL, the caller's account name MUST be used. If this parameter is specified,
	// the format MUST be one of the following:
	//
	// * <NetBIOSDomainName>\<UserName>
	//
	// * <FullyQualifiedDNSDomainName>\<UserName>
	//
	// * <UserName>@<FullyQualifiedDNSDomainName>
	AccountName string `idl:"name:AccountName;string;pointer:unique" json:"account_name"`
	// Password: A pointer to a JOINPR_ENCRYPTED_USER_PASSWORD structure (section 2.2.5.18)
	// that specifies the encrypted password to use with the AccountName parameter. Sections
	// 3.2.4.13.1 and 3.2.4.13.3 specify the processing of this parameter.
	Password *EncryptedUserPassword `idl:"name:Password;pointer:unique" json:"password"`
	// Options: A 32-bit bitfield that specifies modifications to default server (2) behavior
	// in message processing.<58>
	//
	//	+-------------------------------------------+----------------------------------------------------------------------------------+
	//	|                                           |                                                                                  |
	//	|                VALUE/CODE                 |                                     MEANING                                      |
	//	|                                           |                                                                                  |
	//	+-------------------------------------------+----------------------------------------------------------------------------------+
	//	+-------------------------------------------+----------------------------------------------------------------------------------+
	//	| NETSETUP_JOIN_DOMAIN 0x00000001           | Joins the computer to a domain. The default action is to join the computer to a  |
	//	|                                           | workgroup.                                                                       |
	//	+-------------------------------------------+----------------------------------------------------------------------------------+
	//	| NETSETUP_ACCT_CREATE 0x00000002           | Creates the account on the domain. The name is the persisted abstract state      |
	//	|                                           | ComputerNameNetBIOS (section 3.2.1.5) unless this behavior is altered by another |
	//	|                                           | option such as NETSETUP_JOIN_WITH_NEW_NAME.                                      |
	//	+-------------------------------------------+----------------------------------------------------------------------------------+
	//	| NETSETUP_ACCT_DELETE 0x00000004           | Disables the old account when the join operation occurs on a computer that is    |
	//	|                                           | already joined to a domain. Important  This flag is neither supported nor tested |
	//	|                                           | for use with NetrJoinDomain2; therefore, its use is not specified in any message |
	//	|                                           | processing.                                                                      |
	//	+-------------------------------------------+----------------------------------------------------------------------------------+
	//	| NETSETUP_DOMAIN_JOIN_IF_JOINED 0x00000020 | Allows a join to a new domain even if the computer is already joined to a        |
	//	|                                           | domain.                                                                          |
	//	+-------------------------------------------+----------------------------------------------------------------------------------+
	//	| NETSETUP_JOIN_UNSECURE 0x00000040         | Performs an unsecured join. It MUST be used only in conjunction with the         |
	//	|                                           | NETSETUP_MACHINE_PWD_PASSED flag.                                                |
	//	+-------------------------------------------+----------------------------------------------------------------------------------+
	//	| NETSETUP_MACHINE_PWD_PASSED 0x00000080    | Indicates that the Password parameter SHOULD<59> specify the password for the    |
	//	|                                           | machine joining the domain. This flag is valid for unsecured joins, which are    |
	//	|                                           | indicated by setting the NETSETUP_JOIN_UNSECURE flag, or for read-only joins,    |
	//	|                                           | which are indicated by setting the NETSETUP_JOIN_READONLY flag. If this flag is  |
	//	|                                           | set, the value of Password determines the value stored for the computer password |
	//	|                                           | during the join process.                                                         |
	//	+-------------------------------------------+----------------------------------------------------------------------------------+
	//	| NETSETUP_DEFER_SPN_SET 0x00000100         | Indicates that the service principal name (SPN) and the DnsHostName properties   |
	//	|                                           | on the computer SHOULD NOT<60> be updated at this time, but instead SHOULD<61>   |
	//	|                                           | be updated during a subsequent call to NetrRenameMachineInDomain2 (section       |
	//	|                                           | 3.2.4.15).                                                                       |
	//	+-------------------------------------------+----------------------------------------------------------------------------------+
	//	| NETSETUP_JOIN_DC_ACCOUNT 0x00000200       | Indicates that the join SHOULD<62> be allowed if an existing account exists and  |
	//	|                                           | it is a domain controller account.<63>                                           |
	//	+-------------------------------------------+----------------------------------------------------------------------------------+
	//	| NETSETUP_JOIN_WITH_NEW_NAME 0x00000400    | Indicates that the join SHOULD<64>occur using the new computer name.             |
	//	+-------------------------------------------+----------------------------------------------------------------------------------+
	//	| NETSETUP_JOIN_READONLY 0x00000800         | Specifies that the join SHOULD<65> be performed in a read-only manner against an |
	//	|                                           | existing account object. This option is intended to enable the server to join a  |
	//	|                                           | domain using a read-only domain controller.                                      |
	//	+-------------------------------------------+----------------------------------------------------------------------------------+
	//	| NETSETUP_INSTALL_INVOCATION 0x00040000    | Indicates that the protocol method was invoked during installation.              |
	//	+-------------------------------------------+----------------------------------------------------------------------------------+
	Options uint32 `idl:"name:Options" json:"options"`
}

JoinDomain2Request structure represents the NetrJoinDomain2 operation request

func (*JoinDomain2Request) MarshalNDR

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

func (*JoinDomain2Request) UnmarshalNDR

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

type JoinDomain2Response

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

JoinDomain2Response structure represents the NetrJoinDomain2 operation response

func (*JoinDomain2Response) MarshalNDR

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

func (*JoinDomain2Response) UnmarshalNDR

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

type NetComputerNameArray

type NetComputerNameArray struct {
	// EntryCount: The number of entries that the method call returns.
	EntryCount uint32 `idl:"name:EntryCount" json:"entry_count"`
	// ComputerNames: The names as an array of UNICODE_STRING structures (section 2.2.5.20)
	// that are associated with a machine.
	ComputerNames []*UnicodeString `idl:"name:ComputerNames;size_is:(EntryCount)" json:"computer_names"`
}

NetComputerNameArray structure represents NET_COMPUTER_NAME_ARRAY RPC structure.

The NET_COMPUTER_NAME_ARRAY structure specifies the number of names associated with a computer and a buffer containing the names.

func (*NetComputerNameArray) MarshalNDR

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

func (*NetComputerNameArray) UnmarshalNDR

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

type NetComputerNameType

type NetComputerNameType uint16

NetComputerNameType type represents NET_COMPUTER_NAME_TYPE RPC enumeration.

The NET_COMPUTER_NAME_TYPE enumeration specifies the types of names that can be enumerated for a computer using the NetrEnumerateComputerNames method (section 3.2.4.21).

var (
	// NetPrimaryComputerName: Query the primary name of a computer.
	NetComputerNameTypePrimaryComputerName NetComputerNameType = 0
	// NetAlternateComputerNames: Query the alternate names of a computer.
	NetComputerNameTypeAlternateComputerNames NetComputerNameType = 1
	// NetAllComputerNames: Query all names of a computer.
	NetComputerNameTypeAllComputerNames NetComputerNameType = 2
	// NetComputerNameTypeMax: Maximum number of name types.
	NetComputerNameTypeMax NetComputerNameType = 3
)

func (NetComputerNameType) String

func (o NetComputerNameType) String() string

type NetsetupJoinStatus

type NetsetupJoinStatus uint16

NetsetupJoinStatus type represents NETSETUP_JOIN_STATUS RPC enumeration.

The NETSETUP_JOIN_STATUS enumeration specifies details about the domain join status of a machine.

var (
	// NetSetupUnknownStatus: Domain join status of the machine is unknown.
	NetsetupJoinStatusSetupUnknownStatus NetsetupJoinStatus = 0
	// NetSetupUnjoined: Machine is not joined to a domain or to a workgroup.
	NetsetupJoinStatusSetupUnjoined NetsetupJoinStatus = 1
	// NetSetupWorkgroupName: Machine is joined to a workgroup.
	NetsetupJoinStatusSetupWorkgroupName NetsetupJoinStatus = 2
	// NetSetupDomainName: Machine is joined to a domain.
	NetsetupJoinStatusSetupDomainName NetsetupJoinStatus = 3
)

func (NetsetupJoinStatus) String

func (o NetsetupJoinStatus) String() string

type NetsetupNameType

type NetsetupNameType uint16

NetsetupNameType type represents NETSETUP_NAME_TYPE RPC enumeration.

The NETSETUP_NAME_TYPE enumeration specifies the types of validation that can be performed for a computer name, workgroup name, or domain name (2).

var (
	// NetSetupUnknown: Reserved.
	NetsetupNameTypeSetupUnknown NetsetupNameType = 0
	// NetSetupMachine: Verify that the name is valid as a NetBIOS computer name and that
	// it is not in use.
	NetsetupNameTypeSetupMachine NetsetupNameType = 1
	// NetSetupWorkgroup: Verify that the name is valid as a workgroup name.
	NetsetupNameTypeSetupWorkgroup NetsetupNameType = 2
	// NetSetupDomain: Verify that the name is valid as a NetBIOS domain name and that a
	// domain with that name exists.
	NetsetupNameTypeSetupDomain NetsetupNameType = 3
	// NetSetupNonExistentDomain:  Verify that the name is valid as a NetBIOS domain name
	// and that a domain with that name does not exist.
	NetsetupNameTypeSetupNonExistentDomain NetsetupNameType = 4
	// NetSetupDnsMachine:  Verify that the name is valid as a DNS computer name.
	NetsetupNameTypeSetupDNSMachine NetsetupNameType = 5
)

func (NetsetupNameType) String

func (o NetsetupNameType) String() string

type RemoveAlternateComputerNameRequest

type RemoveAlternateComputerNameRequest struct {
	// ServerName: This parameter has no effect on message processing in any environment.
	// The client MUST set this parameter to a value that resolves to the IP protocol layer
	// destination address of the RPC packets it transmits ([MS-RPCE] section 2.1.1.2).
	// The server MUST ignore this parameter.
	ServerName string `idl:"name:ServerName;string;pointer:unique" json:"server_name"`
	// AlternateName: A pointer to a string that specifies the alternate name to remove.
	// The name MUST be a valid DNS host name [RFC1035].
	AlternateName string `idl:"name:AlternateName;string;pointer:unique" json:"alternate_name"`
	// DomainAccount: A pointer to a string that specifies the account name in the domain
	// to use when connecting to a domain controller. This parameter is optional. If this
	// parameter is NULL, the caller's account name MUST be used. If this parameter is specified,
	// the format MUST be one of the following:
	//
	// * <NetBIOSDomainName>\<UserName>
	//
	// * <FullyQualifiedDNSDomainName>\<UserName>
	//
	// * <UserName>@<FullyQualifiedDNSDomainName>
	DomainAccount string `idl:"name:DomainAccount;string;pointer:unique" json:"domain_account"`
	// EncryptedPassword: An optional pointer to a JOINPR_ENCRYPTED_USER_PASSWORD structure
	// (section 2.2.5.18) that specifies the encrypted password to use with the DomainAccount
	// parameter. If the DomainAccount parameter is NULL, the caller's security context
	// MUST be used, and this parameter MUST be ignored.
	EncryptedPassword *EncryptedUserPassword `idl:"name:EncryptedPassword;pointer:unique" json:"encrypted_password"`
}

RemoveAlternateComputerNameRequest structure represents the NetrRemoveAlternateComputerName operation request

func (*RemoveAlternateComputerNameRequest) MarshalNDR

func (*RemoveAlternateComputerNameRequest) UnmarshalNDR

type RemoveAlternateComputerNameResponse

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

RemoveAlternateComputerNameResponse structure represents the NetrRemoveAlternateComputerName operation response

func (*RemoveAlternateComputerNameResponse) MarshalNDR

func (*RemoveAlternateComputerNameResponse) UnmarshalNDR

type RenameMachineInDomain2Request

type RenameMachineInDomain2Request struct {
	// ServerName: This parameter has no effect on message processing in any environment.
	// The client MUST set this parameter to a value that resolves to the IP protocol layer
	// destination address of the RPC packets it transmits ([MS-RPCE] section 2.1.1.2).
	// The server (2) MUST ignore this parameter.
	ServerName string `idl:"name:ServerName;string;pointer:unique" json:"server_name"`
	// MachineName: A pointer to a string that specifies the new computer name. This parameter
	// is optional. If this parameter is NULL, the current machine name is used.
	MachineName string `idl:"name:MachineName;string;pointer:unique" json:"machine_name"`
	// AccountName: A pointer to a string that specifies an account name in the joined domain
	// to use when connecting to a domain controller. This parameter is optional. If this
	// parameter is NULL, the caller's account name is used.
	AccountName string `idl:"name:AccountName;string;pointer:unique" json:"account_name"`
	// Password: An optional pointer to a JOINPR_ENCRYPTED_USER_PASSWORD structure (section
	// 2.2.5.18) that specifies the encrypted password to use with the AccountName parameter.
	// If this parameter is NULL, the caller's security context MUST be used.
	Password *EncryptedUserPassword `idl:"name:Password;pointer:unique" json:"password"`
	// Options: A 32-bit bitfield that specifies modifications to default server behavior
	// in message processing.
	//
	//	+-------------------------------------------+----------------------------------------------------------------------------------+
	//	|                                           |                                                                                  |
	//	|                VALUE/CODE                 |                                     MEANING                                      |
	//	|                                           |                                                                                  |
	//	+-------------------------------------------+----------------------------------------------------------------------------------+
	//	+-------------------------------------------+----------------------------------------------------------------------------------+
	//	| NETSETUP_ACCT_CREATE 0x00000002           | Renames the computer account in the domain. If this flag is not set, the         |
	//	|                                           | computer name is changed locally but no changes are made to the computer account |
	//	|                                           | in the domain.                                                                   |
	//	+-------------------------------------------+----------------------------------------------------------------------------------+
	//	| NETSETUP_DNS_NAME_CHANGES_ONLY 0x00001000 | Limits any updates to DNS-based names only.                                      |
	//	+-------------------------------------------+----------------------------------------------------------------------------------+
	Options uint32 `idl:"name:Options" json:"options"`
}

RenameMachineInDomain2Request structure represents the NetrRenameMachineInDomain2 operation request

func (*RenameMachineInDomain2Request) MarshalNDR

func (*RenameMachineInDomain2Request) UnmarshalNDR

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

type RenameMachineInDomain2Response

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

RenameMachineInDomain2Response structure represents the NetrRenameMachineInDomain2 operation response

func (*RenameMachineInDomain2Response) MarshalNDR

func (*RenameMachineInDomain2Response) UnmarshalNDR

type SetInfoRequest

type SetInfoRequest struct {
	// ServerName: A WKSSVC_IDENTIFY_HANDLE structure (section 2.2.2.1) that identifies
	// the server (2). The client MUST map this structure to an RPC binding handle ([C706]
	// sections 4.3.5 and 5.1.5.2). The server MUST ignore this parameter.
	ServerName string `idl:"name:ServerName;string;pointer:unique" json:"server_name"`
	// Level: The information level of the data. This parameter SHOULD be one of the following
	// values.
	//
	//	+------------+----------------------------------------------------------------------------------+
	//	|            |                                                                                  |
	//	|   VALUE    |                                     MEANING                                      |
	//	|            |                                                                                  |
	//	+------------+----------------------------------------------------------------------------------+
	//	+------------+----------------------------------------------------------------------------------+
	//	| 0x000001F6 | The WkstaInfo parameter points to a WKSTA_INFO_502 structure (section 2.2.5.4).  |
	//	+------------+----------------------------------------------------------------------------------+
	//	| 0x000003F5 | The WkstaInfo parameter points to a WKSTA_INFO_1013 structure (section 2.2.5.5). |
	//	+------------+----------------------------------------------------------------------------------+
	//	| 0x000003FA | The WkstaInfo parameter points to a WKSTA_INFO_1018 structure (section 2.2.5.6). |
	//	+------------+----------------------------------------------------------------------------------+
	//	| 0x00000416 | The WkstaInfo parameter points to a WKSTA_INFO_1046 structure (section 2.2.5.7). |
	//	+------------+----------------------------------------------------------------------------------+
	Level uint32 `idl:"name:Level" json:"level"`
	// WkstaInfo: A pointer to a buffer that specifies the data. The format of this data
	// depends on the value of the Level parameter.
	WorkstationInfo *WorkstationInfo `idl:"name:WkstaInfo;switch_is:Level" json:"workstation_info"`
	// ErrorParameter: A pointer to a value that receives an unsigned 32-bit integer. This
	// parameter is meaningful only if the method returns ERROR_INVALID_PARAMETER and Level
	// is equal to one of the values in the preceding table.
	ErrorParameter uint32 `idl:"name:ErrorParameter;pointer:unique" json:"error_parameter"`
}

SetInfoRequest structure represents the NetrWkstaSetInfo 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 {
	// ErrorParameter: A pointer to a value that receives an unsigned 32-bit integer. This
	// parameter is meaningful only if the method returns ERROR_INVALID_PARAMETER and Level
	// is equal to one of the values in the preceding table.
	ErrorParameter uint32 `idl:"name:ErrorParameter;pointer:unique" json:"error_parameter"`
	// Return: The NetrWkstaSetInfo return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

SetInfoResponse structure represents the NetrWkstaSetInfo 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 SetPrimaryComputerNameRequest

type SetPrimaryComputerNameRequest struct {
	// ServerName: This parameter has no effect on message processing in any environment.
	// The client MUST set this parameter to a value that resolves to the IP protocol layer
	// destination address of the RPC packets it transmits ([MS-RPCE] section 2.1.1.2).
	// The server MUST ignore this parameter.
	ServerName string `idl:"name:ServerName;string;pointer:unique" json:"server_name"`
	// PrimaryName: A pointer to a string that specifies the primary computer name to set.
	// The name MUST be a valid DNS host name [RFC1035].
	PrimaryName string `idl:"name:PrimaryName;string;pointer:unique" json:"primary_name"`
	// DomainAccount: A pointer to a string that specifies the account name in the joined
	// domain to use when connecting to a domain controller. This parameter is optional.
	// If this parameter is NULL, the caller's account name MUST be used. This parameter
	// is not used if the server is not joined to a domain.
	//
	// * <NetBIOSDomainName>\<UserName>
	//
	// * <FullyQualifiedDNSDomainName>\<UserName>
	//
	// * <UserName>@<FullyQualifiedDNSDomainName>
	DomainAccount string `idl:"name:DomainAccount;string;pointer:unique" json:"domain_account"`
	// EncryptedPassword: An optional pointer to a JOINPR_ENCRYPTED_USER_PASSWORD structure
	// (section 2.2.5.18) that specifies the encrypted password to use with the DomainAccount
	// parameter. If the DomainAccount parameter is NULL, the caller's security context
	// MUST be used, and this parameter MUST be ignored.
	EncryptedPassword *EncryptedUserPassword `idl:"name:EncryptedPassword;pointer:unique" json:"encrypted_password"`
}

SetPrimaryComputerNameRequest structure represents the NetrSetPrimaryComputerName operation request

func (*SetPrimaryComputerNameRequest) MarshalNDR

func (*SetPrimaryComputerNameRequest) UnmarshalNDR

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

type SetPrimaryComputerNameResponse

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

SetPrimaryComputerNameResponse structure represents the NetrSetPrimaryComputerName operation response

func (*SetPrimaryComputerNameResponse) MarshalNDR

func (*SetPrimaryComputerNameResponse) UnmarshalNDR

type StatWorkstation0

type StatWorkstation0 struct {
	// StatisticsStartTime: The time that statistics collection started. The value MUST
	// be stored as the number of seconds elapsed since 00:00:00, January 1, 1970 GMT.
	StatisticsStartTime *dtyp.LargeInteger `idl:"name:StatisticsStartTime" json:"statistics_start_time"`
	// BytesReceived: The total number of bytes the SMB network redirector has received.
	BytesReceived *dtyp.LargeInteger `idl:"name:BytesReceived" json:"bytes_received"`
	// SmbsReceived: The total number of SMB messages that the SMB network redirector has
	// received.
	SMBsReceived *dtyp.LargeInteger `idl:"name:SmbsReceived" json:"smbs_received"`
	// PagingReadBytesRequested: If applicable to the server (2), an implementation-specific
	// value; otherwise, it MUST be set to zero.
	PagingReadBytesRequested *dtyp.LargeInteger `idl:"name:PagingReadBytesRequested" json:"paging_read_bytes_requested"`
	// NonPagingReadBytesRequested: If applicable to the server, an implementation-specific
	// value; otherwise, it MUST be set to zero.
	NonPagingReadBytesRequested *dtyp.LargeInteger `idl:"name:NonPagingReadBytesRequested" json:"non_paging_read_bytes_requested"`
	// CacheReadBytesRequested: If applicable to the server, an implementation-specific
	// value; otherwise, it MUST be set to zero.
	CacheReadBytesRequested *dtyp.LargeInteger `idl:"name:CacheReadBytesRequested" json:"cache_read_bytes_requested"`
	// NetworkReadBytesRequested: If applicable to the server, an implementation-specific
	// value; otherwise, it MUST be set to zero.
	NetworkReadBytesRequested *dtyp.LargeInteger `idl:"name:NetworkReadBytesRequested" json:"network_read_bytes_requested"`
	// BytesTransmitted: The total number of bytes that the SMB network redirector has transmitted.
	BytesTransmitted *dtyp.LargeInteger `idl:"name:BytesTransmitted" json:"bytes_transmitted"`
	// SmbsTransmitted: The total number of SMB messages that the SMB network redirector
	// has transmitted.
	SMBsTransmitted *dtyp.LargeInteger `idl:"name:SmbsTransmitted" json:"smbs_transmitted"`
	// PagingWriteBytesRequested: If applicable to the server, an implementation-specific
	// value; otherwise, it MUST be set to zero.
	PagingWriteBytesRequested *dtyp.LargeInteger `idl:"name:PagingWriteBytesRequested" json:"paging_write_bytes_requested"`
	// NonPagingWriteBytesRequested: If applicable to the server, an implementation-specific
	// value; otherwise, it MUST be set to zero.
	NonPagingWriteBytesRequested *dtyp.LargeInteger `idl:"name:NonPagingWriteBytesRequested" json:"non_paging_write_bytes_requested"`
	// CacheWriteBytesRequested: If applicable to the server, an implementation-specific
	// value; otherwise, it MUST be set to zero.
	CacheWriteBytesRequested *dtyp.LargeInteger `idl:"name:CacheWriteBytesRequested" json:"cache_write_bytes_requested"`
	// NetworkWriteBytesRequested: If applicable to the server, an implementation-specific
	// value; otherwise, it MUST be set to zero.
	NetworkWriteBytesRequested *dtyp.LargeInteger `idl:"name:NetworkWriteBytesRequested" json:"network_write_bytes_requested"`
	// InitiallyFailedOperations: The total number of network operations that have failed
	// to start.
	InitiallyFailedOperations uint32 `idl:"name:InitiallyFailedOperations" json:"initially_failed_operations"`
	// FailedCompletionOperations: The total number of network operations that have failed
	// to complete.
	FailedCompletionOperations uint32 `idl:"name:FailedCompletionOperations" json:"failed_completion_operations"`
	// ReadOperations: The total number of read operations that the SMB network redirector
	// has initiated.
	ReadOperations uint32 `idl:"name:ReadOperations" json:"read_operations"`
	// RandomReadOperations: If applicable to the server, an implementation-specific value;
	// otherwise, it MUST be set to zero.
	RandomReadOperations uint32 `idl:"name:RandomReadOperations" json:"random_read_operations"`
	// ReadSmbs: The total number of read requests that the SMB network redirector has sent
	// to remote computers.
	ReadSMBs uint32 `idl:"name:ReadSmbs" json:"read_smbs"`
	// LargeReadSmbs: The total number of read requests greater than twice the size of the
	// remote computer’s negotiated buffer size that the SMB network redirector has sent
	// to remote computers.
	LargeReadSMBs uint32 `idl:"name:LargeReadSmbs" json:"large_read_smbs"`
	// SmallReadSmbs: The total number of read requests that are less than one-quarter the
	// size of the remote computer’s negotiated buffer size that the SMB network redirector
	// has sent to remote computers.
	SmallReadSMBs uint32 `idl:"name:SmallReadSmbs" json:"small_read_smbs"`
	// WriteOperations: The total number of write operations that the SMB network redirector
	// has initiated.
	WriteOperations uint32 `idl:"name:WriteOperations" json:"write_operations"`
	// RandomWriteOperations: If applicable to the server, an implementation-specific value;
	// otherwise, it MUST be set to zero.
	RandomWriteOperations uint32 `idl:"name:RandomWriteOperations" json:"random_write_operations"`
	// WriteSmbs: The total number of write requests that the SMB network redirector has
	// sent to remote computers.
	WriteSMBs uint32 `idl:"name:WriteSmbs" json:"write_smbs"`
	// LargeWriteSmbs: The total number of write requests that are greater than twice the
	// size of the remote computer’s negotiated buffer size and that the SMB network redirector
	// has sent to remote computers.
	LargeWriteSMBs uint32 `idl:"name:LargeWriteSmbs" json:"large_write_smbs"`
	// SmallWriteSmbs: The total number of write requests that are less than one-quarter
	// the size of the remote computer’s negotiated buffer size and that the SMB network
	// redirector has sent to remote computers ([MS-CIFS] section 3.2.4.15).
	SmallWriteSMBs uint32 `idl:"name:SmallWriteSmbs" json:"small_write_smbs"`
	// RawReadsDenied: The total number of raw read requests made by the SMB network redirector
	// that have been denied by the remote computer. This field MAY<8> be ignored.
	RawReadsDenied uint32 `idl:"name:RawReadsDenied" json:"raw_reads_denied"`
	// RawWritesDenied: The total number of raw write requests made by the SMB network redirector
	// that have been denied by the remote computer. This field MAY<9> be ignored.
	RawWritesDenied uint32 `idl:"name:RawWritesDenied" json:"raw_writes_denied"`
	// NetworkErrors: The total number of network errors that the SMB network redirector
	// has received.
	NetworkErrors uint32 `idl:"name:NetworkErrors" json:"network_errors"`
	// Sessions: The total number of remote SMB sessions that the SMB network redirector
	// has established.
	Sessions uint32 `idl:"name:Sessions" json:"sessions"`
	// FailedSessions: The number of times that the SMB network redirector has attempted
	// to create an SMB session but failed.
	FailedSessions uint32 `idl:"name:FailedSessions" json:"failed_sessions"`
	// Reconnects: The total number of SMB connections that have failed.
	Reconnects uint32 `idl:"name:Reconnects" json:"reconnects"`
	// CoreConnects: The total number of SMB connections to remote computers supporting
	// the PCNET1 dialect that have succeeded ([MS-CIFS] section 3.2.4.2.2).
	CoreConnects uint32 `idl:"name:CoreConnects" json:"core_connects"`
	// Lanman20Connects: The total number of SMB connections that have succeeded to remote
	// computers supporting the LM1.2X002 dialect.
	LANMAN20Connects uint32 `idl:"name:Lanman20Connects" json:"lanman20_connects"`
	// Lanman21Connects: The total number of SMB connections that have succeeded to remote
	// computers supporting the LANMAN2.1 dialect.
	LANMAN21Connects uint32 `idl:"name:Lanman21Connects" json:"lanman21_connects"`
	// LanmanNtConnects: The total number of SMB connections that have succeeded to remote
	// computers supporting the NTLANMAN dialect.
	LANMANNTConnects uint32 `idl:"name:LanmanNtConnects" json:"lanman_nt_connects"`
	// ServerDisconnects: The number of times that a remote computer has disconnected the
	// SMB network redirector.
	ServerDisconnects uint32 `idl:"name:ServerDisconnects" json:"server_disconnects"`
	// HungSessions: The total number of SMB sessions that have timed out due to lack of
	// response from the remote computer.
	HungSessions uint32 `idl:"name:HungSessions" json:"hung_sessions"`
	// UseCount: The total number of SMB connections that the SMB network redirector has
	// established.
	UseCount uint32 `idl:"name:UseCount" json:"use_count"`
	// FailedUseCount: The total number of failed SMB connections for the SMB network redirector.
	FailedUseCount uint32 `idl:"name:FailedUseCount" json:"failed_use_count"`
	// CurrentCommands: The number of current requests that the SMB network redirector has
	// completed.
	CurrentCommands uint32 `idl:"name:CurrentCommands" json:"current_commands"`
}

StatWorkstation0 structure represents STAT_WORKSTATION_0 RPC structure.

The STAT_WORKSTATION_0 structure contains statistical details about the SMB network redirector.

func (*StatWorkstation0) MarshalNDR

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

func (*StatWorkstation0) UnmarshalNDR

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

type TransportAddRequest

type TransportAddRequest struct {
	// ServerName: A WKSSVC_IDENTIFY_HANDLE structure (section 2.2.2.1) that identifies
	// the server (2). The client MUST map this structure to an RPC binding handle ([C706]
	// sections 4.3.5 and 5.1.5.2). The server MUST ignore this parameter.
	ServerName string `idl:"name:ServerName;string;pointer:unique" json:"server_name"`
	// Level: The information level of the data. Level is set to zero, meaning the TransportInfo
	// parameter points to a WKSTA_TRANSPORT_INFO_0 structure (section 2.2.5.8).
	Level uint32 `idl:"name:Level" json:"level"`
	// TransportInfo: A pointer to a WKSTA_TRANSPORT_INFO_0 structure.
	TransportInfo *WorkstationTransportInfo0 `idl:"name:TransportInfo" json:"transport_info"`
	// ErrorParameter: A pointer to a value that receives the index, starting at 0, of the
	// first member of the WKSTA_TRANSPORT_INFO_0 structure that causes the function to
	// return ERROR_INVALID_PARAMETER. If this parameter is NULL, the index is not returned
	// on error.
	ErrorParameter uint32 `idl:"name:ErrorParameter;pointer:unique" json:"error_parameter"`
}

TransportAddRequest structure represents the NetrWkstaTransportAdd operation request

func (*TransportAddRequest) MarshalNDR

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

func (*TransportAddRequest) UnmarshalNDR

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

type TransportAddResponse

type TransportAddResponse struct {
	// ErrorParameter: A pointer to a value that receives the index, starting at 0, of the
	// first member of the WKSTA_TRANSPORT_INFO_0 structure that causes the function to
	// return ERROR_INVALID_PARAMETER. If this parameter is NULL, the index is not returned
	// on error.
	ErrorParameter uint32 `idl:"name:ErrorParameter;pointer:unique" json:"error_parameter"`
	// Return: The NetrWkstaTransportAdd return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

TransportAddResponse structure represents the NetrWkstaTransportAdd operation response

func (*TransportAddResponse) MarshalNDR

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

func (*TransportAddResponse) UnmarshalNDR

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

type TransportDeleteRequest

type TransportDeleteRequest struct {
	// ServerName: A WKSSVC_IDENTIFY_HANDLE structure (section 2.2.2.1) that identifies
	// the server. The client MUST map this structure to an RPC binding handle ([C706] sections
	// 4.3.5 and 5.1.5.2). The server MUST ignore this parameter.
	ServerName string `idl:"name:ServerName;string;pointer:unique" json:"server_name"`
	// TransportName: A pointer to a string that specifies the name of the transport protocol
	// to disconnect from the SMB network redirector.
	TransportName string `idl:"name:TransportName;string;pointer:unique" json:"transport_name"`
	// ForceLevel: The action to take if there are handles open to files or printers using
	// the transport protocol. This parameter MUST be one of the following values:
	//
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	|                              |                                                                                  |
	//	|          VALUE/CODE          |                                     MEANING                                      |
	//	|                              |                                                                                  |
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	| USE_NOFORCE 0x00000000       | Do not disconnect or close the open handles if open handles are using the        |
	//	|                              | transport protocol.                                                              |
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	| USE_FORCE 0x00000001         | Same as 0x00000000 (USE_NOFORCE); do not disconnect or close the open handles if |
	//	|                              | open handles are using the transport protocol.                                   |
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	| USE_LOTS_OF_FORCE 0x00000002 | Forcefully close any open handles and disable the specified transport protocol   |
	//	|                              | from the SMB network redirector.                                                 |
	//	+------------------------------+----------------------------------------------------------------------------------+
	ForceLevel uint32 `idl:"name:ForceLevel" json:"force_level"`
}

TransportDeleteRequest structure represents the NetrWkstaTransportDel operation request

func (*TransportDeleteRequest) MarshalNDR

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

func (*TransportDeleteRequest) UnmarshalNDR

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

type TransportDeleteResponse

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

TransportDeleteResponse structure represents the NetrWkstaTransportDel operation response

func (*TransportDeleteResponse) MarshalNDR

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

func (*TransportDeleteResponse) UnmarshalNDR

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

type TransportEnumRequest

type TransportEnumRequest struct {
	// ServerName: A WKSSVC_IDENTIFY_HANDLE structure (section 2.2.2.1) that identifies
	// the server (2). The client MUST map this structure to an RPC binding handle ([C706]
	// sections 4.3.5 and 5.1.5.2). The server MUST ignore this parameter.
	ServerName string `idl:"name:ServerName;string;pointer:unique" json:"server_name"`
	// TransportInfo: A pointer to a buffer that receives a WKSTA_TRANSPORT_ENUM_STRUCT
	// structure (section 2.2.5.16), which contains a Level member that MUST be set to zero.
	TransportInfo *WorkstationTransportEnum `idl:"name:TransportInfo" json:"transport_info"`
	// PreferredMaximumLength: The number of bytes to allocate for the return data.
	PreferredMaximumLength uint32 `idl:"name:PreferredMaximumLength" json:"preferred_maximum_length"`
	// ResumeHandle: A pointer that, if specified, and if this method returns NERR_BufTooSmall,
	// MUST receive an implementation-specific value<37> that can be passed in subsequent
	// calls to this method, to continue with the enumeration of currently enabled transport
	// protocols.
	Resume uint32 `idl:"name:ResumeHandle;pointer:unique" json:"resume"`
}

TransportEnumRequest structure represents the NetrWkstaTransportEnum operation request

func (*TransportEnumRequest) MarshalNDR

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

func (*TransportEnumRequest) UnmarshalNDR

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

type TransportEnumResponse

type TransportEnumResponse struct {
	// TransportInfo: A pointer to a buffer that receives a WKSTA_TRANSPORT_ENUM_STRUCT
	// structure (section 2.2.5.16), which contains a Level member that MUST be set to zero.
	TransportInfo *WorkstationTransportEnum `idl:"name:TransportInfo" json:"transport_info"`
	// TotalEntries: The total number of entries that could have been enumerated from the
	// current resume position. This field can be set to any value when sent and MUST be
	// ignored on receipt.
	TotalEntries uint32 `idl:"name:TotalEntries" json:"total_entries"`
	// ResumeHandle: A pointer that, if specified, and if this method returns NERR_BufTooSmall,
	// MUST receive an implementation-specific value<37> that can be passed in subsequent
	// calls to this method, to continue with the enumeration of currently enabled transport
	// protocols.
	Resume uint32 `idl:"name:ResumeHandle;pointer:unique" json:"resume"`
	// Return: The NetrWkstaTransportEnum return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

TransportEnumResponse structure represents the NetrWkstaTransportEnum operation response

func (*TransportEnumResponse) MarshalNDR

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

func (*TransportEnumResponse) UnmarshalNDR

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

type UnicodeString

type UnicodeString struct {
	// Length: The length, in bytes, of the string pointed to by the Buffer member, not
	// including the terminating null character, if any. This value MUST be a multiple of
	// 2.
	Length uint16 `idl:"name:Length" json:"length"`
	// MaximumLength: The total size, in bytes, of the Buffer. If this value is not a multiple
	// of 2, the server (2) MUST decrement this value by 1. This value MUST NOT be less
	// than Length.
	MaximumLength uint16 `idl:"name:MaximumLength" json:"maximum_length"`
	// Buffer: The Unicode UTF-8 string. If the MaximumLength value is greater than zero,
	// this field MUST contain a non-null character. Buffer can contain a terminating null
	// character.
	Buffer []uint16 `idl:"name:Buffer;size_is:((MaximumLength/2));length_is:((Length/2))" json:"buffer"`
}

UnicodeString structure represents UNICODE_STRING RPC structure.

The UNICODE_STRING structure specifies a Unicode string.

func (*UnicodeString) MarshalNDR

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

func (*UnicodeString) UnmarshalNDR

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

type UnjoinDomain2Request

type UnjoinDomain2Request struct {
	// ServerName: This parameter has no effect on message processing in any environment.
	// The client MUST set this parameter to a value that resolves to the IP destination
	// address of the RPC packets it transmits ([MS-RPCE] section 2.1.1.2). The server (2)
	// MUST ignore this parameter.
	ServerName string `idl:"name:ServerName;string;pointer:unique" json:"server_name"`
	// AccountName: A pointer to a string that specifies the account name in the joined
	// domain to use when connecting to a domain controller. This parameter is optional.
	// If this parameter is NULL, the caller's account name MUST be used.
	AccountName string `idl:"name:AccountName;string;pointer:unique" json:"account_name"`
	// Password: An optional pointer to a JOINPR_ENCRYPTED_USER_PASSWORD structure (section
	// 2.2.5.18) that specifies the encrypted password to use with the AccountName parameter.
	// If this parameter is NULL, the caller's security context MUST be used.
	Password *EncryptedUserPassword `idl:"name:Password;pointer:unique" json:"password"`
	// Options: A 32-bit bitfield specifying modifications to default message processing
	// behavior.
	//
	//	+----------------------------------------------+----------------------------------------------------------------------------------+
	//	|                                              |                                                                                  |
	//	|                  VALUE/CODE                  |                                     MEANING                                      |
	//	|                                              |                                                                                  |
	//	+----------------------------------------------+----------------------------------------------------------------------------------+
	//	+----------------------------------------------+----------------------------------------------------------------------------------+
	//	| NETSETUP_ACCT_DELETE 0x00000004              | Disables the account when the unjoin operation occurs.                           |
	//	+----------------------------------------------+----------------------------------------------------------------------------------+
	//	| NETSETUP_IGNORE_UNSUPPORTED_FLAGS 0x10000000 | The server ignores undefined flags when this bit is set.<77> This option is      |
	//	|                                              | present to allow for the addition of new optional values in the future.          |
	//	+----------------------------------------------+----------------------------------------------------------------------------------+
	Options uint32 `idl:"name:Options" json:"options"`
}

UnjoinDomain2Request structure represents the NetrUnjoinDomain2 operation request

func (*UnjoinDomain2Request) MarshalNDR

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

func (*UnjoinDomain2Request) UnmarshalNDR

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

type UnjoinDomain2Response

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

UnjoinDomain2Response structure represents the NetrUnjoinDomain2 operation response

func (*UnjoinDomain2Response) MarshalNDR

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

func (*UnjoinDomain2Response) UnmarshalNDR

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

type UseAddRequest

type UseAddRequest struct {
	// ServerName: A WKSSVC_IMPERSONATE_HANDLE structure (section 2.2.2.2) that identifies
	// the server (2). The client MUST map this structure to an RPC binding handle ([C706]
	// sections 4.3.5 and 5.1.5.2). The server MUST ignore this parameter.
	ServerName string `idl:"name:ServerName;string;pointer:unique" json:"server_name"`
	// Level: A value that specifies the information level of the data. This parameter MUST
	// be one of the following values; otherwise, the server MUST fail the call with an
	// ERROR_INVALID_LEVEL code.
	//
	//	+------------+----------------------------------------------------------+
	//	|            |                                                          |
	//	|   VALUE    |                         MEANING                          |
	//	|            |                                                          |
	//	+------------+----------------------------------------------------------+
	//	+------------+----------------------------------------------------------+
	//	| 0x00000000 | The buffer is a USE_INFO_0 structure (section 2.2.5.22). |
	//	+------------+----------------------------------------------------------+
	//	| 0x00000001 | The buffer is a USE_INFO_1 structure (section 2.2.5.23). |
	//	+------------+----------------------------------------------------------+
	//	| 0x00000002 | The buffer is a USE_INFO_2 structure (section 2.2.5.24). |
	//	+------------+----------------------------------------------------------+
	//	| 0x00000003 | The buffer is a USE_INFO_3 structure (section 2.2.5.25). |
	//	+------------+----------------------------------------------------------+
	Level uint32 `idl:"name:Level" json:"level"`
	// InfoStruct: A pointer to the buffer that specifies the data. The format of this data
	// depends on the value of the Level parameter.
	Info *UseInfo `idl:"name:InfoStruct;switch_is:Level" json:"info"`
	// ErrorParameter: A pointer to a value that receives an unsigned 32-bit integer. This
	// parameter is meaningful only if the method returns ERROR_INVALID_PARAMETER.
	ErrorParameter uint32 `idl:"name:ErrorParameter;pointer:unique" json:"error_parameter"`
}

UseAddRequest structure represents the NetrUseAdd operation request

func (*UseAddRequest) MarshalNDR

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

func (*UseAddRequest) UnmarshalNDR

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

type UseAddResponse

type UseAddResponse struct {
	// ErrorParameter: A pointer to a value that receives an unsigned 32-bit integer. This
	// parameter is meaningful only if the method returns ERROR_INVALID_PARAMETER.
	ErrorParameter uint32 `idl:"name:ErrorParameter;pointer:unique" json:"error_parameter"`
	// Return: The NetrUseAdd return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

UseAddResponse structure represents the NetrUseAdd operation response

func (*UseAddResponse) MarshalNDR

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

func (*UseAddResponse) UnmarshalNDR

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

type UseDeleteRequest

type UseDeleteRequest struct {
	// ServerName: A WKSSVC_IMPERSONATE_HANDLE structure (section 2.2.2.2) that identifies
	// the server (2). The client MUST map this structure to an RPC binding handle ([C706]
	// sections 4.3.5 and 5.1.5.2). The server MUST ignore this parameter.
	ServerName string `idl:"name:ServerName;string;pointer:unique" json:"server_name"`
	// UseName: A pointer to a string that specifies the local device name or shared resource
	// name for which to return information.
	UseName string `idl:"name:UseName;string" json:"use_name"`
	// ForceLevel: The level of force to use in deleting the connection. This parameter
	// MUST be one of the following values; otherwise, the server MUST fail the call with
	// an ERROR_INVALID_LEVEL error code.
	//
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	|                              |                                                                                  |
	//	|          VALUE/CODE          |                                     MEANING                                      |
	//	|                              |                                                                                  |
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	| USE_NOFORCE 0x00000000       | Do not disconnect the connection if open files exist on the connection.          |
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	| USE_FORCE 0x00000001         | Same as 0x00000000 (USE_NOFORCE); do not disconnect the connection if open files |
	//	|                              | exist on the connection.                                                         |
	//	+------------------------------+----------------------------------------------------------------------------------+
	//	| USE_LOTS_OF_FORCE 0x00000002 | Close any open files and disconnect the connection.                              |
	//	+------------------------------+----------------------------------------------------------------------------------+
	ForceLevel uint32 `idl:"name:ForceLevel" json:"force_level"`
}

UseDeleteRequest structure represents the NetrUseDel operation request

func (*UseDeleteRequest) MarshalNDR

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

func (*UseDeleteRequest) UnmarshalNDR

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

type UseDeleteResponse

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

UseDeleteResponse structure represents the NetrUseDel operation response

func (*UseDeleteResponse) MarshalNDR

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

func (*UseDeleteResponse) UnmarshalNDR

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

type UseEnum

type UseEnum struct {
	// Level: A value that specifies the information level of the data. This parameter MUST
	// be one of the following values.
	//
	//	+------------+------------------------------------------------------------------+
	//	|            |                                                                  |
	//	|   VALUE    |                             MEANING                              |
	//	|            |                                                                  |
	//	+------------+------------------------------------------------------------------+
	//	+------------+------------------------------------------------------------------+
	//	| 0x00000000 | The UseInfo buffer is a USE_INFO_0 structure (section 2.2.5.22). |
	//	+------------+------------------------------------------------------------------+
	//	| 0x00000001 | The UseInfo buffer is a USE_INFO_1 structure (section 2.2.5.23). |
	//	+------------+------------------------------------------------------------------+
	//	| 0x00000002 | The UseInfo buffer is a USE_INFO_2 structure (section 2.2.5.24). |
	//	+------------+------------------------------------------------------------------+
	Level uint32 `idl:"name:Level" json:"level"`
	// UseInfo: A buffer containing any one of the USE_INFO_0, USE_INFO_1, or USE_INFO_2
	// structures.
	UseInfo *UseEnum_UseInfo `idl:"name:UseInfo;switch_is:Level" json:"use_info"`
}

UseEnum structure represents USE_ENUM_STRUCT RPC structure.

The USE_ENUM_STRUCT structure is used by the NetrUseEnum method (section 3.2.4.10) to encapsulate the _USE_ENUM_UNION union.

func (*UseEnum) MarshalNDR

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

func (*UseEnum) UnmarshalNDR

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

type UseEnumRequest

type UseEnumRequest struct {
	// ServerName: A WKSSVC_IDENTIFY_HANDLE structure (section 2.2.2.1) that identifies
	// the server (2). The client MUST map this structure to an RPC binding handle ([C706]
	// sections 4.3.5 and 5.1.5.2). The server MUST ignore this parameter.
	ServerName string `idl:"name:ServerName;string;pointer:unique" json:"server_name"`
	// InfoStruct: The USE_ENUM_STRUCT structure (section 2.2.5.29) contains a Level parameter
	// that indicates the type of structure to return.
	//
	//	+------------+----------------------------------------------------------------------------------+
	//	|            |                                                                                  |
	//	|   VALUE    |                                     MEANING                                      |
	//	|            |                                                                                  |
	//	+------------+----------------------------------------------------------------------------------+
	//	+------------+----------------------------------------------------------------------------------+
	//	| 0x00000000 | Specifies a local device name and the share name of a remote resource.           |
	//	+------------+----------------------------------------------------------------------------------+
	//	| 0x00000001 | Specifies details about the connection between a local device and a shared       |
	//	|            | resource, including connection status and connection type.                       |
	//	+------------+----------------------------------------------------------------------------------+
	//	| 0x00000002 | Specifies details about the connection between a local device and a shared       |
	//	|            | resource, including connection status, connection type, user name, and domain    |
	//	|            | name.                                                                            |
	//	+------------+----------------------------------------------------------------------------------+
	Info *UseEnum `idl:"name:InfoStruct" json:"info"`
	// PreferredMaximumLength: The number of bytes to allocate for the return data.
	PreferredMaximumLength uint32 `idl:"name:PreferredMaximumLength" json:"preferred_maximum_length"`
	// ResumeHandle: A pointer that, if specified and if this method returns ERROR_MORE_DATA,
	// MUST receive an implementation-specific value that can be passed in subsequent calls
	// to this method in order to continue with the enumeration of currently logged-on users.
	Resume uint32 `idl:"name:ResumeHandle;pointer:unique" json:"resume"`
}

UseEnumRequest structure represents the NetrUseEnum operation request

func (*UseEnumRequest) MarshalNDR

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

func (*UseEnumRequest) UnmarshalNDR

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

type UseEnumResponse

type UseEnumResponse struct {
	// InfoStruct: The USE_ENUM_STRUCT structure (section 2.2.5.29) contains a Level parameter
	// that indicates the type of structure to return.
	//
	//	+------------+----------------------------------------------------------------------------------+
	//	|            |                                                                                  |
	//	|   VALUE    |                                     MEANING                                      |
	//	|            |                                                                                  |
	//	+------------+----------------------------------------------------------------------------------+
	//	+------------+----------------------------------------------------------------------------------+
	//	| 0x00000000 | Specifies a local device name and the share name of a remote resource.           |
	//	+------------+----------------------------------------------------------------------------------+
	//	| 0x00000001 | Specifies details about the connection between a local device and a shared       |
	//	|            | resource, including connection status and connection type.                       |
	//	+------------+----------------------------------------------------------------------------------+
	//	| 0x00000002 | Specifies details about the connection between a local device and a shared       |
	//	|            | resource, including connection status, connection type, user name, and domain    |
	//	|            | name.                                                                            |
	//	+------------+----------------------------------------------------------------------------------+
	Info *UseEnum `idl:"name:InfoStruct" json:"info"`
	// TotalEntries: The total number of entries that could have been enumerated if the
	// buffer were big enough to hold all the entries.
	TotalEntries uint32 `idl:"name:TotalEntries" json:"total_entries"`
	// ResumeHandle: A pointer that, if specified and if this method returns ERROR_MORE_DATA,
	// MUST receive an implementation-specific value that can be passed in subsequent calls
	// to this method in order to continue with the enumeration of currently logged-on users.
	Resume uint32 `idl:"name:ResumeHandle;pointer:unique" json:"resume"`
	// Return: The NetrUseEnum return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

UseEnumResponse structure represents the NetrUseEnum operation response

func (*UseEnumResponse) MarshalNDR

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

func (*UseEnumResponse) UnmarshalNDR

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

type UseEnum_UseInfo

type UseEnum_UseInfo struct {
	// Types that are assignable to Value
	//
	// *UseInfo_Level0
	// *UseInfo_Level1
	// *UseInfo_Level2
	// *UseInfo_DefaultUseEnum
	Value is_UseEnum_UseInfo `json:"value"`
}

UseEnum_UseInfo structure represents USE_ENUM_STRUCT union anonymous member.

The USE_ENUM_STRUCT structure is used by the NetrUseEnum method (section 3.2.4.10) to encapsulate the _USE_ENUM_UNION union.

func (*UseEnum_UseInfo) GetValue

func (o *UseEnum_UseInfo) GetValue() any

func (*UseEnum_UseInfo) MarshalUnionNDR

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

func (*UseEnum_UseInfo) NDRSwitchValue

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

func (*UseEnum_UseInfo) UnmarshalUnionNDR

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

type UseGetInfoRequest

type UseGetInfoRequest struct {
	// ServerName: A WKSSVC_IMPERSONATE_HANDLE structure (section 2.2.2.2) that identifies
	// the server (2). The client MUST map this structure to an RPC binding handle ([C706]
	// sections 4.3.5 and 5.1.5.2). The server MUST ignore this parameter.
	ServerName string `idl:"name:ServerName;string;pointer:unique" json:"server_name"`
	// UseName: A pointer to a string that specifies the local device name or shared resource
	// name for which to return information.
	UseName string `idl:"name:UseName;string" json:"use_name"`
	// Level: A value that specifies the information level of the data. This parameter MUST
	// be one of the following values; otherwise, the server MUST fail the call with an
	// ERROR_INVALID_LEVEL code.
	//
	//	+------------+----------------------------------------------------------+
	//	|            |                                                          |
	//	|   VALUE    |                         MEANING                          |
	//	|            |                                                          |
	//	+------------+----------------------------------------------------------+
	//	+------------+----------------------------------------------------------+
	//	| 0x00000000 | The buffer is a USE_INFO_0 structure (section 2.2.5.22). |
	//	+------------+----------------------------------------------------------+
	//	| 0x00000001 | The buffer is a USE_INFO_1 structure (section 2.2.5.23). |
	//	+------------+----------------------------------------------------------+
	//	| 0x00000002 | The buffer is a USE_INFO_2 structure (section 2.2.5.24). |
	//	+------------+----------------------------------------------------------+
	//	| 0x00000003 | The buffer is a USE_INFO_3 structure (section 2.2.5.25). |
	//	+------------+----------------------------------------------------------+
	Level uint32 `idl:"name:Level" json:"level"`
}

UseGetInfoRequest structure represents the NetrUseGetInfo operation request

func (*UseGetInfoRequest) MarshalNDR

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

func (*UseGetInfoRequest) UnmarshalNDR

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

type UseGetInfoResponse

type UseGetInfoResponse struct {
	// InfoStruct: A pointer to the buffer that specifies the data. The format of this data
	// depends on the value of the Level parameter.
	Info *UseInfo `idl:"name:InfoStruct;switch_is:Level" json:"info"`
	// Return: The NetrUseGetInfo return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

UseGetInfoResponse structure represents the NetrUseGetInfo operation response

func (*UseGetInfoResponse) MarshalNDR

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

func (*UseGetInfoResponse) UnmarshalNDR

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

type UseInfo

type UseInfo struct {
	// Types that are assignable to Value
	//
	// *UseInfo_0
	// *UseInfo_1
	// *UseInfo_2
	// *UseInfo_3
	// *UseInfo_DefaultUseInfo
	Value is_UseInfo `json:"value"`
}

UseInfo structure represents USE_INFO RPC union.

The USE_INFO union specifies details about the connection between a machine on which the workstation service is running and a shared resource. This union is used by the methods NetrUseAdd (section 3.2.4.7) and NetrUseGetInfo (section 3.2.4.8).

func (*UseInfo) GetValue

func (o *UseInfo) GetValue() any

func (*UseInfo) MarshalUnionNDR

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

func (*UseInfo) NDRSwitchValue

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

func (*UseInfo) UnmarshalUnionNDR

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

type UseInfo0

type UseInfo0 struct {
	// ui0_local: A pointer to a string that contains the device name (for example, drive
	// E or LPT1) being redirected to the shared resource.
	Local string `idl:"name:ui0_local;string" json:"local"`
	// ui0_remote: A pointer to a string that contains the share name of the remote resource
	// being accessed. The string MUST be in the following form: "\\servername\sharename".
	Remote string `idl:"name:ui0_remote;string" json:"remote"`
}

UseInfo0 structure represents USE_INFO_0 RPC structure.

The USE_INFO_0 structure specifies details about the connection between a machine on which the workstation service is running and a shared resource.

func (*UseInfo0) MarshalNDR

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

func (*UseInfo0) UnmarshalNDR

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

type UseInfo0Container

type UseInfo0Container struct {
	// EntriesRead: The number of entries that the method returns.
	EntriesRead uint32 `idl:"name:EntriesRead" json:"entries_read"`
	// Buffer: Details about the connection between a device and a shared resource.
	Buffer *UseInfo0 `idl:"name:Buffer" json:"buffer"`
}

UseInfo0Container structure represents USE_INFO_0_CONTAINER RPC structure.

The USE_INFO_0_CONTAINER structure contains a value that indicates the number of entries that the NetrUseEnum method (section 3.2.4.10) returns, as well as a pointer to the buffer.

func (*UseInfo0Container) MarshalNDR

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

func (*UseInfo0Container) UnmarshalNDR

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

type UseInfo1

type UseInfo1 struct {
	// ui1_local: A pointer to a string that contains the device name (for example, drive
	// E or LPT1) being redirected to the shared resource.
	Local string `idl:"name:ui1_local;string" json:"local"`
	// ui1_remote: A pointer to a string that contains the share name of the remote resource
	// being accessed. The string MUST be in the following form: "\\servername\sharename".
	Remote string `idl:"name:ui1_remote;string" json:"remote"`
	// ui1_password: A pointer to a string that contains the password needed to establish
	// a session between a machine on which the workstation service is running and a server.
	Password string `idl:"name:ui1_password;string" json:"password"`
	// ui1_status: The current status of the connection, which MUST contain one of the following
	// values:
	//
	//	+-------------------------+-------------------------------+
	//	|                         |                               |
	//	|       VALUE/CODE        |            MEANING            |
	//	|                         |                               |
	//	+-------------------------+-------------------------------+
	//	+-------------------------+-------------------------------+
	//	| USE_OK 0x00000000       | The connection is valid.      |
	//	+-------------------------+-------------------------------+
	//	| USE_PAUSED 0x00000001   | Paused by local workstation.  |
	//	+-------------------------+-------------------------------+
	//	| USE_SESSLOST 0x00000002 | Disconnected.                 |
	//	+-------------------------+-------------------------------+
	//	| USE_NETERR 0x00000003   | A network error occurred.     |
	//	+-------------------------+-------------------------------+
	//	| USE_CONN 0x00000004     | The connection is being made. |
	//	+-------------------------+-------------------------------+
	//	| USE_RECONN 0x00000005   | Reconnecting.                 |
	//	+-------------------------+-------------------------------+
	Status uint32 `idl:"name:ui1_status" json:"status"`
	// ui1_asg_type: The type of remote resource being accessed, which MUST contain one
	// of the following values:
	//
	//	+-------------------------+----------------------------------------------------------------------------------+
	//	|                         |                                                                                  |
	//	|       VALUE/CODE        |                                     MEANING                                      |
	//	|                         |                                                                                  |
	//	+-------------------------+----------------------------------------------------------------------------------+
	//	+-------------------------+----------------------------------------------------------------------------------+
	//	| USE_WILDCARD 0xFFFFFFFF | Matches the type of the server’s shared resources. Wildcards can be used only    |
	//	|                         | with the NetrUseAdd function (section 3.2.4.7), and only when the ui1_local      |
	//	|                         | member is NULL.                                                                  |
	//	+-------------------------+----------------------------------------------------------------------------------+
	//	| USE_DISKDEV 0x00000000  | Disk device.                                                                     |
	//	+-------------------------+----------------------------------------------------------------------------------+
	//	| USE_SPOOLDEV 0x00000001 | Spooled printer.                                                                 |
	//	+-------------------------+----------------------------------------------------------------------------------+
	//	| USE_CHARDEV 0x00000002  | Serial device.                                                                   |
	//	+-------------------------+----------------------------------------------------------------------------------+
	//	| USE_IPC 0x00000003      | Inter process communication (IPC).                                               |
	//	+-------------------------+----------------------------------------------------------------------------------+
	AsgType uint32 `idl:"name:ui1_asg_type" json:"asg_type"`
	// ui1_refcount: The number of files, directories, and other processes that can be opened
	// on the remote resource.
	ReferenceCount uint32 `idl:"name:ui1_refcount" json:"reference_count"`
	// ui1_usecount: The number of explicit connections (with a device name) or implicit
	// UNC connections (without the device name) that are established with the resource.
	UseCount uint32 `idl:"name:ui1_usecount" json:"use_count"`
}

UseInfo1 structure represents USE_INFO_1 RPC structure.

The USE_INFO_1 structure specifies details about the connection between a machine on which the workstation service is running and a shared resource, including connection status and connection type.

func (*UseInfo1) MarshalNDR

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

func (*UseInfo1) UnmarshalNDR

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

type UseInfo1Container

type UseInfo1Container struct {
	// EntriesRead: The number of entries that the method returns.
	EntriesRead uint32 `idl:"name:EntriesRead" json:"entries_read"`
	// Buffer: Details about the connection between a machine on which the workstation service
	// is running and a shared resource.
	Buffer *UseInfo1 `idl:"name:Buffer" json:"buffer"`
}

UseInfo1Container structure represents USE_INFO_1_CONTAINER RPC structure.

The USE_INFO_1_CONTAINER structure contains a value that indicates the number of entries that the NetrUseEnum method (section 3.2.4.10) returns, as well as a pointer to the buffer.

func (*UseInfo1Container) MarshalNDR

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

func (*UseInfo1Container) UnmarshalNDR

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

type UseInfo2

type UseInfo2 struct {
	// ui2_useinfo: A pointer to the USE_INFO_1 structure (section 2.2.5.23) that the method
	// returns.
	Useinfo *UseInfo1 `idl:"name:ui2_useinfo" json:"useinfo"`
	// ui2_username: A pointer to a string that contains the name of the user who initiated
	// the connection.
	UserName string `idl:"name:ui2_username;string" json:"user_name"`
	// ui2_domainname: A pointer to a string that contains the domain name of the remote
	// resource.
	DomainName string `idl:"name:ui2_domainname;string" json:"domain_name"`
}

UseInfo2 structure represents USE_INFO_2 RPC structure.

The USE_INFO_2 structure specifies details about the connection between a machine on which the workstation service is running and a shared resource, including user name and domain name.

func (*UseInfo2) MarshalNDR

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

func (*UseInfo2) UnmarshalNDR

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

type UseInfo2Container

type UseInfo2Container struct {
	// EntriesRead: The number of entries that the method returns.
	EntriesRead uint32 `idl:"name:EntriesRead" json:"entries_read"`
	// Buffer: Details about the connection between a machine on which the workstation service
	// is running and a shared resource.
	Buffer *UseInfo2 `idl:"name:Buffer" json:"buffer"`
}

UseInfo2Container structure represents USE_INFO_2_CONTAINER RPC structure.

The USE_INFO_2_CONTAINER structure contains a value that indicates the number of entries that the NetrUseEnum method (section 3.2.4.10) returns, as well as a pointer to the buffer.

func (*UseInfo2Container) MarshalNDR

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

func (*UseInfo2Container) UnmarshalNDR

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

type UseInfo3

type UseInfo3 struct {
	// ui3_ui2: A pointer to the USE_INFO_2 structure (section 2.2.5.24) that the method
	// returns.
	UI2 *UseInfo2 `idl:"name:ui3_ui2" json:"ui2"`
	// ui3_flags: A reserved field that the client MUST set to zero, and the server MUST
	// ignore on receipt.
	Flags uint32 `idl:"name:ui3_flags" json:"flags"`
}

UseInfo3 structure represents USE_INFO_3 RPC structure.

The USE_INFO_3 structure specifies details about the connection between a machine on which the workstation service is running and a shared resource, including user name and domain name.

func (*UseInfo3) MarshalNDR

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

func (*UseInfo3) UnmarshalNDR

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

type UseInfo_0

type UseInfo_0 struct {
	// UseInfo0: Details about a connection (section 2.2.5.22).
	UseInfo0 *UseInfo0 `idl:"name:UseInfo0" json:"use_info0"`
}

UseInfo_0 structure represents USE_INFO RPC union arm.

It has following labels: 0

func (*UseInfo_0) MarshalNDR

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

func (*UseInfo_0) UnmarshalNDR

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

type UseInfo_1

type UseInfo_1 struct {
	// UseInfo1: Details about a connection (section 2.2.5.23).
	UseInfo1 *UseInfo1 `idl:"name:UseInfo1" json:"use_info1"`
}

UseInfo_1 structure represents USE_INFO RPC union arm.

It has following labels: 1

func (*UseInfo_1) MarshalNDR

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

func (*UseInfo_1) UnmarshalNDR

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

type UseInfo_2

type UseInfo_2 struct {
	// UseInfo2: Details about a connection (section 2.2.5.24).
	UseInfo2 *UseInfo2 `idl:"name:UseInfo2" json:"use_info2"`
}

UseInfo_2 structure represents USE_INFO RPC union arm.

It has following labels: 2

func (*UseInfo_2) MarshalNDR

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

func (*UseInfo_2) UnmarshalNDR

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

type UseInfo_3

type UseInfo_3 struct {
	// UseInfo3: Details about a connection (section 2.2.5.25).
	UseInfo3 *UseInfo3 `idl:"name:UseInfo3" json:"use_info3"`
}

UseInfo_3 structure represents USE_INFO RPC union arm.

It has following labels: 3

func (*UseInfo_3) MarshalNDR

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

func (*UseInfo_3) UnmarshalNDR

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

type UseInfo_DefaultUseEnum

type UseInfo_DefaultUseEnum struct {
}

UseInfo_DefaultUseEnum structure represents UseEnum_UseInfo RPC default union arm.

func (*UseInfo_DefaultUseEnum) MarshalNDR

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

func (*UseInfo_DefaultUseEnum) UnmarshalNDR

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

type UseInfo_DefaultUseInfo

type UseInfo_DefaultUseInfo struct {
}

UseInfo_DefaultUseInfo structure represents USE_INFO RPC default union arm.

func (*UseInfo_DefaultUseInfo) MarshalNDR

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

func (*UseInfo_DefaultUseInfo) UnmarshalNDR

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

type UseInfo_Level0

type UseInfo_Level0 struct {
	Level0 *UseInfo0Container `idl:"name:Level0" json:"level0"`
}

UseInfo_Level0 structure represents UseEnum_UseInfo RPC union arm.

It has following labels: 0

func (*UseInfo_Level0) MarshalNDR

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

func (*UseInfo_Level0) UnmarshalNDR

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

type UseInfo_Level1

type UseInfo_Level1 struct {
	Level1 *UseInfo1Container `idl:"name:Level1" json:"level1"`
}

UseInfo_Level1 structure represents UseEnum_UseInfo RPC union arm.

It has following labels: 1

func (*UseInfo_Level1) MarshalNDR

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

func (*UseInfo_Level1) UnmarshalNDR

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

type UseInfo_Level2

type UseInfo_Level2 struct {
	Level2 *UseInfo2Container `idl:"name:Level2" json:"level2"`
}

UseInfo_Level2 structure represents UseEnum_UseInfo RPC union arm.

It has following labels: 2

func (*UseInfo_Level2) MarshalNDR

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

func (*UseInfo_Level2) UnmarshalNDR

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

type UserEnumRequest

type UserEnumRequest struct {
	// ServerName: A WKSSVC_IDENTIFY_HANDLE structure (section 2.2.2.1) that identifies
	// the server (2). The client MUST map this structure to an RPC binding handle ([C706]
	// sections 4.3.5 and 5.1.5.2). The server MUST ignore this parameter.
	ServerName string `idl:"name:ServerName;string;pointer:unique" json:"server_name"`
	// UserInfo: A pointer to the buffer to receive the data. The data MUST be returned
	// as a WKSTA_USER_ENUM_STRUCT structure (section 2.2.5.14) that contains a Level member
	// that specifies the type of structure to return.
	UserInfo *WorkstationUserEnum `idl:"name:UserInfo" json:"user_info"`
	// PreferredMaximumLength: The number of bytes to allocate for the return data.
	PreferredMaximumLength uint32 `idl:"name:PreferredMaximumLength" json:"preferred_maximum_length"`
	// ResumeHandle: A pointer that, if specified, and if this method returns ERROR_MORE_DATA,
	// MUST receive an implementation-specific value<34> that can be passed in subsequent
	// calls to this method, to continue with the enumeration of currently logged-on users.
	Resume uint32 `idl:"name:ResumeHandle;pointer:unique" json:"resume"`
}

UserEnumRequest structure represents the NetrWkstaUserEnum operation request

func (*UserEnumRequest) MarshalNDR

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

func (*UserEnumRequest) UnmarshalNDR

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

type UserEnumResponse

type UserEnumResponse struct {
	// UserInfo: A pointer to the buffer to receive the data. The data MUST be returned
	// as a WKSTA_USER_ENUM_STRUCT structure (section 2.2.5.14) that contains a Level member
	// that specifies the type of structure to return.
	UserInfo *WorkstationUserEnum `idl:"name:UserInfo" json:"user_info"`
	// TotalEntries: The total number of entries that could have been enumerated if the
	// buffer were big enough to hold all the entries.
	TotalEntries uint32 `idl:"name:TotalEntries" json:"total_entries"`
	// ResumeHandle: A pointer that, if specified, and if this method returns ERROR_MORE_DATA,
	// MUST receive an implementation-specific value<34> that can be passed in subsequent
	// calls to this method, to continue with the enumeration of currently logged-on users.
	Resume uint32 `idl:"name:ResumeHandle;pointer:unique" json:"resume"`
	// Return: The NetrWkstaUserEnum return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

UserEnumResponse structure represents the NetrWkstaUserEnum operation response

func (*UserEnumResponse) MarshalNDR

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

func (*UserEnumResponse) UnmarshalNDR

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

type UserPassword

type UserPassword struct {
	// Obfuscator: An array of unsigned characters that contains a salt, which is filled
	// with random bytes by the caller.
	Obfuscator []byte `idl:"name:Obfuscator" json:"obfuscator"`
	// Buffer: A cleartext string of no more than JOIN_MAX_PASSWORD_LENGTH (section 2.2.1.1)
	// UTF-16 characters in little-endian order. The start of the string MUST be Length
	// number of bytes from the end of the buffer. The unused portion of the buffer contains
	// indeterminate values.
	Buffer []uint16 `idl:"name:Buffer" json:"buffer"`
	// Length: An unsigned integer, in little-endian order, that specifies the length in
	// bytes of the cleartext string in the Buffer member.
	Length uint32 `idl:"name:Length" json:"length"`
}

UserPassword structure represents JOINPR_USER_PASSWORD RPC structure.

The JOINPR_USER_PASSWORD structure represents a decrypted password in the Buffer member of a JOINPR_ENCRYPTED_USER_PASSWORD structure (section 2.2.5.18).

func (*UserPassword) MarshalNDR

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

func (*UserPassword) UnmarshalNDR

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

type ValidateName2Request

type ValidateName2Request struct {
	// ServerName: This parameter has no effect on message processing in any environment.
	// The client MUST set this parameter to a value that resolves to the IP protocol layer
	// destination address of the RPC packets it transmits ([MS-RPCE] section 2.1.1.2).
	// The server (2) MUST ignore this parameter.
	ServerName string `idl:"name:ServerName;string;pointer:unique" json:"server_name"`
	// NameToValidate: A pointer to a string that specifies the name to validate, according
	// to its type.
	NameToValidate string `idl:"name:NameToValidate;string" json:"name_to_validate"`
	// AccountName: The server SHOULD ignore this parameter.
	AccountName string `idl:"name:AccountName;string;pointer:unique" json:"account_name"`
	// Password: The server SHOULD ignore this parameter.
	Password *EncryptedUserPassword `idl:"name:Password;pointer:unique" json:"password"`
	// NameType: Specifies the type of validation to perform (section 2.2.3.2).
	NameType NetsetupNameType `idl:"name:NameType" json:"name_type"`
}

ValidateName2Request structure represents the NetrValidateName2 operation request

func (*ValidateName2Request) MarshalNDR

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

func (*ValidateName2Request) UnmarshalNDR

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

type ValidateName2Response

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

ValidateName2Response structure represents the NetrValidateName2 operation response

func (*ValidateName2Response) MarshalNDR

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

func (*ValidateName2Response) UnmarshalNDR

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

type WkssvcClient

type WkssvcClient interface {

	// The NetrWkstaGetInfo method returns details about the configuration of a remote computer,
	// including the computer name and major and minor version numbers of the operating
	// system.
	//
	// Return Values: When the message processing result meets the description in column
	// two of the following table, this method MUST return one of the following values ([MS-ERREF]
	// section 2.2).
	//
	//	+--------------------------------+--------------------------------------------------------------------+
	//	|                                |                                                                    |
	//	|           VALUE/CODE           |                              MEANING                               |
	//	|                                |                                                                    |
	//	+--------------------------------+--------------------------------------------------------------------+
	//	+--------------------------------+--------------------------------------------------------------------+
	//	| NERR_Success 0x00000000        | The operation completed successfully.                              |
	//	+--------------------------------+--------------------------------------------------------------------+
	//	| ERROR_ACCESS_DENIED 0x00000005 | The caller does not have the permissions to perform the operation. |
	//	+--------------------------------+--------------------------------------------------------------------+
	//	| ERROR_INVALID_LEVEL 0x0000007C | The information level is invalid.                                  |
	//	+--------------------------------+--------------------------------------------------------------------+
	GetInfo(context.Context, *GetInfoRequest, ...dcerpc.CallOption) (*GetInfoResponse, error)

	// The NetrWkstaSetInfo method configures a remote computer according to the information
	// structure passed in the call.
	//
	// Return Values: When the message processing result meets the description in column
	// two of the following table, this method MUST return one of the following values ([MS-ERREF]
	// section 2.2).
	//
	//	+------------------------------------+----------------------------------------------+
	//	|                                    |                                              |
	//	|             VALUE/CODE             |                   MEANING                    |
	//	|                                    |                                              |
	//	+------------------------------------+----------------------------------------------+
	//	+------------------------------------+----------------------------------------------+
	//	| NERR_Success 0x00000000            | The operation completed successfully.        |
	//	+------------------------------------+----------------------------------------------+
	//	| ERROR_ACCESS_DENIED 0x00000005     | Access is denied.                            |
	//	+------------------------------------+----------------------------------------------+
	//	| ERROR_INVALID_PARAMETER 0x00000057 | One of the function parameters is not valid. |
	//	+------------------------------------+----------------------------------------------+
	//
	// Any other return value MUST conform to the error code requirements in Protocol Details
	// (section 3).
	//
	// If the Level parameter value is not valid, the server MUST fail the call as follows.
	//
	// Note  All value ranges are inclusive.
	//
	//	+----------------------------------------------------------------------------------+---------------------------------------------------+
	//	|                                  INVALID LEVEL                                   |                      FAILURE                      |
	//	|                                      VALUE                                       |                    PROCESSING                     |
	//	+----------------------------------------------------------------------------------+---------------------------------------------------+
	//	+----------------------------------------------------------------------------------+---------------------------------------------------+
	//	| 0x00000000--0x000001F5, 0x000001F7--0x000003F4, 0x000003F6--0x000003F9,          | The server SHOULD return ERROR_INVALID_LEVEL.<31> |
	//	| 0x000003FB--0x00000415 0x00000417--0xFFFFFFFF                                    |                                                   |
	//	+----------------------------------------------------------------------------------+---------------------------------------------------+
	//
	// Otherwise, if the Level parameter equals 0x000001F6, the server MUST store values
	// from the WKSTA_INFO_502 structure WkstaInfo502 member (section 2.2.4.1) specified
	// by the WkstaInfo parameter into elements of the ADM (section 3.2.1) as follows:
	//
	// * *wki502_keep_conn* stored in *Keep_Connection*
	//
	// * *wki502_max_cmds* stored in *Max_Commands*
	//
	// * *wki502_sess_timeout* stored in *Session_TimeOut*
	//
	// * *wki502_dormant_file_limit* stored in *DormantFileLimit*
	//
	// If the Level parameter equals 0x000003F5, the server MUST store values from the WKSTA_INFO_1013
	// structure WkstaInfo1013 member (section 2.2.4.1) of the WkstaInfo parameter into
	// elements of the ADM, as follows:
	//
	// * *wki1013_keep_conn* stored in *Keep_Connection*.
	//
	// If the Level parameter equals 0x000003FA, the server MUST store values from the WKSTA_INFO_1018
	// structure WkstaInfo1018 member (section 2.2.4.1) of the WkstaInfo parameter into
	// elements of the ADM, as follows:
	//
	// * *wki1018_sess_timeout* stored in *Session_TimeOut*.
	//
	// If the Level parameter equals 0x00000416, the server MUST store values from the WKSTA_INFO_1046
	// structure WkstaInfo1046 member (section 2.2.4.1) of the WkstaInfo parameter into
	// elements of the ADM, as follows:
	//
	// * *wki1046_dormant_file_limit* stored in *DormantFileLimit*.
	SetInfo(context.Context, *SetInfoRequest, ...dcerpc.CallOption) (*SetInfoResponse, error)

	// The NetrWkstaUserEnum method returns details about users who are currently active
	// on a remote computer.
	//
	// Return Values: When the message processing result matches the description in column
	// two of the following table, this method MUST return one of the following values ([MS-ERREF]
	// section 2.2). The most common error codes are listed in the following table.
	//
	//	+--------------------------------+----------------------------------------------------------------------------------+
	//	|                                |                                                                                  |
	//	|           VALUE/CODE           |                                     MEANING                                      |
	//	|                                |                                                                                  |
	//	+--------------------------------+----------------------------------------------------------------------------------+
	//	+--------------------------------+----------------------------------------------------------------------------------+
	//	| NERR_Success 0x00000000        | The operation completed successfully.                                            |
	//	+--------------------------------+----------------------------------------------------------------------------------+
	//	| ERROR_ACCESS_DENIED 0x00000005 | Access is denied.                                                                |
	//	+--------------------------------+----------------------------------------------------------------------------------+
	//	| ERROR_INVALID_LEVEL 0x0000007C | The information level is invalid.                                                |
	//	+--------------------------------+----------------------------------------------------------------------------------+
	//	| ERROR_MORE_DATA 0x000000EA     | More entries are available. The UserInfo buffer was not large enough to contain  |
	//	|                                | all the entries.                                                                 |
	//	+--------------------------------+----------------------------------------------------------------------------------+
	//
	// Any other return value MUST conform to the error code requirements in Protocol Details
	// (section 3).
	//
	// The server (2) SHOULD<35> enforce security measures to verify that the caller has
	// the required permissions to execute this routine. If the server enforces security
	// measures, and the caller does not have the required credentials, the server MUST
	// fail the call with ERROR_ACCESS_DENIED. Specifications for determining the identity
	// of the caller for the purpose of performing an access check are in [MS-RPCE] section
	// 3.3.3.1.3.
	//
	// If the Level member of the WKSTA_USER_ENUM_STRUCT structure passed in the UserInfo
	// parameter does not equal 0x00000000 or 0x00000001, the server MUST fail the call.
	//
	// If the Level member equals 0x00000000, the server MUST return an array of the names
	// of users currently logged on the computer by filling the WKSTA_USER_INFO_0_CONTAINER
	// structure (section 2.2.5.14) in the WkstaUserInfo field of the UserInfo parameter.
	//
	// If the Level member equals 0x00000001, the server MUST return an array of the names
	// and domain details of each user currently logged on the computer, and a list of OtherDomains
	// (section 3.2.1.3) in the computer.
	//
	// If the PreferredMaximumLength parameter equals MAX_PREFERRED_LENGTH (section 2.2.1.3),
	// the server MUST return all the requested data. Otherwise, if the PreferredMaximumLength
	// is insufficient to hold all the entries, then the server MUST return the maximum
	// number of entries that fit in the UserInfo buffer and return ERROR_MORE_DATA.
	//
	// The following rules specify processing of the ResumeHandle parameter:
	//
	// * If the ResumeHandle parameter is either NULL or points to 0x00000000, the enumeration
	// MUST start from the beginning of the list of the currently logged on users. <36>
	// ( def80006-2495-4571-8a93-1668e0f8af31#Appendix_A_36 )
	//
	// * If the ResumeHandle parameter points to a non-zero value, the server MUST continue
	// enumeration based on the value of ResumeHandle. The server is not required to maintain
	// any state between calls to the NetrWkstaUserEnum method.
	//
	// * If the client specifies a ResumeHandle , and if the server returns ERROR_MORE_DATA,
	// the server MUST set the value to which ResumeHandle points to an implementation-specific
	// value that allow the server to continue with this enumeration on a subsequent call
	// to this method, with the same value for ResumeHandle.
	//
	// The server is not required to maintain any state between calls to the NetrWkstaUserEnum
	// method. If the server returns NERR_Success or ERROR_MORE_DATA, it MUST set the TotalEntries
	// parameter to equal the total number of entries that could have been enumerated from
	// the current resume position.
	UserEnum(context.Context, *UserEnumRequest, ...dcerpc.CallOption) (*UserEnumResponse, error)

	// The NetrWkstaTransportEnum method provides details about the transport protocols
	// currently enabled for use by the SMB network redirector on a remote computer.
	//
	// Return Values: When the message processing result matches the description in column
	// two of the following table, this method MUST return one of the following values ([MS-ERREF]
	// section 2.2).
	//
	//	+--------------------------------+----------------------------------------------------------------------------------+
	//	|                                |                                                                                  |
	//	|           VALUE/CODE           |                                     MEANING                                      |
	//	|                                |                                                                                  |
	//	+--------------------------------+----------------------------------------------------------------------------------+
	//	+--------------------------------+----------------------------------------------------------------------------------+
	//	| NERR_Success 0x00000000        | The operation completed successfully.                                            |
	//	+--------------------------------+----------------------------------------------------------------------------------+
	//	| ERROR_ACCESS_DENIED 0x00000005 | Access is denied.                                                                |
	//	+--------------------------------+----------------------------------------------------------------------------------+
	//	| ERROR_INVALID_LEVEL 0x0000007C | The information level is invalid.                                                |
	//	+--------------------------------+----------------------------------------------------------------------------------+
	//	| NERR_BufTooSmall 0x0000084B    | More entries are available. The TransportInfo buffer was not large enough to     |
	//	|                                | contain all the entries.                                                         |
	//	+--------------------------------+----------------------------------------------------------------------------------+
	//
	// Any other return value MUST conform to the error code requirements in Protocol Details
	// (section 3).
	//
	// The server SHOULD<38> enforce security measures to verify that the caller has the
	// required permissions to execute this routine. If the server enforces security measures,
	// and the caller does not have the required credentials, the server MUST fail the call
	// with ERROR_ACCESS_DENIED. Specifications for determining the identity of the caller
	// for the purpose of performing an access check are in [MS-RPCE] section 3.3.3.1.3.
	//
	// For any other conditions, this method MUST return any other value, and the client
	// MUST treat all other values the same.
	//
	// If the Level member in the WKSTA_TRANSPORT_ENUM_STRUCT structure passed in the TransportInfo
	// parameter does not equal 0x00000000, the server MUST fail the call.
	//
	// If the Level member is 0x00000000, the server MUST return an array of details about
	// the transport protocols currently enabled for use by the SMB network redirector by
	// filling the WKSTA_TRANSPORT_INFO_0_CONTAINER structure WkstaTransportInfo member
	// (section 2.2.5.15) of the TransportInfo parameter for each transport in TransportList
	// (section 3.2.1.4), as follows:
	//
	// * *wkti0_transport_address* set to *Transport.Address*
	//
	// * *wkti0_transport_name* set to *Transport.Name*
	//
	// * *wkti0_number_of_vcs* set to *Transport.VC_Count*
	//
	// * *wkti0_wan_ish* set to *Transport.Wannish*
	//
	// If the PreferredMaximumLength parameter equals MAX_PREFERRED_LENGTH (section 2.2.1.3),
	// the server MUST return all the requested data. If the PreferredMaximumLength is insufficient
	// to hold all the entries, the server MUST return the maximum number of entries that
	// fit in the TransportInfo buffer and return NERR_BufTooSmall.
	//
	// The following rules specify processing of the ResumeHandle parameter:
	//
	// * If the ResumeHandle parameter is either NULL or points to 0x00000000, the enumeration
	// MUST start from the beginning of the list of the currently enabled transport protocols.
	// <39> ( def80006-2495-4571-8a93-1668e0f8af31#Appendix_A_39 )
	//
	// * If the ResumeHandle parameter is nonzero, the server MUST begin enumeration based
	// on the value of ResumeHandle. The server is not required to maintain any state between
	// calls invoking the *NetrWkstaTransportEnum* method.
	//
	// * If the client specified a ResumeHandle , and if the server returns NERR_BufTooSmall,
	// the server MUST set ResumeHandle to an implementation-specific value that allows
	// the server to continue with this enumeration on a subsequent call to this method,
	// using the same value for ResumeHandle.
	//
	// The server is not required to maintain any state between calls to the NetrWkstaTransportEnum
	// method. If the server returns NERR_Success, it MUST set the TotalEntries parameter
	// to equal the total number of entries that could have been enumerated from the current
	// resume position. If the server returns NERR_BufTooSmall, it SHOULD set the TotalEntries
	// value to the total number of entries that could have been enumerated from the current
	// resume position.<40>
	TransportEnum(context.Context, *TransportEnumRequest, ...dcerpc.CallOption) (*TransportEnumResponse, error)

	// The NetrWkstaTransportAdd method enables the SMB network redirector to use a transport
	// protocol on a remote computer.
	//
	// Return Values: When the message processing result meets the description in column
	// two of the following table, this method MUST return one of the following values ([MS-ERREF]
	// section 2.2).
	//
	//	+------------------------------------+----------------------------------------------+
	//	|                                    |                                              |
	//	|             VALUE/CODE             |                   MEANING                    |
	//	|                                    |                                              |
	//	+------------------------------------+----------------------------------------------+
	//	+------------------------------------+----------------------------------------------+
	//	| NERR_Success 0x00000000            | The operation completed successfully.        |
	//	+------------------------------------+----------------------------------------------+
	//	| ERROR_ACCESS_DENIED 0x00000005     | Access is denied.                            |
	//	+------------------------------------+----------------------------------------------+
	//	| ERROR_INVALID_PARAMETER 0x00000057 | One of the function parameters is not valid. |
	//	+------------------------------------+----------------------------------------------+
	//	| ERROR_INVALID_LEVEL 0x0000007C     | The information level is invalid.            |
	//	+------------------------------------+----------------------------------------------+
	//
	// Any other return value MUST conform to the error code requirements in Protocol Details
	// (section 3).
	//
	// If the Level parameter is not equal to zero, the server MUST fail the call and return
	// ERROR_INVALID_LEVEL.
	//
	// If the server does not support this method then it SHOULD be processed as follows.
	//
	// If any of the input parameters are invalid, the server SHOULD return ERROR_INVALID_PARAMETER.
	// Otherwise, it SHOULD<41> return NERR_Success.
	//
	// The server SHOULD<42> enforce security measures to verify that the caller has authorization
	// to execute this routine. If the server enforces security measures and the caller
	// does not have the required credentials, the server SHOULD fail the call with ERROR_ACCESS_DENIED.
	// Specifications for determining the identity of the caller for the purpose of performing
	// an access check are in [MS-RPCE] section 3.3.3.1.3.
	//
	// The TransportInfo parameter specifies details about the transport protocol that is
	// to be enabled. If any of the input parameters are invalid, the server MUST return
	// ERROR_INVALID_PARAMETER. If the caller has passed the ErrorParameter parameter, the
	// server MUST return the zero-based index of the first member of the structure the
	// TransportInfo parameter points to that was invalid.
	//
	// If this method call is successful, the server MUST store values from members of the
	// WKSTA_TRANSPORT_INFO_0 structure passed in the TransportInfo parameter into the ADM
	// elements for each transport in TransportList (section 3.2.1.4) as follows:
	//
	// * *wkti0_transport_address* stored in *Transport.Address*
	//
	// * *wkti0_transport_name* stored in *Transport.Name*
	//
	// * *wkti0_number_of_vcs* stored in *Transport.VC_Count*
	//
	// * *wkti0_wan_ish* stored in *Transport.Wannish*
	TransportAdd(context.Context, *TransportAddRequest, ...dcerpc.CallOption) (*TransportAddResponse, error)

	// The NetrWkstaTransportDel method disables the use of a transport protocol by the
	// SMB network redirector on a remote computer. The transport can be re-enabled by calling
	// the NetrWkstaTransportAdd method (section 3.2.4.5).
	//
	// Return Values: When the message processing result meets the description in column
	// two of the following table, this method MUST return one of the following values ([MS-ERREF]
	// section 2.2).
	//
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	|                                    |                                                                                  |
	//	|             VALUE/CODE             |                                     MEANING                                      |
	//	|                                    |                                                                                  |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| NERR_Success 0x00000000            | The operation completed successfully.                                            |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| ERROR_ACCESS_DENIED 0x00000005     | Access is denied.                                                                |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| ERROR_INVALID_PARAMETER 0x00000057 | One of the function parameters is invalid.                                       |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| ERROR_OPEN_FILES 0x00002401        | There are open files, or printer handles are using the transport protocol        |
	//	|                                    | pending on this connection.                                                      |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| ERROR_DEVICE_IN_USE 0x00002404     | The device or open directory handle is using the transport protocol and cannot   |
	//	|                                    | be disconnected.                                                                 |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//
	// If the ForceLevel parameter does not equal 0x00000000, 0x00000001, or 0x00000002,
	// the server MUST fail the call with ERROR_INVALID_PARAMETER. If the ForceLevel parameter
	// is 0x00000000 or 0x00000001 and any open directory handle is using the transport
	// protocol provided in the TransportName field, the server MUST fail the call with
	// ERROR_DEVICE_IN_USE. If the ForceLevel parameter is 0x00000000 or 0x00000001 and
	// any open files or printer handles are using the transport protocol provided in the
	// TransportName field, fail the call with ERROR_OPEN_FILES.
	//
	// If the server does not support this method, it SHOULD<43> return NERR_Success if
	// the ForceLevel parameter is valid. If the server does support this method, it MUST
	// be processed as follows.
	//
	// The server SHOULD<44> enforce security measures to verify that the caller has the
	// required permissions to execute this routine. If the server enforces security measures
	// and the caller does not have the required credentials, the server MUST fail the call
	// with ERROR_ACCESS_DENIED. Specifications for determining the identity of the caller
	// for the purpose of performing an access check are in ([MS-RPCE] section 3.3.3.1.3.
	//
	// If any open file or printer handles are using the transport protocol that this call
	// is trying to disable, the server behavior MUST depend on the value of the ForceLevel
	// parameter. If the ForceLevel parameter is 0x00000000 or 0x00000001, the server MUST
	// fail the call. If the ForceLevel parameter is 0x00000002, the server MUST forcefully
	// close all open handles and disable the transport protocol.
	//
	// If this method call is successful, the server MUST remove this protocol from its
	// list of currently enabled transport protocols.
	TransportDelete(context.Context, *TransportDeleteRequest, ...dcerpc.CallOption) (*TransportDeleteResponse, error)

	// The NetrUseAdd method establishes a connection between the workstation server and
	// an SMB server. Workstation servers SHOULD NOT allow this method to be invoked remotely<45>
	// and SHOULD return ERROR_CALL_NOT_IMPLEMENTED.
	//
	// Return Values: When the message processing result meets the description in the right-hand
	// column of the following table, this method MUST return one of the following values
	// ([MS-ERREF] section 2.2).
	//
	//	+---------------------------------------+------------------------------------------------+
	//	|                                       |                                                |
	//	|              VALUE/CODE               |                    MEANING                     |
	//	|                                       |                                                |
	//	+---------------------------------------+------------------------------------------------+
	//	+---------------------------------------+------------------------------------------------+
	//	| NERR_Success 0x00000000               | The operation completed successfully.          |
	//	+---------------------------------------+------------------------------------------------+
	//	| ERROR_ACCESS_DENIED 0x00000005        | Access is denied.                              |
	//	+---------------------------------------+------------------------------------------------+
	//	| ERROR_INVALID_PARAMETER 0x00000057    | One of the function parameters is not valid.   |
	//	+---------------------------------------+------------------------------------------------+
	//	| ERROR_INVALID_LEVEL 0x0000007C        | The information level is invalid.              |
	//	+---------------------------------------+------------------------------------------------+
	//	| ERROR_CALL_NOT_IMPLEMENTED 0x00000078 | This function is not supported on this system. |
	//	+---------------------------------------+------------------------------------------------+
	//
	// The server SHOULD<46> enforce security measures to verify that the caller has the
	// required permissions to execute this routine. If the server enforces security measures
	// and the caller does not have the required credentials, the server SHOULD fail the
	// call with ERROR_ACCESS_DENIED. Specifications for determining the identity of the
	// caller for the purpose of performing an access check are in [MS-RPCE] section 3.3.3.1.3.
	//
	// The Level parameter determines the type of structure that the client has used to
	// specify details about the new connection. The value MUST be 0, 1, 2, or 3. If the
	// Level parameter is not equal to one of the valid values, the server MUST fail the
	// call with an ERROR_INVALID_LEVEL error code.
	//
	// * If the Level parameter is 0x00000000, the Buffer parameter points to a *USE_INFO_0*
	// structure.
	//
	// * If the Level parameter is 0x00000001, the Buffer parameter points to a *USE_INFO_1*
	// structure.
	//
	// * If the Level parameter is 0x00000002, the Buffer parameter points to a *USE_INFO_2*
	// structure.
	//
	// * If the Level parameter is 0x00000003, the Buffer parameter points to a *USE_INFO_3*
	// structure.
	UseAdd(context.Context, *UseAddRequest, ...dcerpc.CallOption) (*UseAddResponse, error)

	// The NetrUseGetInfo method retrieves details from a remote workstation about a connection
	// to a shared resource on an SMB server. The server SHOULD NOT allow this method to
	// be invoked remotely<47> and SHOULD return ERROR_CALL_NOT_IMPLEMENTED.
	//
	// Return Values: When the message processing result meets the description in the right-hand
	// column of the following table, this method MUST return one of the following values
	// ([MS-ERREF] section 2.2).
	//
	//	+------------------------------------+----------------------------------------------+
	//	|                                    |                                              |
	//	|             VALUE/CODE             |                   MEANING                    |
	//	|                                    |                                              |
	//	+------------------------------------+----------------------------------------------+
	//	+------------------------------------+----------------------------------------------+
	//	| NERR_Success 0x00000000            | The operation completed successfully.        |
	//	+------------------------------------+----------------------------------------------+
	//	| ERROR_ACCESS_DENIED 0x00000005     | Access is denied.                            |
	//	+------------------------------------+----------------------------------------------+
	//	| ERROR_INVALID_PARAMETER 0x00000057 | One of the function parameters is not valid. |
	//	+------------------------------------+----------------------------------------------+
	//	| ERROR_INVALID_LEVEL 0x0000007C     | The information level is invalid.            |
	//	+------------------------------------+----------------------------------------------+
	//	| NERR_UseNotFound 0x000008CA        | The network connection could not be found.   |
	//	+------------------------------------+----------------------------------------------+
	//
	// The server SHOULD<48> enforce security measures to verify that the caller has the
	// required permissions to execute this routine. If the server enforces security measures
	// and the caller does not have the required credentials, the server MUST fail the call
	// with ERROR_ACCESS_DENIED. Specifications for determining the identity of the caller
	// for the purpose of performing an access check are in [MS-RPCE] section 3.3.3.1.3.
	//
	// The UseName parameter specifies the local device name or shared resource name for
	// which to return information. The server MUST canonicalize UseName ([MS-SRVS] section
	// 3.1.4.33). This MUST be a nonempty, null-terminated UTF-16 string; otherwise, the
	// server MUST fail the call with an ERROR_INVALID_PARAMETER error code.
	UseGetInfo(context.Context, *UseGetInfoRequest, ...dcerpc.CallOption) (*UseGetInfoResponse, error)

	// The NetrUseDel function terminates a connection from the workstation server to a
	// shared resource on an SMB server. The server SHOULD NOT<49> allow this method to
	// be invoked remotely and SHOULD return ERROR_CALL_NOT_IMPLEMENTED.
	//
	// Return Values: When the message processing result meets the description in the right-hand
	// column of the following table, this method MUST return one of the following values
	// ([MS-ERREF] section 2.2).
	//
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	|                                    |                                                                                  |
	//	|             VALUE/CODE             |                                     MEANING                                      |
	//	|                                    |                                                                                  |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| NERR_Success 0x00000000            | The operation completed successfully.                                            |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| ERROR_ACCESS_DENIED 0x00000005     | Access is denied.                                                                |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| ERROR_INVALID_PARAMETER 0x00000057 | One of the function parameters is not valid.                                     |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| ERROR_INVALID_LEVEL 0x0000007C     | The force level is invalid.                                                      |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| ERROR_DEVICE_IN_USE 0x00002404     | The connection handle is in use and cannot be disconnected.                      |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| ERROR_REDIR_PAUSED 0x00000048      | Remote access to the specified printer or serial communications device has been  |
	//	|                                    | paused.                                                                          |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//
	// The server SHOULD<50> enforce security measures to verify that the caller has the
	// required permissions to execute this routine. If the server enforces security measures
	// and the caller does not have the required credentials, the server MUST fail the call
	// with ERROR_ACCESS_DENIED. Specifications for determining the identity of the caller
	// for the purpose of performing an access check are in [MS-RPCE] section 3.3.3.1.3.
	//
	// The UseName parameter specifies the local device name or shared resource name for
	// which to delete a tree connection. The server MUST canonicalize UseName ([MS-SRVS]
	// section 3.1.4.33). This MUST be a nonempty, null-terminated UTF-16 string; otherwise,
	// the server MUST fail the call with an ERROR_INVALID_PARAMETER error code.
	UseDelete(context.Context, *UseDeleteRequest, ...dcerpc.CallOption) (*UseDeleteResponse, error)

	// The NetrUseEnum method lists open connections between a workstation server and a
	// remote SMB server. The server SHOULD NOT allow this method to be invoked remotely<51>
	// and SHOULD return ERROR_CALL_NOT_IMPLEMENTED.
	//
	// Return Values: The method returns 0x00000000 (NERR_Success) to indicate success;
	// otherwise, it returns a nonzero error code. The method can take any specific error
	// code value ([MS-ERREF] section 2.2). The most common error codes are listed in the
	// following table.
	//
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	|                                    |                                                                                  |
	//	|             VALUE/CODE             |                                     MEANING                                      |
	//	|                                    |                                                                                  |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| NERR_Success 0x00000000            | The client request succeeded.                                                    |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| ERROR_INVALID_LEVEL 0x0000007C     | The system call level is not correct.                                            |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| ERROR_MORE_DATA 0x000000EA         | The client request succeeded. More entries are available. Not all entries could  |
	//	|                                    | be returned in the buffer size that is specified by PreferredMaximumLength.      |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| ERROR_NOT_ENOUGH_MEMORY 0x00000008 | Not enough storage is available to process this command.                         |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| NERR_BufTooSmall 0x0000084B        | The client request succeeded. More entries are available. The buffer size that   |
	//	|                                    | is specified by PreferredMaximumLength was too small to fit even a single entry. |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//
	// The server SHOULD<52> enforce security measures to verify that the caller has the
	// required permissions to execute this routine. If the server enforces security measures
	// and the caller does not have the required credentials, the server MUST fail the call
	// with ERROR_ACCESS_DENIED. Specifications for determining the identity of the caller
	// for the purpose of performing an access check are in [MS-RPCE] section 3.3.3.1.3.
	//
	// The InfoStruct parameter has a Level member. The value of Level MUST be 0, 1, or
	// 2. If the Level member is not equal to one of the valid values, the server MUST fail
	// the call with an ERROR_INVALID_LEVEL error code.
	UseEnum(context.Context, *UseEnumRequest, ...dcerpc.CallOption) (*UseEnumResponse, error)

	// The NetrWorkstationStatisticsGet method returns various statistics about the SMB
	// network redirector on a remote computer.
	//
	// Return Values: When the message processing result matches the description in column
	// two of the following table, this method MUST return one of the following values ([MS-ERREF]
	// section 2.2).
	//
	//	+------------------------------------+--------------------------------------------+
	//	|                                    |                                            |
	//	|             VALUE/CODE             |                  MEANING                   |
	//	|                                    |                                            |
	//	+------------------------------------+--------------------------------------------+
	//	+------------------------------------+--------------------------------------------+
	//	| NERR_Success 0x00000000            | The operation completed successfully.      |
	//	+------------------------------------+--------------------------------------------+
	//	| ERROR_ACCESS_DENIED 0x00000005     | Access is denied.                          |
	//	+------------------------------------+--------------------------------------------+
	//	| ERROR_INVALID_LEVEL 0x0000007C     | The information level is invalid.          |
	//	+------------------------------------+--------------------------------------------+
	//	| ERROR_INVALID_PARAMETER 0x00000057 | One of the function parameters is invalid. |
	//	+------------------------------------+--------------------------------------------+
	//
	// If the Level parameter does not equal 0x00000000, the server MUST fail the call and
	// return ERROR_INVALID_LEVEL.
	//
	// If the Options parameter does not equal 0x00000000, the server MUST fail the call
	// and return ERROR_INVALID_PARAMETER. The server SHOULD<54> enforce security measures
	// to verify that the caller has the required permissions to execute this routine. If
	// the server enforces security measures and the caller does not have the required credentials,
	// the server MUST fail the call and return ERROR_ACCESS_DENIED.
	WorkstationStatisticsGet(context.Context, *WorkstationStatisticsGetRequest, ...dcerpc.CallOption) (*WorkstationStatisticsGetResponse, error)

	// The NetrGetJoinInformation method retrieves details about the workgroup or domain
	// to which the specified computer is joined.
	//
	// Return Values: When the message processing result meets the description in column
	// two of the following table, this method MUST return one of the following values ([MS-ERREF]
	// section 2.2).
	//
	//	+----------------------------------------+---------------------------------------------+
	//	|                                        |                                             |
	//	|               VALUE/CODE               |                   MEANING                   |
	//	|                                        |                                             |
	//	+----------------------------------------+---------------------------------------------+
	//	+----------------------------------------+---------------------------------------------+
	//	| NERR_Success 0x00000000                | The operation completed successfully.       |
	//	+----------------------------------------+---------------------------------------------+
	//	| ERROR_ACCESS_DENIED 0x00000005         | Access is denied.                           |
	//	+----------------------------------------+---------------------------------------------+
	//	| RPC_S_PROTSEQ_NOT_SUPPORTED 0x000006A7 | The RPC protocol sequence is not supported. |
	//	+----------------------------------------+---------------------------------------------+
	//
	// Any other return value MUST conform to the error code requirements in Protocol Details
	// (section 3).
	GetJoinInformation(context.Context, *GetJoinInformationRequest, ...dcerpc.CallOption) (*GetJoinInformationResponse, error)

	// The NetrJoinDomain2 method uses encrypted credentials to join a computer to a domain
	// or a workgroup.<57>
	//
	// For high-level, informative discussions about domain controller location and domain
	// join and unjoin, see [MS-ADOD] sections 2.7.7 and 3.1. For more information, see
	// the example in section 4.3.
	//
	// Return Values: When the message processing result meets the description in column
	// two of the following table, this method MUST return one of the following values ([MS-ERREF]
	// section 2.2).
	//
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	|                                        |                                                                                  |
	//	|               VALUE/CODE               |                                     MEANING                                      |
	//	|                                        |                                                                                  |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| NERR_Success 0x00000000                | The operation completed successfully.                                            |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| ERROR_FILE_NOT_FOUND 0x00000002        | The object was not found.                                                        |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| ERROR_ACCESS_DENIED 0x00000005         | Access is denied.                                                                |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| ERROR_NOT_SUPPORTED 0x00000032         | The request is not supported.                                                    |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| ERROR_INVALID_PASSWORD 0x00000056      | The specified network password is not correct.                                   |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| ERROR_INVALID_PARAMETER 0x00000057     | The parameter is incorrect.                                                      |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| ERROR_PASSWORD_RESTRICTION 0x0000052D  | Unable to update the password. The value provided for the new password does not  |
	//	|                                        | meet the length, complexity, or history requirements of the domain.              |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| ERROR_LOGON_FAILURE 0x0000052E         | Logon failure: unknown user name or bad password.                                |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| ERROR_NONE_MAPPED 0x00000534           | The account was not found.                                                       |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| ERROR_INVALID_DOMAIN_ROLE 0x0000054A   | The name of a domain controller was provided in the DomainNameParam parameter,   |
	//	|                                        | and validation of that domain controller failed. Validation is specified in the  |
	//	|                                        | message-processing steps for the section "Domain Join" later.                    |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| ERROR_NO_SUCH_DOMAIN 0x0000054B        | The specified domain either does not exist or could not be contacted.            |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| RPC_S_PROTSEQ_NOT_SUPPORTED 0x000006A7 | The RPC protocol sequence is not supported.                                      |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| RPC_S_CALL_IN_PROGRESS 0x000006FF      | A remote procedure call is already in progress.<66>                              |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| NERR_UserExists 0x000008B0             | The user account already exists.                                                 |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| NERR_SetupAlreadyJoined 0x00000A83     | This computer is already joined to a domain.                                     |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| NERR_SetupDomainController 0x00000A85  | This computer is a domain controller and cannot be unjoined from a domain.       |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| NERR_InvalidWorkgroupName 0x00000A87   | The specified workgroup name is invalid.                                         |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//
	// Any other return value MUST conform to the error code requirements in Protocol Details
	// (section 3).
	JoinDomain2(context.Context, *JoinDomain2Request, ...dcerpc.CallOption) (*JoinDomain2Response, error)

	// The NetrUnjoinDomain2 method uses encrypted credentials to unjoin a computer from
	// a workgroup or domain.<76>
	//
	// Return Values: When the message processing result meets the description in column
	// two of the following table, this method MUST return one of the following values ([MS-ERREF]
	// section 2.2).
	//
	//	+----------------------------------------+----------------------------------------------------------------------------+
	//	|                                        |                                                                            |
	//	|               VALUE/CODE               |                                  MEANING                                   |
	//	|                                        |                                                                            |
	//	+----------------------------------------+----------------------------------------------------------------------------+
	//	+----------------------------------------+----------------------------------------------------------------------------+
	//	| NERR_Success 0x00000000                | The operation completed successfully.                                      |
	//	+----------------------------------------+----------------------------------------------------------------------------+
	//	| ERROR_ACCESS_DENIED 0x00000005         | Access is denied.                                                          |
	//	+----------------------------------------+----------------------------------------------------------------------------+
	//	| ERROR_INVALID_PASSWORD 0x00000056      | The specified network password is not correct.                             |
	//	+----------------------------------------+----------------------------------------------------------------------------+
	//	| ERROR_INVALID_PARAMETER 0x00000057     | One of the function parameters is not valid.                               |
	//	+----------------------------------------+----------------------------------------------------------------------------+
	//	| ERROR_INVALID_FLAGS 0x000003EC         | Invalid option flags are specified.                                        |
	//	+----------------------------------------+----------------------------------------------------------------------------+
	//	| RPC_S_PROTSEQ_NOT_SUPPORTED 0x000006A7 | The RPC protocol sequence is not supported.                                |
	//	+----------------------------------------+----------------------------------------------------------------------------+
	//	| NERR_SetupNotJoined 0x00000A84         | This computer is not currently joined to a domain.                         |
	//	+----------------------------------------+----------------------------------------------------------------------------+
	//	| NERR_SetupDomainController 0x00000A85  | This computer is a domain controller and cannot be unjoined from a domain. |
	//	+----------------------------------------+----------------------------------------------------------------------------+
	//
	// Unless otherwise noted, if the server encounters an error during message processing,
	// the server SHOULD revert any state changes made, MUST stop message processing, and
	// MUST return the error to the caller.<78>
	UnjoinDomain2(context.Context, *UnjoinDomain2Request, ...dcerpc.CallOption) (*UnjoinDomain2Response, error)

	// The NetrRenameMachineInDomain2 method uses encrypted credentials to change the locally
	// persisted variable ComputerNameNetBIOS (section 3.2.1.5) and to optionally rename
	// the computer account for a server currently in a domain, without first removing the
	// computer from the domain and then adding it back.<81>
	//
	// Return Values: When the message processing result meets the description in column
	// two of the following table, this method MUST return one of the following values ([MS-ERREF]
	// section 2.2).
	//
	//	+----------------------------------------+-----------------------------------------------------------------+
	//	|                                        |                                                                 |
	//	|               VALUE/CODE               |                             MEANING                             |
	//	|                                        |                                                                 |
	//	+----------------------------------------+-----------------------------------------------------------------+
	//	+----------------------------------------+-----------------------------------------------------------------+
	//	| NERR_Success 0x00000000                | The operation completed successfully.                           |
	//	+----------------------------------------+-----------------------------------------------------------------+
	//	| ERROR_ACCESS_DENIED 0x00000005         | Access is denied.                                               |
	//	+----------------------------------------+-----------------------------------------------------------------+
	//	| ERROR_NOT_SUPPORTED 0x00000032         | The request is not supported.                                   |
	//	+----------------------------------------+-----------------------------------------------------------------+
	//	| ERROR_INVALID_PASSWORD 0x00000056      | The specified network password is not correct.                  |
	//	+----------------------------------------+-----------------------------------------------------------------+
	//	| ERROR_INVALID_PARAMETER 0x00000057     | The parameter is incorrect.                                     |
	//	+----------------------------------------+-----------------------------------------------------------------+
	//	| RPC_S_PROTSEQ_NOT_SUPPORTED 0x000006A7 | The RPC protocol sequence is not supported.                     |
	//	+----------------------------------------+-----------------------------------------------------------------+
	//	| NERR_SetupNotJoined 0x00000A84         | This computer is not currently joined to a domain.              |
	//	+----------------------------------------+-----------------------------------------------------------------+
	//	| NERR_SetupDomainController 0x00000A85  | This computer is a domain controller and cannot be renamed.<82> |
	//	+----------------------------------------+-----------------------------------------------------------------+
	//
	// Any other return value MUST conform to the error code requirements in Protocol Details
	// (section 3).
	//
	// Unless otherwise noted, if the server encounters an error during message processing,
	// the server SHOULD revert any state changes made, MUST stop message processing, and
	// MUST return the error to the caller.<83>
	RenameMachineInDomain2(context.Context, *RenameMachineInDomain2Request, ...dcerpc.CallOption) (*RenameMachineInDomain2Response, error)

	// The NetrValidateName2 method verifies the validity of a computer, workgroup, or domain
	// name (2).<87>
	//
	// Return Values: When the message processing result matches the description in column
	// 2 of the following table, this method MUST return one of the following values ([MS-ERREF]
	// section 2.2).
	//
	//	+----------------------------------------+---------------------------------------------------------------------------+
	//	|                                        |                                                                           |
	//	|               VALUE/CODE               |                                  MEANING                                  |
	//	|                                        |                                                                           |
	//	+----------------------------------------+---------------------------------------------------------------------------+
	//	+----------------------------------------+---------------------------------------------------------------------------+
	//	| NERR_Success 0x00000000                | The operation completed successfully.                                     |
	//	+----------------------------------------+---------------------------------------------------------------------------+
	//	| ERROR_ACCESS_DENIED 0x00000005         | Access is denied.                                                         |
	//	+----------------------------------------+---------------------------------------------------------------------------+
	//	| ERROR_DUP_NAME 0x00000034              | The connection was denied because a duplicate name exists on the network. |
	//	+----------------------------------------+---------------------------------------------------------------------------+
	//	| ERROR_INVALID_PASSWORD 0x00000056      | The specified network password is incorrect.                              |
	//	+----------------------------------------+---------------------------------------------------------------------------+
	//	| ERROR_INVALID_PARAMETER 0x00000057     | The parameter is incorrect.                                               |
	//	+----------------------------------------+---------------------------------------------------------------------------+
	//	| ERROR_INVALID_NAME 0x0000007B          | The file name, directory name, or volume label syntax is incorrect.       |
	//	+----------------------------------------+---------------------------------------------------------------------------+
	//	| ERROR_INVALID_DOMAINNAME 0x000004BC    | The format of the specified domain name (2) is invalid.                   |
	//	+----------------------------------------+---------------------------------------------------------------------------+
	//	| ERROR_NO_SUCH_DOMAIN 0x0000054B        | The specified domain either does not exist or could not be contacted.     |
	//	+----------------------------------------+---------------------------------------------------------------------------+
	//	| RPC_S_PROTSEQ_NOT_SUPPORTED 0x000006A7 | The RPC protocol sequence is not supported.                               |
	//	+----------------------------------------+---------------------------------------------------------------------------+
	//	| NERR_InvalidComputer 0x0000092F        | This computer name is invalid.                                            |
	//	+----------------------------------------+---------------------------------------------------------------------------+
	//	| NERR_InvalidWorkgroupName 0x00000A87   | The specified workgroup name is invalid.                                  |
	//	+----------------------------------------+---------------------------------------------------------------------------+
	//	| DNS_ERROR_NON_RFC_NAME 0x00002554      | The Internet host name does not comply with RFC specifications.           |
	//	+----------------------------------------+---------------------------------------------------------------------------+
	//	| DNS_ERROR_INVALID_NAME_CHAR 0x00002558 | The Internet host name contains an invalid character.                     |
	//	+----------------------------------------+---------------------------------------------------------------------------+
	//	| RPC_E_REMOTE_DISABLED 0x8001011C       | Remote calls are not allowed for this process.                            |
	//	+----------------------------------------+---------------------------------------------------------------------------+
	//
	// The following definition is used in the specification of message processing that
	// follows.
	//
	// * PasswordString : A Unicode ( 3acf0e02-9bbd-4ce0-a7a0-586bc72d3ef4#gt_c305d0ab-8b94-461a-bd76-13b40cb8c4d8
	// ) UTF-8 ( 3acf0e02-9bbd-4ce0-a7a0-586bc72d3ef4#gt_409411c4-b4ed-4ab6-b0ee-6d7815f85a35
	// ) string containing a password in cleartext ( 3acf0e02-9bbd-4ce0-a7a0-586bc72d3ef4#gt_f6e0fdd0-cbc1-4c9d-93b8-f25125f9c5ef
	// ).
	ValidateName2(context.Context, *ValidateName2Request, ...dcerpc.CallOption) (*ValidateName2Response, error)

	// The NetrGetJoinableOUs2 method returns a list of organizational units (OUs) in which
	// the user can create an object.<94>
	//
	// Return Values: When the message processing result matches the description in column
	// two of the following table, this method MUST return one of the following values ([MS-ERREF]
	// section 2.2).
	//
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	|                                        |                                                                                  |
	//	|               VALUE/CODE               |                                     MEANING                                      |
	//	|                                        |                                                                                  |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| NERR_Success 0x00000000                | The operation completed successfully.                                            |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| ERROR_ACCESS_DENIED 0x00000005         | Access is denied.                                                                |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| ERROR_NOT_ENOUGH_MEMORY 0x00000008     | Not enough storage is available to process this command.                         |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| ERROR_INVALID_PARAMETER 0x00000057     | A parameter is incorrect.<95>                                                    |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| RPC_S_PROTSEQ_NOT_SUPPORTED 0x000006A7 | The RPC protocol sequence is not supported.                                      |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| NERR_InvalidAPI 0x0000085E             | The requested API is not supported on domain controllers.                        |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| NERR_DefaultJoinRequired 0x00000A86    | The destination domain controller does not support creating machine accounts in  |
	//	|                                        | OUs.                                                                             |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	GetJoinableOUs2(context.Context, *GetJoinableOUs2Request, ...dcerpc.CallOption) (*GetJoinableOUs2Response, error)

	// The NetrAddAlternateComputerName method adds an alternate name for a specified server
	// (2).<99>
	//
	// Return Values: When the message processing result matches the description in column
	// two of the following table, this method MUST return one of the following values ([MS-ERREF]
	// section 2.2).
	//
	//	+----------------------------------------+---------------------------------------------------------------------+
	//	|                                        |                                                                     |
	//	|               VALUE/CODE               |                               MEANING                               |
	//	|                                        |                                                                     |
	//	+----------------------------------------+---------------------------------------------------------------------+
	//	+----------------------------------------+---------------------------------------------------------------------+
	//	| NERR_Success 0x00000000                | The operation completed successfully.                               |
	//	+----------------------------------------+---------------------------------------------------------------------+
	//	| ERROR_ACCESS_DENIED 0x00000005         | Access is denied.                                                   |
	//	+----------------------------------------+---------------------------------------------------------------------+
	//	| ERROR_NOT_SUPPORTED 0x00000032         | This method is not supported by this server.                        |
	//	+----------------------------------------+---------------------------------------------------------------------+
	//	| ERROR_INVALID_PASSWORD 0x00000056      | The specified network password is incorrect.                        |
	//	+----------------------------------------+---------------------------------------------------------------------+
	//	| ERROR_INVALID_PARAMETER 0x00000057     | One of the function parameters is not valid.                        |
	//	+----------------------------------------+---------------------------------------------------------------------+
	//	| ERROR_INVALID_NAME 0x0000007B          | The file name, directory name, or volume label syntax is incorrect. |
	//	+----------------------------------------+---------------------------------------------------------------------+
	//	| ERROR_INVALID_FLAGS 0x000003EC         | Reserved contains an invalid value.                                 |
	//	+----------------------------------------+---------------------------------------------------------------------+
	//	| RPC_S_PROTSEQ_NOT_SUPPORTED 0x000006A7 | The RPC protocol sequence is not supported.                         |
	//	+----------------------------------------+---------------------------------------------------------------------+
	//	| RPC_S_CALL_IN_PROGRESS 0x000006FF      | A remote procedure call is already in progress.<101>                |
	//	+----------------------------------------+---------------------------------------------------------------------+
	//	| DNS_ERROR_INVALID_NAME_CHAR 0x00002558 | The Internet host name contains an invalid character.               |
	//	+----------------------------------------+---------------------------------------------------------------------+
	//
	// Unless otherwise noted, if the server encounters an error during message processing,
	// it SHOULD revert any state changes made, MUST stop message processing, and MUST return
	// the error to the caller.<102>
	AddAlternateComputerName(context.Context, *AddAlternateComputerNameRequest, ...dcerpc.CallOption) (*AddAlternateComputerNameResponse, error)

	// The NetrRemoveAlternateComputerName method removes an alternate name for a specified
	// server (2).<106>
	//
	// Return Values: When the message processing result matches the description in column
	// two of the following table, this method MUST return one of the following values ([MS-ERREF]
	// section 2.2).
	//
	//	+----------------------------------------+---------------------------------------------------------------------+
	//	|                                        |                                                                     |
	//	|               VALUE/CODE               |                               MEANING                               |
	//	|                                        |                                                                     |
	//	+----------------------------------------+---------------------------------------------------------------------+
	//	+----------------------------------------+---------------------------------------------------------------------+
	//	| NERR_Success 0x00000000                | The operation completed successfully.                               |
	//	+----------------------------------------+---------------------------------------------------------------------+
	//	| ERROR_ACCESS_DENIED 0x00000005         | Access is denied.                                                   |
	//	+----------------------------------------+---------------------------------------------------------------------+
	//	| ERROR_NOT_SUPPORTED 0x00000032         | This method is not supported by this server.                        |
	//	+----------------------------------------+---------------------------------------------------------------------+
	//	| ERROR_INVALID_PASSWORD 0x00000056      | The specified network password is not correct.                      |
	//	+----------------------------------------+---------------------------------------------------------------------+
	//	| ERROR_INVALID_PARAMETER 0x00000057     | One of the function parameters is not valid.                        |
	//	+----------------------------------------+---------------------------------------------------------------------+
	//	| ERROR_INVALID_NAME 0x0000007B          | An invalid name parameter is specified.                             |
	//	+----------------------------------------+---------------------------------------------------------------------+
	//	| ERROR_INVALID_FLAGS 0x000003EC         | The Reserved parameter contains an invalid value.                   |
	//	+----------------------------------------+---------------------------------------------------------------------+
	//	| ERROR_NOT_FOUND 0x00000490             | AlternateName was not found in the current list of alternate names. |
	//	+----------------------------------------+---------------------------------------------------------------------+
	//	| RPC_S_PROTSEQ_NOT_SUPPORTED 0x000006A7 | The RPC protocol sequence is not supported.                         |
	//	+----------------------------------------+---------------------------------------------------------------------+
	//	| RPC_S_CALL_IN_PROGRESS 0x000006FF      | A remote procedure call is already in progress.<108>                |
	//	+----------------------------------------+---------------------------------------------------------------------+
	//	| DNS_ERROR_INVALID_NAME_CHAR 0x00002558 | The Internet host name contains an invalid character.               |
	//	+----------------------------------------+---------------------------------------------------------------------+
	//
	// Any other return value MUST conform to the error code requirements in Protocol Details
	// (section 3).
	//
	// Unless otherwise noted, if the server encounters an error during message processing,
	// the server SHOULD revert any state changes made, MUST stop message processing, and
	// MUST return the error to the caller.<109>
	RemoveAlternateComputerName(context.Context, *RemoveAlternateComputerNameRequest, ...dcerpc.CallOption) (*RemoveAlternateComputerNameResponse, error)

	// The NetrSetPrimaryComputerName method sets the primary computer name for a specified
	// server (2).<113>
	//
	// Return Values: When the message processing result matches the description in column
	// two of the following table, this method MUST return one of the following values ([MS-ERREF]
	// section 2.2).
	//
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	|                                        |                                                                                  |
	//	|               VALUE/CODE               |                                     MEANING                                      |
	//	|                                        |                                                                                  |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| NERR_Success 0x00000000                | The operation completed successfully.                                            |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| ERROR_ACCESS_DENIED 0x00000005         | Access is denied.                                                                |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| ERROR_NOT_SUPPORTED 0x00000032         | This method is not supported by this server.                                     |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| ERROR_INVALID_PASSWORD 0x00000056      | The specified network password is incorrect.                                     |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| ERROR_INVALID_PARAMETER 0x00000057     | The parameter is incorrect.                                                      |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x0000007B ERROR_INVALID_NAME          | An invalid name parameter is specified.                                          |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| ERROR_INVALID_FLAGS 0x000003EC         | Reserved contains an invalid value.                                              |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| RPC_S_PROTSEQ_NOT_SUPPORTED 0x000006A7 | The RPC protocol sequence is not supported.                                      |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| RPC_S_CALL_IN_PROGRESS 0x000006FF      | A remote procedure call is already in progress.<115>                             |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| NERR_DefaultJoinRequired 0x00000A86    | The destination domain controller does not support creating machine accounts in  |
	//	|                                        | OUs.                                                                             |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| DNS_ERROR_INVALID_NAME_CHAR 0x00002558 | The Internet host name contains an invalid character.                            |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//
	// Any other return value MUST conform to the error code requirements in Protocol Details
	// (section 3).
	//
	// Unless otherwise noted, if the server encounters an error during message processing,
	// the server SHOULD revert any state changes made, MUST stop message processing, and
	// MUST return the error to the caller.<116>
	SetPrimaryComputerName(context.Context, *SetPrimaryComputerNameRequest, ...dcerpc.CallOption) (*SetPrimaryComputerNameResponse, error)

	// The NetrEnumerateComputerNames method returns a list of computer names for a specified
	// server (2). The results of the query are determined by the type of the name. <120>
	//
	// Return Values: When the message processing result meets the description in column
	// two of the following table, this method MUST return one of the following values ([MS-ERREF]
	// section 2.2).
	//
	//	+----------------------------------------+----------------------------------------------------------+
	//	|                                        |                                                          |
	//	|               VALUE/CODE               |                         MEANING                          |
	//	|                                        |                                                          |
	//	+----------------------------------------+----------------------------------------------------------+
	//	+----------------------------------------+----------------------------------------------------------+
	//	| NERR_Success 0x00000000                | The operation completed successfully.                    |
	//	+----------------------------------------+----------------------------------------------------------+
	//	| ERROR_ACCESS_DENIED 0x00000005         | Access is denied.                                        |
	//	+----------------------------------------+----------------------------------------------------------+
	//	| ERROR_NOT_ENOUGH_MEMORY 0x00000008     | Not enough storage is available to process this command. |
	//	+----------------------------------------+----------------------------------------------------------+
	//	| ERROR_INVALID_PARAMETER 0x00000057     | The parameter is incorrect.                              |
	//	+----------------------------------------+----------------------------------------------------------+
	//	| ERROR_NOT_SUPPORTED 0x00000032         | This method is not supported by this server.             |
	//	+----------------------------------------+----------------------------------------------------------+
	//	| ERROR_INVALID_FLAGS 0x000003EC         | Reserved contains an invalid value.                      |
	//	+----------------------------------------+----------------------------------------------------------+
	//	| RPC_S_PROTSEQ_NOT_SUPPORTED 0x000006A7 | The RPC protocol sequence is not supported.              |
	//	+----------------------------------------+----------------------------------------------------------+
	//	| RPC_S_CALL_IN_PROGRESS 0x000006FF      | A remote procedure call is already in progress.          |
	//	+----------------------------------------+----------------------------------------------------------+
	//
	// Any other return value MUST conform to the error code requirements in Protocol Details
	// (section 3).
	EnumerateComputerNames(context.Context, *EnumerateComputerNamesRequest, ...dcerpc.CallOption) (*EnumerateComputerNamesResponse, error)

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

wkssvc interface.

func NewWkssvcClient

func NewWkssvcClient(ctx context.Context, cc dcerpc.Conn, opts ...dcerpc.Option) (WkssvcClient, error)

type WkssvcServer

type WkssvcServer interface {

	// The NetrWkstaGetInfo method returns details about the configuration of a remote computer,
	// including the computer name and major and minor version numbers of the operating
	// system.
	//
	// Return Values: When the message processing result meets the description in column
	// two of the following table, this method MUST return one of the following values ([MS-ERREF]
	// section 2.2).
	//
	//	+--------------------------------+--------------------------------------------------------------------+
	//	|                                |                                                                    |
	//	|           VALUE/CODE           |                              MEANING                               |
	//	|                                |                                                                    |
	//	+--------------------------------+--------------------------------------------------------------------+
	//	+--------------------------------+--------------------------------------------------------------------+
	//	| NERR_Success 0x00000000        | The operation completed successfully.                              |
	//	+--------------------------------+--------------------------------------------------------------------+
	//	| ERROR_ACCESS_DENIED 0x00000005 | The caller does not have the permissions to perform the operation. |
	//	+--------------------------------+--------------------------------------------------------------------+
	//	| ERROR_INVALID_LEVEL 0x0000007C | The information level is invalid.                                  |
	//	+--------------------------------+--------------------------------------------------------------------+
	GetInfo(context.Context, *GetInfoRequest) (*GetInfoResponse, error)

	// The NetrWkstaSetInfo method configures a remote computer according to the information
	// structure passed in the call.
	//
	// Return Values: When the message processing result meets the description in column
	// two of the following table, this method MUST return one of the following values ([MS-ERREF]
	// section 2.2).
	//
	//	+------------------------------------+----------------------------------------------+
	//	|                                    |                                              |
	//	|             VALUE/CODE             |                   MEANING                    |
	//	|                                    |                                              |
	//	+------------------------------------+----------------------------------------------+
	//	+------------------------------------+----------------------------------------------+
	//	| NERR_Success 0x00000000            | The operation completed successfully.        |
	//	+------------------------------------+----------------------------------------------+
	//	| ERROR_ACCESS_DENIED 0x00000005     | Access is denied.                            |
	//	+------------------------------------+----------------------------------------------+
	//	| ERROR_INVALID_PARAMETER 0x00000057 | One of the function parameters is not valid. |
	//	+------------------------------------+----------------------------------------------+
	//
	// Any other return value MUST conform to the error code requirements in Protocol Details
	// (section 3).
	//
	// If the Level parameter value is not valid, the server MUST fail the call as follows.
	//
	// Note  All value ranges are inclusive.
	//
	//	+----------------------------------------------------------------------------------+---------------------------------------------------+
	//	|                                  INVALID LEVEL                                   |                      FAILURE                      |
	//	|                                      VALUE                                       |                    PROCESSING                     |
	//	+----------------------------------------------------------------------------------+---------------------------------------------------+
	//	+----------------------------------------------------------------------------------+---------------------------------------------------+
	//	| 0x00000000--0x000001F5, 0x000001F7--0x000003F4, 0x000003F6--0x000003F9,          | The server SHOULD return ERROR_INVALID_LEVEL.<31> |
	//	| 0x000003FB--0x00000415 0x00000417--0xFFFFFFFF                                    |                                                   |
	//	+----------------------------------------------------------------------------------+---------------------------------------------------+
	//
	// Otherwise, if the Level parameter equals 0x000001F6, the server MUST store values
	// from the WKSTA_INFO_502 structure WkstaInfo502 member (section 2.2.4.1) specified
	// by the WkstaInfo parameter into elements of the ADM (section 3.2.1) as follows:
	//
	// * *wki502_keep_conn* stored in *Keep_Connection*
	//
	// * *wki502_max_cmds* stored in *Max_Commands*
	//
	// * *wki502_sess_timeout* stored in *Session_TimeOut*
	//
	// * *wki502_dormant_file_limit* stored in *DormantFileLimit*
	//
	// If the Level parameter equals 0x000003F5, the server MUST store values from the WKSTA_INFO_1013
	// structure WkstaInfo1013 member (section 2.2.4.1) of the WkstaInfo parameter into
	// elements of the ADM, as follows:
	//
	// * *wki1013_keep_conn* stored in *Keep_Connection*.
	//
	// If the Level parameter equals 0x000003FA, the server MUST store values from the WKSTA_INFO_1018
	// structure WkstaInfo1018 member (section 2.2.4.1) of the WkstaInfo parameter into
	// elements of the ADM, as follows:
	//
	// * *wki1018_sess_timeout* stored in *Session_TimeOut*.
	//
	// If the Level parameter equals 0x00000416, the server MUST store values from the WKSTA_INFO_1046
	// structure WkstaInfo1046 member (section 2.2.4.1) of the WkstaInfo parameter into
	// elements of the ADM, as follows:
	//
	// * *wki1046_dormant_file_limit* stored in *DormantFileLimit*.
	SetInfo(context.Context, *SetInfoRequest) (*SetInfoResponse, error)

	// The NetrWkstaUserEnum method returns details about users who are currently active
	// on a remote computer.
	//
	// Return Values: When the message processing result matches the description in column
	// two of the following table, this method MUST return one of the following values ([MS-ERREF]
	// section 2.2). The most common error codes are listed in the following table.
	//
	//	+--------------------------------+----------------------------------------------------------------------------------+
	//	|                                |                                                                                  |
	//	|           VALUE/CODE           |                                     MEANING                                      |
	//	|                                |                                                                                  |
	//	+--------------------------------+----------------------------------------------------------------------------------+
	//	+--------------------------------+----------------------------------------------------------------------------------+
	//	| NERR_Success 0x00000000        | The operation completed successfully.                                            |
	//	+--------------------------------+----------------------------------------------------------------------------------+
	//	| ERROR_ACCESS_DENIED 0x00000005 | Access is denied.                                                                |
	//	+--------------------------------+----------------------------------------------------------------------------------+
	//	| ERROR_INVALID_LEVEL 0x0000007C | The information level is invalid.                                                |
	//	+--------------------------------+----------------------------------------------------------------------------------+
	//	| ERROR_MORE_DATA 0x000000EA     | More entries are available. The UserInfo buffer was not large enough to contain  |
	//	|                                | all the entries.                                                                 |
	//	+--------------------------------+----------------------------------------------------------------------------------+
	//
	// Any other return value MUST conform to the error code requirements in Protocol Details
	// (section 3).
	//
	// The server (2) SHOULD<35> enforce security measures to verify that the caller has
	// the required permissions to execute this routine. If the server enforces security
	// measures, and the caller does not have the required credentials, the server MUST
	// fail the call with ERROR_ACCESS_DENIED. Specifications for determining the identity
	// of the caller for the purpose of performing an access check are in [MS-RPCE] section
	// 3.3.3.1.3.
	//
	// If the Level member of the WKSTA_USER_ENUM_STRUCT structure passed in the UserInfo
	// parameter does not equal 0x00000000 or 0x00000001, the server MUST fail the call.
	//
	// If the Level member equals 0x00000000, the server MUST return an array of the names
	// of users currently logged on the computer by filling the WKSTA_USER_INFO_0_CONTAINER
	// structure (section 2.2.5.14) in the WkstaUserInfo field of the UserInfo parameter.
	//
	// If the Level member equals 0x00000001, the server MUST return an array of the names
	// and domain details of each user currently logged on the computer, and a list of OtherDomains
	// (section 3.2.1.3) in the computer.
	//
	// If the PreferredMaximumLength parameter equals MAX_PREFERRED_LENGTH (section 2.2.1.3),
	// the server MUST return all the requested data. Otherwise, if the PreferredMaximumLength
	// is insufficient to hold all the entries, then the server MUST return the maximum
	// number of entries that fit in the UserInfo buffer and return ERROR_MORE_DATA.
	//
	// The following rules specify processing of the ResumeHandle parameter:
	//
	// * If the ResumeHandle parameter is either NULL or points to 0x00000000, the enumeration
	// MUST start from the beginning of the list of the currently logged on users. <36>
	// ( def80006-2495-4571-8a93-1668e0f8af31#Appendix_A_36 )
	//
	// * If the ResumeHandle parameter points to a non-zero value, the server MUST continue
	// enumeration based on the value of ResumeHandle. The server is not required to maintain
	// any state between calls to the NetrWkstaUserEnum method.
	//
	// * If the client specifies a ResumeHandle , and if the server returns ERROR_MORE_DATA,
	// the server MUST set the value to which ResumeHandle points to an implementation-specific
	// value that allow the server to continue with this enumeration on a subsequent call
	// to this method, with the same value for ResumeHandle.
	//
	// The server is not required to maintain any state between calls to the NetrWkstaUserEnum
	// method. If the server returns NERR_Success or ERROR_MORE_DATA, it MUST set the TotalEntries
	// parameter to equal the total number of entries that could have been enumerated from
	// the current resume position.
	UserEnum(context.Context, *UserEnumRequest) (*UserEnumResponse, error)

	// The NetrWkstaTransportEnum method provides details about the transport protocols
	// currently enabled for use by the SMB network redirector on a remote computer.
	//
	// Return Values: When the message processing result matches the description in column
	// two of the following table, this method MUST return one of the following values ([MS-ERREF]
	// section 2.2).
	//
	//	+--------------------------------+----------------------------------------------------------------------------------+
	//	|                                |                                                                                  |
	//	|           VALUE/CODE           |                                     MEANING                                      |
	//	|                                |                                                                                  |
	//	+--------------------------------+----------------------------------------------------------------------------------+
	//	+--------------------------------+----------------------------------------------------------------------------------+
	//	| NERR_Success 0x00000000        | The operation completed successfully.                                            |
	//	+--------------------------------+----------------------------------------------------------------------------------+
	//	| ERROR_ACCESS_DENIED 0x00000005 | Access is denied.                                                                |
	//	+--------------------------------+----------------------------------------------------------------------------------+
	//	| ERROR_INVALID_LEVEL 0x0000007C | The information level is invalid.                                                |
	//	+--------------------------------+----------------------------------------------------------------------------------+
	//	| NERR_BufTooSmall 0x0000084B    | More entries are available. The TransportInfo buffer was not large enough to     |
	//	|                                | contain all the entries.                                                         |
	//	+--------------------------------+----------------------------------------------------------------------------------+
	//
	// Any other return value MUST conform to the error code requirements in Protocol Details
	// (section 3).
	//
	// The server SHOULD<38> enforce security measures to verify that the caller has the
	// required permissions to execute this routine. If the server enforces security measures,
	// and the caller does not have the required credentials, the server MUST fail the call
	// with ERROR_ACCESS_DENIED. Specifications for determining the identity of the caller
	// for the purpose of performing an access check are in [MS-RPCE] section 3.3.3.1.3.
	//
	// For any other conditions, this method MUST return any other value, and the client
	// MUST treat all other values the same.
	//
	// If the Level member in the WKSTA_TRANSPORT_ENUM_STRUCT structure passed in the TransportInfo
	// parameter does not equal 0x00000000, the server MUST fail the call.
	//
	// If the Level member is 0x00000000, the server MUST return an array of details about
	// the transport protocols currently enabled for use by the SMB network redirector by
	// filling the WKSTA_TRANSPORT_INFO_0_CONTAINER structure WkstaTransportInfo member
	// (section 2.2.5.15) of the TransportInfo parameter for each transport in TransportList
	// (section 3.2.1.4), as follows:
	//
	// * *wkti0_transport_address* set to *Transport.Address*
	//
	// * *wkti0_transport_name* set to *Transport.Name*
	//
	// * *wkti0_number_of_vcs* set to *Transport.VC_Count*
	//
	// * *wkti0_wan_ish* set to *Transport.Wannish*
	//
	// If the PreferredMaximumLength parameter equals MAX_PREFERRED_LENGTH (section 2.2.1.3),
	// the server MUST return all the requested data. If the PreferredMaximumLength is insufficient
	// to hold all the entries, the server MUST return the maximum number of entries that
	// fit in the TransportInfo buffer and return NERR_BufTooSmall.
	//
	// The following rules specify processing of the ResumeHandle parameter:
	//
	// * If the ResumeHandle parameter is either NULL or points to 0x00000000, the enumeration
	// MUST start from the beginning of the list of the currently enabled transport protocols.
	// <39> ( def80006-2495-4571-8a93-1668e0f8af31#Appendix_A_39 )
	//
	// * If the ResumeHandle parameter is nonzero, the server MUST begin enumeration based
	// on the value of ResumeHandle. The server is not required to maintain any state between
	// calls invoking the *NetrWkstaTransportEnum* method.
	//
	// * If the client specified a ResumeHandle , and if the server returns NERR_BufTooSmall,
	// the server MUST set ResumeHandle to an implementation-specific value that allows
	// the server to continue with this enumeration on a subsequent call to this method,
	// using the same value for ResumeHandle.
	//
	// The server is not required to maintain any state between calls to the NetrWkstaTransportEnum
	// method. If the server returns NERR_Success, it MUST set the TotalEntries parameter
	// to equal the total number of entries that could have been enumerated from the current
	// resume position. If the server returns NERR_BufTooSmall, it SHOULD set the TotalEntries
	// value to the total number of entries that could have been enumerated from the current
	// resume position.<40>
	TransportEnum(context.Context, *TransportEnumRequest) (*TransportEnumResponse, error)

	// The NetrWkstaTransportAdd method enables the SMB network redirector to use a transport
	// protocol on a remote computer.
	//
	// Return Values: When the message processing result meets the description in column
	// two of the following table, this method MUST return one of the following values ([MS-ERREF]
	// section 2.2).
	//
	//	+------------------------------------+----------------------------------------------+
	//	|                                    |                                              |
	//	|             VALUE/CODE             |                   MEANING                    |
	//	|                                    |                                              |
	//	+------------------------------------+----------------------------------------------+
	//	+------------------------------------+----------------------------------------------+
	//	| NERR_Success 0x00000000            | The operation completed successfully.        |
	//	+------------------------------------+----------------------------------------------+
	//	| ERROR_ACCESS_DENIED 0x00000005     | Access is denied.                            |
	//	+------------------------------------+----------------------------------------------+
	//	| ERROR_INVALID_PARAMETER 0x00000057 | One of the function parameters is not valid. |
	//	+------------------------------------+----------------------------------------------+
	//	| ERROR_INVALID_LEVEL 0x0000007C     | The information level is invalid.            |
	//	+------------------------------------+----------------------------------------------+
	//
	// Any other return value MUST conform to the error code requirements in Protocol Details
	// (section 3).
	//
	// If the Level parameter is not equal to zero, the server MUST fail the call and return
	// ERROR_INVALID_LEVEL.
	//
	// If the server does not support this method then it SHOULD be processed as follows.
	//
	// If any of the input parameters are invalid, the server SHOULD return ERROR_INVALID_PARAMETER.
	// Otherwise, it SHOULD<41> return NERR_Success.
	//
	// The server SHOULD<42> enforce security measures to verify that the caller has authorization
	// to execute this routine. If the server enforces security measures and the caller
	// does not have the required credentials, the server SHOULD fail the call with ERROR_ACCESS_DENIED.
	// Specifications for determining the identity of the caller for the purpose of performing
	// an access check are in [MS-RPCE] section 3.3.3.1.3.
	//
	// The TransportInfo parameter specifies details about the transport protocol that is
	// to be enabled. If any of the input parameters are invalid, the server MUST return
	// ERROR_INVALID_PARAMETER. If the caller has passed the ErrorParameter parameter, the
	// server MUST return the zero-based index of the first member of the structure the
	// TransportInfo parameter points to that was invalid.
	//
	// If this method call is successful, the server MUST store values from members of the
	// WKSTA_TRANSPORT_INFO_0 structure passed in the TransportInfo parameter into the ADM
	// elements for each transport in TransportList (section 3.2.1.4) as follows:
	//
	// * *wkti0_transport_address* stored in *Transport.Address*
	//
	// * *wkti0_transport_name* stored in *Transport.Name*
	//
	// * *wkti0_number_of_vcs* stored in *Transport.VC_Count*
	//
	// * *wkti0_wan_ish* stored in *Transport.Wannish*
	TransportAdd(context.Context, *TransportAddRequest) (*TransportAddResponse, error)

	// The NetrWkstaTransportDel method disables the use of a transport protocol by the
	// SMB network redirector on a remote computer. The transport can be re-enabled by calling
	// the NetrWkstaTransportAdd method (section 3.2.4.5).
	//
	// Return Values: When the message processing result meets the description in column
	// two of the following table, this method MUST return one of the following values ([MS-ERREF]
	// section 2.2).
	//
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	|                                    |                                                                                  |
	//	|             VALUE/CODE             |                                     MEANING                                      |
	//	|                                    |                                                                                  |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| NERR_Success 0x00000000            | The operation completed successfully.                                            |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| ERROR_ACCESS_DENIED 0x00000005     | Access is denied.                                                                |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| ERROR_INVALID_PARAMETER 0x00000057 | One of the function parameters is invalid.                                       |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| ERROR_OPEN_FILES 0x00002401        | There are open files, or printer handles are using the transport protocol        |
	//	|                                    | pending on this connection.                                                      |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| ERROR_DEVICE_IN_USE 0x00002404     | The device or open directory handle is using the transport protocol and cannot   |
	//	|                                    | be disconnected.                                                                 |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//
	// If the ForceLevel parameter does not equal 0x00000000, 0x00000001, or 0x00000002,
	// the server MUST fail the call with ERROR_INVALID_PARAMETER. If the ForceLevel parameter
	// is 0x00000000 or 0x00000001 and any open directory handle is using the transport
	// protocol provided in the TransportName field, the server MUST fail the call with
	// ERROR_DEVICE_IN_USE. If the ForceLevel parameter is 0x00000000 or 0x00000001 and
	// any open files or printer handles are using the transport protocol provided in the
	// TransportName field, fail the call with ERROR_OPEN_FILES.
	//
	// If the server does not support this method, it SHOULD<43> return NERR_Success if
	// the ForceLevel parameter is valid. If the server does support this method, it MUST
	// be processed as follows.
	//
	// The server SHOULD<44> enforce security measures to verify that the caller has the
	// required permissions to execute this routine. If the server enforces security measures
	// and the caller does not have the required credentials, the server MUST fail the call
	// with ERROR_ACCESS_DENIED. Specifications for determining the identity of the caller
	// for the purpose of performing an access check are in ([MS-RPCE] section 3.3.3.1.3.
	//
	// If any open file or printer handles are using the transport protocol that this call
	// is trying to disable, the server behavior MUST depend on the value of the ForceLevel
	// parameter. If the ForceLevel parameter is 0x00000000 or 0x00000001, the server MUST
	// fail the call. If the ForceLevel parameter is 0x00000002, the server MUST forcefully
	// close all open handles and disable the transport protocol.
	//
	// If this method call is successful, the server MUST remove this protocol from its
	// list of currently enabled transport protocols.
	TransportDelete(context.Context, *TransportDeleteRequest) (*TransportDeleteResponse, error)

	// The NetrUseAdd method establishes a connection between the workstation server and
	// an SMB server. Workstation servers SHOULD NOT allow this method to be invoked remotely<45>
	// and SHOULD return ERROR_CALL_NOT_IMPLEMENTED.
	//
	// Return Values: When the message processing result meets the description in the right-hand
	// column of the following table, this method MUST return one of the following values
	// ([MS-ERREF] section 2.2).
	//
	//	+---------------------------------------+------------------------------------------------+
	//	|                                       |                                                |
	//	|              VALUE/CODE               |                    MEANING                     |
	//	|                                       |                                                |
	//	+---------------------------------------+------------------------------------------------+
	//	+---------------------------------------+------------------------------------------------+
	//	| NERR_Success 0x00000000               | The operation completed successfully.          |
	//	+---------------------------------------+------------------------------------------------+
	//	| ERROR_ACCESS_DENIED 0x00000005        | Access is denied.                              |
	//	+---------------------------------------+------------------------------------------------+
	//	| ERROR_INVALID_PARAMETER 0x00000057    | One of the function parameters is not valid.   |
	//	+---------------------------------------+------------------------------------------------+
	//	| ERROR_INVALID_LEVEL 0x0000007C        | The information level is invalid.              |
	//	+---------------------------------------+------------------------------------------------+
	//	| ERROR_CALL_NOT_IMPLEMENTED 0x00000078 | This function is not supported on this system. |
	//	+---------------------------------------+------------------------------------------------+
	//
	// The server SHOULD<46> enforce security measures to verify that the caller has the
	// required permissions to execute this routine. If the server enforces security measures
	// and the caller does not have the required credentials, the server SHOULD fail the
	// call with ERROR_ACCESS_DENIED. Specifications for determining the identity of the
	// caller for the purpose of performing an access check are in [MS-RPCE] section 3.3.3.1.3.
	//
	// The Level parameter determines the type of structure that the client has used to
	// specify details about the new connection. The value MUST be 0, 1, 2, or 3. If the
	// Level parameter is not equal to one of the valid values, the server MUST fail the
	// call with an ERROR_INVALID_LEVEL error code.
	//
	// * If the Level parameter is 0x00000000, the Buffer parameter points to a *USE_INFO_0*
	// structure.
	//
	// * If the Level parameter is 0x00000001, the Buffer parameter points to a *USE_INFO_1*
	// structure.
	//
	// * If the Level parameter is 0x00000002, the Buffer parameter points to a *USE_INFO_2*
	// structure.
	//
	// * If the Level parameter is 0x00000003, the Buffer parameter points to a *USE_INFO_3*
	// structure.
	UseAdd(context.Context, *UseAddRequest) (*UseAddResponse, error)

	// The NetrUseGetInfo method retrieves details from a remote workstation about a connection
	// to a shared resource on an SMB server. The server SHOULD NOT allow this method to
	// be invoked remotely<47> and SHOULD return ERROR_CALL_NOT_IMPLEMENTED.
	//
	// Return Values: When the message processing result meets the description in the right-hand
	// column of the following table, this method MUST return one of the following values
	// ([MS-ERREF] section 2.2).
	//
	//	+------------------------------------+----------------------------------------------+
	//	|                                    |                                              |
	//	|             VALUE/CODE             |                   MEANING                    |
	//	|                                    |                                              |
	//	+------------------------------------+----------------------------------------------+
	//	+------------------------------------+----------------------------------------------+
	//	| NERR_Success 0x00000000            | The operation completed successfully.        |
	//	+------------------------------------+----------------------------------------------+
	//	| ERROR_ACCESS_DENIED 0x00000005     | Access is denied.                            |
	//	+------------------------------------+----------------------------------------------+
	//	| ERROR_INVALID_PARAMETER 0x00000057 | One of the function parameters is not valid. |
	//	+------------------------------------+----------------------------------------------+
	//	| ERROR_INVALID_LEVEL 0x0000007C     | The information level is invalid.            |
	//	+------------------------------------+----------------------------------------------+
	//	| NERR_UseNotFound 0x000008CA        | The network connection could not be found.   |
	//	+------------------------------------+----------------------------------------------+
	//
	// The server SHOULD<48> enforce security measures to verify that the caller has the
	// required permissions to execute this routine. If the server enforces security measures
	// and the caller does not have the required credentials, the server MUST fail the call
	// with ERROR_ACCESS_DENIED. Specifications for determining the identity of the caller
	// for the purpose of performing an access check are in [MS-RPCE] section 3.3.3.1.3.
	//
	// The UseName parameter specifies the local device name or shared resource name for
	// which to return information. The server MUST canonicalize UseName ([MS-SRVS] section
	// 3.1.4.33). This MUST be a nonempty, null-terminated UTF-16 string; otherwise, the
	// server MUST fail the call with an ERROR_INVALID_PARAMETER error code.
	UseGetInfo(context.Context, *UseGetInfoRequest) (*UseGetInfoResponse, error)

	// The NetrUseDel function terminates a connection from the workstation server to a
	// shared resource on an SMB server. The server SHOULD NOT<49> allow this method to
	// be invoked remotely and SHOULD return ERROR_CALL_NOT_IMPLEMENTED.
	//
	// Return Values: When the message processing result meets the description in the right-hand
	// column of the following table, this method MUST return one of the following values
	// ([MS-ERREF] section 2.2).
	//
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	|                                    |                                                                                  |
	//	|             VALUE/CODE             |                                     MEANING                                      |
	//	|                                    |                                                                                  |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| NERR_Success 0x00000000            | The operation completed successfully.                                            |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| ERROR_ACCESS_DENIED 0x00000005     | Access is denied.                                                                |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| ERROR_INVALID_PARAMETER 0x00000057 | One of the function parameters is not valid.                                     |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| ERROR_INVALID_LEVEL 0x0000007C     | The force level is invalid.                                                      |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| ERROR_DEVICE_IN_USE 0x00002404     | The connection handle is in use and cannot be disconnected.                      |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| ERROR_REDIR_PAUSED 0x00000048      | Remote access to the specified printer or serial communications device has been  |
	//	|                                    | paused.                                                                          |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//
	// The server SHOULD<50> enforce security measures to verify that the caller has the
	// required permissions to execute this routine. If the server enforces security measures
	// and the caller does not have the required credentials, the server MUST fail the call
	// with ERROR_ACCESS_DENIED. Specifications for determining the identity of the caller
	// for the purpose of performing an access check are in [MS-RPCE] section 3.3.3.1.3.
	//
	// The UseName parameter specifies the local device name or shared resource name for
	// which to delete a tree connection. The server MUST canonicalize UseName ([MS-SRVS]
	// section 3.1.4.33). This MUST be a nonempty, null-terminated UTF-16 string; otherwise,
	// the server MUST fail the call with an ERROR_INVALID_PARAMETER error code.
	UseDelete(context.Context, *UseDeleteRequest) (*UseDeleteResponse, error)

	// The NetrUseEnum method lists open connections between a workstation server and a
	// remote SMB server. The server SHOULD NOT allow this method to be invoked remotely<51>
	// and SHOULD return ERROR_CALL_NOT_IMPLEMENTED.
	//
	// Return Values: The method returns 0x00000000 (NERR_Success) to indicate success;
	// otherwise, it returns a nonzero error code. The method can take any specific error
	// code value ([MS-ERREF] section 2.2). The most common error codes are listed in the
	// following table.
	//
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	|                                    |                                                                                  |
	//	|             VALUE/CODE             |                                     MEANING                                      |
	//	|                                    |                                                                                  |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| NERR_Success 0x00000000            | The client request succeeded.                                                    |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| ERROR_INVALID_LEVEL 0x0000007C     | The system call level is not correct.                                            |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| ERROR_MORE_DATA 0x000000EA         | The client request succeeded. More entries are available. Not all entries could  |
	//	|                                    | be returned in the buffer size that is specified by PreferredMaximumLength.      |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| ERROR_NOT_ENOUGH_MEMORY 0x00000008 | Not enough storage is available to process this command.                         |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| NERR_BufTooSmall 0x0000084B        | The client request succeeded. More entries are available. The buffer size that   |
	//	|                                    | is specified by PreferredMaximumLength was too small to fit even a single entry. |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//
	// The server SHOULD<52> enforce security measures to verify that the caller has the
	// required permissions to execute this routine. If the server enforces security measures
	// and the caller does not have the required credentials, the server MUST fail the call
	// with ERROR_ACCESS_DENIED. Specifications for determining the identity of the caller
	// for the purpose of performing an access check are in [MS-RPCE] section 3.3.3.1.3.
	//
	// The InfoStruct parameter has a Level member. The value of Level MUST be 0, 1, or
	// 2. If the Level member is not equal to one of the valid values, the server MUST fail
	// the call with an ERROR_INVALID_LEVEL error code.
	UseEnum(context.Context, *UseEnumRequest) (*UseEnumResponse, error)

	// The NetrWorkstationStatisticsGet method returns various statistics about the SMB
	// network redirector on a remote computer.
	//
	// Return Values: When the message processing result matches the description in column
	// two of the following table, this method MUST return one of the following values ([MS-ERREF]
	// section 2.2).
	//
	//	+------------------------------------+--------------------------------------------+
	//	|                                    |                                            |
	//	|             VALUE/CODE             |                  MEANING                   |
	//	|                                    |                                            |
	//	+------------------------------------+--------------------------------------------+
	//	+------------------------------------+--------------------------------------------+
	//	| NERR_Success 0x00000000            | The operation completed successfully.      |
	//	+------------------------------------+--------------------------------------------+
	//	| ERROR_ACCESS_DENIED 0x00000005     | Access is denied.                          |
	//	+------------------------------------+--------------------------------------------+
	//	| ERROR_INVALID_LEVEL 0x0000007C     | The information level is invalid.          |
	//	+------------------------------------+--------------------------------------------+
	//	| ERROR_INVALID_PARAMETER 0x00000057 | One of the function parameters is invalid. |
	//	+------------------------------------+--------------------------------------------+
	//
	// If the Level parameter does not equal 0x00000000, the server MUST fail the call and
	// return ERROR_INVALID_LEVEL.
	//
	// If the Options parameter does not equal 0x00000000, the server MUST fail the call
	// and return ERROR_INVALID_PARAMETER. The server SHOULD<54> enforce security measures
	// to verify that the caller has the required permissions to execute this routine. If
	// the server enforces security measures and the caller does not have the required credentials,
	// the server MUST fail the call and return ERROR_ACCESS_DENIED.
	WorkstationStatisticsGet(context.Context, *WorkstationStatisticsGetRequest) (*WorkstationStatisticsGetResponse, error)

	// The NetrGetJoinInformation method retrieves details about the workgroup or domain
	// to which the specified computer is joined.
	//
	// Return Values: When the message processing result meets the description in column
	// two of the following table, this method MUST return one of the following values ([MS-ERREF]
	// section 2.2).
	//
	//	+----------------------------------------+---------------------------------------------+
	//	|                                        |                                             |
	//	|               VALUE/CODE               |                   MEANING                   |
	//	|                                        |                                             |
	//	+----------------------------------------+---------------------------------------------+
	//	+----------------------------------------+---------------------------------------------+
	//	| NERR_Success 0x00000000                | The operation completed successfully.       |
	//	+----------------------------------------+---------------------------------------------+
	//	| ERROR_ACCESS_DENIED 0x00000005         | Access is denied.                           |
	//	+----------------------------------------+---------------------------------------------+
	//	| RPC_S_PROTSEQ_NOT_SUPPORTED 0x000006A7 | The RPC protocol sequence is not supported. |
	//	+----------------------------------------+---------------------------------------------+
	//
	// Any other return value MUST conform to the error code requirements in Protocol Details
	// (section 3).
	GetJoinInformation(context.Context, *GetJoinInformationRequest) (*GetJoinInformationResponse, error)

	// The NetrJoinDomain2 method uses encrypted credentials to join a computer to a domain
	// or a workgroup.<57>
	//
	// For high-level, informative discussions about domain controller location and domain
	// join and unjoin, see [MS-ADOD] sections 2.7.7 and 3.1. For more information, see
	// the example in section 4.3.
	//
	// Return Values: When the message processing result meets the description in column
	// two of the following table, this method MUST return one of the following values ([MS-ERREF]
	// section 2.2).
	//
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	|                                        |                                                                                  |
	//	|               VALUE/CODE               |                                     MEANING                                      |
	//	|                                        |                                                                                  |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| NERR_Success 0x00000000                | The operation completed successfully.                                            |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| ERROR_FILE_NOT_FOUND 0x00000002        | The object was not found.                                                        |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| ERROR_ACCESS_DENIED 0x00000005         | Access is denied.                                                                |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| ERROR_NOT_SUPPORTED 0x00000032         | The request is not supported.                                                    |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| ERROR_INVALID_PASSWORD 0x00000056      | The specified network password is not correct.                                   |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| ERROR_INVALID_PARAMETER 0x00000057     | The parameter is incorrect.                                                      |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| ERROR_PASSWORD_RESTRICTION 0x0000052D  | Unable to update the password. The value provided for the new password does not  |
	//	|                                        | meet the length, complexity, or history requirements of the domain.              |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| ERROR_LOGON_FAILURE 0x0000052E         | Logon failure: unknown user name or bad password.                                |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| ERROR_NONE_MAPPED 0x00000534           | The account was not found.                                                       |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| ERROR_INVALID_DOMAIN_ROLE 0x0000054A   | The name of a domain controller was provided in the DomainNameParam parameter,   |
	//	|                                        | and validation of that domain controller failed. Validation is specified in the  |
	//	|                                        | message-processing steps for the section "Domain Join" later.                    |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| ERROR_NO_SUCH_DOMAIN 0x0000054B        | The specified domain either does not exist or could not be contacted.            |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| RPC_S_PROTSEQ_NOT_SUPPORTED 0x000006A7 | The RPC protocol sequence is not supported.                                      |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| RPC_S_CALL_IN_PROGRESS 0x000006FF      | A remote procedure call is already in progress.<66>                              |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| NERR_UserExists 0x000008B0             | The user account already exists.                                                 |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| NERR_SetupAlreadyJoined 0x00000A83     | This computer is already joined to a domain.                                     |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| NERR_SetupDomainController 0x00000A85  | This computer is a domain controller and cannot be unjoined from a domain.       |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| NERR_InvalidWorkgroupName 0x00000A87   | The specified workgroup name is invalid.                                         |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//
	// Any other return value MUST conform to the error code requirements in Protocol Details
	// (section 3).
	JoinDomain2(context.Context, *JoinDomain2Request) (*JoinDomain2Response, error)

	// The NetrUnjoinDomain2 method uses encrypted credentials to unjoin a computer from
	// a workgroup or domain.<76>
	//
	// Return Values: When the message processing result meets the description in column
	// two of the following table, this method MUST return one of the following values ([MS-ERREF]
	// section 2.2).
	//
	//	+----------------------------------------+----------------------------------------------------------------------------+
	//	|                                        |                                                                            |
	//	|               VALUE/CODE               |                                  MEANING                                   |
	//	|                                        |                                                                            |
	//	+----------------------------------------+----------------------------------------------------------------------------+
	//	+----------------------------------------+----------------------------------------------------------------------------+
	//	| NERR_Success 0x00000000                | The operation completed successfully.                                      |
	//	+----------------------------------------+----------------------------------------------------------------------------+
	//	| ERROR_ACCESS_DENIED 0x00000005         | Access is denied.                                                          |
	//	+----------------------------------------+----------------------------------------------------------------------------+
	//	| ERROR_INVALID_PASSWORD 0x00000056      | The specified network password is not correct.                             |
	//	+----------------------------------------+----------------------------------------------------------------------------+
	//	| ERROR_INVALID_PARAMETER 0x00000057     | One of the function parameters is not valid.                               |
	//	+----------------------------------------+----------------------------------------------------------------------------+
	//	| ERROR_INVALID_FLAGS 0x000003EC         | Invalid option flags are specified.                                        |
	//	+----------------------------------------+----------------------------------------------------------------------------+
	//	| RPC_S_PROTSEQ_NOT_SUPPORTED 0x000006A7 | The RPC protocol sequence is not supported.                                |
	//	+----------------------------------------+----------------------------------------------------------------------------+
	//	| NERR_SetupNotJoined 0x00000A84         | This computer is not currently joined to a domain.                         |
	//	+----------------------------------------+----------------------------------------------------------------------------+
	//	| NERR_SetupDomainController 0x00000A85  | This computer is a domain controller and cannot be unjoined from a domain. |
	//	+----------------------------------------+----------------------------------------------------------------------------+
	//
	// Unless otherwise noted, if the server encounters an error during message processing,
	// the server SHOULD revert any state changes made, MUST stop message processing, and
	// MUST return the error to the caller.<78>
	UnjoinDomain2(context.Context, *UnjoinDomain2Request) (*UnjoinDomain2Response, error)

	// The NetrRenameMachineInDomain2 method uses encrypted credentials to change the locally
	// persisted variable ComputerNameNetBIOS (section 3.2.1.5) and to optionally rename
	// the computer account for a server currently in a domain, without first removing the
	// computer from the domain and then adding it back.<81>
	//
	// Return Values: When the message processing result meets the description in column
	// two of the following table, this method MUST return one of the following values ([MS-ERREF]
	// section 2.2).
	//
	//	+----------------------------------------+-----------------------------------------------------------------+
	//	|                                        |                                                                 |
	//	|               VALUE/CODE               |                             MEANING                             |
	//	|                                        |                                                                 |
	//	+----------------------------------------+-----------------------------------------------------------------+
	//	+----------------------------------------+-----------------------------------------------------------------+
	//	| NERR_Success 0x00000000                | The operation completed successfully.                           |
	//	+----------------------------------------+-----------------------------------------------------------------+
	//	| ERROR_ACCESS_DENIED 0x00000005         | Access is denied.                                               |
	//	+----------------------------------------+-----------------------------------------------------------------+
	//	| ERROR_NOT_SUPPORTED 0x00000032         | The request is not supported.                                   |
	//	+----------------------------------------+-----------------------------------------------------------------+
	//	| ERROR_INVALID_PASSWORD 0x00000056      | The specified network password is not correct.                  |
	//	+----------------------------------------+-----------------------------------------------------------------+
	//	| ERROR_INVALID_PARAMETER 0x00000057     | The parameter is incorrect.                                     |
	//	+----------------------------------------+-----------------------------------------------------------------+
	//	| RPC_S_PROTSEQ_NOT_SUPPORTED 0x000006A7 | The RPC protocol sequence is not supported.                     |
	//	+----------------------------------------+-----------------------------------------------------------------+
	//	| NERR_SetupNotJoined 0x00000A84         | This computer is not currently joined to a domain.              |
	//	+----------------------------------------+-----------------------------------------------------------------+
	//	| NERR_SetupDomainController 0x00000A85  | This computer is a domain controller and cannot be renamed.<82> |
	//	+----------------------------------------+-----------------------------------------------------------------+
	//
	// Any other return value MUST conform to the error code requirements in Protocol Details
	// (section 3).
	//
	// Unless otherwise noted, if the server encounters an error during message processing,
	// the server SHOULD revert any state changes made, MUST stop message processing, and
	// MUST return the error to the caller.<83>
	RenameMachineInDomain2(context.Context, *RenameMachineInDomain2Request) (*RenameMachineInDomain2Response, error)

	// The NetrValidateName2 method verifies the validity of a computer, workgroup, or domain
	// name (2).<87>
	//
	// Return Values: When the message processing result matches the description in column
	// 2 of the following table, this method MUST return one of the following values ([MS-ERREF]
	// section 2.2).
	//
	//	+----------------------------------------+---------------------------------------------------------------------------+
	//	|                                        |                                                                           |
	//	|               VALUE/CODE               |                                  MEANING                                  |
	//	|                                        |                                                                           |
	//	+----------------------------------------+---------------------------------------------------------------------------+
	//	+----------------------------------------+---------------------------------------------------------------------------+
	//	| NERR_Success 0x00000000                | The operation completed successfully.                                     |
	//	+----------------------------------------+---------------------------------------------------------------------------+
	//	| ERROR_ACCESS_DENIED 0x00000005         | Access is denied.                                                         |
	//	+----------------------------------------+---------------------------------------------------------------------------+
	//	| ERROR_DUP_NAME 0x00000034              | The connection was denied because a duplicate name exists on the network. |
	//	+----------------------------------------+---------------------------------------------------------------------------+
	//	| ERROR_INVALID_PASSWORD 0x00000056      | The specified network password is incorrect.                              |
	//	+----------------------------------------+---------------------------------------------------------------------------+
	//	| ERROR_INVALID_PARAMETER 0x00000057     | The parameter is incorrect.                                               |
	//	+----------------------------------------+---------------------------------------------------------------------------+
	//	| ERROR_INVALID_NAME 0x0000007B          | The file name, directory name, or volume label syntax is incorrect.       |
	//	+----------------------------------------+---------------------------------------------------------------------------+
	//	| ERROR_INVALID_DOMAINNAME 0x000004BC    | The format of the specified domain name (2) is invalid.                   |
	//	+----------------------------------------+---------------------------------------------------------------------------+
	//	| ERROR_NO_SUCH_DOMAIN 0x0000054B        | The specified domain either does not exist or could not be contacted.     |
	//	+----------------------------------------+---------------------------------------------------------------------------+
	//	| RPC_S_PROTSEQ_NOT_SUPPORTED 0x000006A7 | The RPC protocol sequence is not supported.                               |
	//	+----------------------------------------+---------------------------------------------------------------------------+
	//	| NERR_InvalidComputer 0x0000092F        | This computer name is invalid.                                            |
	//	+----------------------------------------+---------------------------------------------------------------------------+
	//	| NERR_InvalidWorkgroupName 0x00000A87   | The specified workgroup name is invalid.                                  |
	//	+----------------------------------------+---------------------------------------------------------------------------+
	//	| DNS_ERROR_NON_RFC_NAME 0x00002554      | The Internet host name does not comply with RFC specifications.           |
	//	+----------------------------------------+---------------------------------------------------------------------------+
	//	| DNS_ERROR_INVALID_NAME_CHAR 0x00002558 | The Internet host name contains an invalid character.                     |
	//	+----------------------------------------+---------------------------------------------------------------------------+
	//	| RPC_E_REMOTE_DISABLED 0x8001011C       | Remote calls are not allowed for this process.                            |
	//	+----------------------------------------+---------------------------------------------------------------------------+
	//
	// The following definition is used in the specification of message processing that
	// follows.
	//
	// * PasswordString : A Unicode ( 3acf0e02-9bbd-4ce0-a7a0-586bc72d3ef4#gt_c305d0ab-8b94-461a-bd76-13b40cb8c4d8
	// ) UTF-8 ( 3acf0e02-9bbd-4ce0-a7a0-586bc72d3ef4#gt_409411c4-b4ed-4ab6-b0ee-6d7815f85a35
	// ) string containing a password in cleartext ( 3acf0e02-9bbd-4ce0-a7a0-586bc72d3ef4#gt_f6e0fdd0-cbc1-4c9d-93b8-f25125f9c5ef
	// ).
	ValidateName2(context.Context, *ValidateName2Request) (*ValidateName2Response, error)

	// The NetrGetJoinableOUs2 method returns a list of organizational units (OUs) in which
	// the user can create an object.<94>
	//
	// Return Values: When the message processing result matches the description in column
	// two of the following table, this method MUST return one of the following values ([MS-ERREF]
	// section 2.2).
	//
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	|                                        |                                                                                  |
	//	|               VALUE/CODE               |                                     MEANING                                      |
	//	|                                        |                                                                                  |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| NERR_Success 0x00000000                | The operation completed successfully.                                            |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| ERROR_ACCESS_DENIED 0x00000005         | Access is denied.                                                                |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| ERROR_NOT_ENOUGH_MEMORY 0x00000008     | Not enough storage is available to process this command.                         |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| ERROR_INVALID_PARAMETER 0x00000057     | A parameter is incorrect.<95>                                                    |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| RPC_S_PROTSEQ_NOT_SUPPORTED 0x000006A7 | The RPC protocol sequence is not supported.                                      |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| NERR_InvalidAPI 0x0000085E             | The requested API is not supported on domain controllers.                        |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| NERR_DefaultJoinRequired 0x00000A86    | The destination domain controller does not support creating machine accounts in  |
	//	|                                        | OUs.                                                                             |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	GetJoinableOUs2(context.Context, *GetJoinableOUs2Request) (*GetJoinableOUs2Response, error)

	// The NetrAddAlternateComputerName method adds an alternate name for a specified server
	// (2).<99>
	//
	// Return Values: When the message processing result matches the description in column
	// two of the following table, this method MUST return one of the following values ([MS-ERREF]
	// section 2.2).
	//
	//	+----------------------------------------+---------------------------------------------------------------------+
	//	|                                        |                                                                     |
	//	|               VALUE/CODE               |                               MEANING                               |
	//	|                                        |                                                                     |
	//	+----------------------------------------+---------------------------------------------------------------------+
	//	+----------------------------------------+---------------------------------------------------------------------+
	//	| NERR_Success 0x00000000                | The operation completed successfully.                               |
	//	+----------------------------------------+---------------------------------------------------------------------+
	//	| ERROR_ACCESS_DENIED 0x00000005         | Access is denied.                                                   |
	//	+----------------------------------------+---------------------------------------------------------------------+
	//	| ERROR_NOT_SUPPORTED 0x00000032         | This method is not supported by this server.                        |
	//	+----------------------------------------+---------------------------------------------------------------------+
	//	| ERROR_INVALID_PASSWORD 0x00000056      | The specified network password is incorrect.                        |
	//	+----------------------------------------+---------------------------------------------------------------------+
	//	| ERROR_INVALID_PARAMETER 0x00000057     | One of the function parameters is not valid.                        |
	//	+----------------------------------------+---------------------------------------------------------------------+
	//	| ERROR_INVALID_NAME 0x0000007B          | The file name, directory name, or volume label syntax is incorrect. |
	//	+----------------------------------------+---------------------------------------------------------------------+
	//	| ERROR_INVALID_FLAGS 0x000003EC         | Reserved contains an invalid value.                                 |
	//	+----------------------------------------+---------------------------------------------------------------------+
	//	| RPC_S_PROTSEQ_NOT_SUPPORTED 0x000006A7 | The RPC protocol sequence is not supported.                         |
	//	+----------------------------------------+---------------------------------------------------------------------+
	//	| RPC_S_CALL_IN_PROGRESS 0x000006FF      | A remote procedure call is already in progress.<101>                |
	//	+----------------------------------------+---------------------------------------------------------------------+
	//	| DNS_ERROR_INVALID_NAME_CHAR 0x00002558 | The Internet host name contains an invalid character.               |
	//	+----------------------------------------+---------------------------------------------------------------------+
	//
	// Unless otherwise noted, if the server encounters an error during message processing,
	// it SHOULD revert any state changes made, MUST stop message processing, and MUST return
	// the error to the caller.<102>
	AddAlternateComputerName(context.Context, *AddAlternateComputerNameRequest) (*AddAlternateComputerNameResponse, error)

	// The NetrRemoveAlternateComputerName method removes an alternate name for a specified
	// server (2).<106>
	//
	// Return Values: When the message processing result matches the description in column
	// two of the following table, this method MUST return one of the following values ([MS-ERREF]
	// section 2.2).
	//
	//	+----------------------------------------+---------------------------------------------------------------------+
	//	|                                        |                                                                     |
	//	|               VALUE/CODE               |                               MEANING                               |
	//	|                                        |                                                                     |
	//	+----------------------------------------+---------------------------------------------------------------------+
	//	+----------------------------------------+---------------------------------------------------------------------+
	//	| NERR_Success 0x00000000                | The operation completed successfully.                               |
	//	+----------------------------------------+---------------------------------------------------------------------+
	//	| ERROR_ACCESS_DENIED 0x00000005         | Access is denied.                                                   |
	//	+----------------------------------------+---------------------------------------------------------------------+
	//	| ERROR_NOT_SUPPORTED 0x00000032         | This method is not supported by this server.                        |
	//	+----------------------------------------+---------------------------------------------------------------------+
	//	| ERROR_INVALID_PASSWORD 0x00000056      | The specified network password is not correct.                      |
	//	+----------------------------------------+---------------------------------------------------------------------+
	//	| ERROR_INVALID_PARAMETER 0x00000057     | One of the function parameters is not valid.                        |
	//	+----------------------------------------+---------------------------------------------------------------------+
	//	| ERROR_INVALID_NAME 0x0000007B          | An invalid name parameter is specified.                             |
	//	+----------------------------------------+---------------------------------------------------------------------+
	//	| ERROR_INVALID_FLAGS 0x000003EC         | The Reserved parameter contains an invalid value.                   |
	//	+----------------------------------------+---------------------------------------------------------------------+
	//	| ERROR_NOT_FOUND 0x00000490             | AlternateName was not found in the current list of alternate names. |
	//	+----------------------------------------+---------------------------------------------------------------------+
	//	| RPC_S_PROTSEQ_NOT_SUPPORTED 0x000006A7 | The RPC protocol sequence is not supported.                         |
	//	+----------------------------------------+---------------------------------------------------------------------+
	//	| RPC_S_CALL_IN_PROGRESS 0x000006FF      | A remote procedure call is already in progress.<108>                |
	//	+----------------------------------------+---------------------------------------------------------------------+
	//	| DNS_ERROR_INVALID_NAME_CHAR 0x00002558 | The Internet host name contains an invalid character.               |
	//	+----------------------------------------+---------------------------------------------------------------------+
	//
	// Any other return value MUST conform to the error code requirements in Protocol Details
	// (section 3).
	//
	// Unless otherwise noted, if the server encounters an error during message processing,
	// the server SHOULD revert any state changes made, MUST stop message processing, and
	// MUST return the error to the caller.<109>
	RemoveAlternateComputerName(context.Context, *RemoveAlternateComputerNameRequest) (*RemoveAlternateComputerNameResponse, error)

	// The NetrSetPrimaryComputerName method sets the primary computer name for a specified
	// server (2).<113>
	//
	// Return Values: When the message processing result matches the description in column
	// two of the following table, this method MUST return one of the following values ([MS-ERREF]
	// section 2.2).
	//
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	|                                        |                                                                                  |
	//	|               VALUE/CODE               |                                     MEANING                                      |
	//	|                                        |                                                                                  |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| NERR_Success 0x00000000                | The operation completed successfully.                                            |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| ERROR_ACCESS_DENIED 0x00000005         | Access is denied.                                                                |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| ERROR_NOT_SUPPORTED 0x00000032         | This method is not supported by this server.                                     |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| ERROR_INVALID_PASSWORD 0x00000056      | The specified network password is incorrect.                                     |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| ERROR_INVALID_PARAMETER 0x00000057     | The parameter is incorrect.                                                      |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x0000007B ERROR_INVALID_NAME          | An invalid name parameter is specified.                                          |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| ERROR_INVALID_FLAGS 0x000003EC         | Reserved contains an invalid value.                                              |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| RPC_S_PROTSEQ_NOT_SUPPORTED 0x000006A7 | The RPC protocol sequence is not supported.                                      |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| RPC_S_CALL_IN_PROGRESS 0x000006FF      | A remote procedure call is already in progress.<115>                             |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| NERR_DefaultJoinRequired 0x00000A86    | The destination domain controller does not support creating machine accounts in  |
	//	|                                        | OUs.                                                                             |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//	| DNS_ERROR_INVALID_NAME_CHAR 0x00002558 | The Internet host name contains an invalid character.                            |
	//	+----------------------------------------+----------------------------------------------------------------------------------+
	//
	// Any other return value MUST conform to the error code requirements in Protocol Details
	// (section 3).
	//
	// Unless otherwise noted, if the server encounters an error during message processing,
	// the server SHOULD revert any state changes made, MUST stop message processing, and
	// MUST return the error to the caller.<116>
	SetPrimaryComputerName(context.Context, *SetPrimaryComputerNameRequest) (*SetPrimaryComputerNameResponse, error)

	// The NetrEnumerateComputerNames method returns a list of computer names for a specified
	// server (2). The results of the query are determined by the type of the name. <120>
	//
	// Return Values: When the message processing result meets the description in column
	// two of the following table, this method MUST return one of the following values ([MS-ERREF]
	// section 2.2).
	//
	//	+----------------------------------------+----------------------------------------------------------+
	//	|                                        |                                                          |
	//	|               VALUE/CODE               |                         MEANING                          |
	//	|                                        |                                                          |
	//	+----------------------------------------+----------------------------------------------------------+
	//	+----------------------------------------+----------------------------------------------------------+
	//	| NERR_Success 0x00000000                | The operation completed successfully.                    |
	//	+----------------------------------------+----------------------------------------------------------+
	//	| ERROR_ACCESS_DENIED 0x00000005         | Access is denied.                                        |
	//	+----------------------------------------+----------------------------------------------------------+
	//	| ERROR_NOT_ENOUGH_MEMORY 0x00000008     | Not enough storage is available to process this command. |
	//	+----------------------------------------+----------------------------------------------------------+
	//	| ERROR_INVALID_PARAMETER 0x00000057     | The parameter is incorrect.                              |
	//	+----------------------------------------+----------------------------------------------------------+
	//	| ERROR_NOT_SUPPORTED 0x00000032         | This method is not supported by this server.             |
	//	+----------------------------------------+----------------------------------------------------------+
	//	| ERROR_INVALID_FLAGS 0x000003EC         | Reserved contains an invalid value.                      |
	//	+----------------------------------------+----------------------------------------------------------+
	//	| RPC_S_PROTSEQ_NOT_SUPPORTED 0x000006A7 | The RPC protocol sequence is not supported.              |
	//	+----------------------------------------+----------------------------------------------------------+
	//	| RPC_S_CALL_IN_PROGRESS 0x000006FF      | A remote procedure call is already in progress.          |
	//	+----------------------------------------+----------------------------------------------------------+
	//
	// Any other return value MUST conform to the error code requirements in Protocol Details
	// (section 3).
	EnumerateComputerNames(context.Context, *EnumerateComputerNamesRequest) (*EnumerateComputerNamesResponse, error)
}

wkssvc server interface.

type WorkstationInfo

type WorkstationInfo struct {
	// Types that are assignable to Value
	//
	// *WorkstationInfo_100
	// *WorkstationInfo_101
	// *WorkstationInfo_102
	// *WorkstationInfo_502
	// *WorkstationInfo_1013
	// *WorkstationInfo_1018
	// *WorkstationInfo_1046
	// *WorkstationInfo_DefaultWorkstationInfo
	Value is_WorkstationInfo `json:"value"`
}

WorkstationInfo structure represents WKSTA_INFO RPC union.

The WKSTA_INFO union specifies details about a computer. This union is used by the methods NetrWkstaGetInfo (section 3.2.4.1) and NetrWkstaSetInfo (section 3.2.4.2).

func (*WorkstationInfo) GetValue

func (o *WorkstationInfo) GetValue() any

func (*WorkstationInfo) MarshalUnionNDR

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

func (*WorkstationInfo) NDRSwitchValue

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

func (*WorkstationInfo) UnmarshalUnionNDR

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

type WorkstationInfo100

type WorkstationInfo100 struct {
	// wki100_platform_id: The type of operating system. This MUST be one of the following
	// values.
	//
	//	+------------+------------------------+
	//	|            |                        |
	//	|   VALUE    |        MEANING         |
	//	|            |                        |
	//	+------------+------------------------+
	//	+------------+------------------------+
	//	| 0x0000012C | DOS (300 decimal)      |
	//	+------------+------------------------+
	//	| 0x00000190 | OS2 (400 decimal)      |
	//	+------------+------------------------+
	//	| 0x000001F4 | Windows: (500 decimal) |
	//	+------------+------------------------+
	//	| 0x00000258 | OSF: (600 decimal)     |
	//	+------------+------------------------+
	//	| 0x000002BC | VMS: (700 decimal)     |
	//	+------------+------------------------+
	PlatformID uint32 `idl:"name:wki100_platform_id" json:"platform_id"`
	// wki100_computername: A null-terminated, Internet host name or NetBIOS name [RFC1001]
	// of the local computer.
	ComputerName string `idl:"name:wki100_computername;string" json:"computer_name"`
	// wki100_langroup: A null-terminated, fully qualified domain name (FQDN) (2) of the
	// domain to which the computer belongs.
	LANGroup string `idl:"name:wki100_langroup;string" json:"lan_group"`
	// wki100_ver_major: The major version number of the operating system running on the
	// computer.
	VerMajor uint32 `idl:"name:wki100_ver_major" json:"ver_major"`
	// wki100_ver_minor: The minor version number of the operating system running on the
	// computer.
	VerMinor uint32 `idl:"name:wki100_ver_minor" json:"ver_minor"`
}

WorkstationInfo100 structure represents WKSTA_INFO_100 RPC structure.

The WKSTA_INFO_100 structure specifies details about a computer environment, including platform-specific information, the names of the domain and local computer, and the operating system.

func (*WorkstationInfo100) MarshalNDR

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

func (*WorkstationInfo100) UnmarshalNDR

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

type WorkstationInfo101

type WorkstationInfo101 struct {
	// wki101_platform_id: The type of operating system (section 2.2.5.1).
	PlatformID uint32 `idl:"name:wki101_platform_id" json:"platform_id"`
	// wki101_computername: A null-terminated, Internet host name or NetBIOS name [RFC1001]
	// of the local computer.
	ComputerName string `idl:"name:wki101_computername;string" json:"computer_name"`
	// wki101_langroup: A null-terminated, fully qualified domain name (FQDN) (2) of the
	// domain to which the computer belongs.
	LANGroup string `idl:"name:wki101_langroup;string" json:"lan_group"`
	// wki101_ver_major: The major version number of the operating system running on the
	// computer.
	VerMajor uint32 `idl:"name:wki101_ver_major" json:"ver_major"`
	// wki101_ver_minor: The minor version number of the operating system running on the
	// computer.
	VerMinor uint32 `idl:"name:wki101_ver_minor" json:"ver_minor"`
	// wki101_lanroot: A value that is not used and MUST be returned as NULL by the server
	// (2).
	LANRoot string `idl:"name:wki101_lanroot;string" json:"lan_root"`
}

WorkstationInfo101 structure represents WKSTA_INFO_101 RPC structure.

The WKSTA_INFO_101 structure specifies details about a computer environment, including platform-specific information, the names of the domain and local computer, and the operating system.

func (*WorkstationInfo101) MarshalNDR

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

func (*WorkstationInfo101) UnmarshalNDR

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

type WorkstationInfo1013

type WorkstationInfo1013 struct {
	// wki1013_keep_conn: The number of seconds the SMB network redirector maintains an
	// inactive SMB connection to a remote computer’s resource before closing it.
	KeepConn uint32 `idl:"name:wki1013_keep_conn" json:"keep_conn"`
}

WorkstationInfo1013 structure represents WKSTA_INFO_1013 RPC structure.

The WKSTA_INFO_1013 structure specifies details about the state of the SMB network redirector.

func (*WorkstationInfo1013) MarshalNDR

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

func (*WorkstationInfo1013) UnmarshalNDR

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

type WorkstationInfo1018

type WorkstationInfo1018 struct {
	// wki1018_sess_timeout: The number of seconds the server (2) MUST wait before disconnecting
	// an inactive session.
	SessTimeout uint32 `idl:"name:wki1018_sess_timeout" json:"sess_timeout"`
}

WorkstationInfo1018 structure represents WKSTA_INFO_1018 RPC structure.

The WKSTA_INFO_1018 structure specifies details about the state of the SMB network redirector.

func (*WorkstationInfo1018) MarshalNDR

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

func (*WorkstationInfo1018) UnmarshalNDR

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

type WorkstationInfo102

type WorkstationInfo102 struct {
	// wki102_platform_id: The type of operating system (section 2.2.5.1).
	PlatformID uint32 `idl:"name:wki102_platform_id" json:"platform_id"`
	// wki102_computername: A null-terminated, Internet host name or NetBIOS name [RFC1001]
	// of the local computer.
	ComputerName string `idl:"name:wki102_computername;string" json:"computer_name"`
	// wki102_langroup: A null-terminated, fully qualified domain name (FQDN) (2) of the
	// domain to which the computer belongs.
	LANGroup string `idl:"name:wki102_langroup;string" json:"lan_group"`
	// wki102_ver_major: The major version number of the operating system running on the
	// computer.
	VerMajor uint32 `idl:"name:wki102_ver_major" json:"ver_major"`
	// wki102_ver_minor: The minor version number of the operating system running on the
	// computer.
	VerMinor uint32 `idl:"name:wki102_ver_minor" json:"ver_minor"`
	// wki102_lanroot: A value that is not used and MUST be returned as NULL by the server
	// (2).
	LANRoot string `idl:"name:wki102_lanroot;string" json:"lan_root"`
	// wki102_logged_on_users: The number of users who are currently active on the computer.
	LoggedOnUsers uint32 `idl:"name:wki102_logged_on_users" json:"logged_on_users"`
}

WorkstationInfo102 structure represents WKSTA_INFO_102 RPC structure.

The WKSTA_INFO_102 structure specifies details about a computer environment, including platform-specific information, the names of the domain and local computer, the operating system, and the logged-on users.

func (*WorkstationInfo102) MarshalNDR

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

func (*WorkstationInfo102) UnmarshalNDR

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

type WorkstationInfo1046

type WorkstationInfo1046 struct {
	// wki1046_dormant_file_limit: The maximum number of file or printer handles the SMB
	// network redirector can continue to keep open, even after the application has closed
	// the corresponding handle.
	DormantFileLimit uint32 `idl:"name:wki1046_dormant_file_limit" json:"dormant_file_limit"`
}

WorkstationInfo1046 structure represents WKSTA_INFO_1046 RPC structure.

The WKSTA_INFO_1046 structure specifies details about the state of the SMB network redirector.

func (*WorkstationInfo1046) MarshalNDR

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

func (*WorkstationInfo1046) UnmarshalNDR

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

type WorkstationInfo502

type WorkstationInfo502 struct {
	// wki502_char_wait: Any value when sent, and MUST be ignored on receipt.
	CharWait uint32 `idl:"name:wki502_char_wait" json:"char_wait"`
	// wki502_collection_time: Any value when sent, and MUST be ignored on receipt.
	CollectionTime uint32 `idl:"name:wki502_collection_time" json:"collection_time"`
	// wki502_maximum_collection_count: Any value when sent, and MUST be ignored on receipt.
	MaximumCollectionCount uint32 `idl:"name:wki502_maximum_collection_count" json:"maximum_collection_count"`
	// wki502_keep_conn: The number of seconds the SMB network redirector maintains an inactive
	// SMB connection to a remote computer’s resource before closing it.
	KeepConn uint32 `idl:"name:wki502_keep_conn" json:"keep_conn"`
	// wki502_max_cmds: The number of simultaneous network commands that can be sent to
	// the SMB network redirector.
	MaxCmds uint32 `idl:"name:wki502_max_cmds" json:"max_cmds"`
	// wki502_sess_timeout: The number of seconds the server (2) waits before disconnecting
	// an inactive session.
	SessTimeout uint32 `idl:"name:wki502_sess_timeout" json:"sess_timeout"`
	// wki502_siz_char_buf: Any value when sent, and MUST be ignored on receipt.
	SizCharBuffer uint32 `idl:"name:wki502_siz_char_buf" json:"siz_char_buffer"`
	// wki502_max_threads: Any value when sent, and MUST be ignored on receipt.
	MaxThreads uint32 `idl:"name:wki502_max_threads" json:"max_threads"`
	// wki502_lock_quota: Any value when sent, and MUST be ignored on receipt.
	LockQuota uint32 `idl:"name:wki502_lock_quota" json:"lock_quota"`
	// wki502_lock_increment: Any value when sent, and MUST be ignored on receipt.
	LockIncrement uint32 `idl:"name:wki502_lock_increment" json:"lock_increment"`
	// wki502_lock_maximum: Any value when sent, and MUST be ignored on receipt.
	LockMaximum uint32 `idl:"name:wki502_lock_maximum" json:"lock_maximum"`
	// wki502_pipe_increment: Any value when sent, and MUST be ignored on receipt.
	PipeIncrement uint32 `idl:"name:wki502_pipe_increment" json:"pipe_increment"`
	// wki502_pipe_maximum: Any value when sent, and MUST be ignored on receipt.
	PipeMaximum uint32 `idl:"name:wki502_pipe_maximum" json:"pipe_maximum"`
	// wki502_cache_file_timeout:  Any value when sent, and MUST be ignored on receipt.
	CacheFileTimeout uint32 `idl:"name:wki502_cache_file_timeout" json:"cache_file_timeout"`
	// wki502_dormant_file_limit: The maximum number of file or printer handles the SMB
	// network redirector can continue to keep open, even after the application has closed
	// the corresponding handle.
	DormantFileLimit uint32 `idl:"name:wki502_dormant_file_limit" json:"dormant_file_limit"`
	// wki502_read_ahead_throughput: Any value when sent, and MUST be ignored on receipt.
	ReadAheadThroughput uint32 `idl:"name:wki502_read_ahead_throughput" json:"read_ahead_throughput"`
	// wki502_num_mailslot_buffers: Any value when sent, and MUST be ignored on receipt.
	NumMailslotBuffers uint32 `idl:"name:wki502_num_mailslot_buffers" json:"num_mailslot_buffers"`
	// wki502_num_srv_announce_buffers: Any value when sent, and MUST be ignored on receipt.
	NumServerAnnounceBuffers uint32 `idl:"name:wki502_num_srv_announce_buffers" json:"num_server_announce_buffers"`
	// wki502_max_illegal_datagram_events: Any value when sent, and MUST be ignored on receipt.
	MaxIllegalDatagramEvents uint32 `idl:"name:wki502_max_illegal_datagram_events" json:"max_illegal_datagram_events"`
	// wki502_illegal_datagram_event_reset_frequency: Any value when sent, and MUST be ignored
	// on receipt.
	IllegalDatagramEventResetFrequency uint32 `idl:"name:wki502_illegal_datagram_event_reset_frequency" json:"illegal_datagram_event_reset_frequency"`
	// wki502_log_election_packets: Any value when sent, and MUST be ignored on receipt.
	LogElectionPackets int32 `idl:"name:wki502_log_election_packets" json:"log_election_packets"`
	// wki502_use_opportunistic_locking: Any value when sent, and MUST be ignored on receipt.
	UseOpportunisticLocking int32 `idl:"name:wki502_use_opportunistic_locking" json:"use_opportunistic_locking"`
	// wki502_use_unlock_behind: Any value when sent, and MUST be ignored on receipt.
	UseUnlockBehind int32 `idl:"name:wki502_use_unlock_behind" json:"use_unlock_behind"`
	// wki502_use_close_behind: Any value when sent, and MUST be ignored on receipt.
	UseCloseBehind int32 `idl:"name:wki502_use_close_behind" json:"use_close_behind"`
	// wki502_buf_named_pipes: Any value when sent, and MUST be ignored on receipt.
	BufferNamedPipes int32 `idl:"name:wki502_buf_named_pipes" json:"buffer_named_pipes"`
	// wki502_use_lock_read_unlock: Any value when sent, and MUST be ignored on receipt.
	UseLockReadUnlock int32 `idl:"name:wki502_use_lock_read_unlock" json:"use_lock_read_unlock"`
	// wki502_utilize_nt_caching: Any value when sent, and MUST be ignored on receipt.
	UtilizeNTCaching int32 `idl:"name:wki502_utilize_nt_caching" json:"utilize_nt_caching"`
	// wki502_use_raw_read: Any value when sent, and MUST be ignored on receipt.
	UseRawRead int32 `idl:"name:wki502_use_raw_read" json:"use_raw_read"`
	// wki502_use_raw_write:  Any value when sent, and MUST be ignored on receipt.
	UseRawWrite int32 `idl:"name:wki502_use_raw_write" json:"use_raw_write"`
	// wki502_use_write_raw_data: Any value when sent, and MUST be ignored on receipt.
	UseWriteRawData int32 `idl:"name:wki502_use_write_raw_data" json:"use_write_raw_data"`
	// wki502_use_encryption: Any value when sent, and MUST be ignored on receipt.
	UseEncryption int32 `idl:"name:wki502_use_encryption" json:"use_encryption"`
	// wki502_buf_files_deny_write: Any value when sent, and MUST be ignored on receipt.
	BufferFilesDenyWrite int32 `idl:"name:wki502_buf_files_deny_write" json:"buffer_files_deny_write"`
	// wki502_buf_read_only_files: Any value when sent, and MUST be ignored on receipt.
	BufferReadOnlyFiles int32 `idl:"name:wki502_buf_read_only_files" json:"buffer_read_only_files"`
	// wki502_force_core_create_mode: Any value when sent, and MUST be ignored on receipt.
	ForceCoreCreateMode int32 `idl:"name:wki502_force_core_create_mode" json:"force_core_create_mode"`
	// wki502_use_512_byte_max_transfer: Any value when sent, and MUST be ignored on receipt.
	//
	// The wki502_keep_conn, wki502_max_cmds, wki502_sess_timeout, and wki502_dormant_file_limit
	// are the only values the server (2) can use to configure the redirector. The server
	// MUST store all the values and return the existing values upon a client’s request.
	Use512ByteMaxTransfer int32 `idl:"name:wki502_use_512_byte_max_transfer" json:"use_512_byte_max_transfer"`
}

WorkstationInfo502 structure represents WKSTA_INFO_502 RPC structure.

The WKSTA_INFO_502 structure specifies details about a computer environment.

func (*WorkstationInfo502) MarshalNDR

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

func (*WorkstationInfo502) UnmarshalNDR

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

type WorkstationInfo_100

type WorkstationInfo_100 struct {
	// WkstaInfo100: Details about the computer environment (section 2.2.5.1)
	WorkstationInfo100 *WorkstationInfo100 `idl:"name:WkstaInfo100" json:"workstation_info100"`
}

WorkstationInfo_100 structure represents WKSTA_INFO RPC union arm.

It has following labels: 100

func (*WorkstationInfo_100) MarshalNDR

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

func (*WorkstationInfo_100) UnmarshalNDR

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

type WorkstationInfo_101

type WorkstationInfo_101 struct {
	// WkstaInfo101: Details about the computer environment (section 2.2.5.2).
	WorkstationInfo101 *WorkstationInfo101 `idl:"name:WkstaInfo101" json:"workstation_info101"`
}

WorkstationInfo_101 structure represents WKSTA_INFO RPC union arm.

It has following labels: 101

func (*WorkstationInfo_101) MarshalNDR

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

func (*WorkstationInfo_101) UnmarshalNDR

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

type WorkstationInfo_1013

type WorkstationInfo_1013 struct {
	// WkstaInfo1013: Details about the state of the SMB network redirector (section 2.2.5.5).
	WorkstationInfo1013 *WorkstationInfo1013 `idl:"name:WkstaInfo1013" json:"workstation_info1013"`
}

WorkstationInfo_1013 structure represents WKSTA_INFO RPC union arm.

It has following labels: 1013

func (*WorkstationInfo_1013) MarshalNDR

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

func (*WorkstationInfo_1013) UnmarshalNDR

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

type WorkstationInfo_1018

type WorkstationInfo_1018 struct {
	// WkstaInfo1018: Details about the state of the SMB network redirector (section 2.2.5.6).
	WorkstationInfo1018 *WorkstationInfo1018 `idl:"name:WkstaInfo1018" json:"workstation_info1018"`
}

WorkstationInfo_1018 structure represents WKSTA_INFO RPC union arm.

It has following labels: 1018

func (*WorkstationInfo_1018) MarshalNDR

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

func (*WorkstationInfo_1018) UnmarshalNDR

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

type WorkstationInfo_102

type WorkstationInfo_102 struct {
	// WkstaInfo102: Details about the computer environment (section 2.2.5.3).
	WorkstationInfo102 *WorkstationInfo102 `idl:"name:WkstaInfo102" json:"workstation_info102"`
}

WorkstationInfo_102 structure represents WKSTA_INFO RPC union arm.

It has following labels: 102

func (*WorkstationInfo_102) MarshalNDR

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

func (*WorkstationInfo_102) UnmarshalNDR

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

type WorkstationInfo_1046

type WorkstationInfo_1046 struct {
	// WkstaInfo1046: Details about the state of the SMB network redirector (section 2.2.5.7).
	WorkstationInfo1046 *WorkstationInfo1046 `idl:"name:WkstaInfo1046" json:"workstation_info1046"`
}

WorkstationInfo_1046 structure represents WKSTA_INFO RPC union arm.

It has following labels: 1046

func (*WorkstationInfo_1046) MarshalNDR

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

func (*WorkstationInfo_1046) UnmarshalNDR

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

type WorkstationInfo_502

type WorkstationInfo_502 struct {
	// WkstaInfo502: Details about the computer environment (section 2.2.5.4).
	WorkstationInfo502 *WorkstationInfo502 `idl:"name:WkstaInfo502" json:"workstation_info502"`
}

WorkstationInfo_502 structure represents WKSTA_INFO RPC union arm.

It has following labels: 502

func (*WorkstationInfo_502) MarshalNDR

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

func (*WorkstationInfo_502) UnmarshalNDR

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

type WorkstationInfo_DefaultWorkstationInfo

type WorkstationInfo_DefaultWorkstationInfo struct {
}

WorkstationInfo_DefaultWorkstationInfo structure represents WKSTA_INFO RPC default union arm.

func (*WorkstationInfo_DefaultWorkstationInfo) MarshalNDR

func (*WorkstationInfo_DefaultWorkstationInfo) UnmarshalNDR

type WorkstationStatisticsGetRequest

type WorkstationStatisticsGetRequest struct {
	// ServerName: A WKSSVC_IDENTIFY_HANDLE structure (section 2.2.2.1) that identifies
	// the server (2). The client MUST map this structure to an RPC binding handle ([C706]
	// sections 4.3.5 and 5.1.5.2). The server MUST ignore this parameter.
	ServerName string `idl:"name:ServerName;string;pointer:unique" json:"server_name"`
	// ServiceName: A pointer to a string specifying the name of the workstation service.
	// This value MUST be ignored on receipt.
	ServiceName string `idl:"name:ServiceName;string;pointer:unique" json:"service_name"`
	// Level: The information level of the data. This value MUST be zero.
	Level uint32 `idl:"name:Level" json:"level"`
	// Options: This value MUST be zero.
	Options uint32 `idl:"name:Options" json:"options"`
}

WorkstationStatisticsGetRequest structure represents the NetrWorkstationStatisticsGet operation request

func (*WorkstationStatisticsGetRequest) MarshalNDR

func (*WorkstationStatisticsGetRequest) UnmarshalNDR

type WorkstationStatisticsGetResponse

type WorkstationStatisticsGetResponse struct {
	// Buffer: A pointer to a STAT_WORKSTATION_0 structure (section 2.2.5.11) that contains
	// the statistical information.
	Buffer *StatWorkstation0 `idl:"name:Buffer" json:"buffer"`
	// Return: The NetrWorkstationStatisticsGet return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

WorkstationStatisticsGetResponse structure represents the NetrWorkstationStatisticsGet operation response

func (*WorkstationStatisticsGetResponse) MarshalNDR

func (*WorkstationStatisticsGetResponse) UnmarshalNDR

type WorkstationTransportEnum

type WorkstationTransportEnum struct {
	// Level: The data’s information level, which MUST be set to zero.
	Level uint32 `idl:"name:Level" json:"level"`
	// WkstaTransportInfo: A pointer to a WKSTA_TRANSPORT_INFO_0_CONTAINER structure (section
	// 2.2.5.15).
	WorkstationTransportInfo *WorkstationTransportEnum_WorkstationTransportInfo `idl:"name:WkstaTransportInfo;switch_is:Level" json:"workstation_transport_info"`
}

WorkstationTransportEnum structure represents WKSTA_TRANSPORT_ENUM_STRUCT RPC structure.

The WKSTA_TRANSPORT_ENUM_STRUCT structure is used by the NetrWkstaTransportEnum method (section 3.2.4.4). The Level parameter in the submitted structure determines the information level of the data that the method returns.

func (*WorkstationTransportEnum) MarshalNDR

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

func (*WorkstationTransportEnum) UnmarshalNDR

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

type WorkstationTransportEnum_WorkstationTransportInfo

type WorkstationTransportEnum_WorkstationTransportInfo struct {
	// Types that are assignable to Value
	//
	// *WorkstationTransportInfo_Level0
	// *WorkstationTransportInfo_DefaultWorkstationTransportEnum
	Value is_WorkstationTransportEnum_WorkstationTransportInfo `json:"value"`
}

WorkstationTransportEnum_WorkstationTransportInfo structure represents WKSTA_TRANSPORT_ENUM_STRUCT union anonymous member.

The WKSTA_TRANSPORT_ENUM_STRUCT structure is used by the NetrWkstaTransportEnum method (section 3.2.4.4). The Level parameter in the submitted structure determines the information level of the data that the method returns.

func (*WorkstationTransportEnum_WorkstationTransportInfo) GetValue

func (*WorkstationTransportEnum_WorkstationTransportInfo) MarshalUnionNDR

func (*WorkstationTransportEnum_WorkstationTransportInfo) NDRSwitchValue

func (*WorkstationTransportEnum_WorkstationTransportInfo) UnmarshalUnionNDR

type WorkstationTransportInfo0

type WorkstationTransportInfo0 struct {
	// wkti0_quality_of_service: Unused. Any value when sent, and MUST be ignored on receipt.
	QualityOfService uint32 `idl:"name:wkti0_quality_of_service" json:"quality_of_service"`
	// wkti0_number_of_vcs: The current number of remote connections using this transport
	// protocol.
	NumberOfVCS uint32 `idl:"name:wkti0_number_of_vcs" json:"number_of_vcs"`
	// wkti0_transport_name: The null-terminated, implementation-specific<5> name of the
	// device that implements the transport protocol.
	TransportName string `idl:"name:wkti0_transport_name;string" json:"transport_name"`
	// wkti0_transport_address: The null-terminated, implementation-specific<6> string that
	// represents the address of the transport protocol.
	TransportAddress string `idl:"name:wkti0_transport_address;string" json:"transport_address"`
	// wkti0_wan_ish: Whether the transport protocol is a routable protocol. If set to TRUE,
	// this is a routable protocol. If set to FALSE, this is not a routable protocol.
	WANIsh uint32 `idl:"name:wkti0_wan_ish" json:"wan_ish"`
}

WorkstationTransportInfo0 structure represents WKSTA_TRANSPORT_INFO_0 RPC structure.

The WKSTA_TRANSPORT_INFO_0 structure specifies details about the network transport protocol that the SMB network redirector uses.

func (*WorkstationTransportInfo0) MarshalNDR

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

func (*WorkstationTransportInfo0) UnmarshalNDR

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

type WorkstationTransportInfo0Container

type WorkstationTransportInfo0Container struct {
	// EntriesRead: The number of entries that the method returns.
	EntriesRead uint32 `idl:"name:EntriesRead" json:"entries_read"`
	// Buffer: A pointer to the array of WKSTA_TRANSPORT_INFO_0 structures that specify
	// details about transport protocols.
	Buffer []*WorkstationTransportInfo0 `idl:"name:Buffer;size_is:(EntriesRead)" json:"buffer"`
}

WorkstationTransportInfo0Container structure represents WKSTA_TRANSPORT_INFO_0_CONTAINER RPC structure.

The WKSTA_TRANSPORT_INFO_0_CONTAINER structure is used by the NetrWkstaTransportEnum method (section 3.2.4.4) to specify the number of entries and a pointer to the base WKSTA_TRANSPORT_INFO_0 structure (section 2.2.5.8) that the method returns.

func (*WorkstationTransportInfo0Container) MarshalNDR

func (*WorkstationTransportInfo0Container) UnmarshalNDR

type WorkstationTransportInfo_DefaultWorkstationTransportEnum

type WorkstationTransportInfo_DefaultWorkstationTransportEnum struct {
}

WorkstationTransportInfo_DefaultWorkstationTransportEnum structure represents WorkstationTransportEnum_WorkstationTransportInfo RPC default union arm.

func (*WorkstationTransportInfo_DefaultWorkstationTransportEnum) MarshalNDR

func (*WorkstationTransportInfo_DefaultWorkstationTransportEnum) UnmarshalNDR

type WorkstationTransportInfo_Level0

type WorkstationTransportInfo_Level0 struct {
	Level0 *WorkstationTransportInfo0Container `idl:"name:Level0" json:"level0"`
}

WorkstationTransportInfo_Level0 structure represents WorkstationTransportEnum_WorkstationTransportInfo RPC union arm.

It has following labels: 0

func (*WorkstationTransportInfo_Level0) MarshalNDR

func (*WorkstationTransportInfo_Level0) UnmarshalNDR

type WorkstationUserEnum

type WorkstationUserEnum struct {
	// Level: The information level of the data, which determines the type of structure
	// that the method returns. It MUST be one of the following values.
	//
	//	+------------+-------------------------------------------------------------------------+
	//	|            |                                                                         |
	//	|   VALUE    |                                 MEANING                                 |
	//	|            |                                                                         |
	//	+------------+-------------------------------------------------------------------------+
	//	+------------+-------------------------------------------------------------------------+
	//	| 0x00000000 | Specifies the WKSTA_USER_INFO_0_CONTAINER structure (section 2.2.5.12). |
	//	+------------+-------------------------------------------------------------------------+
	//	| 0x00000001 | Specifies the WKSTA_USER_INFO_1_CONTAINER structure (section 2.2.5.13). |
	//	+------------+-------------------------------------------------------------------------+
	Level uint32 `idl:"name:Level" json:"level"`
	// WkstaUserInfo: A WKSTA_USER_INFO_0_CONTAINER structure or a WKSTA_USER_INFO_1_CONTAINER
	// structure.
	WorkstationUserInfo *WorkstationUserEnum_WorkstationUserInfo `idl:"name:WkstaUserInfo;switch_is:Level" json:"workstation_user_info"`
}

WorkstationUserEnum structure represents WKSTA_USER_ENUM_STRUCT RPC structure.

The WKSTA_USER_ENUM_STRUCT structure is used by the NetrWkstaUserEnum method (section 3.2.4.3) to encapsulate the _WKSTA_USER_ENUM_UNION union.

func (*WorkstationUserEnum) MarshalNDR

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

func (*WorkstationUserEnum) UnmarshalNDR

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

type WorkstationUserEnum_WorkstationUserInfo

type WorkstationUserEnum_WorkstationUserInfo struct {
	// Types that are assignable to Value
	//
	// *WorkstationUserInfo_Level0
	// *WorkstationUserInfo_Level1
	// *WorkstationUserInfo_DefaultWorkstationUserEnum
	Value is_WorkstationUserEnum_WorkstationUserInfo `json:"value"`
}

WorkstationUserEnum_WorkstationUserInfo structure represents WKSTA_USER_ENUM_STRUCT union anonymous member.

The WKSTA_USER_ENUM_STRUCT structure is used by the NetrWkstaUserEnum method (section 3.2.4.3) to encapsulate the _WKSTA_USER_ENUM_UNION union.

func (*WorkstationUserEnum_WorkstationUserInfo) GetValue

func (*WorkstationUserEnum_WorkstationUserInfo) MarshalUnionNDR

func (*WorkstationUserEnum_WorkstationUserInfo) NDRSwitchValue

func (*WorkstationUserEnum_WorkstationUserInfo) UnmarshalUnionNDR

type WorkstationUserInfo0

type WorkstationUserInfo0 struct {
	// wkui0_username: Null-terminated name of a user<7> who is currently active on the
	// computer. Multiple users can be currently active on a computer; this is the name
	// of any such user.
	UserName string `idl:"name:wkui0_username;string" json:"user_name"`
}

WorkstationUserInfo0 structure represents WKSTA_USER_INFO_0 RPC structure.

The WKSTA_USER_INFO_0 structure contains the name of a user who is currently active on the computer.

func (*WorkstationUserInfo0) MarshalNDR

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

func (*WorkstationUserInfo0) UnmarshalNDR

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

type WorkstationUserInfo0Container

type WorkstationUserInfo0Container struct {
	// EntriesRead: The number of entries that the method returns.
	EntriesRead uint32 `idl:"name:EntriesRead" json:"entries_read"`
	// Buffer: The names of the user accounts logged onto the remote computer.
	Buffer []*WorkstationUserInfo0 `idl:"name:Buffer;size_is:(EntriesRead)" json:"buffer"`
}

WorkstationUserInfo0Container structure represents WKSTA_USER_INFO_0_CONTAINER RPC structure.

The WKSTA_USER_INFO_0_CONTAINER structure contains a value that indicates the number of entries that the NetrWkstaUserEnum method (section 3.2.4.3) returns, as well as a pointer to the buffer.

func (*WorkstationUserInfo0Container) MarshalNDR

func (*WorkstationUserInfo0Container) UnmarshalNDR

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

type WorkstationUserInfo1

type WorkstationUserInfo1 struct {
	// wkui1_username: A null-terminated name of a user who is currently active on the computer.
	UserName string `idl:"name:wkui1_username;string" json:"user_name"`
	// wkui1_logon_domain: A null-terminated name of the domain to which the user belongs.
	LogonDomain string `idl:"name:wkui1_logon_domain;string" json:"logon_domain"`
	// wkui1_oth_domains: Null-terminated, NetBIOS names of other domains browsed by the
	// computer, according to the OtherDomains Name Abstract Data Model (section 3.2.1.3).
	OtherDomains string `idl:"name:wkui1_oth_domains;string" json:"other_domains"`
	// wkui1_logon_server: A null-terminated, NetBIOS name of the server (2) that authenticated
	// (2) the user.
	LogonServer string `idl:"name:wkui1_logon_server;string" json:"logon_server"`
}

WorkstationUserInfo1 structure represents WKSTA_USER_INFO_1 RPC structure.

The WKSTA_USER_INFO_1 structure contains user information as it pertains to a specific computer.

func (*WorkstationUserInfo1) MarshalNDR

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

func (*WorkstationUserInfo1) UnmarshalNDR

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

type WorkstationUserInfo1Container

type WorkstationUserInfo1Container struct {
	// EntriesRead: The number of entries that the method returns.
	EntriesRead uint32 `idl:"name:EntriesRead" json:"entries_read"`
	// Buffer: Details about the user accounts logged onto the remote computer.
	Buffer []*WorkstationUserInfo1 `idl:"name:Buffer;size_is:(EntriesRead)" json:"buffer"`
}

WorkstationUserInfo1Container structure represents WKSTA_USER_INFO_1_CONTAINER RPC structure.

The WKSTA_USER_INFO_1_CONTAINER structure contains a value that indicates the number of entries that the NetrWkstaUserEnum method (section 3.2.4.3) returns, as well as a pointer to the buffer.

func (*WorkstationUserInfo1Container) MarshalNDR

func (*WorkstationUserInfo1Container) UnmarshalNDR

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

type WorkstationUserInfo_DefaultWorkstationUserEnum

type WorkstationUserInfo_DefaultWorkstationUserEnum struct {
}

WorkstationUserInfo_DefaultWorkstationUserEnum structure represents WorkstationUserEnum_WorkstationUserInfo RPC default union arm.

func (*WorkstationUserInfo_DefaultWorkstationUserEnum) MarshalNDR

func (*WorkstationUserInfo_DefaultWorkstationUserEnum) UnmarshalNDR

type WorkstationUserInfo_Level0

type WorkstationUserInfo_Level0 struct {
	Level0 *WorkstationUserInfo0Container `idl:"name:Level0" json:"level0"`
}

WorkstationUserInfo_Level0 structure represents WorkstationUserEnum_WorkstationUserInfo RPC union arm.

It has following labels: 0

func (*WorkstationUserInfo_Level0) MarshalNDR

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

func (*WorkstationUserInfo_Level0) UnmarshalNDR

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

type WorkstationUserInfo_Level1

type WorkstationUserInfo_Level1 struct {
	Level1 *WorkstationUserInfo1Container `idl:"name:Level1" json:"level1"`
}

WorkstationUserInfo_Level1 structure represents WorkstationUserEnum_WorkstationUserInfo RPC union arm.

It has following labels: 1

func (*WorkstationUserInfo_Level1) MarshalNDR

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

func (*WorkstationUserInfo_Level1) UnmarshalNDR

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

Jump to

Keyboard shortcuts

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