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