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 ¶
- Variables
- type PCHCollection
- type PCHService
- type RemoteAssistanceServer
- func (o *RemoteAssistanceServer) InterfacePointer() *dcom.InterfacePointer
- func (o *RemoteAssistanceServer) MarshalNDR(ctx context.Context, w ndr.Writer) error
- func (o *RemoteAssistanceServer) NDRSizeInfo() []uint64
- func (o *RemoteAssistanceServer) UnmarshalNDR(ctx context.Context, w ndr.Reader) error
- type SAFSession
- type SessionStateEnum
Constants ¶
This section is empty.
Variables ¶
var DispatchIDPCHBase = 134283264
DispatchIDPCHBase represents the DISPID_PCH_BASE RPC constant
var DispatchIDPCHBaseColumn = 134283264
DispatchIDPCHBaseColumn represents the DISPID_PCH_BASE_COL RPC constant
var DispatchIDPCHColumnCount = 134283264
DispatchIDPCHColumnCount represents the DISPID_PCH_COL__COUNT RPC constant
var DispatchIDPCHHelpServiceBase = 134217728
DispatchIDPCHHelpServiceBase represents the DISPID_PCH_HELPSVC_BASE RPC constant
var DispatchIDPCHHelpServiceBaseService = 134217728
DispatchIDPCHHelpServiceBaseService represents the DISPID_PCH_HELPSVC_BASE_SVC RPC constant
var DispatchIDPCHServiceRemoteConnectionParams = 134217792
DispatchIDPCHServiceRemoteConnectionParams represents the DISPID_PCH_SVC__REMOTECONNECTIONPARMS RPC constant
var DispatchIDPCHServiceRemoteUserSessionInfo = 134217793
DispatchIDPCHServiceRemoteUserSessionInfo represents the DISPID_PCH_SVC__REMOTEUSERSESSIONINFO RPC constant
var DispatchIDSAFBase = 134348800
DispatchIDSAFBase represents the DISPID_SAF_BASE RPC constant
var DispatchIDSAFBaseRcd = 134351616
DispatchIDSAFBaseRcd represents the DISPID_SAF_BASE_RCD RPC constant
var DispatchIDSAFBaseSess = 134352128
DispatchIDSAFBaseSess represents the DISPID_SAF_BASE_SESS RPC constant
var DispatchIDSAFBaseUser = 134351872
DispatchIDSAFBaseUser represents the DISPID_SAF_BASE_USER RPC constant
var DispatchIDSAFSessDomainName = 134352146
DispatchIDSAFSessDomainName represents the DISPID_SAF_SESS__DOMAINNAME RPC constant
var DispatchIDSAFSessSessionID = 134352144
DispatchIDSAFSessSessionID represents the DISPID_SAF_SESS__SESSIONID RPC constant
var DispatchIDSAFSessSessionState = 134352145
DispatchIDSAFSessSessionState represents the DISPID_SAF_SESS__SESSIONSTATE RPC constant
var DispatchIDSAFSessUserName = 134352147
DispatchIDSAFSessUserName represents the DISPID_SAF_SESS__USERNAME RPC constant
var DispatchIDSAFUserDomainName = 134351888
DispatchIDSAFUserDomainName represents the DISPID_SAF_USER__DOMAINNAME RPC constant
var DispatchIDSAFUserUserName = 134351889
DispatchIDSAFUserUserName represents the DISPID_SAF_USER__USERNAME RPC constant
var (
// import guard
GoPackage = "dcom/rai"
)
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
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 (*PCHCollection) NDRSizeInfo ¶
func (o *PCHCollection) NDRSizeInfo() []uint64
func (*PCHCollection) UnmarshalNDR ¶
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 (*PCHService) NDRSizeInfo ¶
func (o *PCHService) NDRSizeInfo() []uint64
func (*PCHService) UnmarshalNDR ¶
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 (*RemoteAssistanceServer) NDRSizeInfo ¶
func (o *RemoteAssistanceServer) NDRSizeInfo() []uint64
func (*RemoteAssistanceServer) UnmarshalNDR ¶
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 (*SAFSession) NDRSizeInfo ¶
func (o *SAFSession) NDRSizeInfo() []uint64
func (*SAFSession) UnmarshalNDR ¶
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