wkssvc

package
v1.2.4 Latest Latest
Warning

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

Go to latest
Published: Mar 12, 2025 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 {
	// XXX: Level is an implicit input depedency for output parameters
	Level uint32 `idl:"name:Level" json:"level"`

	// 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 UnimplementedWkssvcServer added in v1.1.5

type UnimplementedWkssvcServer struct {
}

Unimplemented wkssvc

func (UnimplementedWkssvcServer) AddAlternateComputerName added in v1.1.5

func (UnimplementedWkssvcServer) EnumerateComputerNames added in v1.1.5

func (UnimplementedWkssvcServer) GetInfo added in v1.1.5

func (UnimplementedWkssvcServer) GetJoinInformation added in v1.1.5

func (UnimplementedWkssvcServer) GetJoinableOUs2 added in v1.1.5

func (UnimplementedWkssvcServer) JoinDomain2 added in v1.1.5

func (UnimplementedWkssvcServer) RemoveAlternateComputerName added in v1.1.5

func (UnimplementedWkssvcServer) RenameMachineInDomain2 added in v1.1.5

func (UnimplementedWkssvcServer) SetInfo added in v1.1.5

func (UnimplementedWkssvcServer) SetPrimaryComputerName added in v1.1.5

func (UnimplementedWkssvcServer) TransportAdd added in v1.1.5

func (UnimplementedWkssvcServer) TransportDelete added in v1.1.5

func (UnimplementedWkssvcServer) TransportEnum added in v1.1.5

func (UnimplementedWkssvcServer) UnjoinDomain2 added in v1.1.5

func (UnimplementedWkssvcServer) UseAdd added in v1.1.5

func (UnimplementedWkssvcServer) UseDelete added in v1.1.5

func (UnimplementedWkssvcServer) UseEnum added in v1.1.5

func (UnimplementedWkssvcServer) UseGetInfo added in v1.1.5

func (UnimplementedWkssvcServer) UserEnum added in v1.1.5

func (UnimplementedWkssvcServer) ValidateName2 added in v1.1.5

func (UnimplementedWkssvcServer) WorkstationStatisticsGet added in v1.1.5

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
	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 {
	// XXX: Level is an implicit input depedency for output parameters
	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"`
	// 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
	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_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

	// Conn returns the client connection (unsafe)
	Conn() dcerpc.Conn
}

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
	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 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
	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_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
	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_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