Nikolay Sivov : services: Pass resume index to server.

Alexandre Julliard julliard at wine.codeweavers.com
Wed Feb 25 09:57:01 CST 2015


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

Author: Nikolay Sivov <nsivov at codeweavers.com>
Date:   Wed Feb 25 09:07:59 2015 +0300

services: Pass resume index to server.

---

 dlls/advapi32/service.c | 5 +----
 include/wine/svcctl.idl | 5 +++--
 programs/services/rpc.c | 8 ++++++--
 3 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/dlls/advapi32/service.c b/dlls/advapi32/service.c
index e0f7312..ae002c9 100644
--- a/dlls/advapi32/service.c
+++ b/dlls/advapi32/service.c
@@ -1619,9 +1619,6 @@ EnumServicesStatusW( SC_HANDLE hmngr, DWORD type, DWORD state, LPENUM_SERVICE_ST
     TRACE("%p 0x%x 0x%x %p %u %p %p %p\n", hmngr, type, state, services, size, needed,
           returned, resume_handle);
 
-    if (resume_handle)
-        FIXME("resume handle not supported\n");
-
     if (!hmngr)
     {
         SetLastError( ERROR_INVALID_HANDLE );
@@ -1637,7 +1634,7 @@ EnumServicesStatusW( SC_HANDLE hmngr, DWORD type, DWORD state, LPENUM_SERVICE_ST
 
     __TRY
     {
-        err = svcctl_EnumServicesStatusW( hmngr, type, state, (BYTE *)services, size, needed, returned );
+        err = svcctl_EnumServicesStatusW( hmngr, type, state, (BYTE *)services, size, needed, returned, resume_handle );
     }
     __EXCEPT(rpc_filter)
     {
diff --git a/include/wine/svcctl.idl b/include/wine/svcctl.idl
index b5a8c4d..7409b17 100644
--- a/include/wine/svcctl.idl
+++ b/include/wine/svcctl.idl
@@ -253,7 +253,7 @@ typedef struct _SC_RPC_CONFIG_INFOW {
     /* Not compatible with Windows function 0x0d */
     DWORD svcctl_EnumDependentServicesW(/* FIXME */);
 
-    /* Not compatible with Windows function 0x0e */
+    /* Compatible with Windows function 0x0e */
     DWORD svcctl_EnumServicesStatusW(
         [in] SC_RPC_HANDLE hmngr,
         [in] DWORD type,
@@ -261,7 +261,8 @@ typedef struct _SC_RPC_CONFIG_INFOW {
         [out,size_is(size)] BYTE *buffer,
         [in] DWORD size,
         [out] LPDWORD needed,
-        [out] LPDWORD returned
+        [out] LPDWORD returned,
+        [in,out,unique] LPDWORD resume
     );
 
     /* Compatible with Windows function 0x0f */
diff --git a/programs/services/rpc.c b/programs/services/rpc.c
index 34d012d..3a206c7 100644
--- a/programs/services/rpc.c
+++ b/programs/services/rpc.c
@@ -1276,7 +1276,8 @@ DWORD __cdecl svcctl_EnumServicesStatusW(
     BYTE *buffer,
     DWORD size,
     LPDWORD needed,
-    LPDWORD returned)
+    LPDWORD returned,
+    LPDWORD resume)
 {
     DWORD err, sz, total_size, num_services;
     DWORD_PTR offset;
@@ -1284,7 +1285,7 @@ DWORD __cdecl svcctl_EnumServicesStatusW(
     struct service_entry *service;
     ENUM_SERVICE_STATUSW *s;
 
-    WINE_TRACE("(%p, 0x%x, 0x%x, %p, %u, %p, %p)\n", hmngr, type, state, buffer, size, needed, returned);
+    WINE_TRACE("(%p, 0x%x, 0x%x, %p, %u, %p, %p, %p)\n", hmngr, type, state, buffer, size, needed, returned, resume);
 
     if (!type || !state)
         return ERROR_INVALID_PARAMETER;
@@ -1292,6 +1293,9 @@ DWORD __cdecl svcctl_EnumServicesStatusW(
     if ((err = validate_scm_handle(hmngr, SC_MANAGER_ENUMERATE_SERVICE, &manager)) != ERROR_SUCCESS)
         return err;
 
+    if (resume)
+        WINE_FIXME("resume index not supported\n");
+
     scmdatabase_lock_exclusive(manager->db);
 
     total_size = num_services = 0;




More information about the wine-cvs mailing list