You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
217 lines
5.3 KiB
217 lines
5.3 KiB
//////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// Copyright (c) Microsoft Corporation
|
|
//
|
|
// Module Name:
|
|
//
|
|
// aaaamontr.h
|
|
//
|
|
// Abstract:
|
|
//
|
|
// This file contains definitions which are needed by AAAAMONTR.DLL
|
|
// and all NetSh helper DLLs which register under it.
|
|
//
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
#ifndef _AAAAMONTR_H_
|
|
#define _AAAAMONTR_H_
|
|
|
|
#if _MSC_VER > 1000
|
|
#pragma once
|
|
#endif
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
//{1D0FA29B-E93E-11d2-A91E-009027450464}
|
|
#define AAAAMONTR_GUID \
|
|
{ 0x1D0FA29B, 0xE93E, 0x11d2, { 0xA9, 0x1E, 0x00, 0x90, 0x27, 0x45, 0x04, 0x64 } }
|
|
|
|
#define AAAAMONTR_VERSION_50 0x0005000
|
|
#define AAAAMONTR_OS_BUILD_NT40 1381
|
|
|
|
//
|
|
// Enumerations for types of arguments (see AAAAMON_CMD_ARG)
|
|
//
|
|
#define AAAAMONTR_CMD_TYPE_STRING 0x1
|
|
#define AAAAMONTR_CMD_TYPE_ENUM 0x2
|
|
|
|
//
|
|
// Macros to operate on AAAAMON_CMD_ARG's
|
|
//
|
|
#define AAAAMON_CMD_ARG_GetPsz(pArg) \
|
|
(((pArg)->rgTag.bPresent) ? (pArg)->Val.pszValue : NULL)
|
|
|
|
#define AAAAMON_CMD_ARG_GetDword(pArg) \
|
|
(((pArg)->rgTag.bPresent) ? (pArg)->Val.dwValue : -1)
|
|
|
|
//
|
|
// Structure defining a command line argument
|
|
//
|
|
typedef struct _AAAAMON_CMD_ARG
|
|
{
|
|
IN DWORD dwType; // AAAAMONTR_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 AAAAMONTR_CMD_TYPE_STRING
|
|
OUT DWORD dwValue; // Valid only for AAAAMONTR_CMD_TYPE_ENUM
|
|
} Val;
|
|
|
|
} AAAAMON_CMD_ARG, *PAAAAMON_CMD_ARG;
|
|
|
|
//
|
|
// Api's that aaaamontr requires of its helpers
|
|
//
|
|
typedef
|
|
DWORD
|
|
(WINAPI AAAA_CONTEXT_ENTRY_FN)(
|
|
IN PWCHAR pszServer,
|
|
IN DWORD dwBuild,
|
|
IN PTCHAR *pptcArguments,
|
|
IN DWORD dwArgCount,
|
|
IN DWORD dwFlags,
|
|
OUT PWCHAR pwcNewContext
|
|
);
|
|
typedef AAAA_CONTEXT_ENTRY_FN *PAAAA_CONTEXT_ENTRY_FN;
|
|
|
|
typedef
|
|
DWORD
|
|
(WINAPI AAAA_CONTEXT_DUMP_FN)(
|
|
IN HANDLE hFile
|
|
);
|
|
typedef AAAA_CONTEXT_DUMP_FN* PAAAA_CONTEXT_DUMP_FN;
|
|
|
|
//
|
|
// Api's that aaaamontr exposes to its helpers
|
|
//
|
|
typedef
|
|
PVOID
|
|
(WINAPI AAAA_ALLOC_FN)(
|
|
IN DWORD dwBytes,
|
|
IN BOOL bZero
|
|
);
|
|
typedef AAAA_ALLOC_FN* PAAAA_ALLOC_FN;
|
|
|
|
typedef
|
|
VOID
|
|
(WINAPI AAAA_FREE_FN)(
|
|
IN PVOID pvData
|
|
);
|
|
typedef AAAA_FREE_FN* PAAAA_FREE_FN;
|
|
|
|
typedef
|
|
PWCHAR
|
|
(WINAPI AAAA_STRDUP_FN)(
|
|
IN PWCHAR pwszSrc
|
|
);
|
|
typedef AAAA_STRDUP_FN* PAAAA_STRDUP_FN;
|
|
|
|
typedef
|
|
LPDWORD
|
|
(WINAPI AAAA_DWORDDUP_FN)(
|
|
IN DWORD dwSrc
|
|
);
|
|
typedef AAAA_DWORDDUP_FN* PAAAA_DWORDDUP_FN;
|
|
|
|
typedef
|
|
DWORD
|
|
(WINAPI AAAA_CREATE_DUMP_FILE_FN)(
|
|
IN PWCHAR pwszName,
|
|
OUT PHANDLE phFile
|
|
);
|
|
typedef AAAA_CREATE_DUMP_FILE_FN* PAAAA_CREATE_DUMP_FILE_FN;
|
|
|
|
typedef
|
|
VOID
|
|
(WINAPI AAAA_CLOSE_DUMP_FILE_FN)(
|
|
HANDLE hFile
|
|
);
|
|
typedef AAAA_CLOSE_DUMP_FILE_FN* PAAAA_CLOSE_DUMP_FILE_FN;
|
|
|
|
typedef
|
|
DWORD
|
|
(WINAPI AAAA_GET_OS_VERSION_FN)(
|
|
IN PWCHAR pwszRouter,
|
|
OUT LPDWORD lpdwVersion);
|
|
typedef AAAA_GET_OS_VERSION_FN* PAAAA_GET_OS_VERSION_FN;
|
|
|
|
typedef
|
|
DWORD
|
|
(WINAPI AAAA_GET_TAG_TOKEN_FN)(
|
|
IN HANDLE hModule,
|
|
IN PWCHAR *ppwcArguments,
|
|
IN DWORD dwCurrentIndex,
|
|
IN DWORD dwArgCount,
|
|
IN PTAG_TYPE pttTagToken,
|
|
IN DWORD dwNumTags,
|
|
OUT PDWORD pdwOut
|
|
);
|
|
typedef AAAA_GET_TAG_TOKEN_FN* PAAAA_GET_TAG_TOKEN_FN;
|
|
|
|
typedef
|
|
DWORD
|
|
(WINAPI AAAA_PARSE_FN)(
|
|
IN PWCHAR* ppwcArguments,
|
|
IN DWORD dwCurrentIndex,
|
|
IN DWORD dwArgCount,
|
|
IN BOOL* pbDone,
|
|
OUT AAAAMON_CMD_ARG* pAaaaArgs,
|
|
IN DWORD dwAaaaArgCount);
|
|
typedef AAAA_PARSE_FN* PAAAA_PARSE_FN;
|
|
|
|
typedef
|
|
BOOL
|
|
(WINAPI AAAA_IS_HELP_TOKEN_FN)(
|
|
PWCHAR pwszToken
|
|
);
|
|
typedef AAAA_IS_HELP_TOKEN_FN* PAAAA_IS_HELP_TOKEN_FN;
|
|
|
|
typedef
|
|
PWCHAR
|
|
(WINAPI AAAA_ASSIGN_FROM_TOKENS_FN)(
|
|
IN HINSTANCE hModule,
|
|
IN PWCHAR pwszTokenTkn,
|
|
IN PWCHAR pwszTokenCmd);
|
|
typedef AAAA_ASSIGN_FROM_TOKENS_FN* PAAAA_ASSIGN_FROM_TOKENS_FN;
|
|
|
|
//
|
|
// Defines information exported to all aaaa helpers by the
|
|
// aaaamontr module.
|
|
//
|
|
typedef struct _AAAAMONTR_ATTRIBUTES
|
|
{
|
|
union
|
|
{
|
|
ULONGLONG _ullAlign;
|
|
|
|
struct
|
|
{
|
|
DWORD dwVersion;
|
|
DWORD dwReserved;
|
|
};
|
|
};
|
|
|
|
// Aaaamontr functions (common utilities)
|
|
//
|
|
PAAAA_ALLOC_FN pfnAlloc;
|
|
PAAAA_FREE_FN pfnFree;
|
|
PAAAA_STRDUP_FN pfnStrDup;
|
|
PAAAA_DWORDDUP_FN pfnDwordDup;
|
|
PAAAA_CREATE_DUMP_FILE_FN pfnCreateDumpFile;
|
|
PAAAA_CLOSE_DUMP_FILE_FN pfnCloseDumpFile;
|
|
PAAAA_GET_OS_VERSION_FN pfnGetOsVersion;
|
|
PAAAA_GET_TAG_TOKEN_FN pfnGetTagToken;
|
|
PAAAA_PARSE_FN pfnParse;
|
|
PAAAA_IS_HELP_TOKEN_FN pfnIsHelpToken;
|
|
PAAAA_ASSIGN_FROM_TOKENS_FN pfnAssignFromTokens;
|
|
|
|
} AAAAMONTR_ATTRIBUTES, *PAAAAMONTR_ATTRIBUTES;
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif // _AAAAMONTR_H_
|