From dfaee51f98f9c2571a29af80906130f1f3c7da43 Mon Sep 17 00:00:00 2001 From: Pierre Schweitzer Date: Sun, 30 Dec 2018 11:45:08 +0100 Subject: [PATCH] [SERVICES] Define the RI_ScQueryServiceTagInfo RPC call All the definitions are taken from ProcessHacker: https://github.com/processhacker/processhacker/blob/master/phnt/include/subprocesstag.h --- base/system/services/rpcserver.c | 7 +++++-- sdk/include/reactos/idl/svcctl.idl | 31 ++++++++++++++++++++++++++++-- 2 files changed, 34 insertions(+), 4 deletions(-) diff --git a/base/system/services/rpcserver.c b/base/system/services/rpcserver.c index 7f251c87609..5b243f7f895 100644 --- a/base/system/services/rpcserver.c +++ b/base/system/services/rpcserver.c @@ -6580,8 +6580,11 @@ RCreateServiceWOW64W( /* Function 46 */ DWORD WINAPI -RQueryServiceTagInfo( - handle_t BindingHandle) /* FIXME */ +RI_ScQueryServiceTagInfo( + SC_RPC_HANDLE hSCManager, + TAG_INFO_LEVEL dwInfoLevel, + PTAG_INFO_NAME_FROM_TAG_IN_PARAMS * lpInParams, + PTAG_INFO_NAME_FROM_TAG_OUT_PARAMS * lpOutParams) { UNIMPLEMENTED; return ERROR_CALL_NOT_IMPLEMENTED; diff --git a/sdk/include/reactos/idl/svcctl.idl b/sdk/include/reactos/idl/svcctl.idl index 36234e74e11..c16efb623d7 100644 --- a/sdk/include/reactos/idl/svcctl.idl +++ b/sdk/include/reactos/idl/svcctl.idl @@ -296,6 +296,30 @@ typedef struct _STRING_PTRSW { [string] LPWSTR StringPtr; } STRING_PTRSW, *PSTRING_PTRSW, *LPSTRING_PTRSW; +typedef [v1_enum] enum _TAG_INFO_LEVEL { + TagInfoLevelNameFromTag = 1, +} TAG_INFO_LEVEL; + +typedef [v1_enum] enum _TAG_TYPE { + TagTypeService = 1, +} TAG_TYPE; + +typedef struct _TAG_INFO_NAME_FROM_TAG_IN_PARAMS { + DWORD dwPid; + DWORD dwTag; +} TAG_INFO_NAME_FROM_TAG_IN_PARAMS, *PTAG_INFO_NAME_FROM_TAG_IN_PARAMS; + +typedef struct _TAG_INFO_NAME_FROM_TAG_OUT_PARAMS { + TAG_TYPE TagType; + LPWSTR pszName; +} TAG_INFO_NAME_FROM_TAG_OUT_PARAMS, *PTAG_INFO_NAME_FROM_TAG_OUT_PARAMS; + +typedef struct _TAG_INFO_NAME_FROM_TAG +{ + TAG_INFO_NAME_FROM_TAG_IN_PARAMS InParams; + TAG_INFO_NAME_FROM_TAG_OUT_PARAMS OutParams; +} TAG_INFO_NAME_FROM_TAG, *PTAG_INFO_NAME_FROM_TAG; + [ uuid(367abb81-9844-35f1-ad32-98f038001003), version(2.0), @@ -798,8 +822,11 @@ interface svcctl /* Function 46 */ DWORD __stdcall - RQueryServiceTagInfo( - [in] handle_t BindingHandle); /* FIXME */ + RI_ScQueryServiceTagInfo( + [in] SC_RPC_HANDLE hSCManager, + [in] TAG_INFO_LEVEL dwInfoLevel, + [in] PTAG_INFO_NAME_FROM_TAG_IN_PARAMS * lpInParams, + [out] PTAG_INFO_NAME_FROM_TAG_OUT_PARAMS * lpOutParams); /* Function 47 */ DWORD