rai

package
v1.0.5 Latest Latest
Warning

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

Go to latest
Published: Oct 29, 2024 License: MIT Imports: 9 Imported by: 0

Documentation

Overview

The rai package implements the RAI client protocol.

Introduction

The Remote Assistance Initiation Protocol is a set of Distributed Component Object Model (DCOM) interfaces, as specified in [MS-DCOM], for initiating a Remote Assistance connection to another computer in a domain. The Remote Assistance Initiation Protocol allows an authorized expert to start Remote Assistance on a remote novice computer to retrieve data that is required to make a Remote Assistance connection from the expert computer to the novice computer.

Overview

The Remote Assistance Initiation Protocol provides a set of DCOM interfaces that enable an expert to retrieve the Remote Assistance connection-specific data from the remote novice computer. This Remote Assistance connection-specific data is subsequently used to initiate a Remote Assistance connection as explained in the Remote Assistance Initiation Protocol.

The expert needs to have the IP address or fully qualified domain name (FQDN) of the novice computer to use this protocol.

The expert is the DCOM client and the novice is the DCOM server.

Before the expert's DCOM call is executed on the novice computer, DCOM performs a check to verify that the expert is on the list of authorized Remote Assistance helpers on the novice computer.<1>

Index

Constants

This section is empty.

Variables

View Source
var DispatchIDPCHBase = 134283264

DispatchIDPCHBase represents the DISPID_PCH_BASE RPC constant

View Source
var DispatchIDPCHBaseColumn = 134283264

DispatchIDPCHBaseColumn represents the DISPID_PCH_BASE_COL RPC constant

View Source
var DispatchIDPCHColumnCount = 134283264

DispatchIDPCHColumnCount represents the DISPID_PCH_COL__COUNT RPC constant

View Source
var DispatchIDPCHHelpServiceBase = 134217728

DispatchIDPCHHelpServiceBase represents the DISPID_PCH_HELPSVC_BASE RPC constant

View Source
var DispatchIDPCHHelpServiceBaseService = 134217728

DispatchIDPCHHelpServiceBaseService represents the DISPID_PCH_HELPSVC_BASE_SVC RPC constant

View Source
var DispatchIDPCHServiceRemoteConnectionParams = 134217792

DispatchIDPCHServiceRemoteConnectionParams represents the DISPID_PCH_SVC__REMOTECONNECTIONPARMS RPC constant

View Source
var DispatchIDPCHServiceRemoteUserSessionInfo = 134217793

DispatchIDPCHServiceRemoteUserSessionInfo represents the DISPID_PCH_SVC__REMOTEUSERSESSIONINFO RPC constant

View Source
var DispatchIDSAFBase = 134348800

DispatchIDSAFBase represents the DISPID_SAF_BASE RPC constant

View Source
var DispatchIDSAFBaseRcd = 134351616

DispatchIDSAFBaseRcd represents the DISPID_SAF_BASE_RCD RPC constant

View Source
var DispatchIDSAFBaseSess = 134352128

DispatchIDSAFBaseSess represents the DISPID_SAF_BASE_SESS RPC constant

View Source
var DispatchIDSAFBaseUser = 134351872

DispatchIDSAFBaseUser represents the DISPID_SAF_BASE_USER RPC constant

View Source
var DispatchIDSAFSessDomainName = 134352146

DispatchIDSAFSessDomainName represents the DISPID_SAF_SESS__DOMAINNAME RPC constant

View Source
var DispatchIDSAFSessSessionID = 134352144

DispatchIDSAFSessSessionID represents the DISPID_SAF_SESS__SESSIONID RPC constant

View Source
var DispatchIDSAFSessSessionState = 134352145

DispatchIDSAFSessSessionState represents the DISPID_SAF_SESS__SESSIONSTATE RPC constant

View Source
var DispatchIDSAFSessUserName = 134352147

DispatchIDSAFSessUserName represents the DISPID_SAF_SESS__USERNAME RPC constant

View Source
var DispatchIDSAFUserDomainName = 134351888

DispatchIDSAFUserDomainName represents the DISPID_SAF_USER__DOMAINNAME RPC constant

View Source
var DispatchIDSAFUserUserName = 134351889

