Something went wrong. Try again.
Reactos
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286#ifndef _NETSH_H_#define _NETSH_H_
#ifdef __cplusplusextern "C" {#endif
#define NETSH_ERROR_BASE 15000#define ERROR_NO_ENTRIES (NETSH_ERROR_BASE + 0)#define ERROR_INVALID_SYNTAX (NETSH_ERROR_BASE + 1)#define ERROR_PROTOCOL_NOT_IN_TRANSPORT (NETSH_ERROR_BASE + 2)#define ERROR_NO_CHANGE (NETSH_ERROR_BASE + 3)#define ERROR_CMD_NOT_FOUND (NETSH_ERROR_BASE + 4)#define ERROR_ENTRY_PT_NOT_FOUND (NETSH_ERROR_BASE + 5)#define ERROR_DLL_LOAD_FAILED (NETSH_ERROR_BASE + 6)#define ERROR_INIT_DISPLAY (NETSH_ERROR_BASE + 7)#define ERROR_TAG_ALREADY_PRESENT (NETSH_ERROR_BASE + 8)#define ERROR_INVALID_OPTION_TAG (NETSH_ERROR_BASE + 9)#define ERROR_NO_TAG (NETSH_ERROR_BASE + 10)#define ERROR_MISSING_OPTION (NETSH_ERROR_BASE + 11)#define ERROR_TRANSPORT_NOT_PRESENT (NETSH_ERROR_BASE + 12)#define ERROR_SHOW_USAGE (NETSH_ERROR_BASE + 13)#define ERROR_INVALID_OPTION_VALUE (NETSH_ERROR_BASE + 14)#define ERROR_OKAY (NETSH_ERROR_BASE + 15)#define ERROR_CONTINUE_IN_PARENT_CONTEXT (NETSH_ERROR_BASE + 16)#define ERROR_SUPPRESS_OUTPUT (NETSH_ERROR_BASE + 17)#define ERROR_HELPER_ALREADY_REGISTERED (NETSH_ERROR_BASE + 18)#define ERROR_CONTEXT_ALREADY_REGISTERED (NETSH_ERROR_BASE + 19)#define ERROR_PARSING_FAILURE (NETSH_ERROR_BASE + 20)#define NETSH_ERROR_END ERROR_CONTEXT_ALREADY_REGISTERED
typedef enum _NS_REQS{ NS_REQ_ZERO = 0, NS_REQ_PRESENT = 1, NS_REQ_ALLOW_MULTIPLE = 2, NS_REQ_ONE_OR_MORE = 3} NS_REQS;
enum NS_CMD_FLAGS{ CMD_FLAG_PRIVATE = 0x01, CMD_FLAG_INTERACTIVE = 0x02, CMD_FLAG_LOCAL = 0x08, CMD_FLAG_ONLINE = 0x10, CMD_FLAG_HIDDEN = 0x20, CMD_FLAG_LIMIT_MASK = 0xffff, CMD_FLAG_PRIORITY = 0x80000000};
enum NS_MODE_CHANGE{ NETSH_COMMIT = 0, NETSH_UNCOMMIT = 1, NETSH_FLUSH = 2, NETSH_COMMIT_STATE = 3, NETSH_SAVE = 4};
#define DEFAULT_CONTEXT_PRIORITY 100
#define NETSH_ROOT_GUID {0, 0, 0, {0, 0, 0, 0, 0, 0, 0, 0}}
typedefDWORD(WINAPI GET_RESOURCE_STRING_FN)( _In_ DWORD dwMsgID, _Out_ LPWSTR lpBuffer, _In_ DWORD nBufferMax);
typedef GET_RESOURCE_STRING_FN *PGET_RESOURCE_STRING_FN;
typedefDWORD(WINAPI NS_DLL_INIT_FN)( _In_ DWORD dwNetshVersion, _Out_ PVOID pReserved);
typedef NS_DLL_INIT_FN *PNS_DLL_INIT_FN;
typedefDWORD(WINAPI NS_HELPER_START_FN)( _In_ const GUID *pguidParent, _In_ DWORD dwVersion);
typedef NS_HELPER_START_FN *PNS_HELPER_START_FN;
typedefDWORD(WINAPI NS_HELPER_STOP_FN)( _In_ DWORD dwReserved);
typedef NS_HELPER_STOP_FN *PNS_HELPER_STOP_FN;
typedefDWORD(WINAPI NS_CONTEXT_COMMIT_FN)( _In_ DWORD dwAction);
typedef NS_CONTEXT_COMMIT_FN *PNS_CONTEXT_COMMIT_FN;
typedefDWORD(WINAPI NS_CONTEXT_CONNECT_FN)( _In_ LPCWSTR pwszMachine);
typedef NS_CONTEXT_CONNECT_FN *PNS_CONTEXT_CONNECT_FN;
typedefDWORD(WINAPI NS_CONTEXT_DUMP_FN)( _In_ LPCWSTR pwszRouter, _In_ LPWSTR *ppwcArguments, _In_ DWORD dwArgCount, _In_ LPCVOID pvData);
typedef NS_CONTEXT_DUMP_FN *PNS_CONTEXT_DUMP_FN;
typedefBOOL(WINAPI NS_OSVERSIONCHECK)( _In_ UINT CIMOSType, _In_ UINT CIMOSProductSuite, _In_ LPCWSTR CIMOSVersion, _In_ LPCWSTR CIMOSBuildNumber, _In_ LPCWSTR CIMServicePackMajorVersion, _In_ LPCWSTR CIMServicePackMinorVersion, _In_ UINT uiReserved, _In_ DWORD dwReserved);
typedef NS_OSVERSIONCHECK *PNS_OSVERSIONCHECK;
typedefDWORD(WINAPI FN_HANDLE_CMD)( _In_ LPCWSTR pwszMachine, _In_ LPWSTR *ppwcArguments, _In_ DWORD dwCurrentIndex, _In_ DWORD dwArgCount, _In_ DWORD dwFlags, _In_ LPCVOID pvData, _Out_ BOOL *pbDone);
typedef FN_HANDLE_CMD *PFN_HANDLE_CMD;
typedef struct _CMD_ENTRY{ LPCWSTR pwszCmdToken; PFN_HANDLE_CMD pfnCmdHandler; DWORD dwShortCmdHelpToken; DWORD dwCmdHlpToken; DWORD dwFlags; PNS_OSVERSIONCHECK pOsVersionCheck;} CMD_ENTRY, *PCMD_ENTRY;
typedef struct _CMD_GROUP_ENTRY{ LPCWSTR pwszCmdGroupToken; DWORD dwShortCmdHelpToken; ULONG ulCmdGroupSize; DWORD dwFlags; PCMD_ENTRY pCmdGroup; PNS_OSVERSIONCHECK pOsVersionCheck;} CMD_GROUP_ENTRY, *PCMD_GROUP_ENTRY;
typedef struct _NS_HELPER_ATTRIBUTES{ union { struct { DWORD dwVersion; DWORD dwReserved; }; ULONGLONG _ullAlign; }; GUID guidHelper; PNS_HELPER_START_FN pfnStart; PNS_HELPER_STOP_FN pfnStop;} NS_HELPER_ATTRIBUTES, *PNS_HELPER_ATTRIBUTES;
typedef struct _NS_CONTEXT_ATTRIBUTES{ union { struct { DWORD dwVersion; DWORD dwReserved; }; ULONGLONG _ullAlign; }; LPWSTR pwszContext; GUID guidHelper; DWORD dwFlags; ULONG ulPriority; ULONG ulNumTopCmds; CMD_ENTRY *pTopCmds; ULONG ulNumGroups; CMD_GROUP_ENTRY *pCmdGroups; PNS_CONTEXT_COMMIT_FN pfnCommitFn; PNS_CONTEXT_DUMP_FN pfnDumpFn; PNS_CONTEXT_CONNECT_FN pfnConnectFn; PVOID pReserved; PNS_OSVERSIONCHECK pfnOsVersionCheck;} NS_CONTEXT_ATTRIBUTES, *PNS_CONTEXT_ATTRIBUTES;
typedef struct _TAG_TYPE{ LPCWSTR pwszTag; DWORD dwRequired; BOOL bPresent;} TAG_TYPE, *PTAG_TYPE;
typedef struct _TOKEN_VALUE{ LPCWSTR pwszToken; DWORD dwValue;} TOKEN_VALUE, *PTOKEN_VALUE;
DWORDWINAPIMatchEnumTag( _In_ HANDLE hModule, _In_ LPCWSTR pwcArg, _In_ DWORD dwNumArg, _In_ const TOKEN_VALUE *pEnumTable, _Out_ PDWORD pdwValue);
BOOLWINAPIMatchToken( _In_ LPCWSTR pwszUserToken, _In_ LPCWSTR pwszCmdToken);
DWORDWINAPIPreprocessCommand( _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);
DWORDCDECLPrintError( _In_opt_ HANDLE hModule, _In_ DWORD dwErrId, ...);
DWORDCDECLPrintMessageFromModule( _In_ HANDLE hModule, _In_ DWORD dwMsgId, ...);
DWORDCDECLPrintMessage( _In_ LPCWSTR pwszMessage, ...);
DWORDWINAPIRegisterContext( _In_ const NS_CONTEXT_ATTRIBUTES *pChildContext);
DWORDWINAPIRegisterHelper( _In_ const GUID *pguidParentContext, _In_ const NS_HELPER_ATTRIBUTES *pfnRegisterSubContext);
#ifdef __cplusplus}#endif
#endif /* _NETSH_H_ */