[SERVICES] Use the STDCALL calling convention for all remote procedure calls.

This commit is contained in:
Eric Kohl 2017-11-12 14:04:22 +01:00
parent 2b5c4bd2c7
commit 7dd8ebcbbd
2 changed files with 338 additions and 114 deletions

View file

@ -928,7 +928,9 @@ Int_EnumDependentServicesW(HKEY hServicesKey,
/* Function 0 */
DWORD RCloseServiceHandle(
DWORD
WINAPI
RCloseServiceHandle(
LPSC_RPC_HANDLE hSCObject)
{
PMANAGER_HANDLE hManager;
@ -1058,7 +1060,9 @@ DWORD RCloseServiceHandle(
/* Function 1 */
DWORD RControlService(
DWORD
WINAPI
RControlService(
SC_RPC_HANDLE hService,
DWORD dwControl,
LPSERVICE_STATUS lpServiceStatus)
@ -1271,7 +1275,9 @@ DWORD RControlService(
/* Function 2 */
DWORD RDeleteService(
DWORD
WINAPI
RDeleteService(
SC_RPC_HANDLE hService)
{
PSERVICE_HANDLE hSvc;
@ -1327,7 +1333,9 @@ Done:
/* Function 3 */
DWORD RLockServiceDatabase(
DWORD
WINAPI
RLockServiceDatabase(
SC_RPC_HANDLE hSCManager,
LPSC_RPC_LOCK lpLock)
{
@ -1353,7 +1361,9 @@ DWORD RLockServiceDatabase(
/* Function 4 */
DWORD RQueryServiceObjectSecurity(
DWORD
WINAPI
RQueryServiceObjectSecurity(
SC_RPC_HANDLE hService,
SECURITY_INFORMATION dwSecurityInformation,
LPBYTE lpSecurityDescriptor,
@ -1435,7 +1445,9 @@ DWORD RQueryServiceObjectSecurity(
/* Function 5 */
DWORD RSetServiceObjectSecurity(
DWORD
WINAPI
RSetServiceObjectSecurity(
SC_RPC_HANDLE hService,
DWORD dwSecurityInformation,
LPBYTE lpSecurityDescriptor,
@ -1561,7 +1573,9 @@ Done:
/* Function 6 */
DWORD RQueryServiceStatus(
DWORD
WINAPI
RQueryServiceStatus(
SC_RPC_HANDLE hService,
LPSERVICE_STATUS lpServiceStatus)
{
@ -1630,7 +1644,9 @@ ScmIsValidServiceState(DWORD dwCurrentState)
/* Function 7 */
DWORD RSetServiceStatus(
DWORD
WINAPI
RSetServiceStatus(
RPC_SERVICE_STATUS_HANDLE hServiceStatus,
LPSERVICE_STATUS lpServiceStatus)
{
@ -1764,7 +1780,9 @@ DWORD RSetServiceStatus(
/* Function 8 */
DWORD RUnlockServiceDatabase(
DWORD
WINAPI
RUnlockServiceDatabase(
LPSC_RPC_LOCK Lock)
{
DPRINT("RUnlockServiceDatabase(%p)\n", Lock);
@ -1773,7 +1791,9 @@ DWORD RUnlockServiceDatabase(
/* Function 9 */
DWORD RNotifyBootConfigStatus(
DWORD
WINAPI
RNotifyBootConfigStatus(
SVCCTL_HANDLEW lpMachineName,
DWORD BootAcceptable)
{
@ -1786,7 +1806,9 @@ DWORD RNotifyBootConfigStatus(
/* Function 10 */
DWORD RI_ScSetServiceBitsW(
DWORD
WINAPI
RI_ScSetServiceBitsW(
RPC_SERVICE_STATUS_HANDLE hServiceStatus,
DWORD dwServiceBits,
int bSetBitsOn,
@ -1799,7 +1821,9 @@ DWORD RI_ScSetServiceBitsW(
/* Function 11 */
DWORD RChangeServiceConfigW(
DWORD
WINAPI
RChangeServiceConfigW(
SC_RPC_HANDLE hService,
DWORD dwServiceType,
DWORD dwStartType,
@ -2092,7 +2116,9 @@ done:
/* Function 12 */
DWORD RCreateServiceW(
DWORD
WINAPI
RCreateServiceW(
SC_RPC_HANDLE hSCManager,
LPCWSTR lpServiceName,
LPCWSTR lpDisplayName,
@ -2503,7 +2529,9 @@ done:
/* Function 13 */
DWORD REnumDependentServicesW(
DWORD
WINAPI
REnumDependentServicesW(
SC_RPC_HANDLE hService,
DWORD dwServiceState,
LPBYTE lpServices,
@ -2636,7 +2664,9 @@ Done:
/* Function 14 */
DWORD REnumServicesStatusW(
DWORD
WINAPI
REnumServicesStatusW(
SC_RPC_HANDLE hSCManager,
DWORD dwServiceType,
DWORD dwServiceState,
@ -2660,7 +2690,9 @@ DWORD REnumServicesStatusW(
/* Function 15 */
DWORD ROpenSCManagerW(
DWORD
WINAPI
ROpenSCManagerW(
LPWSTR lpMachineName,
LPWSTR lpDatabaseName,
DWORD dwDesiredAccess,
@ -2710,7 +2742,9 @@ DWORD ROpenSCManagerW(
/* Function 16 */
DWORD ROpenServiceW(
DWORD
WINAPI
ROpenServiceW(
SC_RPC_HANDLE hSCManager,
LPWSTR lpServiceName,
DWORD dwDesiredAccess,
@ -2791,7 +2825,9 @@ Done:
/* Function 17 */
DWORD RQueryServiceConfigW(
DWORD
WINAPI
RQueryServiceConfigW(
SC_RPC_HANDLE hService,
LPBYTE lpBuf, //LPQUERY_SERVICE_CONFIGW lpServiceConfig,
DWORD cbBufSize,
@ -2998,7 +3034,9 @@ Done:
/* Function 18 */
DWORD RQueryServiceLockStatusW(
DWORD
WINAPI
RQueryServiceLockStatusW(
SC_RPC_HANDLE hSCManager,
LPBYTE lpBuf, // LPQUERY_SERVICE_LOCK_STATUSW lpLockStatus,
DWORD cbBufSize,
@ -3039,7 +3077,9 @@ DWORD RQueryServiceLockStatusW(
/* Function 19 */
DWORD RStartServiceW(
DWORD
WINAPI
RStartServiceW(
SC_RPC_HANDLE hService,
DWORD argc,
LPSTRING_PTRSW argv)
@ -3100,7 +3140,9 @@ DWORD RStartServiceW(
/* Function 20 */
DWORD RGetServiceDisplayNameW(
DWORD
WINAPI
RGetServiceDisplayNameW(
SC_RPC_HANDLE hSCManager,
LPCWSTR lpServiceName,
LPWSTR lpDisplayName,
@ -3174,7 +3216,9 @@ DWORD RGetServiceDisplayNameW(
/* Function 21 */
DWORD RGetServiceKeyNameW(
DWORD
WINAPI
RGetServiceKeyNameW(
SC_RPC_HANDLE hSCManager,
LPCWSTR lpDisplayName,
LPWSTR lpServiceName,
@ -3237,7 +3281,9 @@ DWORD RGetServiceKeyNameW(
/* Function 22 */
DWORD RI_ScSetServiceBitsA(
DWORD
WINAPI
RI_ScSetServiceBitsA(
RPC_SERVICE_STATUS_HANDLE hServiceStatus,
DWORD dwServiceBits,
int bSetBitsOn,
@ -3250,7 +3296,9 @@ DWORD RI_ScSetServiceBitsA(
/* Function 23 */
DWORD RChangeServiceConfigA(
DWORD
WINAPI
RChangeServiceConfigA(
SC_RPC_HANDLE hService,
DWORD dwServiceType,
DWORD dwStartType,
@ -3576,7 +3624,9 @@ done:
/* Function 24 */
DWORD RCreateServiceA(
DWORD
WINAPI
RCreateServiceA(
SC_RPC_HANDLE hSCManager,
LPSTR lpServiceName,
LPSTR lpDisplayName,
@ -3727,7 +3777,9 @@ cleanup:
/* Function 25 */
DWORD REnumDependentServicesA(
DWORD
WINAPI
REnumDependentServicesA(
SC_RPC_HANDLE hService,
DWORD dwServiceState,
LPBYTE lpServices,
@ -3879,7 +3931,9 @@ Done:
/* Function 26 */
DWORD REnumServicesStatusA(
DWORD
WINAPI
REnumServicesStatusA(
SC_RPC_HANDLE hSCManager,
DWORD dwServiceType,
DWORD dwServiceState,
@ -3984,7 +4038,9 @@ Done:
/* Function 27 */
DWORD ROpenSCManagerA(
DWORD
WINAPI
ROpenSCManagerA(
LPSTR lpMachineName,
LPSTR lpDatabaseName,
DWORD dwDesiredAccess,
@ -4020,7 +4076,9 @@ DWORD ROpenSCManagerA(
/* Function 28 */
DWORD ROpenServiceA(
DWORD
WINAPI
ROpenServiceA(
SC_RPC_HANDLE hSCManager,
LPSTR lpServiceName,
DWORD dwDesiredAccess,
@ -4048,7 +4106,9 @@ DWORD ROpenServiceA(
/* Function 29 */
DWORD RQueryServiceConfigA(
DWORD
WINAPI
RQueryServiceConfigA(
SC_RPC_HANDLE hService,
LPBYTE lpBuf, //LPQUERY_SERVICE_CONFIGA lpServiceConfig,
DWORD cbBufSize,
@ -4288,7 +4348,9 @@ Done:
/* Function 30 */
DWORD RQueryServiceLockStatusA(
DWORD
WINAPI
RQueryServiceLockStatusA(
SC_RPC_HANDLE hSCManager,
LPBYTE lpBuf, // LPQUERY_SERVICE_LOCK_STATUSA lpLockStatus,
DWORD cbBufSize,
@ -4329,7 +4391,9 @@ DWORD RQueryServiceLockStatusA(
/* Function 31 */
DWORD RStartServiceA(
DWORD
WINAPI
RStartServiceA(
SC_RPC_HANDLE hService,
DWORD argc,
LPSTRING_PTRSA argv)
@ -4429,7 +4493,9 @@ done:
/* Function 32 */
DWORD RGetServiceDisplayNameA(
DWORD
WINAPI
RGetServiceDisplayNameA(
SC_RPC_HANDLE hSCManager,
LPCSTR lpServiceName,
LPSTR lpDisplayName,
@ -4536,7 +4602,9 @@ DWORD RGetServiceDisplayNameA(
/* Function 33 */
DWORD RGetServiceKeyNameA(
DWORD
WINAPI
RGetServiceKeyNameA(
SC_RPC_HANDLE hSCManager,
LPCSTR lpDisplayName,
LPSTR lpServiceName,
@ -4613,7 +4681,9 @@ DWORD RGetServiceKeyNameA(
/* Function 34 */
DWORD RI_ScGetCurrentGroupStateW(
DWORD
WINAPI
RI_ScGetCurrentGroupStateW(
SC_RPC_HANDLE hSCManager,
LPWSTR lpLoadOrderGroup,
LPDWORD lpState)
@ -4668,7 +4738,9 @@ done:
/* Function 35 */
DWORD REnumServiceGroupW(
DWORD
WINAPI
REnumServiceGroupW(
SC_RPC_HANDLE hSCManager,
DWORD dwServiceType,
DWORD dwServiceState,
@ -4932,7 +5004,9 @@ Done:
/* Function 36 */
DWORD RChangeServiceConfig2A(
DWORD
WINAPI
RChangeServiceConfig2A(
SC_RPC_HANDLE hService,
SC_RPC_CONFIG_INFOA Info)
{
@ -5323,7 +5397,9 @@ done:
/* Function 37 */
DWORD RChangeServiceConfig2W(
DWORD
WINAPI
RChangeServiceConfig2W(
SC_RPC_HANDLE hService,
SC_RPC_CONFIG_INFOW Info)
{
@ -5447,7 +5523,9 @@ done:
/* Function 38 */
DWORD RQueryServiceConfig2A(
DWORD
WINAPI
RQueryServiceConfig2A(
SC_RPC_HANDLE hService,
DWORD dwInfoLevel,
LPBYTE lpBuffer,
@ -5684,7 +5762,9 @@ done:
/* Function 39 */
DWORD RQueryServiceConfig2W(
DWORD
WINAPI
RQueryServiceConfig2W(
SC_RPC_HANDLE hService,
DWORD dwInfoLevel,
LPBYTE lpBuffer,
@ -5898,7 +5978,9 @@ done:
/* Function 40 */
DWORD RQueryServiceStatusEx(
DWORD
WINAPI
RQueryServiceStatusEx(
SC_RPC_HANDLE hService,
SC_STATUS_TYPE InfoLevel,
LPBYTE lpBuffer,
@ -5969,7 +6051,9 @@ DWORD RQueryServiceStatusEx(
/* Function 41 */
DWORD REnumServicesStatusExA(
DWORD
WINAPI
REnumServicesStatusExA(
SC_RPC_HANDLE hSCManager,
SC_ENUM_TYPE InfoLevel,
DWORD dwServiceType,
@ -6106,7 +6190,9 @@ Done:
/* Function 42 */
DWORD REnumServicesStatusExW(
DWORD
WINAPI
REnumServicesStatusExW(
SC_RPC_HANDLE hSCManager,
SC_ENUM_TYPE InfoLevel,
DWORD dwServiceType,
@ -6399,7 +6485,9 @@ Done:
/* Function 43 */
DWORD RSendTSMessage(
DWORD
WINAPI
RSendTSMessage(
handle_t BindingHandle) /* FIXME */
{
UNIMPLEMENTED;
@ -6408,7 +6496,9 @@ DWORD RSendTSMessage(
/* Function 44 */
DWORD RCreateServiceWOW64A(
DWORD
WINAPI
RCreateServiceWOW64A(
handle_t BindingHandle,
LPSTR lpServiceName,
LPSTR lpDisplayName,
@ -6432,7 +6522,9 @@ DWORD RCreateServiceWOW64A(
/* Function 45 */
DWORD RCreateServiceWOW64W(
DWORD
WINAPI
RCreateServiceWOW64W(
handle_t BindingHandle,
LPWSTR lpServiceName,
LPWSTR lpDisplayName,
@ -6456,7 +6548,9 @@ DWORD RCreateServiceWOW64W(
/* Function 46 */
DWORD RQueryServiceTagInfo(
DWORD
WINAPI
RQueryServiceTagInfo(
handle_t BindingHandle) /* FIXME */
{
UNIMPLEMENTED;
@ -6465,7 +6559,9 @@ DWORD RQueryServiceTagInfo(
/* Function 47 */
DWORD RNotifyServiceStatusChange(
DWORD
WINAPI
RNotifyServiceStatusChange(
SC_RPC_HANDLE hService,
SC_RPC_NOTIFY_PARAMS NotifyParams,
GUID *pClientProcessGuid,
@ -6479,7 +6575,9 @@ DWORD RNotifyServiceStatusChange(
/* Function 48 */
DWORD RGetNotifyResults(
DWORD
WINAPI
RGetNotifyResults(
SC_NOTIFY_RPC_HANDLE hNotify,
PSC_RPC_NOTIFY_PARAMS_LIST *ppNotifyParams)
{
@ -6489,7 +6587,9 @@ DWORD RGetNotifyResults(
/* Function 49 */
DWORD RCloseNotifyHandle(
DWORD
WINAPI
RCloseNotifyHandle(
LPSC_NOTIFY_RPC_HANDLE phNotify,
PBOOL pfApcFired)
{
@ -6499,7 +6599,9 @@ DWORD RCloseNotifyHandle(
/* Function 50 */
DWORD RControlServiceExA(
DWORD
WINAPI
RControlServiceExA(
SC_RPC_HANDLE hService,
DWORD dwControl,
DWORD dwInfoLevel)
@ -6510,7 +6612,9 @@ DWORD RControlServiceExA(
/* Function 51 */
DWORD RControlServiceExW(
DWORD
WINAPI
RControlServiceExW(
SC_RPC_HANDLE hService,
DWORD dwControl,
DWORD dwInfoLevel)
@ -6521,7 +6625,9 @@ DWORD RControlServiceExW(
/* Function 52 */
DWORD RSendPnPMessage(
DWORD
WINAPI
RSendPnPMessage(
handle_t BindingHandle) /* FIXME */
{
UNIMPLEMENTED;
@ -6530,7 +6636,9 @@ DWORD RSendPnPMessage(
/* Function 53 */
DWORD RValidatePnPService(
DWORD
WINAPI
RValidatePnPService(
handle_t BindingHandle) /* FIXME */
{
UNIMPLEMENTED;
@ -6539,7 +6647,9 @@ DWORD RValidatePnPService(
/* Function 54 */
DWORD ROpenServiceStatusHandle(
DWORD
WINAPI
ROpenServiceStatusHandle(
handle_t BindingHandle) /* FIXME */
{
UNIMPLEMENTED;
@ -6548,7 +6658,9 @@ DWORD ROpenServiceStatusHandle(
/* Function 55 */
DWORD RFunction55(
DWORD
WINAPI
RFunction55(
handle_t BindingHandle) /* FIXME */
{
UNIMPLEMENTED;

View file

@ -305,26 +305,36 @@ typedef struct _STRING_PTRSW {
interface svcctl
{
/* Function 0 */
DWORD RCloseServiceHandle(
DWORD
__stdcall
RCloseServiceHandle(
[in, out] LPSC_RPC_HANDLE hSCObject);
/* Function 1 */
DWORD RControlService(
DWORD
__stdcall
RControlService(
[in] SC_RPC_HANDLE hService,
[in] DWORD dwControl,
[out] LPSERVICE_STATUS lpServiceStatus);
/* Function 2 */
DWORD RDeleteService(
DWORD
__stdcall
RDeleteService(
[in] SC_RPC_HANDLE hService);
/* Function 3 */
DWORD RLockServiceDatabase(
DWORD
__stdcall
RLockServiceDatabase(
[in] SC_RPC_HANDLE hSCManager,
[out] LPSC_RPC_LOCK lpLock);
/* Function 4 */
DWORD RQueryServiceObjectSecurity(
DWORD
__stdcall
RQueryServiceObjectSecurity(
[in] SC_RPC_HANDLE hService,
[in] SECURITY_INFORMATION dwSecurityInformation,
[out, size_is(cbBufSize)] LPBYTE lpSecurityDescriptor,
@ -332,33 +342,45 @@ interface svcctl
[out] LPBOUNDED_DWORD_256K pcbBytesNeeded);
/* Function 5 */
DWORD RSetServiceObjectSecurity(
DWORD
__stdcall
RSetServiceObjectSecurity(
[in] SC_RPC_HANDLE hService,
[in] DWORD dwSecurityInformation,
[in, size_is(dwSecuityDescriptorSize)] LPBYTE lpSecurityDescriptor,
[in] DWORD dwSecuityDescriptorSize);
/* Function 6 */
DWORD RQueryServiceStatus(
DWORD
__stdcall
RQueryServiceStatus(
[in] SC_RPC_HANDLE hService,
[out] LPSERVICE_STATUS lpServiceStatus);
/* Function 7 */
DWORD RSetServiceStatus(
[in] RPC_SERVICE_STATUS_HANDLE hServiceStatus,
[in] LPSERVICE_STATUS lpServiceStatus);
DWORD
__stdcall
RSetServiceStatus(
[in] RPC_SERVICE_STATUS_HANDLE hServiceStatus,
[in] LPSERVICE_STATUS lpServiceStatus);
/* Function 8 */
DWORD RUnlockServiceDatabase(
DWORD
__stdcall
RUnlockServiceDatabase(
[in, out] LPSC_RPC_LOCK Lock);
/* Function 9 */
DWORD RNotifyBootConfigStatus(
DWORD
__stdcall
RNotifyBootConfigStatus(
[in, string, unique] SVCCTL_HANDLEW lpMachineName,
[in] DWORD BootAcceptable);
/* Function 10 */
DWORD RI_ScSetServiceBitsW(
DWORD
__stdcall
RI_ScSetServiceBitsW(
[in] RPC_SERVICE_STATUS_HANDLE hServiceStatus,
[in] DWORD dwServiceBits,
[in] BOOL bSetBitsOn,
@ -366,7 +388,9 @@ interface svcctl
[in, string, unique] LPWSTR lpString);
/* Function 11 */
DWORD RChangeServiceConfigW(
DWORD
__stdcall
RChangeServiceConfigW(
[in] SC_RPC_HANDLE hService,
[in] DWORD dwServiceType,
[in] DWORD dwStartType,
@ -382,7 +406,9 @@ interface svcctl
[in, string, unique] LPWSTR lpDisplayName);
/* Function 12 */
DWORD RCreateServiceW(
DWORD
__stdcall
RCreateServiceW(
[in] SC_RPC_HANDLE hSCManager,
[in, string] LPCWSTR lpServiceName,
[in, string, unique] LPCWSTR lpDisplayName,
@ -401,7 +427,9 @@ interface svcctl
[out] LPSC_RPC_HANDLE lpServiceHandle);
/* Function 13 */
DWORD REnumDependentServicesW(
DWORD
__stdcall
REnumDependentServicesW(
[in] SC_RPC_HANDLE hService,
[in] DWORD dwServiceState,
[out, size_is(cbBufSize)] LPBYTE lpServices,
@ -410,7 +438,9 @@ interface svcctl
[out] LPBOUNDED_DWORD_256K lpServicesReturned);
/* Function 14 */
DWORD REnumServicesStatusW(
DWORD
__stdcall
REnumServicesStatusW(
[in] SC_RPC_HANDLE hSCManager,
[in] DWORD dwServiceType,
[in] DWORD dwServiceState,
@ -421,21 +451,27 @@ interface svcctl
[in, out, unique] LPBOUNDED_DWORD_256K lpResumeHandle);
/* Function 15 */
DWORD ROpenSCManagerW(
DWORD
__stdcall
ROpenSCManagerW(
[in, string, unique] SVCCTL_HANDLEW lpMachineName,
[in, string, unique] LPWSTR lpDatabaseName,
[in] DWORD dwDesiredAccess,
[out] LPSC_RPC_HANDLE lpScHandle);
/* Function 16 */
DWORD ROpenServiceW(
DWORD
__stdcall
ROpenServiceW(
[in] SC_RPC_HANDLE hSCManager,
[in, string] LPWSTR lpServiceName,
[in] DWORD dwDesiredAccess,
[out] LPSC_RPC_HANDLE lpServiceHandle);
/* Function 17 */
DWORD RQueryServiceConfigW(
DWORD
__stdcall
RQueryServiceConfigW(
[in] SC_RPC_HANDLE hService,
[out, size_is(cbBufSize)] LPBYTE lpServiceConfig,
/* FIXME: should be [out] LPQUERY_SERVICE_CONFIGW lpServiceConfig, */
@ -443,7 +479,9 @@ interface svcctl
[out] LPBOUNDED_DWORD_8K pcbBytesNeeded);
/* Function 18 */
DWORD RQueryServiceLockStatusW(
DWORD
__stdcall
RQueryServiceLockStatusW(
[in] SC_RPC_HANDLE hSCManager,
[out, size_is(cbBufSize)] LPBYTE lpLockStatus,
/* FIXME: should be [out] LPQUERY_SERVICE_LOCK_STATUSW lpLockStatus, */
@ -451,27 +489,35 @@ interface svcctl
[out] LPBOUNDED_DWORD_4K pcbBytesNeeded);
/* Function 19 */
DWORD RStartServiceW(
DWORD
__stdcall
RStartServiceW(
[in] SC_RPC_HANDLE hService,
[in, range(0, SC_MAX_ARGUMENTS)] DWORD argc,
[in, unique, size_is(argc)] LPSTRING_PTRSW argv);
/* Function 20 */
DWORD RGetServiceDisplayNameW(
DWORD
__stdcall
RGetServiceDisplayNameW(
[in] SC_RPC_HANDLE hSCManager,
[in, string] LPCWSTR lpServiceName,
[out, string, size_is(*lpcchBuffer + 1)] LPWSTR lpDisplayName,
[in, out] DWORD* lpcchBuffer);
/* Function 21 */
DWORD RGetServiceKeyNameW(
DWORD
__stdcall
RGetServiceKeyNameW(
[in] SC_RPC_HANDLE hSCManager,
[in, string] LPCWSTR lpDisplayName,
[out, string, size_is(*lpcchBuffer + 1)] LPWSTR lpServiceName,
[in, out] DWORD* lpcchBuffer);
/* Function 22 */
DWORD RI_ScSetServiceBitsA(
DWORD
__stdcall
RI_ScSetServiceBitsA(
[in] RPC_SERVICE_STATUS_HANDLE hServiceStatus,
[in] DWORD dwServiceBits,
[in] BOOL bSetBitsOn,
@ -479,7 +525,9 @@ interface svcctl
[in, string, unique] LPSTR lpString);
/* Function 23 */
DWORD RChangeServiceConfigA(
DWORD
__stdcall
RChangeServiceConfigA(
[in] SC_RPC_HANDLE hService,
[in] DWORD dwServiceType,
[in] DWORD dwStartType,
@ -495,7 +543,9 @@ interface svcctl
[in, string, unique] LPSTR lpDisplayName);
/* Function 24 */
DWORD RCreateServiceA(
DWORD
__stdcall
RCreateServiceA(
[in] SC_RPC_HANDLE hSCManager,
[in, string] LPSTR lpServiceName,
[in, string, unique] LPSTR lpDisplayName,
@ -514,7 +564,9 @@ interface svcctl
[out] LPSC_RPC_HANDLE lpServiceHandle);
/* Function 25 */
DWORD REnumDependentServicesA(
DWORD
__stdcall
REnumDependentServicesA(
[in] SC_RPC_HANDLE hService,
[in] DWORD dwServiceState,
[out, size_is(cbBufSize)] LPBYTE lpServices,
@ -523,7 +575,9 @@ interface svcctl
[out] LPBOUNDED_DWORD_256K lpServicesReturned);
/* Function 26 */
DWORD REnumServicesStatusA(
DWORD
__stdcall
REnumServicesStatusA(
[in] SC_RPC_HANDLE hSCManager,
[in] DWORD dwServiceType,
[in] DWORD dwServiceState,
@ -534,21 +588,27 @@ interface svcctl
[in, out, unique] LPBOUNDED_DWORD_256K lpResumeHandle);
/* Function 27 */
DWORD ROpenSCManagerA(
DWORD
__stdcall
ROpenSCManagerA(
[in, string, unique] SVCCTL_HANDLEA lpMachineName,
[in, string, unique] LPSTR lpDatabaseName,
[in] DWORD dwDesiredAccess,
[out] LPSC_RPC_HANDLE lpScHandle);
/* Function 28 */
DWORD ROpenServiceA(
DWORD
__stdcall
ROpenServiceA(
[in] SC_RPC_HANDLE hSCManager,
[in, string] LPSTR lpServiceName,
[in] DWORD dwDesiredAccess,
[out] LPSC_RPC_HANDLE lpServiceHandle);
/* Function 29 */
DWORD RQueryServiceConfigA(
DWORD
__stdcall
RQueryServiceConfigA(
[in] SC_RPC_HANDLE hService,
[out, size_is(cbBufSize)] LPBYTE lpServiceConfig,
/* FIXME: should be [out] LPQUERY_SERVICE_CONFIGA lpServiceConfig, */
@ -556,7 +616,9 @@ interface svcctl
[out] LPBOUNDED_DWORD_8K pcbBytesNeeded);
/* Function 30 */
DWORD RQueryServiceLockStatusA(
DWORD
__stdcall
RQueryServiceLockStatusA(
[in] SC_RPC_HANDLE hSCManager,
[out, size_is(cbBufSize)] LPBYTE lpLockStatus,
/* FIXME: should be [out] LPQUERY_SERVICE_LOCK_STATUSA lpLockStatus, */
@ -564,33 +626,43 @@ interface svcctl
[out] LPBOUNDED_DWORD_4K pcbBytesNeeded);
/* Function 31 */
DWORD RStartServiceA(
DWORD
__stdcall
RStartServiceA(
[in] SC_RPC_HANDLE hService,
[in, range(0, SC_MAX_ARGUMENTS)] DWORD argc,
[in, unique, size_is(argc)] LPSTRING_PTRSA argv);
/* Function 32 */
DWORD RGetServiceDisplayNameA(
DWORD
__stdcall
RGetServiceDisplayNameA(
[in] SC_RPC_HANDLE hSCManager,
[in, string] LPCSTR lpServiceName,
[out, string, size_is(*lpcchBuffer)] LPSTR lpDisplayName,
[in, out] LPBOUNDED_DWORD_4K lpcchBuffer);
/* Function 33 */
DWORD RGetServiceKeyNameA(
DWORD
__stdcall
RGetServiceKeyNameA(
[in] SC_RPC_HANDLE hSCManager,
[in, string] LPCSTR lpDisplayName,
[out, string, size_is(*lpcchBuffer)] LPSTR lpKeyName,
[in, out] LPBOUNDED_DWORD_4K lpcchBuffer);
/* Function 34 */
DWORD RI_ScGetCurrentGroupStateW(
DWORD
__stdcall
RI_ScGetCurrentGroupStateW(
[in] SC_RPC_HANDLE hSCManager,
[in, string, unique] LPWSTR lpLoadOrderGroup,
[out] LPDWORD lpState);
/* Function 35 */
DWORD REnumServiceGroupW(
DWORD
__stdcall
REnumServiceGroupW(
[in] SC_RPC_HANDLE hSCManager,
[in] DWORD dwServiceType,
[in] DWORD dwServiceState,
@ -602,17 +674,23 @@ interface svcctl
[in, string, unique] LPCWSTR pszGroupName);
/* Function 36 */
DWORD RChangeServiceConfig2A(
DWORD
__stdcall
RChangeServiceConfig2A(
[in] SC_RPC_HANDLE hService,
[in] SC_RPC_CONFIG_INFOA Info);
/* Function 37 */
DWORD RChangeServiceConfig2W(
DWORD
__stdcall
RChangeServiceConfig2W(
[in] SC_RPC_HANDLE hService,
[in] SC_RPC_CONFIG_INFOW Info);
/* Function 38 */
DWORD RQueryServiceConfig2A(
DWORD
__stdcall
RQueryServiceConfig2A(
[in] SC_RPC_HANDLE hService,
[in] DWORD dwInfoLevel,
[out, size_is(cbBufSize)] LPBYTE lpBuffer,
@ -620,7 +698,9 @@ interface svcctl
[out] LPBOUNDED_DWORD_8K pcbBytesNeeded);
/* Function 39 */
DWORD RQueryServiceConfig2W(
DWORD
__stdcall
RQueryServiceConfig2W(
[in] SC_RPC_HANDLE hService,
[in] DWORD dwInfoLevel,
[out, size_is(cbBufSize)] LPBYTE lpBuffer,
@ -628,7 +708,9 @@ interface svcctl
[out] LPBOUNDED_DWORD_8K pcbBytesNeeded);
/* Function 40 */
DWORD RQueryServiceStatusEx(
DWORD
__stdcall
RQueryServiceStatusEx(
[in] SC_RPC_HANDLE hService,
[in] SC_STATUS_TYPE InfoLevel,
[out, size_is(cbBufSize)] LPBYTE lpBuffer,
@ -636,7 +718,9 @@ interface svcctl
[out] LPBOUNDED_DWORD_8K pcbBytesNeeded);
/* Function 41 */
DWORD REnumServicesStatusExA(
DWORD
__stdcall
REnumServicesStatusExA(
[in] SC_RPC_HANDLE hSCManager,
[in] SC_ENUM_TYPE InfoLevel,
[in] DWORD dwServiceType,
@ -649,7 +733,9 @@ interface svcctl
[in, string, unique] LPCSTR pszGroupName);
/* Function 42 */
DWORD REnumServicesStatusExW(
DWORD
__stdcall
REnumServicesStatusExW(
[in] SC_RPC_HANDLE hSCManager,
[in] SC_ENUM_TYPE InfoLevel,
[in] DWORD dwServiceType,
@ -662,11 +748,15 @@ interface svcctl
[in, string, unique] LPCWSTR pszGroupName);
/* Function 43 */
DWORD RSendTSMessage(
DWORD
__stdcall
RSendTSMessage(
[in] handle_t BindingHandle); /* FIXME */
/* Function 44 */
DWORD RCreateServiceWOW64A(
DWORD
__stdcall
RCreateServiceWOW64A(
[in] handle_t BindingHandle,
[in, string] LPSTR lpServiceName,
[in, string, unique] LPSTR lpDisplayName,
@ -685,7 +775,9 @@ interface svcctl
[out] LPSC_RPC_HANDLE lpServiceHandle);
/* Function 45 */
DWORD RCreateServiceWOW64W(
DWORD
__stdcall
RCreateServiceWOW64W(
[in] handle_t BindingHandle,
[in, string] LPWSTR lpServiceName,
[in, string, unique] LPWSTR lpDisplayName,
@ -704,11 +796,15 @@ interface svcctl
[out] LPSC_RPC_HANDLE lpServiceHandle);
/* Function 46 */
DWORD RQueryServiceTagInfo(
DWORD
__stdcall
RQueryServiceTagInfo(
[in] handle_t BindingHandle); /* FIXME */
/* Function 47 */
DWORD RNotifyServiceStatusChange(
DWORD
__stdcall
RNotifyServiceStatusChange(
[in] SC_RPC_HANDLE hService,
[in] SC_RPC_NOTIFY_PARAMS NotifyParams,
[in] GUID* pClientProcessGuid,
@ -717,17 +813,23 @@ interface svcctl
[out] LPSC_NOTIFY_RPC_HANDLE phNotify);
/* Function 48 */
DWORD RGetNotifyResults(
DWORD
__stdcall
RGetNotifyResults(
[in] SC_NOTIFY_RPC_HANDLE hNotify,
[out] PSC_RPC_NOTIFY_PARAMS_LIST *ppNotifyParams);
/* Function 49 */
DWORD RCloseNotifyHandle(
DWORD
__stdcall
RCloseNotifyHandle(
[in, out] LPSC_NOTIFY_RPC_HANDLE phNotify,
[out] PBOOL pfApcFired);
/* Function 50 */
DWORD RControlServiceExA(
DWORD
__stdcall
RControlServiceExA(
[in] SC_RPC_HANDLE hService,
[in] DWORD dwControl,
[in] DWORD dwInfoLevel/*,
@ -735,7 +837,9 @@ interface svcctl
[out, switch_is(dwInfoLevel)] PSC_RPC_SERVICE_CONTROL_IN_PARAMSA pControlOutParams*/);
/* Function 51 */
DWORD RControlServiceExW(
DWORD
__stdcall
RControlServiceExW(
[in] SC_RPC_HANDLE hService,
[in] DWORD dwControl,
[in] DWORD dwInfoLevel/*,
@ -743,18 +847,26 @@ interface svcctl
[out, switch_is(dwInfoLevel)] PSC_RPC_SERVICE_CONTROL_IN_PARAMSW pControlOutParams*/);
/* Function 52 */
DWORD RSendPnPMessage(
DWORD
__stdcall
RSendPnPMessage(
[in] handle_t BindingHandle); /* FIXME */
/* Function 53 */
DWORD RValidatePnPService(
DWORD
__stdcall
RValidatePnPService(
[in] handle_t BindingHandle); /* FIXME */
/* Function 54 */
DWORD ROpenServiceStatusHandle(
DWORD
__stdcall
ROpenServiceStatusHandle(
[in] handle_t BindingHandle); /* FIXME */
/* Function 55 */
DWORD RFunction55(
DWORD
__stdcall
RFunction55(
[in] handle_t BindingHandle); /* FIXME */
}