reactos/sdk/include/psdk/netsh.h

212 lines
3.9 KiB
C

#ifndef _NETSH_H_
#define _NETSH_H_
#ifdef __cplusplus
extern "C" {
#endif
typedef
DWORD
(WINAPI *PGET_RESOURCE_STRING_FN)(
_In_ DWORD dwMsgID,
_Out_ LPWSTR lpBuffer,
_In_ DWORD nBufferMax);
typedef
DWORD
(WINAPI *PNS_DLL_INIT_FN)(
_In_ DWORD dwNetshVersion,
_Out_ PVOID pReserved);
typedef
DWORD
(WINAPI *PNS_HELPER_START_FN)(
_In_ const GUID *pguidParent,
_In_ DWORD dwVersion);
typedef
DWORD
(WINAPI *PNS_HELPER_STOP_FN)(
_In_ DWORD dwReserved);
typedef
DWORD
(WINAPI *PNS_CONTEXT_COMMIT_FN)(
_In_ DWORD dwAction);
typedef
DWORD
(WINAPI *PNS_CONTEXT_CONNECT_FN)(
_In_ LPCWSTR pwszMachine);
typedef
DWORD
(WINAPI *PNS_CONTEXT_DUMP_FN)(
_In_ LPCWSTR pwszRouter,
_In_ LPWSTR *ppwcArguments,
_In_ DWORD dwArgCount,
_In_ LPCVOID pvData);
typedef
BOOL
(WINAPI *PNS_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
DWORD
(WINAPI *PFN_HANDLE_CMD)(
_In_ LPCWSTR pwszMachine,
_In_ LPWSTR *ppwcArguments,
_In_ DWORD dwCurrentIndex,
_In_ DWORD dwArgCount,
_In_ DWORD dwFlags,
_In_ LPCVOID pvData,
_Out_ BOOL *pbDone);
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;
DWORD
WINAPI
MatchEnumTag(
_In_ HANDLE hModule,
_In_ LPCWSTR pwcArg,
_In_ DWORD dwNumArg,
_In_ const TOKEN_VALUE *pEnumTable,
_Out_ PDWORD pdwValue);
BOOL
WINAPI
MatchToken(
_In_ LPCWSTR pwszUserToken,
_In_ LPCWSTR pwszCmdToken);
DWORD
WINAPI
PreprocessCommand(
_In_ 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);
DWORD
CDECL
PrintError(
_In_opt_ HANDLE hModule,
_In_ DWORD dwErrId,
...);
DWORD
CDECL
PrintMessageFromModule(
_In_ HANDLE hModule,
_In_ DWORD dwMsgId,
...);
DWORD
CDECL
PrintMessage(
_In_ LPCWSTR pwszMessage,
...);
DWORD
WINAPI
RegisterContext(
_In_ const NS_CONTEXT_ATTRIBUTES *pChildContext);
DWORD
WINAPI
RegisterHelper(
_In_ const GUID *pguidParentContext,
_In_ const NS_HELPER_ATTRIBUTES *pfnRegisterSubContext);
#ifdef __cplusplus
}
#endif
#endif /* _NETSH_H_ */