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
}