ReactOS 0.4.16-dev-1946-g52006dd
netsh.h
Go to the documentation of this file.
1#ifndef _NETSH_H_
2#define _NETSH_H_
3
4#ifdef __cplusplus
5extern "C" {
6#endif
7
8#define NETSH_ERROR_BASE 15000
9#define ERROR_NO_ENTRIES (NETSH_ERROR_BASE + 0)
10#define ERROR_INVALID_SYNTAX (NETSH_ERROR_BASE + 1)
11#define ERROR_PROTOCOL_NOT_IN_TRANSPORT (NETSH_ERROR_BASE + 2)
12#define ERROR_NO_CHANGE (NETSH_ERROR_BASE + 3)
13#define ERROR_CMD_NOT_FOUND (NETSH_ERROR_BASE + 4)
14#define ERROR_ENTRY_PT_NOT_FOUND (NETSH_ERROR_BASE + 5)
15#define ERROR_DLL_LOAD_FAILED (NETSH_ERROR_BASE + 6)
16#define ERROR_INIT_DISPLAY (NETSH_ERROR_BASE + 7)
17#define ERROR_TAG_ALREADY_PRESENT (NETSH_ERROR_BASE + 8)
18#define ERROR_INVALID_OPTION_TAG (NETSH_ERROR_BASE + 9)
19#define ERROR_NO_TAG (NETSH_ERROR_BASE + 10)
20#define ERROR_MISSING_OPTION (NETSH_ERROR_BASE + 11)
21#define ERROR_TRANSPORT_NOT_PRESENT (NETSH_ERROR_BASE + 12)
22#define ERROR_SHOW_USAGE (NETSH_ERROR_BASE + 13)
23#define ERROR_INVALID_OPTION_VALUE (NETSH_ERROR_BASE + 14)
24#define ERROR_OKAY (NETSH_ERROR_BASE + 15)
25#define ERROR_CONTINUE_IN_PARENT_CONTEXT (NETSH_ERROR_BASE + 16)
26#define ERROR_SUPPRESS_OUTPUT (NETSH_ERROR_BASE + 17)
27#define ERROR_HELPER_ALREADY_REGISTERED (NETSH_ERROR_BASE + 18)
28#define ERROR_CONTEXT_ALREADY_REGISTERED (NETSH_ERROR_BASE + 19)
29#define ERROR_PARSING_FAILURE (NETSH_ERROR_BASE + 20)
30#define NETSH_ERROR_END ERROR_CONTEXT_ALREADY_REGISTERED
31
32typedef enum _NS_REQS
33{
39
41{
48 CMD_FLAG_PRIORITY = 0x80000000
49};
50
52{
57 NETSH_SAVE = 4
58};
59
60#define DEFAULT_CONTEXT_PRIORITY 100
61
62#define NETSH_ROOT_GUID {0, 0, 0, {0, 0, 0, 0, 0, 0, 0, 0}}
63
64typedef
66(WINAPI GET_RESOURCE_STRING_FN)(
67 _In_ DWORD dwMsgID,
70
71typedef GET_RESOURCE_STRING_FN *PGET_RESOURCE_STRING_FN;
72
73typedef
75(WINAPI NS_DLL_INIT_FN)(
76 _In_ DWORD dwNetshVersion,
78
79typedef NS_DLL_INIT_FN *PNS_DLL_INIT_FN;
80
81typedef
83(WINAPI NS_HELPER_START_FN)(
84 _In_ const GUID *pguidParent,
86
87typedef NS_HELPER_START_FN *PNS_HELPER_START_FN;
88
89typedef
91(WINAPI NS_HELPER_STOP_FN)(
93
94typedef NS_HELPER_STOP_FN *PNS_HELPER_STOP_FN;
95
96typedef
98(WINAPI NS_CONTEXT_COMMIT_FN)(
99 _In_ DWORD dwAction);
100
101typedef NS_CONTEXT_COMMIT_FN *PNS_CONTEXT_COMMIT_FN;
102
103typedef
104DWORD
105(WINAPI NS_CONTEXT_CONNECT_FN)(
106 _In_ LPCWSTR pwszMachine);
107
108typedef NS_CONTEXT_CONNECT_FN *PNS_CONTEXT_CONNECT_FN;
109
110typedef
111DWORD
112(WINAPI NS_CONTEXT_DUMP_FN)(
113 _In_ LPCWSTR pwszRouter,
117
118typedef NS_CONTEXT_DUMP_FN *PNS_CONTEXT_DUMP_FN;
119
120typedef
122(WINAPI NS_OSVERSIONCHECK)(
123 _In_ UINT CIMOSType,
131
132typedef NS_OSVERSIONCHECK *PNS_OSVERSIONCHECK;
133
134typedef
135DWORD
136(WINAPI FN_HANDLE_CMD)(
137 _In_ LPCWSTR pwszMachine,
144
145typedef FN_HANDLE_CMD *PFN_HANDLE_CMD;
146
147typedef struct _CMD_ENTRY
148{
156
157typedef struct _CMD_GROUP_ENTRY
158{
166
168{
169 union
170 {
171 struct
172 {
175 };
177 };
182
184{
185 union
186 {
187 struct
188 {
191 };
193 };
208
209typedef struct _TAG_TYPE
210{
215
216typedef struct _TOKEN_VALUE
217{
221
222DWORD
223WINAPI
226 _In_ LPCWSTR pwcArg,
227 _In_ DWORD dwNumArg,
228 _In_ const TOKEN_VALUE *pEnumTable,
229 _Out_ PDWORD pdwValue);
230
231BOOL
232WINAPI
234 _In_ LPCWSTR pwszUserToken,
235 _In_ LPCWSTR pwszCmdToken);
236
237DWORD
238WINAPI
244 _Inout_ PTAG_TYPE pttTags,
245 _In_ DWORD dwTagCount,
246 _In_ DWORD dwMinArgs,
247 _In_ DWORD dwMaxArgs,
248 _Out_ DWORD *pdwTagType);
249
250DWORD
251CDECL
254 _In_ DWORD dwErrId,
255 ...);
256
257DWORD
258CDECL
261 _In_ DWORD dwMsgId,
262 ...);
263
264DWORD
265CDECL
267 _In_ LPCWSTR pwszMessage,
268 ...);
269
270DWORD
271WINAPI
273 _In_ const NS_CONTEXT_ATTRIBUTES *pChildContext);
274
275DWORD
276WINAPI
278 _In_ const GUID *pguidParentContext,
279 _In_ const NS_HELPER_ATTRIBUTES *pfnRegisterSubContext);
280
281#ifdef __cplusplus
282}
283#endif
284
285#endif /* _NETSH_H_ */
#define CDECL
Definition: compat.h:29
unsigned int BOOL
Definition: ntddk_ex.h:94
unsigned long DWORD
Definition: ntddk_ex.h:95
CONST void * LPCVOID
Definition: minwindef.h:164
unsigned int UINT
Definition: ndis.h:50
HMODULE hModule
Definition: netsh.c:17
_In_ LPWSTR _In_ DWORD _In_ DWORD _In_ DWORD dwFlags
Definition: netsh.h:141
_Out_ LPWSTR lpBuffer
Definition: netsh.h:68
enum _NS_REQS NS_REQS
FN_HANDLE_CMD * PFN_HANDLE_CMD
Definition: netsh.h:145
struct _TAG_TYPE TAG_TYPE
_NS_REQS
Definition: netsh.h:33
@ NS_REQ_PRESENT
Definition: netsh.h:35
@ NS_REQ_ONE_OR_MORE
Definition: netsh.h:37
@ NS_REQ_ALLOW_MULTIPLE
Definition: netsh.h:36
@ NS_REQ_ZERO
Definition: netsh.h:34
struct _NS_HELPER_ATTRIBUTES NS_HELPER_ATTRIBUTES
DWORD WINAPI MatchEnumTag(_In_ HANDLE hModule, _In_ LPCWSTR pwcArg, _In_ DWORD dwNumArg, _In_ const TOKEN_VALUE *pEnumTable, _Out_ PDWORD pdwValue)
Definition: netsh.c:343
_In_ UINT _In_ LPCWSTR _In_ LPCWSTR CIMOSBuildNumber
Definition: netsh.h:126
_In_ UINT _In_ LPCWSTR _In_ LPCWSTR _In_ LPCWSTR _In_ LPCWSTR _In_ UINT uiReserved
Definition: netsh.h:129
struct _TOKEN_VALUE TOKEN_VALUE
struct _CMD_GROUP_ENTRY * PCMD_GROUP_ENTRY
DWORD CDECL PrintMessage(_In_ LPCWSTR pwszMessage,...)
Definition: netsh.c:542
NS_CONTEXT_CONNECT_FN * PNS_CONTEXT_CONNECT_FN
Definition: netsh.h:108
DWORD CDECL PrintError(_In_opt_ HANDLE hModule, _In_ DWORD dwErrId,...)
Definition: netsh.c:439
NS_CMD_FLAGS
Definition: netsh.h:41
@ CMD_FLAG_ONLINE
Definition: netsh.h:45
@ CMD_FLAG_HIDDEN
Definition: netsh.h:46
@ CMD_FLAG_PRIVATE
Definition: netsh.h:42
@ CMD_FLAG_LIMIT_MASK
Definition: netsh.h:47
@ CMD_FLAG_PRIORITY
Definition: netsh.h:48
@ CMD_FLAG_INTERACTIVE
Definition: netsh.h:43
@ CMD_FLAG_LOCAL
Definition: netsh.h:44
NS_DLL_INIT_FN * PNS_DLL_INIT_FN
Definition: netsh.h:79
DWORD WINAPI RegisterContext(_In_ const NS_CONTEXT_ATTRIBUTES *pChildContext)
Definition: context.c:909
struct _TAG_TYPE * PTAG_TYPE
NS_OSVERSIONCHECK * PNS_OSVERSIONCHECK
Definition: netsh.h:132
struct _TOKEN_VALUE * PTOKEN_VALUE
_In_ UINT _In_ LPCWSTR _In_ LPCWSTR _In_ LPCWSTR _In_ LPCWSTR CIMServicePackMinorVersion
Definition: netsh.h:128
_In_ LPWSTR _In_ DWORD _In_ LPCVOID pvData
Definition: netsh.h:116
NS_CONTEXT_DUMP_FN * PNS_CONTEXT_DUMP_FN
Definition: netsh.h:118
struct _NS_HELPER_ATTRIBUTES * PNS_HELPER_ATTRIBUTES
_In_ LPWSTR * ppwcArguments
Definition: netsh.h:114
_Out_ PVOID pReserved
Definition: netsh.h:77
struct _CMD_GROUP_ENTRY CMD_GROUP_ENTRY
_In_ DWORD dwVersion
Definition: netsh.h:85
_In_ UINT CIMOSProductSuite
Definition: netsh.h:124
GET_RESOURCE_STRING_FN * PGET_RESOURCE_STRING_FN
Definition: netsh.h:71
NS_CONTEXT_COMMIT_FN * PNS_CONTEXT_COMMIT_FN
Definition: netsh.h:101
BOOL WINAPI MatchToken(_In_ LPCWSTR pwszUserToken, _In_ LPCWSTR pwszCmdToken)
Definition: netsh.c:371
DWORD WINAPI RegisterHelper(_In_ const GUID *pguidParentContext, _In_ const NS_HELPER_ATTRIBUTES *pfnRegisterSubContext)
Definition: helper.c:385
struct _NS_CONTEXT_ATTRIBUTES NS_CONTEXT_ATTRIBUTES
struct _CMD_ENTRY CMD_ENTRY
_In_ LPWSTR _In_ DWORD dwArgCount
Definition: netsh.h:115
NS_HELPER_START_FN * PNS_HELPER_START_FN
Definition: netsh.h:87
DWORD WINAPI PreprocessCommand(_In_opt_ HANDLE hModule, _Inout_ LPWSTR *ppwcArguments, _In_ DWORD dwCurrentIndex, _In_ DWORD dwArgCount, _Inout_ PTAG_TYPE pttTags, _In_ DWORD dwTagCount, _In_ DWORD dwMinArgs, _In_ DWORD dwMaxArgs, _Out_ DWORD *pdwTagType)
_In_ UINT _In_ LPCWSTR _In_ LPCWSTR _In_ LPCWSTR _In_ LPCWSTR _In_ UINT _In_ DWORD dwReserved
Definition: netsh.h:130
_In_ UINT _In_ LPCWSTR _In_ LPCWSTR _In_ LPCWSTR CIMServicePackMajorVersion
Definition: netsh.h:127
_Out_ LPWSTR _In_ DWORD nBufferMax
Definition: netsh.h:69
DWORD CDECL PrintMessageFromModule(_In_ HANDLE hModule, _In_ DWORD dwMsgId,...)
Definition: netsh.c:523
NS_HELPER_STOP_FN * PNS_HELPER_STOP_FN
Definition: netsh.h:94
_In_ LPWSTR _In_ DWORD _In_ DWORD _In_ DWORD _In_ LPCVOID _Out_ BOOL * pbDone
Definition: netsh.h:143
struct _NS_CONTEXT_ATTRIBUTES * PNS_CONTEXT_ATTRIBUTES
_In_ LPWSTR _In_ DWORD dwCurrentIndex
Definition: netsh.h:139
_In_ UINT _In_ LPCWSTR CIMOSVersion
Definition: netsh.h:125
struct _CMD_ENTRY * PCMD_ENTRY
NS_MODE_CHANGE
Definition: netsh.h:52
@ NETSH_COMMIT
Definition: netsh.h:53
@ NETSH_FLUSH
Definition: netsh.h:55
@ NETSH_SAVE
Definition: netsh.h:57
@ NETSH_UNCOMMIT
Definition: netsh.h:54
@ NETSH_COMMIT_STATE
Definition: netsh.h:56
#define _Inout_
Definition: no_sal2.h:162
#define _Out_
Definition: no_sal2.h:160
#define _In_
Definition: no_sal2.h:158
#define _In_opt_
Definition: no_sal2.h:212
#define BOOL
Definition: nt_native.h:43
#define DWORD
Definition: nt_native.h:44
DWORD * PDWORD
Definition: pedump.c:68
Definition: netsh.h:148
PFN_HANDLE_CMD pfnCmdHandler
Definition: netsh.h:150
DWORD dwCmdHlpToken
Definition: netsh.h:152
LPCWSTR pwszCmdToken
Definition: netsh.h:149
DWORD dwFlags
Definition: netsh.h:153
PNS_OSVERSIONCHECK pOsVersionCheck
Definition: netsh.h:154
DWORD dwShortCmdHelpToken
Definition: netsh.h:151
Definition: netsh.h:158
PNS_OSVERSIONCHECK pOsVersionCheck
Definition: netsh.h:164
LPCWSTR pwszCmdGroupToken
Definition: netsh.h:159
ULONG ulCmdGroupSize
Definition: netsh.h:161
DWORD dwFlags
Definition: netsh.h:162
PCMD_ENTRY pCmdGroup
Definition: netsh.h:163
DWORD dwShortCmdHelpToken
Definition: netsh.h:160
ULONGLONG _ullAlign
Definition: netsh.h:192
CMD_ENTRY * pTopCmds
Definition: netsh.h:199
CMD_GROUP_ENTRY * pCmdGroups
Definition: netsh.h:201
PNS_OSVERSIONCHECK pfnOsVersionCheck
Definition: netsh.h:206
PNS_CONTEXT_DUMP_FN pfnDumpFn
Definition: netsh.h:203
PNS_CONTEXT_CONNECT_FN pfnConnectFn
Definition: netsh.h:204
PNS_CONTEXT_COMMIT_FN pfnCommitFn
Definition: netsh.h:202
PNS_HELPER_STOP_FN pfnStop
Definition: netsh.h:180
ULONGLONG _ullAlign
Definition: netsh.h:176
PNS_HELPER_START_FN pfnStart
Definition: netsh.h:179
DWORD dwRequired
Definition: netsh.h:212
BOOL bPresent
Definition: netsh.h:213
LPCWSTR pwszTag
Definition: netsh.h:211
DWORD dwValue
Definition: netsh.h:219
LPCWSTR pwszToken
Definition: netsh.h:218
uint32_t ULONG
Definition: typedefs.h:59
uint64_t ULONGLONG
Definition: typedefs.h:67
#define WINAPI
Definition: msvc.h:6
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185
WCHAR * LPWSTR
Definition: xmlstorage.h:184