https://git.reactos.org/?p=reactos.git;a=commitdiff;h=dfaee51f98f9c2571a29af...
commit dfaee51f98f9c2571a29af80906130f1f3c7da43 Author: Pierre Schweitzer pierre@reactos.org AuthorDate: Sun Dec 30 11:45:08 2018 +0100 Commit: Pierre Schweitzer pierre@reactos.org CommitDate: Sun Dec 30 14:26:57 2018 +0100
[SERVICES] Define the RI_ScQueryServiceTagInfo RPC call
All the definitions are taken from ProcessHacker: https://github.com/processhacker/processhacker/blob/master/phnt/include/subp... --- 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 7f251c8760..5b243f7f89 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 36234e74e1..c16efb623d 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