[SDK][LSASRV][SETUPAPI] Move undocumented service manager functions into a new header file

This commit is contained in:
Eric Kohl
2025-05-04 20:15:11 +02:00
parent fad52db479
commit 7c8a8400e0
3 changed files with 104 additions and 9 deletions

View File

@@ -10,11 +10,10 @@
#include "lsasrv.h"
#include <winsvc.h>
#include <winsvc_undoc.h>
typedef VOID (WINAPI *PNETLOGONMAIN)(INT ArgCount, PWSTR *ArgVector);
VOID WINAPI I_ScIsSecurityProcess(VOID);
static VOID WINAPI NetlogonServiceMain(DWORD dwArgc, PWSTR *pszArgv);
static VOID WINAPI SamSsServiceMain(DWORD dwArgc, PWSTR *pszArgv);

View File

@@ -24,18 +24,12 @@
#include <dbt.h>
#include <pnp_c.h>
#include <winsvc.h>
#include <winsvc_undoc.h>
#include <pseh/pseh2.h>
#include "rpc_private.h"
DWORD
WINAPI
I_ScPnPGetServiceName(IN SERVICE_STATUS_HANDLE hServiceStatus,
OUT LPWSTR lpServiceName,
IN DWORD cchServiceName);
/* Registry key and value names */
static const WCHAR BackslashOpenBrace[] = {'\\', '{', 0};
static const WCHAR CloseBrace[] = {'}', 0};

View File

@@ -0,0 +1,102 @@
#ifndef _WINSVC_UNDOC_H_
#define _WINSVC_UNDOC_H_
#ifdef __cplusplus
extern "C" {
#endif
#if !defined(__midl) && !defined(__WIDL__)
typedef enum _TAG_INFO_LEVEL
{
TagInfoLevelNameFromTag = 1,
} TAG_INFO_LEVEL;
typedef 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;
#endif
DWORD
WINAPI
I_QueryTagInformation(
PVOID Unused,
TAG_INFO_LEVEL dwInfoLevel,
PTAG_INFO_NAME_FROM_TAG InOutParams);
DWORD
WINAPI
I_ScGetCurrentGroupStateW(
_In_ SC_HANDLE hSCManager,
_In_ LPWSTR pszGroupName,
_Out_ LPDWORD pdwGroupState);
VOID
WINAPI
I_ScIsSecurityProcess(VOID);
DWORD
WINAPI
I_ScPnPGetServiceName(
_In_ SERVICE_STATUS_HANDLE hServiceStatus,
_Out_ LPWSTR lpServiceName,
_In_ DWORD cchServiceName);
/* I_ScSendPnPMessage */
/* I_ScSendTSMessage */
BOOL
WINAPI
I_ScSetServiceBitsA(
_In_ SERVICE_STATUS_HANDLE hServiceStatus,
_In_ DWORD dwServiceBits,
_In_ BOOL bSetBitsOn,
_In_ BOOL bUpdateImmediately,
_In_ LPSTR lpString);
BOOL
WINAPI
I_ScSetServiceBitsW(
_In_ SERVICE_STATUS_HANDLE hServiceStatus,
_In_ DWORD dwServiceBits,
_In_ BOOL bSetBitsOn,
_In_ BOOL bUpdateImmediately,
_In_ LPWSTR lpString);
#ifdef UNICODE
#define I_ScSetServiceBits I_ScSetServiceBitsW
#else /* UNICODE */
#define I_ScSetServiceBits I_ScSetServiceBitsA
#endif
DWORD
WINAPI
I_ScValidatePnpService(
_In_ LPCWSTR pszMachineName,
_In_ LPCWSTR pszServiceName,
_Out_ SERVICE_STATUS_HANDLE *phServiceStatus);
#ifdef __cplusplus
}
#endif
#endif /* _WINSVC_UNDOC_H_ */