Documentation
¶
Index ¶
- Variables
- func NewWkssvcServerHandle(o WkssvcServer) dcerpc.ServerHandle
- func RegisterWkssvcServer(conn dcerpc.Conn, o WkssvcServer, opts ...dcerpc.Option)
- func WkssvcServerHandle(ctx context.Context, o WkssvcServer, opNum int, r ndr.Reader) (dcerpc.Operation, error)
- type AddAlternateComputerNameRequest
- type AddAlternateComputerNameResponse
- type EncryptedUserPassword
- type EnumerateComputerNamesRequest
- type EnumerateComputerNamesResponse
- type GetInfoRequest
- type GetInfoResponse
- type GetJoinInformationRequest
- type GetJoinInformationResponse
- type GetJoinableOUs2Request
- type GetJoinableOUs2Response
- type JoinDomain2Request
- type JoinDomain2Response
- type NetComputerNameArray
- type NetComputerNameType
- type NetsetupJoinStatus
- type NetsetupNameType
- type RemoveAlternateComputerNameRequest
- type RemoveAlternateComputerNameResponse
- type RenameMachineInDomain2Request
- type RenameMachineInDomain2Response
- type SetInfoRequest
- type SetInfoResponse
- type SetPrimaryComputerNameRequest
- type SetPrimaryComputerNameResponse
- type StatWorkstation0
- type TransportAddRequest
- type TransportAddResponse
- type TransportDeleteRequest
- type TransportDeleteResponse
- type TransportEnumRequest
- type TransportEnumResponse
- type UnicodeString
- type UnimplementedWkssvcServer
- func (UnimplementedWkssvcServer) AddAlternateComputerName(context.Context, *AddAlternateComputerNameRequest) (*AddAlternateComputerNameResponse, error)
- func (UnimplementedWkssvcServer) EnumerateComputerNames(context.Context, *EnumerateComputerNamesRequest) (*EnumerateComputerNamesResponse, error)
- func (UnimplementedWkssvcServer) GetInfo(context.Context, *GetInfoRequest) (*GetInfoResponse, error)
- func (UnimplementedWkssvcServer) GetJoinInformation(context.Context, *GetJoinInformationRequest) (*GetJoinInformationResponse, error)
- func (UnimplementedWkssvcServer) GetJoinableOUs2(context.Context, *GetJoinableOUs2Request) (*GetJoinableOUs2Response, error)
- func (UnimplementedWkssvcServer) JoinDomain2(context.Context, *JoinDomain2Request) (*JoinDomain2Response, error)
- func (UnimplementedWkssvcServer) RemoveAlternateComputerName(context.Context, *RemoveAlternateComputerNameRequest) (*RemoveAlternateComputerNameResponse, error)
- func (UnimplementedWkssvcServer) RenameMachineInDomain2(context.Context, *RenameMachineInDomain2Request) (*RenameMachineInDomain2Response, error)
- func (UnimplementedWkssvcServer) SetInfo(context.Context, *SetInfoRequest) (*SetInfoResponse, error)
- func (UnimplementedWkssvcServer) SetPrimaryComputerName(context.Context, *SetPrimaryComputerNameRequest) (*SetPrimaryComputerNameResponse, error)
- func (UnimplementedWkssvcServer) TransportAdd(context.Context, *TransportAddRequest) (*TransportAddResponse, error)
- func (UnimplementedWkssvcServer) TransportDelete(context.Context, *TransportDeleteRequest) (*TransportDeleteResponse, error)
- func (UnimplementedWkssvcServer) TransportEnum(context.Context, *TransportEnumRequest) (*TransportEnumResponse, error)
- func (UnimplementedWkssvcServer) UnjoinDomain2(context.Context, *UnjoinDomain2Request) (*UnjoinDomain2Response, error)
- func (UnimplementedWkssvcServer) UseAdd(context.Context, *UseAddRequest) (*UseAddResponse, error)
- func (UnimplementedWkssvcServer) UseDelete(context.Context, *UseDeleteRequest) (*UseDeleteResponse, error)
- func (UnimplementedWkssvcServer) UseEnum(context.Context, *UseEnumRequest) (*UseEnumResponse, error)
- func (UnimplementedWkssvcServer) UseGetInfo(context.Context, *UseGetInfoRequest) (*UseGetInfoResponse, error)
- func (UnimplementedWkssvcServer) UserEnum(context.Context, *UserEnumRequest) (*UserEnumResponse, error)
- func (UnimplementedWkssvcServer) ValidateName2(context.Context, *ValidateName2Request) (*ValidateName2Response, error)
- func (UnimplementedWkssvcServer) WorkstationStatisticsGet(context.Context, *WorkstationStatisticsGetRequest) (*WorkstationStatisticsGetResponse, error)
- type UnjoinDomain2Request
- type UnjoinDomain2Response
- type UseAddRequest
- type UseAddResponse
- type UseDeleteRequest
- type UseDeleteResponse
- type UseEnum
- type UseEnumRequest
- type UseEnumResponse
- type UseEnum_UseInfo
- type UseGetInfoRequest
- type UseGetInfoResponse
- type UseInfo
- type UseInfo0
- type UseInfo0Container
- type UseInfo1
- type UseInfo1Container
- type UseInfo2
- type UseInfo2Container
- type UseInfo3
- type UseInfo_0
- type UseInfo_1
- type UseInfo_2
- type UseInfo_3
- type UseInfo_Level0
- type UseInfo_Level1
- type UseInfo_Level2
- type UserEnumRequest
- type UserEnumResponse
- type UserPassword
- type ValidateName2Request
- type ValidateName2Response
- type WkssvcClient
- type WkssvcServer
- type WorkstationInfo
- type WorkstationInfo100
- type WorkstationInfo101
- type WorkstationInfo102
- type WorkstationInfo502
- type WorkstationInfo1013
- type WorkstationInfo1018
- type WorkstationInfo1046
- type WorkstationInfo_100
- type WorkstationInfo_101
- type WorkstationInfo_102
- type WorkstationInfo_502
- type WorkstationInfo_1013
- type WorkstationInfo_1018
- type WorkstationInfo_1046
- type WorkstationStatisticsGetRequest
- type WorkstationStatisticsGetResponse
- type WorkstationTransportEnum
- type WorkstationTransportEnum_WorkstationTransportInfo
- func (o *WorkstationTransportEnum_WorkstationTransportInfo) GetValue() any
- func (o *WorkstationTransportEnum_WorkstationTransportInfo) MarshalUnionNDR(ctx context.Context, w ndr.Writer, sw uint32) error
- func (o *WorkstationTransportEnum_WorkstationTransportInfo) NDRSwitchValue(sw uint32) uint32
- func (o *WorkstationTransportEnum_WorkstationTransportInfo) UnmarshalUnionNDR(ctx context.Context, w ndr.Reader, sw uint32) error
- type WorkstationTransportInfo0
- type WorkstationTransportInfo0Container
- type WorkstationTransportInfo_Level0
- type WorkstationUserEnum
- type WorkstationUserEnum_WorkstationUserInfo
- func (o *WorkstationUserEnum_WorkstationUserInfo) GetValue() any
- func (o *WorkstationUserEnum_WorkstationUserInfo) MarshalUnionNDR(ctx context.Context, w ndr.Writer, sw uint32) error
- func (o *WorkstationUserEnum_WorkstationUserInfo) NDRSwitchValue(sw uint32) uint32
- func (o *WorkstationUserEnum_WorkstationUserInfo) UnmarshalUnionNDR(ctx context.Context, w ndr.Reader, sw uint32) error
- type WorkstationUserInfo0
- type WorkstationUserInfo0Container
- type WorkstationUserInfo1
- type WorkstationUserInfo1Container
- type WorkstationUserInfo_Level0
- type WorkstationUserInfo_Level1
Constants ¶
This section is empty.
Variables ¶
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} )
var (
// import guard
GoPackage = "wkst"
)
var JoinMaxPasswordLength = 256
JoinMaxPasswordLength represents the JOIN_MAX_PASSWORD_LENGTH RPC constant
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)
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 (*EncryptedUserPassword) UnmarshalNDR ¶
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 ¶
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 (*GetInfoRequest) UnmarshalNDR ¶
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 (*GetInfoResponse) UnmarshalNDR ¶
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 (*GetJoinInformationRequest) UnmarshalNDR ¶
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 (*GetJoinInformationResponse) UnmarshalNDR ¶
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 (*GetJoinableOUs2Request) UnmarshalNDR ¶
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 (*GetJoinableOUs2Response) UnmarshalNDR ¶
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 (*JoinDomain2Request) UnmarshalNDR ¶
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 (*JoinDomain2Response) UnmarshalNDR ¶
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 (*NetComputerNameArray) UnmarshalNDR ¶
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 ¶
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 (*SetInfoRequest) UnmarshalNDR ¶
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 (*SetInfoResponse) UnmarshalNDR ¶
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 ¶
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 (*StatWorkstation0) UnmarshalNDR ¶
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 (*TransportAddRequest) UnmarshalNDR ¶
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 (*TransportAddResponse) UnmarshalNDR ¶
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 (*TransportDeleteRequest) UnmarshalNDR ¶
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 (*TransportDeleteResponse) UnmarshalNDR ¶
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 (*TransportEnumRequest) UnmarshalNDR ¶
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 (*TransportEnumResponse) UnmarshalNDR ¶
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 (*UnicodeString) UnmarshalNDR ¶
type UnimplementedWkssvcServer ¶ added in v1.1.5
type UnimplementedWkssvcServer struct {
}
Unimplemented wkssvc
func (UnimplementedWkssvcServer) AddAlternateComputerName ¶ added in v1.1.5
func (UnimplementedWkssvcServer) AddAlternateComputerName(context.Context, *AddAlternateComputerNameRequest) (*AddAlternateComputerNameResponse, error)
func (UnimplementedWkssvcServer) EnumerateComputerNames ¶ added in v1.1.5
func (UnimplementedWkssvcServer) EnumerateComputerNames(context.Context, *EnumerateComputerNamesRequest) (*EnumerateComputerNamesResponse, error)
func (UnimplementedWkssvcServer) GetInfo ¶ added in v1.1.5
func (UnimplementedWkssvcServer) GetInfo(context.Context, *GetInfoRequest) (*GetInfoResponse, error)
func (UnimplementedWkssvcServer) GetJoinInformation ¶ added in v1.1.5
func (UnimplementedWkssvcServer) GetJoinInformation(context.Context, *GetJoinInformationRequest) (*GetJoinInformationResponse, error)
func (UnimplementedWkssvcServer) GetJoinableOUs2 ¶ added in v1.1.5
func (UnimplementedWkssvcServer) GetJoinableOUs2(context.Context, *GetJoinableOUs2Request) (*GetJoinableOUs2Response, error)
func (UnimplementedWkssvcServer) JoinDomain2 ¶ added in v1.1.5
func (UnimplementedWkssvcServer) JoinDomain2(context.Context, *JoinDomain2Request) (*JoinDomain2Response, error)
func (UnimplementedWkssvcServer) RemoveAlternateComputerName ¶ added in v1.1.5
func (UnimplementedWkssvcServer) RemoveAlternateComputerName(context.Context, *RemoveAlternateComputerNameRequest) (*RemoveAlternateComputerNameResponse, error)
func (UnimplementedWkssvcServer) RenameMachineInDomain2 ¶ added in v1.1.5
func (UnimplementedWkssvcServer) RenameMachineInDomain2(context.Context, *RenameMachineInDomain2Request) (*RenameMachineInDomain2Response, error)
func (UnimplementedWkssvcServer) SetInfo ¶ added in v1.1.5
func (UnimplementedWkssvcServer) SetInfo(context.Context, *SetInfoRequest) (*SetInfoResponse, error)
func (UnimplementedWkssvcServer) SetPrimaryComputerName ¶ added in v1.1.5
func (UnimplementedWkssvcServer) SetPrimaryComputerName(context.Context, *SetPrimaryComputerNameRequest) (*SetPrimaryComputerNameResponse, error)
func (UnimplementedWkssvcServer) TransportAdd ¶ added in v1.1.5
func (UnimplementedWkssvcServer) TransportAdd(context.Context, *TransportAddRequest) (*TransportAddResponse, error)
func (UnimplementedWkssvcServer) TransportDelete ¶ added in v1.1.5
func (UnimplementedWkssvcServer) TransportDelete(context.Context, *TransportDeleteRequest) (*TransportDeleteResponse, error)
func (UnimplementedWkssvcServer) TransportEnum ¶ added in v1.1.5
func (UnimplementedWkssvcServer) TransportEnum(context.Context, *TransportEnumRequest) (*TransportEnumResponse, error)
func (UnimplementedWkssvcServer) UnjoinDomain2 ¶ added in v1.1.5
func (UnimplementedWkssvcServer) UnjoinDomain2(context.Context, *UnjoinDomain2Request) (*UnjoinDomain2Response, error)
func (UnimplementedWkssvcServer) UseAdd ¶ added in v1.1.5
func (UnimplementedWkssvcServer) UseAdd(context.Context, *UseAddRequest) (*UseAddResponse, error)
func (UnimplementedWkssvcServer) UseDelete ¶ added in v1.1.5
func (UnimplementedWkssvcServer) UseDelete(context.Context, *UseDeleteRequest) (*UseDeleteResponse, error)
func (UnimplementedWkssvcServer) UseEnum ¶ added in v1.1.5
func (UnimplementedWkssvcServer) UseEnum(context.Context, *UseEnumRequest) (*UseEnumResponse, error)
func (UnimplementedWkssvcServer) UseGetInfo ¶ added in v1.1.5
func (UnimplementedWkssvcServer) UseGetInfo(context.Context, *UseGetInfoRequest) (*UseGetInfoResponse, error)
func (UnimplementedWkssvcServer) UserEnum ¶ added in v1.1.5
func (UnimplementedWkssvcServer) UserEnum(context.Context, *UserEnumRequest) (*UserEnumResponse, error)
func (UnimplementedWkssvcServer) ValidateName2 ¶ added in v1.1.5
func (UnimplementedWkssvcServer) ValidateName2(context.Context, *ValidateName2Request) (*ValidateName2Response, error)
func (UnimplementedWkssvcServer) WorkstationStatisticsGet ¶ added in v1.1.5
func (UnimplementedWkssvcServer) WorkstationStatisticsGet(context.Context, *WorkstationStatisticsGetRequest) (*WorkstationStatisticsGetResponse, error)
type UnjoinDomain2Request ¶
type UnjoinDomain2Request struct {
// ServerName: This parameter has no effect on message processing in any environment.
// The client MUST set this parameter to a value that resolves to the IP destination
// address of the RPC packets it transmits ([MS-RPCE] section 2.1.1.2). The server (2)
// MUST ignore this parameter.
ServerName string `idl:"name:ServerName;string;pointer:unique" json:"server_name"`
// AccountName: A pointer to a string that specifies the account name in the joined
// domain to use when connecting to a domain controller. This parameter is optional.
// If this parameter is NULL, the caller's account name MUST be used.
AccountName string `idl:"name:AccountName;string;pointer:unique" json:"account_name"`
// Password: An optional pointer to a JOINPR_ENCRYPTED_USER_PASSWORD structure (section
// 2.2.5.18) that specifies the encrypted password to use with the AccountName parameter.
// If this parameter is NULL, the caller's security context MUST be used.
Password *EncryptedUserPassword `idl:"name:Password;pointer:unique" json:"password"`
// Options: A 32-bit bitfield specifying modifications to default message processing
// behavior.
//
// +----------------------------------------------+----------------------------------------------------------------------------------+
// | | |
// | VALUE/CODE | MEANING |
// | | |
// +----------------------------------------------+----------------------------------------------------------------------------------+
// +----------------------------------------------+----------------------------------------------------------------------------------+
// | NETSETUP_ACCT_DELETE 0x00000004 | Disables the account when the unjoin operation occurs. |
// +----------------------------------------------+----------------------------------------------------------------------------------+
// | NETSETUP_IGNORE_UNSUPPORTED_FLAGS 0x10000000 | The server ignores undefined flags when this bit is set.<77> This option is |
// | | present to allow for the addition of new optional values in the future. |
// +----------------------------------------------+----------------------------------------------------------------------------------+
Options uint32 `idl:"name:Options" json:"options"`
}
UnjoinDomain2Request structure represents the NetrUnjoinDomain2 operation request
func (*UnjoinDomain2Request) MarshalNDR ¶
func (*UnjoinDomain2Request) UnmarshalNDR ¶
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 (*UnjoinDomain2Response) UnmarshalNDR ¶
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 (*UseAddRequest) UnmarshalNDR ¶
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 (*UseAddResponse) UnmarshalNDR ¶
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 (*UseDeleteRequest) UnmarshalNDR ¶
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 (*UseDeleteResponse) UnmarshalNDR ¶
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.
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 (*UseEnumRequest) UnmarshalNDR ¶
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 (*UseEnumResponse) UnmarshalNDR ¶
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 (*UseEnum_UseInfo) NDRSwitchValue ¶
func (o *UseEnum_UseInfo) NDRSwitchValue(sw uint32) uint32
func (*UseEnum_UseInfo) UnmarshalUnionNDR ¶
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 (*UseGetInfoRequest) UnmarshalNDR ¶
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 (*UseGetInfoResponse) UnmarshalNDR ¶
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) MarshalUnionNDR ¶
func (*UseInfo) NDRSwitchValue ¶
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 ¶
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 (*UseInfo0Container) UnmarshalNDR ¶
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 ¶
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 (*UseInfo1Container) UnmarshalNDR ¶
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 ¶
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 (*UseInfo2Container) UnmarshalNDR ¶
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 ¶
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 ¶
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 ¶
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 ¶
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 ¶
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 (*UseInfo_Level0) UnmarshalNDR ¶
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 (*UseInfo_Level1) UnmarshalNDR ¶
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 (*UseInfo_Level2) UnmarshalNDR ¶
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 (*UserEnumRequest) UnmarshalNDR ¶
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 (*UserEnumResponse) UnmarshalNDR ¶
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 (*UserPassword) UnmarshalNDR ¶
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 (*ValidateName2Request) UnmarshalNDR ¶
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 (*ValidateName2Response) UnmarshalNDR ¶
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 ¶
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 (*WorkstationInfo) NDRSwitchValue ¶
func (o *WorkstationInfo) NDRSwitchValue(sw uint32) uint32
func (*WorkstationInfo) UnmarshalUnionNDR ¶
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 (*WorkstationInfo100) UnmarshalNDR ¶
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 (*WorkstationInfo101) UnmarshalNDR ¶
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 (*WorkstationInfo102) UnmarshalNDR ¶
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 (*WorkstationInfo502) UnmarshalNDR ¶
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 (*WorkstationInfo1013) UnmarshalNDR ¶
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 (*WorkstationInfo1018) UnmarshalNDR ¶
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 (*WorkstationInfo1046) UnmarshalNDR ¶
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 (*WorkstationInfo_100) UnmarshalNDR ¶
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 (*WorkstationInfo_101) UnmarshalNDR ¶
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 (*WorkstationInfo_102) UnmarshalNDR ¶
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 (*WorkstationInfo_502) UnmarshalNDR ¶
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 (*WorkstationInfo_1013) UnmarshalNDR ¶
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 (*WorkstationInfo_1018) UnmarshalNDR ¶
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 (*WorkstationInfo_1046) UnmarshalNDR ¶
type WorkstationStatisticsGetRequest ¶
type WorkstationStatisticsGetRequest struct {
// ServerName: A WKSSVC_IDENTIFY_HANDLE structure (section 2.2.2.1) that identifies
// the server (2). The client MUST map this structure to an RPC binding handle ([C706]
// sections 4.3.5 and 5.1.5.2). The server MUST ignore this parameter.
ServerName string `idl:"name:ServerName;string;pointer:unique" json:"server_name"`
// ServiceName: A pointer to a string specifying the name of the workstation service.
// This value MUST be ignored on receipt.
ServiceName string `idl:"name:ServiceName;string;pointer:unique" json:"service_name"`
// Level: The information level of the data. This value MUST be zero.
Level uint32 `idl:"name:Level" json:"level"`
// Options: This value MUST be zero.
Options uint32 `idl:"name:Options" json:"options"`
}
WorkstationStatisticsGetRequest structure represents the NetrWorkstationStatisticsGet operation request
func (*WorkstationStatisticsGetRequest) MarshalNDR ¶
func (*WorkstationStatisticsGetRequest) UnmarshalNDR ¶
type WorkstationStatisticsGetResponse ¶
type WorkstationStatisticsGetResponse struct {
// Buffer: A pointer to a STAT_WORKSTATION_0 structure (section 2.2.5.11) that contains
// the statistical information.
Buffer *StatWorkstation0 `idl:"name:Buffer" json:"buffer"`
// Return: The NetrWorkstationStatisticsGet return value.
Return uint32 `idl:"name:Return" json:"return"`
}
WorkstationStatisticsGetResponse structure represents the NetrWorkstationStatisticsGet operation response
func (*WorkstationStatisticsGetResponse) MarshalNDR ¶
func (*WorkstationStatisticsGetResponse) UnmarshalNDR ¶
type WorkstationTransportEnum ¶
type WorkstationTransportEnum struct {
// Level: The data’s information level, which MUST be set to zero.
Level uint32 `idl:"name:Level" json:"level"`
// WkstaTransportInfo: A pointer to a WKSTA_TRANSPORT_INFO_0_CONTAINER structure (section
// 2.2.5.15).
WorkstationTransportInfo *WorkstationTransportEnum_WorkstationTransportInfo `idl:"name:WkstaTransportInfo;switch_is:Level" json:"workstation_transport_info"`
}
WorkstationTransportEnum structure represents WKSTA_TRANSPORT_ENUM_STRUCT RPC structure.
The WKSTA_TRANSPORT_ENUM_STRUCT structure is used by the NetrWkstaTransportEnum method (section 3.2.4.4). The Level parameter in the submitted structure determines the information level of the data that the method returns.
func (*WorkstationTransportEnum) MarshalNDR ¶
func (*WorkstationTransportEnum) UnmarshalNDR ¶
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 (o *WorkstationTransportEnum_WorkstationTransportInfo) GetValue() any
func (*WorkstationTransportEnum_WorkstationTransportInfo) MarshalUnionNDR ¶
func (*WorkstationTransportEnum_WorkstationTransportInfo) NDRSwitchValue ¶
func (o *WorkstationTransportEnum_WorkstationTransportInfo) NDRSwitchValue(sw uint32) uint32
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 (*WorkstationTransportInfo0) UnmarshalNDR ¶
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 (*WorkstationUserEnum) UnmarshalNDR ¶
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 (o *WorkstationUserEnum_WorkstationUserInfo) GetValue() any
func (*WorkstationUserEnum_WorkstationUserInfo) MarshalUnionNDR ¶
func (*WorkstationUserEnum_WorkstationUserInfo) NDRSwitchValue ¶
func (o *WorkstationUserEnum_WorkstationUserInfo) NDRSwitchValue(sw uint32) uint32
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 (*WorkstationUserInfo0) UnmarshalNDR ¶
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 ¶
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 (*WorkstationUserInfo1) UnmarshalNDR ¶
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 ¶
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 (*WorkstationUserInfo_Level0) UnmarshalNDR ¶
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