DispatchIDSAFUserUserName represents the DISPID_SAF_USER__USERNAME RPC constant

View Source
var (
	// import guard
	GoPackage = "dcom/rai"
)
View Source
var PCHServiceClassID = &dcom.ClassID{Data1: 0x833e4010, Data2: 0xaff7, Data3: 0x4ac3, Data4: []byte{0xaa, 0xc2, 0x9f, 0x24, 0xc1, 0x45, 0x7b, 0xce}}

PCHService class identifier 833e4010-aff7-4ac3-aac2-9f24c1457bce

View Source
var RaServerClassID = &dcom.ClassID{Data1: 0x3c3a70a7, Data2: 0xa468, Data3: 0x49b9, Data4: []byte{0x8a, 0xda, 0x28, 0xe1, 0x1f, 0xcc, 0xad, 0x5d}}

RASrv class identifier 3c3a70a7-a468-49b9-8ada-28e11fccad5d

Functions

This section is empty.

Types

type PCHCollection

type PCHCollection dcom.InterfacePointer

PCHCollection structure represents IPCHCollection RPC structure.

func (*PCHCollection) InterfacePointer

func (o *PCHCollection) InterfacePointer() *dcom.InterfacePointer

func (*PCHCollection) MarshalNDR

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

func (*PCHCollection) NDRSizeInfo

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

func (*PCHCollection) UnmarshalNDR

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

type PCHService

type PCHService dcom.InterfacePointer

PCHService structure represents IPCHService RPC structure.

The IPCHService interface is implemented by the novice to allow the expert to request a Remote Assistance Connection String.<6>

The UUID for this interface is: "833E4200-AFF7-4AC3-AAC2-9F24C1457BCE".

Methods in RPC opnum order:

