From 7dd8ebcbbd7799661100753502f77ede96636e66 Mon Sep 17 00:00:00 2001 From: Eric Kohl Date: Sun, 12 Nov 2017 14:04:22 +0100 Subject: [PATCH] [SERVICES] Use the STDCALL calling convention for all remote procedure calls. --- base/system/services/rpcserver.c | 224 +++++++++++++++++++++------- sdk/include/reactos/idl/svcctl.idl | 228 +++++++++++++++++++++-------- 2 files changed, 338 insertions(+), 114 deletions(-) diff --git a/base/system/services/rpcserver.c b/base/system/services/rpcserver.c index 3465d4da307..d2f032cfe07 100644 --- a/base/system/services/rpcserver.c +++ b/base/system/services/rpcserver.c @@ -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; diff --git a/sdk/include/reactos/idl/svcctl.idl b/sdk/include/reactos/idl/svcctl.idl index 76904c55f29..36234e74e11 100644 --- a/sdk/include/reactos/idl/svcctl.idl +++ b/sdk/include/reactos/idl/svcctl.idl @@ -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 */ }