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 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_DefaultUseEnum
- type UseInfo_DefaultUseInfo
- 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 WorkstationInfo1013
- type WorkstationInfo1018
- type WorkstationInfo102
- type WorkstationInfo1046
- type WorkstationInfo502
- type WorkstationInfo_100
- type WorkstationInfo_101
- type WorkstationInfo_1013
- type WorkstationInfo_1018
- type WorkstationInfo_102
- type WorkstationInfo_1046
- type WorkstationInfo_502
- type WorkstationInfo_DefaultWorkstationInfo
- 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_DefaultWorkstationTransportEnum
- 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_DefaultWorkstationUserEnum
- 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 { // 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 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 // *UseInfo_DefaultUseEnum Value is_UseEnum_UseInfo `json:"value"` }
UseEnum_UseInfo structure represents USE_ENUM_STRUCT union anonymous member.
The USE_ENUM_STRUCT structure is used by the NetrUseEnum method (section 3.2.4.10) to encapsulate the _USE_ENUM_UNION union.
func (*UseEnum_UseInfo) GetValue ¶
func (o *UseEnum_UseInfo) GetValue() any
func (*UseEnum_UseInfo) MarshalUnionNDR ¶
func (*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 { // 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 // *UseInfo_DefaultUseInfo Value is_UseInfo `json:"value"` }
UseInfo structure represents USE_INFO RPC union.
The USE_INFO union specifies details about the connection between a machine on which the workstation service is running and a shared resource. This union is used by the methods NetrUseAdd (section 3.2.4.7) and NetrUseGetInfo (section 3.2.4.8).
func (*UseInfo) 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_DefaultUseEnum ¶
type UseInfo_DefaultUseEnum struct { }
UseInfo_DefaultUseEnum structure represents UseEnum_UseInfo RPC default union arm.
func (*UseInfo_DefaultUseEnum) MarshalNDR ¶
func (*UseInfo_DefaultUseEnum) UnmarshalNDR ¶
type UseInfo_DefaultUseInfo ¶
type UseInfo_DefaultUseInfo struct { }
UseInfo_DefaultUseInfo structure represents USE_INFO RPC default union arm.
func (*UseInfo_DefaultUseInfo) MarshalNDR ¶
func (*UseInfo_DefaultUseInfo) UnmarshalNDR ¶
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 }
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 // *WorkstationInfo_DefaultWorkstationInfo Value is_WorkstationInfo `json:"value"` }
WorkstationInfo structure represents WKSTA_INFO RPC union.
The WKSTA_INFO union specifies details about a computer. This union is used by the methods NetrWkstaGetInfo (section 3.2.4.1) and NetrWkstaSetInfo (section 3.2.4.2).
func (*WorkstationInfo) GetValue ¶
func (o *WorkstationInfo) GetValue() any
func (*WorkstationInfo) MarshalUnionNDR ¶
func (*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 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 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 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 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 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_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_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_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 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_DefaultWorkstationInfo ¶
type WorkstationInfo_DefaultWorkstationInfo struct { }
WorkstationInfo_DefaultWorkstationInfo structure represents WKSTA_INFO RPC default union arm.
func (*WorkstationInfo_DefaultWorkstationInfo) MarshalNDR ¶
func (*WorkstationInfo_DefaultWorkstationInfo) UnmarshalNDR ¶
type WorkstationStatisticsGetRequest ¶
type WorkstationStatisticsGetRequest struct { // ServerName: A WKSSVC_IDENTIFY_HANDLE structure (section 2.2.2.1) that identifies // the server (2). The client MUST map this structure to an RPC binding handle ([C706] // sections 4.3.5 and 5.1.5.2). The server MUST ignore this parameter. ServerName string `idl:"name:ServerName;string;pointer:unique" json:"server_name"` // ServiceName: A pointer to a string specifying the name of the workstation service. // This value MUST be ignored on receipt. ServiceName string `idl:"name:ServiceName;string;pointer:unique" json:"service_name"` // Level: The information level of the data. This value MUST be zero. Level uint32 `idl:"name:Level" json:"level"` // Options: This value MUST be zero. Options uint32 `idl:"name:Options" json:"options"` }
WorkstationStatisticsGetRequest structure represents the NetrWorkstationStatisticsGet operation request
func (*WorkstationStatisticsGetRequest) MarshalNDR ¶
func (*WorkstationStatisticsGetRequest) UnmarshalNDR ¶
type WorkstationStatisticsGetResponse ¶
type WorkstationStatisticsGetResponse struct { // Buffer: A pointer to a STAT_WORKSTATION_0 structure (section 2.2.5.11) that contains // the statistical information. Buffer *StatWorkstation0 `idl:"name:Buffer" json:"buffer"` // Return: The NetrWorkstationStatisticsGet return value. Return uint32 `idl:"name:Return" json:"return"` }
WorkstationStatisticsGetResponse structure represents the NetrWorkstationStatisticsGet operation response
func (*WorkstationStatisticsGetResponse) MarshalNDR ¶
func (*WorkstationStatisticsGetResponse) UnmarshalNDR ¶
type WorkstationTransportEnum ¶
type WorkstationTransportEnum struct { // Level: The data’s information level, which MUST be set to zero. Level uint32 `idl:"name:Level" json:"level"` // WkstaTransportInfo: A pointer to a WKSTA_TRANSPORT_INFO_0_CONTAINER structure (section // 2.2.5.15). WorkstationTransportInfo *WorkstationTransportEnum_WorkstationTransportInfo `idl:"name:WkstaTransportInfo;switch_is:Level" json:"workstation_transport_info"` }
WorkstationTransportEnum structure represents WKSTA_TRANSPORT_ENUM_STRUCT RPC structure.
The WKSTA_TRANSPORT_ENUM_STRUCT structure is used by the NetrWkstaTransportEnum method (section 3.2.4.4). The Level parameter in the submitted structure determines the information level of the data that the method returns.
func (*WorkstationTransportEnum) MarshalNDR ¶
func (*WorkstationTransportEnum) UnmarshalNDR ¶
type WorkstationTransportEnum_WorkstationTransportInfo ¶
type WorkstationTransportEnum_WorkstationTransportInfo struct { // Types that are assignable to Value // // *WorkstationTransportInfo_Level0 // *WorkstationTransportInfo_DefaultWorkstationTransportEnum Value is_WorkstationTransportEnum_WorkstationTransportInfo `json:"value"` }
WorkstationTransportEnum_WorkstationTransportInfo structure represents WKSTA_TRANSPORT_ENUM_STRUCT union anonymous member.
The WKSTA_TRANSPORT_ENUM_STRUCT structure is used by the NetrWkstaTransportEnum method (section 3.2.4.4). The Level parameter in the submitted structure determines the information level of the data that the method returns.
func (*WorkstationTransportEnum_WorkstationTransportInfo) GetValue ¶
func (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_DefaultWorkstationTransportEnum ¶
type WorkstationTransportInfo_DefaultWorkstationTransportEnum struct { }
WorkstationTransportInfo_DefaultWorkstationTransportEnum structure represents WorkstationTransportEnum_WorkstationTransportInfo RPC default union arm.
func (*WorkstationTransportInfo_DefaultWorkstationTransportEnum) MarshalNDR ¶
func (*WorkstationTransportInfo_DefaultWorkstationTransportEnum) UnmarshalNDR ¶
type WorkstationTransportInfo_Level0 ¶
type WorkstationTransportInfo_Level0 struct {
Level0 *WorkstationTransportInfo0Container `idl:"name:Level0" json:"level0"`
}
WorkstationTransportInfo_Level0 structure represents WorkstationTransportEnum_WorkstationTransportInfo RPC union arm.
It has following labels: 0
func (*WorkstationTransportInfo_Level0) MarshalNDR ¶
func (*WorkstationTransportInfo_Level0) UnmarshalNDR ¶
type WorkstationUserEnum ¶
type WorkstationUserEnum struct { // Level: The information level of the data, which determines the type of structure // that the method returns. It MUST be one of the following values. // // +------------+-------------------------------------------------------------------------+ // | | | // | VALUE | MEANING | // | | | // +------------+-------------------------------------------------------------------------+ // +------------+-------------------------------------------------------------------------+ // | 0x00000000 | Specifies the WKSTA_USER_INFO_0_CONTAINER structure (section 2.2.5.12). | // +------------+-------------------------------------------------------------------------+ // | 0x00000001 | Specifies the WKSTA_USER_INFO_1_CONTAINER structure (section 2.2.5.13). | // +------------+-------------------------------------------------------------------------+ Level uint32 `idl:"name:Level" json:"level"` // WkstaUserInfo: A WKSTA_USER_INFO_0_CONTAINER structure or a WKSTA_USER_INFO_1_CONTAINER // structure. WorkstationUserInfo *WorkstationUserEnum_WorkstationUserInfo `idl:"name:WkstaUserInfo;switch_is:Level" json:"workstation_user_info"` }
WorkstationUserEnum structure represents WKSTA_USER_ENUM_STRUCT RPC structure.
The WKSTA_USER_ENUM_STRUCT structure is used by the NetrWkstaUserEnum method (section 3.2.4.3) to encapsulate the _WKSTA_USER_ENUM_UNION union.
func (*WorkstationUserEnum) MarshalNDR ¶
func (*WorkstationUserEnum) UnmarshalNDR ¶
type WorkstationUserEnum_WorkstationUserInfo ¶
type WorkstationUserEnum_WorkstationUserInfo struct { // Types that are assignable to Value // // *WorkstationUserInfo_Level0 // *WorkstationUserInfo_Level1 // *WorkstationUserInfo_DefaultWorkstationUserEnum Value is_WorkstationUserEnum_WorkstationUserInfo `json:"value"` }
WorkstationUserEnum_WorkstationUserInfo structure represents WKSTA_USER_ENUM_STRUCT union anonymous member.
The WKSTA_USER_ENUM_STRUCT structure is used by the NetrWkstaUserEnum method (section 3.2.4.3) to encapsulate the _WKSTA_USER_ENUM_UNION union.
func (*WorkstationUserEnum_WorkstationUserInfo) GetValue ¶
func (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_DefaultWorkstationUserEnum ¶
type WorkstationUserInfo_DefaultWorkstationUserEnum struct { }
WorkstationUserInfo_DefaultWorkstationUserEnum structure represents WorkstationUserEnum_WorkstationUserInfo RPC default union arm.
func (*WorkstationUserInfo_DefaultWorkstationUserEnum) MarshalNDR ¶
func (*WorkstationUserInfo_DefaultWorkstationUserEnum) UnmarshalNDR ¶
type WorkstationUserInfo_Level0 ¶
type WorkstationUserInfo_Level0 struct {
Level0 *WorkstationUserInfo0Container `idl:"name:Level0" json:"level0"`
}
WorkstationUserInfo_Level0 structure represents WorkstationUserEnum_WorkstationUserInfo RPC union arm.
It has following labels: 0
func (*WorkstationUserInfo_Level0) MarshalNDR ¶
func (*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