Rob Shearman : services: Fill in the functions between implemented functions in svcctl. idl so that it our remoting code is wire-compatible with NT.

Alexandre Julliard julliard at winehq.org
Sat Mar 29 06:57:06 CDT 2008


Module: wine
Branch: master
Commit: 8529a3c404893ecbc710d4398cf43c6d1e36d650
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=8529a3c404893ecbc710d4398cf43c6d1e36d650

Author: Rob Shearman <rob at 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;




More information about the wine-cvs mailing list