Module: wine Branch: master Commit: 8529a3c404893ecbc710d4398cf43c6d1e36d650 URL: http://source.winehq.org/git/wine.git/?a=commit;h=8529a3c404893ecbc710d4398c...
Author: Rob Shearman rob@codeweavers.com Date: Fri Mar 28 17:08:27 2008 +0000
services: Fill in the functions between implemented functions in svcctl.idl so that it our remoting code is wire-compatible with NT.
Add the necessary stubs for these in services.exe.
---
include/wine/svcctl.idl | 78 ++++++++++++++++++++ programs/services/rpc.c | 186 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 264 insertions(+), 0 deletions(-)
diff --git a/include/wine/svcctl.idl b/include/wine/svcctl.idl index 4053524..443f6c9 100644 --- a/include/wine/svcctl.idl +++ b/include/wine/svcctl.idl @@ -113,6 +113,15 @@ cpp_quote("#endif") [out] SC_RPC_LOCK *phLock );
+ /* Not compatible with Windows function 0x04 */ + DWORD svcctl_QueryServiceObjectSecurity(/* FIXME */); + + /* Not compatible with Windows function 0x05 */ + DWORD svcctl_SetServiceObjectSecurity(/* FIXME */); + + /* Not compatible with Windows function 0x06 */ + DWORD svcctl_QueryServiceStatus(/* FIXME */); + /* Compatible with Windows function 0x07 */ DWORD svcctl_SetServiceStatus( [in] SC_RPC_HANDLE hServiceStatus, @@ -124,6 +133,12 @@ cpp_quote("#endif") [in,out] SC_RPC_LOCK *phLock );
+ /* Not compatible with Windows function 0x09 */ + DWORD svcctl_NotifyBootConfigStatus(/* FIXME */); + + /* Not compatible with Windows function 0x0a */ + DWORD svcctl_SCSetServiceBitsW(/* FIXME */); + /* Compatible with Windows function 0x0b */ DWORD svcctl_ChangeServiceConfigW( [in] SC_RPC_HANDLE hService, @@ -161,6 +176,12 @@ cpp_quote("#endif") [out] SC_RPC_HANDLE *phService );
+ /* Not compatible with Windows function 0x0d */ + DWORD svcctl_EnumDependentServicesW(/* FIXME */); + + /* Not compatible with Windows function 0x0e */ + DWORD svcctl_EnumServicesStatusW(/* FIXME */); + /* Compatible with Windows function 0x0f */ DWORD svcctl_OpenSCManagerW( [in,unique] MACHINE_HANDLEW MachineName, @@ -182,6 +203,9 @@ cpp_quote("#endif") [in] SC_RPC_HANDLE hService, [out] QUERY_SERVICE_CONFIGW *config);
+ /* Not compatible with Windows function 0x12 */ + DWORD svcctl_QueryServiceLockStatusW(/* FIXME */); + /* Untested with Windows function 0x13 */ DWORD svcctl_StartServiceW( [in] SC_RPC_HANDLE hService, @@ -205,6 +229,60 @@ cpp_quote("#endif") [in] DWORD cchBufSize, [out] DWORD *cchLength);
+ /* Not compatible with Windows function 0x16 */ + DWORD svcctl_SCSetServiceBitsA(/* FIXME */); + + /* Not compatible with Windows function 0x17 */ + DWORD svcctl_ChangeServiceConfigA(/* FIXME */); + + /* Not compatible with Windows function 0x18 */ + DWORD svcctl_CreateServiceA(/* FIXME */); + + /* Not compatible with Windows function 0x19 */ + DWORD svcctl_EnumDependentServicesA(/* FIXME */); + + /* Not compatible with Windows function 0x1a */ + DWORD svcctl_EnumServicesStatusA(/* FIXME */); + + /* Not compatible with Windows function 0x1b */ + DWORD svcctl_OpenSCManagerA(/* FIXME */); + + /* Not compatible with Windows function 0x1c */ + DWORD svcctl_OpenServiceA(/* FIXME */); + + /* Not compatible with Windows function 0x1d */ + DWORD svcctl_QueryServiceConfigA(/* FIXME */); + + /* Not compatible with Windows function 0x1e */ + DWORD svcctl_QueryServiceLockStatusA(/* FIXME */); + + /* Not compatible with Windows function 0x1f */ + DWORD svcctl_StartServiceA(/* FIXME */); + + /* Not compatible with Windows function 0x20 */ + DWORD svcctl_GetServiceDisplayNameA(/* FIXME */); + + /* Not compatible with Windows function 0x21 */ + DWORD svcctl_GetServiceKeyNameA(/* FIXME */); + + /* Not compatible with Windows function 0x22 */ + DWORD svcctl_GetCurrentGroupStateW(/* FIXME */); + + /* Not compatible with Windows function 0x23 */ + DWORD svcctl_EnumServiceGroupW(/* FIXME */); + + /* Not compatible with Windows function 0x24 */ + DWORD svcctl_ChangeServiceConfig2A(/* FIXME */); + + /* Not compatible with Windows function 0x25 */ + DWORD svcctl_ChangeServiceConfig2W(/* FIXME */); + + /* Not compatible with Windows function 0x26 */ + DWORD svcctl_QueryServiceConfig2A(/* FIXME */); + + /* Not compatible with Windows function 0x27 */ + DWORD svcctl_QueryServiceConfig2W(/* FIXME */); + /* Untested with Windows function 0x28 */ DWORD svcctl_QueryServiceStatusEx( [in] SC_RPC_HANDLE hService, diff --git a/programs/services/rpc.c b/programs/services/rpc.c index b6f043b..63ce0d7 100644 --- a/programs/services/rpc.c +++ b/programs/services/rpc.c @@ -1147,6 +1147,192 @@ DWORD svcctl_UnlockServiceDatabase( return ERROR_SUCCESS; }
+DWORD svcctl_QueryServiceObjectSecurity( + void) +{ + WINE_FIXME("\n"); + return ERROR_CALL_NOT_IMPLEMENTED; +} + +DWORD svcctl_SetServiceObjectSecurity( + void) +{ + WINE_FIXME("\n"); + return ERROR_CALL_NOT_IMPLEMENTED; +} + +DWORD svcctl_QueryServiceStatus( + void) +{ + WINE_FIXME("\n"); + return ERROR_CALL_NOT_IMPLEMENTED; +} + + +DWORD svcctl_NotifyBootConfigStatus( + void) +{ + WINE_FIXME("\n"); + return ERROR_CALL_NOT_IMPLEMENTED; +} + +DWORD svcctl_SCSetServiceBitsW( + void) +{ + WINE_FIXME("\n"); + return ERROR_CALL_NOT_IMPLEMENTED; +} + + +DWORD svcctl_EnumDependentServicesW( + void) +{ + WINE_FIXME("\n"); + return ERROR_CALL_NOT_IMPLEMENTED; +} + +DWORD svcctl_EnumServicesStatusW( + void) +{ + WINE_FIXME("\n"); + return ERROR_CALL_NOT_IMPLEMENTED; +} + + +DWORD svcctl_QueryServiceLockStatusW( + void) +{ + WINE_FIXME("\n"); + return ERROR_CALL_NOT_IMPLEMENTED; +} + +DWORD svcctl_SCSetServiceBitsA( + void) +{ + WINE_FIXME("\n"); + return ERROR_CALL_NOT_IMPLEMENTED; +} + +DWORD svcctl_ChangeServiceConfigA( + void) +{ + WINE_FIXME("\n"); + return ERROR_CALL_NOT_IMPLEMENTED; +} + +DWORD svcctl_CreateServiceA( + void) +{ + WINE_FIXME("\n"); + return ERROR_CALL_NOT_IMPLEMENTED; +} + +DWORD svcctl_EnumDependentServicesA( + void) +{ + WINE_FIXME("\n"); + return ERROR_CALL_NOT_IMPLEMENTED; +} + +DWORD svcctl_EnumServicesStatusA( + void) +{ + WINE_FIXME("\n"); + return ERROR_CALL_NOT_IMPLEMENTED; +} + +DWORD svcctl_OpenSCManagerA( + void) +{ + WINE_FIXME("\n"); + return ERROR_CALL_NOT_IMPLEMENTED; +} + +DWORD svcctl_OpenServiceA( + void) +{ + WINE_FIXME("\n"); + return ERROR_CALL_NOT_IMPLEMENTED; +} + +DWORD svcctl_QueryServiceConfigA( + void) +{ + WINE_FIXME("\n"); + return ERROR_CALL_NOT_IMPLEMENTED; +} + +DWORD svcctl_QueryServiceLockStatusA( + void) +{ + WINE_FIXME("\n"); + return ERROR_CALL_NOT_IMPLEMENTED; +} + +DWORD svcctl_StartServiceA( + void) +{ + WINE_FIXME("\n"); + return ERROR_CALL_NOT_IMPLEMENTED; +} + +DWORD svcctl_GetServiceDisplayNameA( + void) +{ + WINE_FIXME("\n"); + return ERROR_CALL_NOT_IMPLEMENTED; +} + +DWORD svcctl_GetServiceKeyNameA( + void) +{ + WINE_FIXME("\n"); + return ERROR_CALL_NOT_IMPLEMENTED; +} + +DWORD svcctl_GetCurrentGroupStateW( + void) +{ + WINE_FIXME("\n"); + return ERROR_CALL_NOT_IMPLEMENTED; +} + +DWORD svcctl_EnumServiceGroupW( + void) +{ + WINE_FIXME("\n"); + return ERROR_CALL_NOT_IMPLEMENTED; +} + +DWORD svcctl_ChangeServiceConfig2A( + void) +{ + WINE_FIXME("\n"); + return ERROR_CALL_NOT_IMPLEMENTED; +} + +DWORD svcctl_ChangeServiceConfig2W( + void) +{ + WINE_FIXME("\n"); + return ERROR_CALL_NOT_IMPLEMENTED; +} + +DWORD svcctl_QueryServiceConfig2A( + void) +{ + WINE_FIXME("\n"); + return ERROR_CALL_NOT_IMPLEMENTED; +} + +DWORD svcctl_QueryServiceConfig2W( + void) +{ + WINE_FIXME("\n"); + return ERROR_CALL_NOT_IMPLEMENTED; +} + + DWORD RPC_MainLoop(void) { WCHAR transport[] = SVCCTL_TRANSPORT;