ReactOS
0.4.15-dev-4594-g505ac65
svc.h
Go to the documentation of this file.
1
/*
2
* PROJECT: ReactOS Service Host
3
* LICENSE: BSD - See COPYING.ARM in the top level directory
4
* PURPOSE: Global Header for Service Host
5
* PROGRAMMERS: ReactOS Portable Systems Group
6
*
7
* REFERENCES:
8
* https://www.geoffchappell.com/studies/windows/win32/services/svchost/process/globaldata.htm
9
*/
10
11
#ifndef __SVC_H
12
#define __SVC_H
13
14
#ifdef __cplusplus
15
extern
"C"
{
16
#endif
17
18
#ifndef __RPC_H__ // For RPC_IF_HANDLE
19
/* Don't include windows.h if we just need rpc.h */
20
#ifndef RPC_NO_WINDOWS_H
21
#define RPC_NO_WINDOWS_H
22
#endif
23
#include <rpc.h>
24
#endif // __RPC_H__
25
26
#ifndef WINAPI
27
#define WINAPI __stdcall
28
#endif
29
30
/* Ensure NTSTATUS is defined */
31
#ifndef _NTDEF_
32
typedef
_Return_type_success_
(
return
>= 0)
LONG
NTSTATUS
, *
PNTSTATUS
;
33
#endif
34
35
36
/*
37
* Entrypoints for starting and stopping an RPC server.
38
*/
39
typedef
NTSTATUS
40
(
WINAPI
*
PSTART_RPC_SERVER
)(
41
_In_
PCWSTR
IfName,
42
_In_
RPC_IF_HANDLE
IfSpec);
43
44
typedef
NTSTATUS
45
(
WINAPI
*
PSTOP_RPC_SERVER
)(
46
_In_
RPC_IF_HANDLE
IfSpec);
47
48
typedef
NTSTATUS
49
(
WINAPI
*
PSTOP_RPC_SERVER_EX
)(
50
_In_
RPC_IF_HANDLE
IfSpec);
51
52
/*
53
* Entrypoints for NetBIOS service support.
54
*/
55
typedef
VOID
56
(
WINAPI
*
PNET_BIOS_OPEN
)(
VOID
);
57
58
typedef
VOID
59
(
WINAPI
*
PNET_BIOS_CLOSE
)(
VOID
);
60
61
typedef
DWORD
62
(
WINAPI
*
PNET_BIOS_RESET
)(
63
_In_
UCHAR
LanaNum);
64
65
/*
66
* Callback that a hosted service can register for stop notification.
67
* Alias to (RTL_)WAITORTIMERCALLBACK(FUNC).
68
*/
69
/*
70
typedef VOID
71
(CALLBACK *PSVCHOST_STOP_CALLBACK)(
72
_In_ PVOID lpParameter,
73
_In_ BOOLEAN TimerOrWaitFired);
74
*/
75
typedef
WAITORTIMERCALLBACK
PSVCHOST_STOP_CALLBACK
;
76
77
#if (_WIN32_WINNT == _WIN32_WINNT_WINXP && NTDDI_VERSION >= NTDDI_WINXPSP2) || \
78
(NTDDI_VERSION >= NTDDI_WS03SP1)
79
typedef
DWORD
80
(
WINAPI
*
PREGISTER_STOP_CALLBACK
)(
81
_Out_
PHANDLE
phNewWaitObject,
82
_In_
PCWSTR
pszServiceName,
83
_In_
HANDLE
hObject,
84
_In_
PSVCHOST_STOP_CALLBACK
Callback
,
85
_In_
PVOID
Context
,
86
_In_
ULONG
dwFlags
);
87
#endif
88
89
/*
90
* Hosted Services and SvcHost use this shared global data structure.
91
*/
92
typedef
struct
_SVCHOST_GLOBAL_DATA
93
{
94
PSID
NullSid
;
95
PSID
WorldSid
;
96
PSID
LocalSid
;
97
PSID
NetworkSid
;
98
PSID
LocalSystemSid
;
99
PSID
LocalServiceSid
;
100
PSID
NetworkServiceSid
;
101
PSID
BuiltinDomainSid
;
102
PSID
AuthenticatedUserSid
;
103
PSID
AnonymousLogonSid
;
104
PSID
AliasAdminsSid
;
105
PSID
AliasUsersSid
;
106
PSID
AliasGuestsSid
;
107
PSID
AliasPowerUsersSid
;
108
PSID
AliasAccountOpsSid
;
109
PSID
AliasSystemOpsSid
;
110
PSID
AliasPrintOpsSid
;
111
PSID
AliasBackupOpsSid
;
112
113
/* SvcHost callbacks for RPC server and NetBIOS service support */
114
PSTART_RPC_SERVER
StartRpcServer
;
115
PSTOP_RPC_SERVER
StopRpcServer
;
116
PSTOP_RPC_SERVER_EX
StopRpcServerEx
;
117
PNET_BIOS_OPEN
NetBiosOpen
;
118
PNET_BIOS_CLOSE
NetBiosClose
;
119
PNET_BIOS_RESET
NetBiosReset
;
120
121
#if (_WIN32_WINNT == _WIN32_WINNT_WINXP && NTDDI_VERSION >= NTDDI_WINXPSP2) || \
122
(NTDDI_VERSION >= NTDDI_WS03SP1)
123
PREGISTER_STOP_CALLBACK
RegisterStopCallback
;
124
#endif
125
}
SVCHOST_GLOBAL_DATA
, *
PSVCHOST_GLOBAL_DATA
;
126
127
#ifdef __cplusplus
128
}
129
#endif
130
131
#endif
/* __SVC_H */
PNTSTATUS
* PNTSTATUS
Definition:
strlen.c:14
PNET_BIOS_RESET
DWORD(WINAPI * PNET_BIOS_RESET)(_In_ UCHAR LanaNum)
Definition:
svc.h:62
PNET_BIOS_CLOSE
VOID(WINAPI * PNET_BIOS_CLOSE)(VOID)
Definition:
svc.h:59
PCWSTR
const uint16_t * PCWSTR
Definition:
typedefs.h:57
_SVCHOST_GLOBAL_DATA::AliasPowerUsersSid
PSID AliasPowerUsersSid
Definition:
svc.h:107
_SID
Definition:
ms-dtyp.idl:198
_Out_
#define _Out_
Definition:
ms_sal.h:345
_SVCHOST_GLOBAL_DATA::LocalSid
PSID LocalSid
Definition:
svc.h:96
PNET_BIOS_OPEN
VOID(WINAPI * PNET_BIOS_OPEN)(VOID)
Definition:
svc.h:56
NTSTATUS
LONG NTSTATUS
Definition:
precomp.h:26
_SVCHOST_GLOBAL_DATA::NetBiosReset
PNET_BIOS_RESET NetBiosReset
Definition:
svc.h:119
_SVCHOST_GLOBAL_DATA::AnonymousLogonSid
PSID AnonymousLogonSid
Definition:
svc.h:103
_SVCHOST_GLOBAL_DATA::LocalSystemSid
PSID LocalSystemSid
Definition:
svc.h:98
DWORD
#define DWORD
Definition:
nt_native.h:44
_SVCHOST_GLOBAL_DATA::NetworkSid
PSID NetworkSid
Definition:
svc.h:97
_SVCHOST_GLOBAL_DATA::WorldSid
PSID WorldSid
Definition:
svc.h:95
WINAPI
#define WINAPI
Definition:
svc.h:27
_SVCHOST_GLOBAL_DATA::StopRpcServerEx
PSTOP_RPC_SERVER_EX StopRpcServerEx
Definition:
svc.h:116
_SVCHOST_GLOBAL_DATA::NullSid
PSID NullSid
Definition:
svc.h:94
_SVCHOST_GLOBAL_DATA::AliasBackupOpsSid
PSID AliasBackupOpsSid
Definition:
svc.h:111
_Return_type_success_
typedef _Return_type_success_(return >=0) LONG NTSTATUS
LONG
long LONG
Definition:
pedump.c:60
_SVCHOST_GLOBAL_DATA::RegisterStopCallback
PREGISTER_STOP_CALLBACK RegisterStopCallback
Definition:
svc.h:123
PSTOP_RPC_SERVER_EX
NTSTATUS(WINAPI * PSTOP_RPC_SERVER_EX)(_In_ RPC_IF_HANDLE IfSpec)
Definition:
svc.h:49
_In_
#define _In_
Definition:
ms_sal.h:308
PSVCHOST_GLOBAL_DATA
struct _SVCHOST_GLOBAL_DATA * PSVCHOST_GLOBAL_DATA
_SVCHOST_GLOBAL_DATA::NetBiosClose
PNET_BIOS_CLOSE NetBiosClose
Definition:
svc.h:118
_SVCHOST_GLOBAL_DATA::AliasAccountOpsSid
PSID AliasAccountOpsSid
Definition:
svc.h:108
SVCHOST_GLOBAL_DATA
struct _SVCHOST_GLOBAL_DATA SVCHOST_GLOBAL_DATA
PREGISTER_STOP_CALLBACK
DWORD(WINAPI * PREGISTER_STOP_CALLBACK)(_Out_ PHANDLE phNewWaitObject, _In_ PCWSTR pszServiceName, _In_ HANDLE hObject, _In_ PSVCHOST_STOP_CALLBACK Callback, _In_ PVOID Context, _In_ ULONG dwFlags)
Definition:
svc.h:80
_SVCHOST_GLOBAL_DATA::AliasPrintOpsSid
PSID AliasPrintOpsSid
Definition:
svc.h:110
_SVCHOST_GLOBAL_DATA
Definition:
svc.h:92
UCHAR
unsigned char UCHAR
Definition:
xmlstorage.h:181
NTSTATUS
#define NTSTATUS
Definition:
precomp.h:20
dwFlags
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
Definition:
wincrypt.h:1175
PHANDLE
PVOID *typedef PHANDLE
Definition:
ntsecpkg.h:454
VOID
#define VOID
Definition:
acefi.h:82
_SVCHOST_GLOBAL_DATA::NetBiosOpen
PNET_BIOS_OPEN NetBiosOpen
Definition:
svc.h:117
PSTART_RPC_SERVER
NTSTATUS(WINAPI * PSTART_RPC_SERVER)(_In_ PCWSTR IfName, _In_ RPC_IF_HANDLE IfSpec)
Definition:
svc.h:40
Callback
_In_ WDFINTERRUPT _In_ PFN_WDF_INTERRUPT_SYNCHRONIZE Callback
Definition:
wdfinterrupt.h:456
_SVCHOST_GLOBAL_DATA::AuthenticatedUserSid
PSID AuthenticatedUserSid
Definition:
svc.h:102
_SVCHOST_GLOBAL_DATA::StartRpcServer
PSTART_RPC_SERVER StartRpcServer
Definition:
svc.h:114
_SVCHOST_GLOBAL_DATA::NetworkServiceSid
PSID NetworkServiceSid
Definition:
svc.h:100
WAITORTIMERCALLBACK
static WAITORTIMERCALLBACK
Definition:
thread.c:81
_SVCHOST_GLOBAL_DATA::LocalServiceSid
PSID LocalServiceSid
Definition:
svc.h:99
PSVCHOST_STOP_CALLBACK
WAITORTIMERCALLBACK PSVCHOST_STOP_CALLBACK
Definition:
svc.h:75
PSTOP_RPC_SERVER
NTSTATUS(WINAPI * PSTOP_RPC_SERVER)(_In_ RPC_IF_HANDLE IfSpec)
Definition:
svc.h:45
_SVCHOST_GLOBAL_DATA::AliasGuestsSid
PSID AliasGuestsSid
Definition:
svc.h:106
Context
struct tagContext Context
Definition:
acpixf.h:1034
_SVCHOST_GLOBAL_DATA::AliasAdminsSid
PSID AliasAdminsSid
Definition:
svc.h:104
ULONG
unsigned int ULONG
Definition:
retypes.h:1
_SVCHOST_GLOBAL_DATA::AliasUsersSid
PSID AliasUsersSid
Definition:
svc.h:105
void
Definition:
nsiface.idl:2306
_SVCHOST_GLOBAL_DATA::StopRpcServer
PSTOP_RPC_SERVER StopRpcServer
Definition:
svc.h:115
_SVCHOST_GLOBAL_DATA::BuiltinDomainSid
PSID BuiltinDomainSid
Definition:
svc.h:101
_SVCHOST_GLOBAL_DATA::AliasSystemOpsSid
PSID AliasSystemOpsSid
Definition:
svc.h:109
sdk
include
reactos
svc.h
Generated on Tue May 24 2022 06:03:39 for ReactOS by
1.8.15