Documentation ¶
Index ¶
- Constants
- func AlignBytes(data []byte, x64 bool) []byte
- func AlignBytes32(data []byte) []byte
- func AlignBytes64(data []byte) []byte
- func NackReason(br BindResponse) error
- func RpcErrFmt(ret uint32) error
- type AckResponse
- type AckResult
- type BindContextEntry
- type BindResponse
- type BindStruct
- type CharPtr
- type Client
- type CreateServiceRequest
- type CreateServiceResponse
- type DeleteServiceRequest
- type DeleteServiceResponse
- type HeaderStruct
- type LpScRpcHandle
- type LpSecurityDescriptor
- type LpServiceStatus
- type MsrpcUUID
- type NackResponse
- type OpenSCManagerRequest
- type OpenSCManagerResponse
- type OpenServiceRequest
- type OpenServiceResponse
- type PointerHeader
- type PrtVersionsSupportedT
- type RChangeServiceConfig2ARequest
- type RChangeServiceConfig2AResponse
- type RChangeServiceConfig2WRequest
- type RChangeServiceConfig2WResponse
- type RChangeServiceConfigARequest
- type RChangeServiceConfigAResponse
- type RChangeServiceConfigWRequest
- type RChangeServiceConfigWResponse
- type RCloseNotifyHandleRequest
- type RCloseServiceHandleRequest
- type RCloseServiceHandleResponse
- type RControlServiceExARequest
- type RControlServiceExWRequest
- type RControlServiceExWResponse
- type RControlServiceRequest
- type RControlServiceResponse
- type RCreateServiceARequest
- type RCreateServiceAResponse
- type RCreateServiceWOW64ARequest
- type RCreateServiceWOW64AResponse
- type RCreateServiceWOW64WRequest
- type RCreateServiceWOW64WResponse
- type RCreateServiceWRequest
- type RCreateServiceWResponse
- type RCreateWowServiceRequest
- type RCreateWowServiceResponse
- type RDeleteServiceRequest
- type REnumDependentServicesARequest
- type REnumDependentServicesAResponse
- type REnumDependentServicesWRequest
- type REnumDependentServicesWResponse
- type REnumServiceGroupWRequest
- type REnumServiceGroupWResponse
- type REnumServicesStatusARequest
- type REnumServicesStatusAResponse
- type REnumServicesStatusExARequest
- type REnumServicesStatusExAResponse
- type REnumServicesStatusExWRequest
- type REnumServicesStatusExWResponse
- type REnumServicesStatusWRequest
- type REnumServicesStatusWResponse
- type RGetNotifyResultsRequest
- type RGetServiceDisplayNameARequest
- type RGetServiceDisplayNameAResponse
- type RGetServiceDisplayNameWRequest
- type RGetServiceDisplayNameWResponse
- type RGetServiceKeyNameARequest
- type RGetServiceKeyNameAResponse
- type RGetServiceKeyNameWRequest
- type RGetServiceKeyNameWResponse
- type RLockServiceDatabaseRequest
- type RLockServiceDatabaseResponse
- type RNotifyBootConfigStatusRequest
- type RNotifyBootConfigStatusResponse
- type RNotifyServiceStatusChangeRequest
- type RNotifyServiceStatusChangeResponse
- type ROpenSCManager2Request
- type ROpenSCManager2Response
- type ROpenSCManagerARequest
- type ROpenSCManagerAResponse
- type ROpenServiceARequest
- type ROpenServiceAResponse
- type ROpenServiceWRequest
- type ROpenServiceWResponse
- type RQueryServiceConfig2ARequest
- type RQueryServiceConfig2AResponse
- type RQueryServiceConfig2WRequest
- type RQueryServiceConfig2WResponse
- type RQueryServiceConfigARequest
- type RQueryServiceConfigAResponse
- type RQueryServiceConfigExRequest
- type RQueryServiceConfigExResponse
- type RQueryServiceConfigWRequest
- type RQueryServiceConfigWResponse
- type RQueryServiceLockStatusARequest
- type RQueryServiceLockStatusAResponse
- type RQueryServiceLockStatusWRequest
- type RQueryServiceLockStatusWResponse
- type RQueryServiceObjectSecurityRequest
- type RQueryServiceObjectSecurityResponse
- type RQueryServiceStatusExRequest
- type RQueryServiceStatusExResponse
- type RQueryServiceStatusRequest
- type RQueryServiceStatusResponse
- type RSetServiceObjectSecurityRequest
- type RSetServiceObjectSecurityResponse
- type RSetServiceStatusRequest
- type RSetServiceStatusResponse
- type RStartServiceARequest
- type RStartServiceAResponse
- type RStartServiceWRequest
- type RStartServiceWResponse
- type RUnlockServiceDatabaseRequest
- type RUnlockServiceDatabaseResponse
- type RequestStruct
- type ResponseStruct
- type SCRpcHandle
- type ScRpcHandle
- type SecurityDescriptor
- type ServiceStatus
- type StartServiceRequest
- type StartServiceResponse
- type SvcCtlHandleW
- type VersionT
- type WcharTPtr
Constants ¶
const ( REASON_NOT_SPECIFIED = 0x00 TEMPORARY_CONGESTION = 0x01 // not used LOCAL_LIMIT_EXCEEDED = 0x02 PROTOCOL_VERSION_NOT_SPECIFIED = 0x04 AUTHENTICATION_TYPE_NOT_RECOGNIZED = 0x08 INVALID_CHECKSUM = 0x09 )
Nack reasons https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-rpce/6f81bffe-8fce-498a-addf-94654a57b329
const ( PDURequest = iota PDUPing PDUResponse PDUFault PDUWorking PDUNoCall PDUReject PDUAck PDUClCancel PDUFack PDUCancelAck PDUBind PDUBindAck PDUBindNak PDUAlterContext PDUAlterContextResp PDUShutdown PDUCoCancel PDUOrphaned )
PDU PacketType https://pubs.opengroup.org/onlinepubs/9629399/chap12.htm
const ( FirstFrag = 0x01 LastFrag = 0x02 PDUFlagPending = 0x03 CancelPending = 0x04 PDUFlagNoFack = 0x08 PDUFlagMayBe = 0x10 PDUFlagIdemPotent = 0x20 PDUFlagBroadcast = 0x40 PDUFlagReserved80 = 0x80 )
PDU PacketFlags https://pubs.opengroup.org/onlinepubs/9629399/chap12.htm
const ( PDUVersion = 5 PDUVersionMinor = 0 )
Supported version is 5.0
const ( SERVICE_ALL_ACCESS = 0x000F01FF SERVICE_CHANGE_CONFIG = 0x00000002 SERVICE_ENUMERATE_DEPENDENTS = 0x00000008 SERVICE_INTERROGATE = 0x00000080 SERVICE_PAUSE_CONTINUE = 0x00000040 SERVICE_QUERY_CONFIG = 0x00000001 SERVICE_QUERY_STATUS = 0x00000004 SERVICE_START = 0x00000010 SERVICE_STOP = 0x00000020 SERVICE_USER_DEFINED_CTRL = 0x00000100 SERVICE_SET_STATUS = 0x00008000 )
Access Codes https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-scmr/0d7a7011-9f41-470d-ad52-8535b47ac282
const ( SC_MANAGER_LOCK = 0x00000008 SC_MANAGER_CREATE_SERVICE = 0x00000002 SC_MANAGER_ENUMERATE_SERVICE = 0x00000004 SC_MANAGER_CONNECT = 0x00000001 SC_MANAGER_QUERY_LOCK_STATUS = 0x00000010 SC_MANAGER_MODIFY_BOOT_CONFIG = 0x00000020 )
SCM Access Codes
const ( SERVICE_KERNEL_DRIVER = 0x00000001 SERVICE_FILE_SYSTEM_DRIVER = 0x00000002 SERVICE_WIN32_OWN_PROCESS = 0x00000010 SERVICE_WIN32_SHARE_PROCESS = 0x00000020 SERVICE_INTERACTIVE_PROCESS = 0x00000100 )
Service Types https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-scmr/6a8ca926-9477-4dd4-b766-692fab07227e
const ( SERVICE_BOOT_START = 0x00000000 SERVICE_SYSTEM_START = 0x00000001 SERVICE_AUTO_START = 0x00000002 SERVICE_DEMAND_START = 0x00000003 SERVICE_DISABLED = 0x00000004 )
Service Start Types
const ( SERVICE_ERROR_IGNORE = 0x00000000 SERVICE_ERROR_NORMAL = 0x00000001 SERVICE_ERROR_SEVERE = 0x00000002 SERVICE_ERROR_CRITICAL = 0x00000003 )
Error Control
const ( SERVICE_CONTROL_CONTINUE = 0x00000003 SERVICE_CONTROL_INTERROGATE = 0x00000004 SERVICE_CONTROL_PARAMCHANGE = 0x00000006 SERVICE_CONTROL_PAUSE = 0x00000002 SERVICE_CONTROL_STOP = 0x00000001 SERVICE_CONTROL_NETBINDADD = 0x00000007 SERVICE_CONTROL_NETBINDREMOVE = 0x00000008 SERVICE_CONTROL_NETBINDENABLE = 0x00000009 SERVICE_CONTROL_NETBINDDISABLE = 0x0000000A )
Service Control Codes
const ( SERVICE_ACTIVE = 0x00000001 SERVICE_INACTIVE = 0x00000002 SERVICE_STATE_ALL = 0x00000003 )
Service State
const ( SERVICE_CONTINUE_PENDING = 0x00000005 SERVICE_PAUSE_PENDING = 0x00000006 SERVICE_PAUSED = 0x00000007 SERVICE_RUNNING = 0x00000004 SERVICE_START_PENDING = 0x00000002 SERVICE_STOP_PENDING = 0x00000003 SERVICE_STOPPED = 0x00000001 )
Current State
const ( SERVICE_ACCEPT_PARAMCHANGE = 0x00000008 SERVICE_ACCEPT_PAUSE_CONTINUE = 0x00000002 SERVICE_ACCEPT_SHUTDOWN = 0x00000004 SERVICE_ACCEPT_STOP = 0x00000001 SERVICE_ACCEPT_HARDWAREPROFILECHANGE = 0x00000020 SERVICE_ACCEPT_POWEREVENT = 0x00000040 SERVICE_ACCEPT_SESSIONCHANGE = 0x00000080 SERVICE_ACCEPT_PRESHUTDOWN = 0x00000100 SERVICE_ACCEPT_TIMECHANGE = 0x00000200 ERVICE_ACCEPT_TRIGGEREVENT = 0x00000400 )
Controls Accepted
const ( DACL_SECURITY_INFORMATION = 0x4 GROUP_SECURITY_INFORMATION = 0x2 OWNER_SECURITY_INFORMATION = 0x1 SACL_SECURITY_INFORMATION = 0x8 )
Security Information https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-scmr/deed7901-ba2b-45ce-ba66-e071928bdfc1
const ( SERVICE_CONFIG_DESCRIPTION = 0x00000001 SERVICE_CONFIG_FAILURE_ACTIONS = 0x00000002 SERVICE_CONFIG_DELAYED_AUTO_START_INFO = 0x00000003 SERVICE_CONFIG_FAILURE_ACTIONS_FLAG = 0x00000004 SERVICE_CONFIG_SERVICE_SID_INFO = 0x00000005 SERVICE_CONFIG_REQUIRED_PRIVILEGES_INFO = 0x00000006 SERVICE_CONFIG_PRESHUTDOWN_INFO = 0x00000007 SERVICE_CONFIG_PREFERRED_NODE = 0x00000009 SERVICE_CONFIG_RUNLEVEL_INFO = 0x0000000A )
Service Config2 Info Levels
const ( SC_ACTION_NONE = 0 SC_ACTION_RESTART = 1 SC_ACTION_REBOOT = 2 SC_ACTION_RUN_COMMAND = 3 )
SC_ACTIONS Types
const ( SERVICE_SID_TYPE_NONE = 0x00000000 SERVICE_SID_TYPE_RESTRICTED = 0x00000003 SERVICE_SID_TYPE_UNRESTRICTED = 0x00000001 )
SERVICE_SID_INFO types
const ( SERVICE_NOTIFY_CREATED = 0x00000080 SERVICE_NOTIFY_CONTINUE_PENDING = 0x00000010 SERVICE_NOTIFY_DELETE_PENDING = 0x00000200 SERVICE_NOTIFY_DELETED = 0x00000100 SERVICE_NOTIFY_PAUSE_PENDING = 0x00000020 SERVICE_NOTIFY_PAUSED = 0x00000040 SERVICE_NOTIFY_RUNNING = 0x00000008 SERVICE_NOTIFY_START_PENDING = 0x00000002 SERVICE_NOTIFY_STOP_PENDING = 0x00000004 SERVICE_NOTIFY_STOPPED = 0x00000001 )
Notify Mask
const ( SERVICE_STOP_CUSTOM = 0x20000000 SERVICE_STOP_PLANNED = 0x40000000 SERVICE_STOP_UNPLANNED = 0x10000000 )
SERVICE_CONTROL_STATUS_REASON_IN_PARAMSW Reasons
const ( SERVICE_TRIGGER_TYPE_DEVICE_INTERFACE_ARRIVAL = 0x00000001 SERVICE_TRIGGER_TYPE_IP_ADDRESS_AVAILABILITY = 0x00000002 SERVICE_TRIGGER_TYPE_DOMAIN_JOIN = 0x00000003 SERVICE_TRIGGER_TYPE_FIREWALL_PORT_EVENT = 0x00000004 SERVICE_TRIGGER_TYPE_GROUP_POLICY = 0x00000005 SERVICE_TRIGGER_TYPE_CUSTOM = 0x00000020 )
SERVICE_TRIGGER triggers
const ( SERVICE_TRIGGER_ACTION_SERVICE_START = 0x00000001 SERVICE_TRIGGER_ACTION_SERVICE_STOP = 0x00000002 )
SERVICE_TRIGGER actions
const ( DOMAIN_JOIN_GUID = "1ce20aba-9851-4421-9430-1ddeb766e809" DOMAIN_LEAVE_GUID = "ddaf516e-58c2-4866-9574-c3b615d42ea1" FIREWALL_PORT_OPEN_GUID = "b7569e07-8421-4ee0-ad10-86915afdad09" FIREWALL_PORT_CLOSE_GUID = "a144ed38-8e12-4de4-9d96-e64740b1a524" MACHINE_POLICY_PRESENT_GUID = "659FCAE6-5BDB-4DA9-B1FF-CA2A178D46E0" NETWORK_MANAGER_FIRST_IP_ADDRESS_ARRIVAL_GUID = "4f27f2de-14e2-430b-a549-7cd48cbc8245" NETWORK_MANAGER_LAST_IP_ADDRESS_REMOVAL_GUID = "cc4ba62a-162e-4648-847a-b6bdf993e335" USER_POLICY_PRESENT_GUID = "54FB46C8-F089-464C-B1FD-59D1B62C3B50" )
SERVICE_TRIGGER subTypes
const ( SERVICE_TRIGGER_DATA_TYPE_BINARY = 0x00000001 SERVICE_TRIGGER_DATA_TYPE_STRING = 0x00000002 )
SERVICE_TRIGGER_SPECIFIC_DATA_ITEM dataTypes
const ( RCloseServiceHandle = iota RControlService RDeleteService RLockServiceDatabase RQueryServiceObjectSecurity RSetServiceObjectSecurity RQueryServiceStatus RSetServiceStatus RUnlockServiceDatabase RNotifyBootConfigStatus RChangeServiceConfigW RCreateServiceW REnumDependentServicesW REnumServicesStatusW ROpenSCManagerW ROpenServiceW RQueryServiceConfigW RQueryServiceLockStatusW RStartServiceW RGetServiceDisplayNameW RGetServiceKeyNameW RChangeServiceConfigA RCreateServiceA REnumDependentServicesA REnumServicesStatusA ROpenSCManagerA ROpenServiceA RQueryServiceConfigA RQueryServiceLockStatusA RStartServiceA RGetServiceDisplayNameA RGetServiceKeyNameA REnumServiceGroupW RChangeServiceConfig2A RChangeServiceConfig2W RQueryServiceConfig2A RQueryServiceConfig2W RQueryServiceStatusEx REnumServicesStatusExA REnumServicesStatusExW RCreateServiceWOW64A RCreateServiceWOW64W RNotifyServiceStatusChange RGetNotifyResults RCloseNotifyHandle RControlServiceExA RControlServiceExW RQueryServiceConfigEx RCreateWowService ROpenSCManager2 )
const ( ERROR_SUCCESS = 0 ERROR_ACCESS_DENIED = 5 ERROR_INVALID_HANDLE = 6 ERROR_INVALID_DATA = 13 ERROR_INVALID_PARAMETER = 87 ERROR_SERVICE_DATABASE_LOCKED = 1055 ERROR_INVALID_SERVICE_ACCOUNT = 1057 ERROR_CIRCULAR_DEPENDENCY = 1059 ERROR_INVALID_SERVICE_LOCK = 1071 ERROR_SERVICE_MARKED_FOR_DELETE = 1072 ERROR_DUPLICATE_SERVICE_NAME = 1078 ERROR_SHUTDOWN_IN_PROGRESS = 1115 )
Return Values for SCMR Operations
const SC_STATUS_PROCESS_INFO = 0
SC_STATUS_TYPE types
const SERVICE_NO_CHANGE = 0xFFFFFFFF
ServiceNoChange
Variables ¶
This section is empty.
Functions ¶
func AlignBytes ¶
func AlignBytes32 ¶
func AlignBytes64 ¶
func NackReason ¶
func NackReason(br BindResponse) error
Types ¶
type AckResponse ¶
type BindContextEntry ¶
type BindResponse ¶
type BindResponse struct { HeaderStruct Body interface{} }
func ParseBindResponse ¶
func ParseBindResponse(res []byte) (br BindResponse, err error)
type BindStruct ¶
type BindStruct struct { HeaderStruct MaxSendFrag uint16 MaxRecvFrag uint16 AssocGroup uint32 ContextCount uint32 CtxEntries []byte }
func NewBindStruct ¶
func (*BindStruct) Bytes ¶
func (req *BindStruct) Bytes() []byte
type Client ¶
type Client struct { // expose functions like the Conn interface https://pkg.go.dev/net#Conn // could also be using a named pipe or NETBIOS, as long as the methods // are exposed correctly Transport net.Conn Authenticator *auth.SpnegoClient SupportsEncryption bool Encrypt bool X64Syntax bool }
func (*Client) Authenticate ¶
type CreateServiceRequest ¶
type CreateServiceRequest struct { ContextHandle []byte `smb:"fixed:20"` ServiceName SCRpcHandle Reserved1 uint16 DisplayName PointerHeader Reserved2 uint16 AccessMask uint32 ServiceType uint32 ServiceStartType uint32 ServiceErrorControl uint32 BinaryPathName SCRpcHandle NULLPointer uint32 TagId uint32 NULLPointer2 uint32 DependSize uint32 NULLPointer3 uint32 NULLPointer4 uint32 PasswordSize uint32 }
type CreateServiceResponse ¶
type DeleteServiceRequest ¶
type DeleteServiceRequest struct {
ContextHandle []byte `smb:"fixed:20"`
}
type DeleteServiceResponse ¶
type HeaderStruct ¶
type HeaderStruct struct { RpcVersion uint8 RpcVersionMinor uint8 PacketType uint8 PacketFlags byte DataRepresentation []byte `smb:"fixed:4"` FragLength uint16 AuthLength uint16 CallId uint32 }
func NewHeader ¶
func NewHeader() *HeaderStruct
type LpScRpcHandle ¶
type LpScRpcHandle ScRpcHandle
type LpSecurityDescriptor ¶
type LpSecurityDescriptor struct { PointerHeader SecurityDescriptor }
type LpServiceStatus ¶
type LpServiceStatus struct { PointerHeader ServiceStatus }
type MsrpcUUID ¶
type NackResponse ¶
type NackResponse struct { ProviderRejectReason uint16 Versions PrtVersionsSupportedT Signature []byte `smb:"fixed:16"` // optional ExtendedErrorInfo []byte }
type OpenSCManagerRequest ¶
type OpenSCManagerRequest struct { MachineName PointerHeader DatabaseName PointerHeader Reserved uint16 AccessMask uint32 }
type OpenSCManagerResponse ¶
type OpenServiceRequest ¶
type OpenServiceRequest struct { ContextHandle []byte `smb:"fixed:20"` ServiceName SCRpcHandle Reserved uint16 AccessMask uint32 }
type OpenServiceResponse ¶
type PointerHeader ¶
type PrtVersionsSupportedT ¶
type RChangeServiceConfig2ARequest ¶
type RChangeServiceConfig2ARequest struct { HService ScRpcHandle DWInfoLevel uint32 LPInfo CharPtr }
Opnum 36
type RChangeServiceConfig2AResponse ¶
type RChangeServiceConfig2AResponse struct{}
type RChangeServiceConfig2WRequest ¶
type RChangeServiceConfig2WRequest struct { HService ScRpcHandle DWInfoLevel uint32 LPInfo WcharTPtr }
Opnum 37
type RChangeServiceConfig2WResponse ¶
type RChangeServiceConfig2WResponse struct{}
type RChangeServiceConfigARequest ¶
type RChangeServiceConfigARequest struct { HService ScRpcHandle DWServiceType uint32 DWStartType uint32 DWErrorControl uint32 LPBinaryPathName CharPtr LPLoadOrderGroup CharPtr LPDWTagId CharPtr LPDependencies CharPtr DWDependSize uint32 LPServiceStartName CharPtr LPPassword CharPtr DWPWSize uint32 LPDisplayName CharPtr }
Opnum 23
type RChangeServiceConfigAResponse ¶
type RChangeServiceConfigAResponse struct{}
type RChangeServiceConfigWRequest ¶
type RChangeServiceConfigWRequest struct { HService ScRpcHandle DWServiceType uint32 DWStartType uint32 DWErrorControl uint32 LPBinaryPathName WcharTPtr LPLoadOrderGroup WcharTPtr LPDWTagId WcharTPtr LPDependencies WcharTPtr DWDependSize uint32 LPServiceStartName WcharTPtr LPPassword WcharTPtr DWPWSize uint32 LPDisplayName WcharTPtr }
Opnum 11
[in] SC_RPC_HANDLE hService, [in] DWORD dwServiceType, [in] DWORD dwStartType, [in] DWORD dwErrorControl, [in, string, unique, range(0, SC_MAX_PATH_LENGTH)] wchar_t* lpBinaryPathName, [in, string, unique, range(0, SC_MAX_NAME_LENGTH)] wchar_t* lpLoadOrderGroup, [in, out, unique] LPDWORD lpdwTagId, [in, unique, size_is(dwDependSize)] LPBYTE lpDependencies, [in, range(0, SC_MAX_DEPEND_SIZE)] DWORD dwDependSize, [in, string, unique, range(0, SC_MAX_ACCOUNT_NAME_LENGTH)] wchar_t* lpServiceStartName, [in, unique, size_is(dwPwSize)] LPBYTE lpPassword, [in, range(0, SC_MAX_PWD_SIZE)] DWORD dwPwSize, [in, string, unique, range(0, SC_MAX_NAME_LENGTH)] wchar_t* lpDisplayName
type RChangeServiceConfigWResponse ¶
type RChangeServiceConfigWResponse struct{}
type RCloseNotifyHandleRequest ¶
type RCloseNotifyHandleRequest struct {
HService ScRpcHandle
}
Opnum 49
type RCloseServiceHandleRequest ¶
type RCloseServiceHandleRequest struct {
HSCObject ScRpcHandle
}
Opnum 0
[in, out] LPSC_RPC_HANDLE hSCObject
type RCloseServiceHandleResponse ¶
type RCloseServiceHandleResponse struct {
HSCObject ScRpcHandle
}
type RControlServiceExARequest ¶
type RControlServiceExARequest struct { HService ScRpcHandle DWControl uint32 DWInfoLevel uint32 LPControlInfo CharPtr }
Opnum 50
type RControlServiceExWRequest ¶
type RControlServiceExWRequest struct { HService ScRpcHandle DWControl uint32 DWInfoLevel uint32 LPControlInfo WcharTPtr }
Opnum 51
type RControlServiceExWResponse ¶
type RControlServiceExWResponse struct{}
type RControlServiceRequest ¶
type RControlServiceRequest struct { HSCObject ScRpcHandle DWControl uint32 }
Opnum 1
[in] SC_RPC_HANDLE hService, [in] DWORD dwControl, [out] LPSERVICE_STATUS lpServiceStatus
type RControlServiceResponse ¶
type RControlServiceResponse struct {
LpServiceStatus LpServiceStatus
}
type RCreateServiceARequest ¶
type RCreateServiceARequest struct { HSCManager ScRpcHandle LPServiceName CharPtr LPDisplayName CharPtr DWDesiredAccess uint32 DWServiceType uint32 DWStartType uint32 DWErrorControl uint32 LPBinaryPathName CharPtr LPLoadOrderGroup CharPtr LPDWTagId CharPtr LPDependencies CharPtr DWDependSize uint32 LPServiceStartName CharPtr LPPassword CharPtr DWPWSize uint32 }
Opnum 24
type RCreateServiceAResponse ¶
type RCreateServiceAResponse struct {
LpServiceHandle ScRpcHandle
}
type RCreateServiceWOW64ARequest ¶
type RCreateServiceWOW64ARequest struct { HSCManager ScRpcHandle LPServiceName CharPtr LPDisplayName CharPtr DWDesiredAccess uint32 DWServiceType uint32 DWStartType uint32 DWErrorControl uint32 LPBinaryPathName CharPtr LPLoadOrderGroup CharPtr LPDWTagId CharPtr LPDependencies CharPtr DWDependSize uint32 LPServiceStartName CharPtr LPPassword CharPtr DWPWSize uint32 }
Opnum 44
type RCreateServiceWOW64AResponse ¶
type RCreateServiceWOW64AResponse struct {
LpServiceHandle ScRpcHandle
}
type RCreateServiceWOW64WRequest ¶
type RCreateServiceWOW64WRequest struct { HSCManager ScRpcHandle LPServiceName WcharTPtr LPDisplayName WcharTPtr DWDesiredAccess uint32 DWServiceType uint32 DWStartType uint32 DWErrorControl uint32 LPBinaryPathName WcharTPtr LPLoadOrderGroup WcharTPtr LPDWTagId WcharTPtr LPDependencies WcharTPtr DWDependSize uint32 LPServiceStartName WcharTPtr LPPassword WcharTPtr DWPWSize uint32 }
Opnum 45
type RCreateServiceWOW64WResponse ¶
type RCreateServiceWOW64WResponse struct {
LpServiceHandle ScRpcHandle
}
type RCreateServiceWRequest ¶
type RCreateServiceWRequest struct { HSCManager ScRpcHandle LPServiceName WcharTPtr LPDisplayName WcharTPtr DWDesiredAccess uint32 DWServiceType uint32 DWStartType uint32 DWErrorControl uint32 LPBinaryPathName WcharTPtr LPLoadOrderGroup WcharTPtr LPDWTagId WcharTPtr LPDependencies WcharTPtr DWDependSize uint32 LPServiceStartName WcharTPtr LPPassword WcharTPtr DWPWSize uint32 }
Opnum 12
[in] SC_RPC_HANDLE hSCManager, [in, string, range(0, SC_MAX_NAME_LENGTH)] wchar_t* lpServiceName, [in, string, unique, range(0, SC_MAX_NAME_LENGTH)] wchar_t* lpDisplayName, [in] DWORD dwDesiredAccess, [in] DWORD dwServiceType, [in] DWORD dwStartType, [in] DWORD dwErrorControl, [in, string, range(0, SC_MAX_PATH_LENGTH)] wchar_t* lpBinaryPathName, [in, string, unique, range(0, SC_MAX_NAME_LENGTH)] wchar_t* lpLoadOrderGroup, [in, out, unique] LPDWORD lpdwTagId, [in, unique, size_is(dwDependSize)] LPBYTE lpDependencies, [in, range(0, SC_MAX_DEPEND_SIZE)] DWORD dwDependSize, [in, string, unique, range(0, SC_MAX_ACCOUNT_NAME_LENGTH)] wchar_t* lpServiceStartName, [in, unique, size_is(dwPwSize)] LPBYTE lpPassword, [in, range(0, SC_MAX_PWD_SIZE)] DWORD dwPwSize, [out] LPSC_RPC_HANDLE lpServiceHandle
type RCreateServiceWResponse ¶
type RCreateServiceWResponse struct {
LpServiceHandle ScRpcHandle
}
type RCreateWowServiceRequest ¶
type RCreateWowServiceRequest struct { HSCManager ScRpcHandle LPServiceName WcharTPtr LPDisplayName WcharTPtr DWDesiredAccess uint32 DWServiceType uint32 DWStartType uint32 DWErrorControl uint32 LPBinaryPathName WcharTPtr LPLoadOrderGroup WcharTPtr LPDWTagId WcharTPtr LPDependencies WcharTPtr DWDependSize uint32 LPServiceStartName WcharTPtr LPPassword WcharTPtr DWPWSize uint32 }
Opnum 60
type RCreateWowServiceResponse ¶
type RCreateWowServiceResponse struct {
LpServiceHandle ScRpcHandle
}
type RDeleteServiceRequest ¶
type RDeleteServiceRequest struct {
HSCObject ScRpcHandle
}
Opnum 2
[in] SC_RPC_HANDLE hService
type REnumDependentServicesARequest ¶
type REnumDependentServicesARequest struct { HService ScRpcHandle DWServiceState uint32 CBBufSize uint32 }
Opnum 25
type REnumDependentServicesWRequest ¶
type REnumDependentServicesWRequest struct { HService ScRpcHandle DWServiceState uint32 CBBufSize uint32 }
Opnum 13
[in] SC_RPC_HANDLE hService, [in] DWORD dwServiceState, [out, size_is(cbBufSize)] LPBYTE lpServices, [in, range(0, 1024*256)] DWORD cbBufSize, [out] LPBOUNDED_DWORD_256K pcbBytesNeeded, [out] LPBOUNDED_DWORD_256K lpServicesReturned
type REnumServiceGroupWRequest ¶
type REnumServiceGroupWRequest struct { HSCManager ScRpcHandle DWServiceType uint32 DWServiceState uint32 CBBufSize uint32 }
Opnum 35
type REnumServicesStatusARequest ¶
type REnumServicesStatusARequest struct { HSCManager ScRpcHandle DWServiceType uint32 DWServiceState uint32 CBBufSize uint32 }
Opnum 26
type REnumServicesStatusExARequest ¶
type REnumServicesStatusExARequest struct { HSCManager ScRpcHandle InfoLevel uint32 DWServiceType uint32 DWServiceState uint32 CBBufSize uint32 }
Opnum 41
type REnumServicesStatusExWRequest ¶
type REnumServicesStatusExWRequest struct { HSCManager ScRpcHandle InfoLevel uint32 DWServiceType uint32 DWServiceState uint32 CBBufSize uint32 }
Opnum 42
type REnumServicesStatusWRequest ¶
type REnumServicesStatusWRequest struct { HSCManager ScRpcHandle DWServiceType uint32 DWServiceState uint32 CBBufSize uint32 }
Opnum 14
[in] SC_RPC_HANDLE hSCManager, [in] DWORD dwServiceType, [in] DWORD dwServiceState, [out, size_is(cbBufSize)] LPBYTE lpBuffer, [in, range(0, 1024*256)] DWORD cbBufSize, [out] LPBOUNDED_DWORD_256K pcbBytesNeeded, [out] LPBOUNDED_DWORD_256K lpServicesReturned
type RGetNotifyResultsRequest ¶
type RGetNotifyResultsRequest struct { HService ScRpcHandle NotifyMask uint32 NotifyCallback WcharTPtr }
Opnum 48
type RGetServiceDisplayNameARequest ¶
type RGetServiceDisplayNameARequest struct { HSCManager ScRpcHandle LPServiceName CharPtr }
Opnum 32
type RGetServiceDisplayNameAResponse ¶
type RGetServiceDisplayNameAResponse struct {
LPDisplayName CharPtr
}
type RGetServiceDisplayNameWRequest ¶
type RGetServiceDisplayNameWRequest struct { HSCManager ScRpcHandle LPServiceName WcharTPtr }
Opnum 20
type RGetServiceDisplayNameWResponse ¶
type RGetServiceDisplayNameWResponse struct {
LPDisplayName WcharTPtr
}
type RGetServiceKeyNameARequest ¶
type RGetServiceKeyNameARequest struct { HSCManager ScRpcHandle LPDisplayName CharPtr }
Opnum 33
type RGetServiceKeyNameAResponse ¶
type RGetServiceKeyNameAResponse struct {
LPServiceName CharPtr
}
type RGetServiceKeyNameWRequest ¶
type RGetServiceKeyNameWRequest struct { HSCManager ScRpcHandle LPDisplayName WcharTPtr }
Opnum 21
type RGetServiceKeyNameWResponse ¶
type RGetServiceKeyNameWResponse struct {
LPServiceName WcharTPtr
}
type RLockServiceDatabaseRequest ¶
type RLockServiceDatabaseRequest struct {
HSCManager ScRpcHandle
}
Opnum 3
[in] SC_RPC_HANDLE hSCManager, [out] LPSC_RPC_LOCK lpLock
type RLockServiceDatabaseResponse ¶
type RLockServiceDatabaseResponse struct {
LpLock []byte // RPC context handle
}
type RNotifyBootConfigStatusRequest ¶
type RNotifyBootConfigStatusRequest struct { LPMachineName SvcCtlHandleW BootAcceptable uint32 }
Opnum 9
[in, string, unique, range(0, SC_MAX_COMPUTER_NAME_LENGTH)] SVCCTL_HANDLEW lpMachineName, [in] DWORD BootAcceptable
type RNotifyBootConfigStatusResponse ¶
type RNotifyBootConfigStatusResponse struct{}
type RNotifyServiceStatusChangeRequest ¶
type RNotifyServiceStatusChangeRequest struct { HService ScRpcHandle NotifyMask uint32 NotifyCallback WcharTPtr }
Opnum 47
type RNotifyServiceStatusChangeResponse ¶
type RNotifyServiceStatusChangeResponse struct{}
type ROpenSCManager2Request ¶
type ROpenSCManager2Request struct { LpMachineName WcharTPtr LpDatabaseName WcharTPtr DwDesiredAccess uint32 }
Opnum 64
type ROpenSCManager2Response ¶
type ROpenSCManager2Response struct { }
type ROpenSCManagerARequest ¶
type ROpenSCManagerARequest struct { LpMachineName CharPtr LpDatabaseName CharPtr DwDesiredAccess uint32 }
Opnum 27
type ROpenSCManagerAResponse ¶
type ROpenSCManagerAResponse struct {
LpScHandle ScRpcHandle
}
type ROpenServiceARequest ¶
type ROpenServiceARequest struct { HSCManager ScRpcHandle LPServiceName CharPtr DWDesiredAccess uint32 }
Opnum 28
type ROpenServiceAResponse ¶
type ROpenServiceAResponse struct {
LpServiceHandle ScRpcHandle
}
type ROpenServiceWRequest ¶
type ROpenServiceWRequest struct { HSCManager ScRpcHandle LPServiceName WcharTPtr DWDesiredAccess uint32 }
Opnum 16
type ROpenServiceWResponse ¶
type ROpenServiceWResponse struct {
LpServiceHandle ScRpcHandle
}
type RQueryServiceConfig2ARequest ¶
type RQueryServiceConfig2ARequest struct { HService ScRpcHandle DWInfoLevel uint32 CBBufSize uint32 }
Opnum 38
type RQueryServiceConfig2AResponse ¶
type RQueryServiceConfig2AResponse struct { }
type RQueryServiceConfig2WRequest ¶
type RQueryServiceConfig2WRequest struct { HService ScRpcHandle DWInfoLevel uint32 CBBufSize uint32 }
Opnum 39
type RQueryServiceConfig2WResponse ¶
type RQueryServiceConfig2WResponse struct { }
type RQueryServiceConfigARequest ¶
type RQueryServiceConfigARequest struct {
HService ScRpcHandle
}
Opnum 29
type RQueryServiceConfigAResponse ¶
type RQueryServiceConfigAResponse struct { }
type RQueryServiceConfigExRequest ¶
type RQueryServiceConfigExRequest struct { HService ScRpcHandle InfoLevel uint32 CBBufSize uint32 }
Opnum 56
type RQueryServiceConfigExResponse ¶
type RQueryServiceConfigExResponse struct { }
type RQueryServiceConfigWRequest ¶
type RQueryServiceConfigWRequest struct {
HService ScRpcHandle
}
Opnum 17
type RQueryServiceConfigWResponse ¶
type RQueryServiceConfigWResponse struct { }
type RQueryServiceLockStatusARequest ¶
type RQueryServiceLockStatusARequest struct {
HSCManager ScRpcHandle
}
Opnum 30
type RQueryServiceLockStatusAResponse ¶
type RQueryServiceLockStatusAResponse struct { }
type RQueryServiceLockStatusWRequest ¶
type RQueryServiceLockStatusWRequest struct {
HSCManager ScRpcHandle
}
Opnum 18
type RQueryServiceLockStatusWResponse ¶
type RQueryServiceLockStatusWResponse struct { }
type RQueryServiceObjectSecurityRequest ¶
type RQueryServiceObjectSecurityRequest struct { HService ScRpcHandle DWSecurityInformation uint32 CBBufSize uint32 }
Opnum 4
[in] SC_RPC_HANDLE hService, [in] SECURITY_INFORMATION dwSecurityInformation, [out, size_is(cbBufSize)] LPBYTE lpSecurityDescriptor, [in, range(0, 1024*256)] DWORD cbBufSize, [out] LPBOUNDED_DWORD_256K pcbBytesNeeded
type RQueryServiceObjectSecurityResponse ¶
type RQueryServiceObjectSecurityResponse struct {
LPSecurityDescriptor LpSecurityDescriptor
}
type RQueryServiceStatusExRequest ¶
type RQueryServiceStatusExRequest struct { HService ScRpcHandle InfoLevel uint32 CBBufSize uint32 }
Opnum 40
type RQueryServiceStatusExResponse ¶
type RQueryServiceStatusExResponse struct { }
type RQueryServiceStatusRequest ¶
type RQueryServiceStatusRequest struct {
HService ScRpcHandle
}
Opnum 6
[in] SC_RPC_HANDLE hService, [out] LPSERVICE_STATUS lpServiceStatus
type RQueryServiceStatusResponse ¶
type RQueryServiceStatusResponse struct {
LpServiceStatus LpServiceStatus
}
type RSetServiceObjectSecurityRequest ¶
type RSetServiceObjectSecurityRequest struct { HService ScRpcHandle DWSecurityInformation uint32 LPSecurityDescriptor LpSecurityDescriptor CBBufSize uint32 }
Opnum 5
[in] SC_RPC_HANDLE hService, [in] SECURITY_INFORMATION dwSecurityInformation, [in, size_is(cbBufSize)] LPBYTE lpSecurityDescriptor, [in] DWORD cbBufSize
type RSetServiceObjectSecurityResponse ¶
type RSetServiceObjectSecurityResponse struct{}
type RSetServiceStatusRequest ¶
type RSetServiceStatusRequest struct { HServiceStatus ScRpcHandle LPServiceStatus LpServiceStatus }
Opnum 7
[in] SC_RPC_HANDLE hServiceStatus, [in] LPSERVICE_STATUS lpServiceStatus
type RSetServiceStatusResponse ¶
type RSetServiceStatusResponse struct{}
type RStartServiceARequest ¶
type RStartServiceARequest struct { HService ScRpcHandle Argc uint32 Argv []CharPtr }
Opnum 31
type RStartServiceAResponse ¶
type RStartServiceAResponse struct { }
type RStartServiceWRequest ¶
type RStartServiceWRequest struct { HService ScRpcHandle Argc uint32 Argv []WcharTPtr }
Opnum 19
type RStartServiceWResponse ¶
type RStartServiceWResponse struct { }
type RUnlockServiceDatabaseRequest ¶
type RUnlockServiceDatabaseRequest struct {
Lock LpScRpcHandle
}
Opnum 8
[in, out] LPSC_RPC_LOCK Lock
type RUnlockServiceDatabaseResponse ¶
type RUnlockServiceDatabaseResponse struct{}
type RequestStruct ¶
type RequestStruct struct { HeaderStruct AllocHint uint32 ContextID uint16 OpNum uint16 Payload interface{} }
func (*RequestStruct) Bytes ¶
func (req *RequestStruct) Bytes() []byte
type ResponseStruct ¶
type ResponseStruct struct { HeaderStruct AllocHint uint32 // len of stub ContextID uint16 CancelCount uint8 Reserved uint8 Stub []byte ReturnCode uint32 }
func ParseResponse ¶
func ParseResponse(b []byte) (rs ResponseStruct, err error)
type SCRpcHandle ¶
type ScRpcHandle ¶
type ScRpcHandle struct {
Handle []byte `smb:"fixed:20"`
}
type SecurityDescriptor ¶
type ServiceStatus ¶
type StartServiceRequest ¶
type StartServiceResponse ¶
type SvcCtlHandleW ¶
type SvcCtlHandleW WcharTPtr
type WcharTPtr ¶
type WcharTPtr struct { PointerHeader UnicodeString []byte }