190 lines
3.9 KiB
C
190 lines
3.9 KiB
C
/*++
|
|
|
|
Copyright (c) 1998-1999 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
rasmontr.h
|
|
|
|
Abstract:
|
|
This file contains definitions which are needed by RASMONTR.DLL
|
|
and all NetSh helper DLLs which register under it.
|
|
|
|
--*/
|
|
|
|
|
|
#ifndef _RASMONTR_H_
|
|
#define _RASMONTR_H_
|
|
|
|
#if _MSC_VER > 1000
|
|
#pragma once
|
|
#endif
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
// {0705ECA2-7AAC-11d2-89DC-006008B0E5B9}
|
|
#define RASMONTR_GUID \
|
|
{ 0x705eca2, 0x7aac, 0x11d2, { 0x89, 0xdc, 0x0, 0x60, 0x8, 0xb0, 0xe5, 0xb9 } }
|
|
|
|
#define RASMONTR_VERSION_50 0x0005000
|
|
#define RASMONTR_OS_BUILD_NT40 1381
|
|
|
|
//
|
|
// Enumerations for types of arguments (see RASMON_CMD_ARG)
|
|
//
|
|
#define RASMONTR_CMD_TYPE_STRING 0x1
|
|
#define RASMONTR_CMD_TYPE_ENUM 0x2
|
|
#define RASMONTR_CMD_TYPE_DWORD 0x3
|
|
|
|
//
|
|
// Macros to operate on RASMON_CMD_ARG's
|
|
//
|
|
#define RASMON_CMD_ARG_Present(pArg) \
|
|
((pArg)->rgTag.bPresent)
|
|
|
|
#define RASMON_CMD_ARG_GetPsz(pArg) \
|
|
(((pArg)->rgTag.bPresent) ? (pArg)->Val.pszValue : NULL)
|
|
|
|
#define RASMON_CMD_ARG_GetEnum(pArg) \
|
|
(((pArg)->rgTag.bPresent) ? (pArg)->Val.dwValue : 0)
|
|
|
|
#define RASMON_CMD_ARG_GetDword(pArg) \
|
|
(((pArg)->rgTag.bPresent) ? (pArg)->Val.dwValue : 0)
|
|
|
|
//
|
|
// Structure defining a command line argument
|
|
//
|
|
typedef struct _RASMON_CMD_ARG
|
|
{
|
|
IN DWORD dwType; // RASMONTR_CMD_TYPE_*
|
|
IN TAG_TYPE rgTag; // The tag for this command
|
|
IN TOKEN_VALUE* rgEnums; // The enumerations for this arg
|
|
IN DWORD dwEnumCount; // Count of enums
|
|
union
|
|
{
|
|
OUT PWCHAR pszValue; // Valid only for RASMONTR_CMD_TYPE_STRING
|
|
OUT DWORD dwValue; // Valid only for RASMONTR_CMD_TYPE_ENUM
|
|
} Val;
|
|
|
|
} RASMON_CMD_ARG, *PRASMON_CMD_ARG;
|
|
|
|
//
|
|
// Api's that rasmontr requires of its helpers
|
|
//
|
|
typedef
|
|
DWORD
|
|
(WINAPI RAS_CONTEXT_ENTRY_FN)(
|
|
IN LPCWSTR pszServer,
|
|
IN DWORD dwBuild,
|
|
IN OUT LPWSTR *pptcArguments,
|
|
IN DWORD dwArgCount,
|
|
IN DWORD dwFlags,
|
|
OUT PWCHAR pwcNewContext
|
|
);
|
|
typedef RAS_CONTEXT_ENTRY_FN *PRAS_CONTEXT_ENTRY_FN;
|
|
|
|
// Defines information that describes a server
|
|
//
|
|
typedef struct _RASMON_SERVERINFO
|
|
{
|
|
// Common to all
|
|
//
|
|
PWCHAR pszServer;
|
|
DWORD dwBuild;
|
|
|
|
// Used by user commands
|
|
HANDLE hServer;
|
|
ULONG ulUserInitStarted;
|
|
ULONG ulUserInitCompleted;
|
|
|
|
HKEY hkMachine;
|
|
|
|
} RASMON_SERVERINFO;
|
|
|
|
//
|
|
// Api's that rasmontr exposes to its helpers
|
|
//
|
|
|
|
PVOID WINAPI
|
|
RutlAlloc(
|
|
IN DWORD dwBytes,
|
|
IN BOOL bZero
|
|
);
|
|
|
|
VOID WINAPI
|
|
RutlFree(
|
|
IN PVOID pvData
|
|
);
|
|
|
|
PWCHAR WINAPI
|
|
RutlStrDup(
|
|
IN LPCWSTR pwszSrc
|
|
);
|
|
|
|
LPDWORD WINAPI
|
|
RutlDwordDup(
|
|
IN DWORD dwSrc
|
|
);
|
|
|
|
DWORD WINAPI
|
|
RutlCreateDumpFile(
|
|
IN LPCWSTR pwszName,
|
|
OUT PHANDLE phFile
|
|
);
|
|
|
|
VOID WINAPI
|
|
RutlCloseDumpFile(
|
|
HANDLE hFile
|
|
);
|
|
|
|
DWORD WINAPI
|
|
RutlGetOsVersion(
|
|
IN OUT RASMON_SERVERINFO *pServerInfo
|
|
);
|
|
|
|
DWORD WINAPI
|
|
RutlGetTagToken(
|
|
IN HANDLE hModule,
|
|
IN OUT LPWSTR *ppwcArguments,
|
|
IN DWORD dwCurrentIndex,
|
|
IN DWORD dwArgCount,
|
|
IN PTAG_TYPE pttTagToken,
|
|
IN DWORD dwNumTags,
|
|
OUT PDWORD pdwOut
|
|
);
|
|
|
|
DWORD WINAPI
|
|
RutlParse(
|
|
IN OUT LPWSTR *ppwcArguments,
|
|
IN DWORD dwCurrentIndex,
|
|
IN DWORD dwArgCount,
|
|
IN BOOL* pbDone,
|
|
OUT RASMON_CMD_ARG* pRasArgs,
|
|
IN DWORD dwRasArgCount);
|
|
|
|
BOOL WINAPI
|
|
RutlIsHelpToken(
|
|
PWCHAR pwszToken
|
|
);
|
|
|
|
PWCHAR WINAPI
|
|
RutlAssignmentFromTokens(
|
|
IN HINSTANCE hModule,
|
|
IN LPCWSTR pwszTokenTkn,
|
|
IN LPCWSTR pwszTokenCmd);
|
|
|
|
PWCHAR WINAPI
|
|
RutlAssignmentFromTokenAndDword(
|
|
IN HINSTANCE hModule,
|
|
IN LPCWSTR pwszToken,
|
|
IN DWORD dwDword,
|
|
IN DWORD dwRadius);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif // _RASMONTR_H_
|