https://git.reactos.org/?p=reactos.git;a=commitdiff;h=dfaee51f98f9c2571a29af80906130f1f3c7da43

commit dfaee51f98f9c2571a29af80906130f1f3c7da43
Author:     Pierre Schweitzer <[email protected]>
AuthorDate: Sun Dec 30 11:45:08 2018 +0100
Commit:     Pierre Schweitzer <[email protected]>
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/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 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

Reply via email to