* Opnums ( 1ef0b4e0-d88e-4b60-bc24-c983bec1e088#gt_e127848e-c66d-427d-b3aa-9f904fa4ada7 ) 0, 1, and 2 are reserved for the IUnknown_QueryInterface, AddRef, and Release methods used by the standard COM IUnknown interface specified in [MS-DCOM] ( ../ms-dcom/4a893f3d-bd29-48cd-9f43-d9777a4415b0 ) section 3.1.1.5.8 ( ../ms-dcom/2b4db106-fb79-4a67-b45f-63654f19c54c ).

* Opnums 3 and 4 are not used across the network. These opnums are reserved and MUST NOT be used. <7> ( 90b2d2e5-7931-4762-8949-04617e1d9089#Appendix_A_7 )

* Opnums 5 and 6 are reserved for the GetIDsOfNames and Invoke methods in the IDispatch interface specified in [MS-OAUT] ( ../ms-oaut/bbb05720-f724-45c7-8d17-f83c3d1a3961 ) section 3.1 ( ../ms-oaut/c2c7dbe2-bafa-49da-93a7-7b75499ef90a ).

* Opnums 7 through 18 and opnum 21 are not used by this protocol.

Method

Description

RemoteConnectionParms ( 253af556-3edc-40d0-8ffa-5a6e23e6ecb5 )

Gets the Remote Assistance connection parameters for a specified UserName, DomainName, and SessionID triple.

Opnum: 19

RemoteUserSessionInfo ( a7abc4db-6ad1-4aed-9cf7-72428f72ce96 )

Returns the collection of the terminal services ( 1ef0b4e0-d88e-4b60-bc24-c983bec1e088#gt_ffff3f01-8c21-44d3-bbda-0062a1fbda4b ) sessions on the remote novice computer. All the terminal services session information is returned as a standard IPCHCollection interface. The members of this collection are objects of type ISAFSession. ISAFSession includes the DomainName, UserName, SessionID, and User SessionState for each session.

Opnum: 20

func (*PCHService) InterfacePointer

func (o *PCHService) InterfacePointer() *dcom.InterfacePointer

func (*PCHService) MarshalNDR

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

func (*PCHService) NDRSizeInfo

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

func (*PCHService) UnmarshalNDR

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

type RemoteAssistanceServer

type RemoteAssistanceServer dcom.InterfacePointer

RemoteAssistanceServer structure represents IRASrv RPC structure.

The IRASrv interface is implemented by the novice computer to allow the expert computer to request a Remote Assistance Connection String.<12>

The UUID for this interface is: "F120A684-B926-447F-9DF4-C966CB785648".

Opnums 3 and 4 are not used across the network. These opnums are reserved and MUST NOT be reused by non-Microsoft implementations.<13>

Methods in RPC Opnum Order

+-------------------+----------------------------------------------------------------------------------+
|                   |                                                                                  |
|      METHOD       |                                   DESCRIPTION                                    |
|                   |                                                                                  |
+-------------------+----------------------------------------------------------------------------------+
+-------------------+----------------------------------------------------------------------------------+
| GetNoviceUserInfo | Retrieves the Remote Assistance Connection String information for a specified    |
|                   | terminal services session. Opnum: 7                                              |
+-------------------+----------------------------------------------------------------------------------+
| GetSessionInfo    | Returns the collection of the terminal services sessions on the remote novice    |
|                   | computer. This method also returns the number of terminal services sessions      |
|                   | running on the novice computer. All the terminal services session information    |
|                   | is returned as a SAFEARRAY. The elements of this SAFEARRAY are strings with      |
|                   | information about the DomainName, UserName, and SessionID for each terminal      |
|                   | services session. Opnum: 8                                                       |
+-------------------+----------------------------------------------------------------------------------+

Opnums 0, 1, and 2 are reserved for the IUnknown_QueryInterface, AddRef, and Release methods used by the standard COM IUnknown interface, as specified in [MS-DCOM] section 3.1.1.5.8. Opnums 5 and 6 are reserved for the GetIDsOfNames, and Invoke methods in the IDispatch interface, as specified in [MS-OAUT] section 3.1.

func (*RemoteAssistanceServer) InterfacePointer

func (o *RemoteAssistanceServer) InterfacePointer() *dcom.InterfacePointer

func (*RemoteAssistanceServer) MarshalNDR

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

func (*RemoteAssistanceServer) NDRSizeInfo

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

func (*RemoteAssistanceServer) UnmarshalNDR

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

type SAFSession

type SAFSession dcom.InterfacePointer

SAFSession structure represents ISAFSession RPC structure.

func (*SAFSession) InterfacePointer

func (o *SAFSession) InterfacePointer() *dcom.InterfacePointer

func (*SAFSession) MarshalNDR

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

func (*SAFSession) NDRSizeInfo

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

func (*SAFSession) UnmarshalNDR

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

type SessionStateEnum

type SessionStateEnum uint16

SessionStateEnum type represents SessionStateEnum RPC enumeration.

The SessionStateEnum enumeration defines the states of a terminal services session.

var (
	// pchActive:  The user is logged on and active.
	SessionStateEnumActive SessionStateEnum = 0
	// pchConnected:  The server is connected to the client.
	SessionStateEnumConnected SessionStateEnum = 1
	// pchConnectQuery:  The server is in the process of connecting to the client.
	SessionStateEnumConnectQuery SessionStateEnum = 2
	// pchShadow:  The session is shadowing another session.
	SessionStateEnumShadow SessionStateEnum = 3
	// pchDisconnected:  The client has disconnected from the session.
	SessionStateEnumDisconnected SessionStateEnum = 4
	// pchIdle:  The session is waiting for a client to connect.
	SessionStateEnumIdle SessionStateEnum = 5
	// pchListen:  The session is listening for a request for a new connection. No user
	// is logged on to a listener session. A listener session cannot be reset, shadowed,
	// or changed to a regular client session.
	SessionStateEnumListen SessionStateEnum = 6
	// pchReset:  The session is being reset.
	SessionStateEnumReset SessionStateEnum = 7
	// pchDown:  The session is down due to an error.
	SessionStateEnumDown SessionStateEnum = 8
	// pchInit:  The session is initializing.
	SessionStateEnumInit SessionStateEnum = 9
	// pchStateInvalid:  The session is in an unknown state.
	SessionStateEnumInvalid SessionStateEnum = 10
)

func (SessionStateEnum) String

func (o SessionStateEnum) String() string

Directories

Path Synopsis
ipchcollection
v0
ipchservice
v0
irasrv
v0
isafsession
v0

Jump to

Keyboard shortcuts

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