https://git.reactos.org/?p=reactos.git;a=commitdiff;h=dfaee51f98f9c2571a29a…
commit dfaee51f98f9c2571a29af80906130f1f3c7da43
Author: Pierre Schweitzer <pierre(a)reactos.org>
AuthorDate: Sun Dec 30 11:45:08 2018 +0100
Commit: Pierre Schweitzer <pierre(a)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/sub…
---
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