[SERVICES] Define the RI_ScQueryServiceTagInfo RPC call
authorPierre Schweitzer <pierre@reactos.org>
Sun, 30 Dec 2018 10:45:08 +0000 (11:45 +0100)
committerPierre Schweitzer <pierre@reactos.org>
Sun, 30 Dec 2018 13:26:57 +0000 (14:26 +0100)
All the definitions are taken from ProcessHacker:
https://github.com/processhacker/processhacker/blob/master/phnt/include/subprocesstag.h

base/system/services/rpcserver.c
sdk/include/reactos/idl/svcctl.idl

index 7f251c8..5b243f7 100644 (file)
@@ -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;
index 36234e7..c16efb6 100644 (file)
@@ -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