windows-nt/Source/XPSP1/NT/net/rras/netsh/shell/reghlp.h
2020-09-26 16:20:57 +08:00

199 lines
3.4 KiB
C

/*++
Copyright (c) 1998 Microsoft Corporation
Module Name:
routing\netsh\shell\reghlp.h
Abstract:
Include for reghlp.c
Revision History:
Anand Mahalingam 7/6/98 Created
--*/
typedef struct _NS_DLL_TABLE_ENTRY
{
//
// Name of the DLL servicing the context
//
LPWSTR pwszDLLName; // Corresponding DLL
//
// Registry value used for this DLL
//
LPWSTR pwszValueName;
//
// TRUE if loaded
//
BOOL bLoaded; // In memory or not
//
// Handle to DLL instance if loaded
//
HANDLE hDll; // DLL handle if loaded
//
// Function to stop this DLL
//
PNS_DLL_STOP_FN pfnStopFn;
} NS_DLL_TABLE_ENTRY,*PNS_DLL_TABLE_ENTRY;
typedef struct _NS_HELPER_TABLE_ENTRY
{
NS_HELPER_ATTRIBUTES nha;
//
// GUID associated with the parent helper
//
GUID guidParent;
//
// Index of the DLL implementing the helper
//
DWORD dwDllIndex;
//
// TRUE if started
//
BOOL bStarted;
// Number of subcontexts
ULONG ulNumSubContexts;
// Array of subcontexts
PBYTE pSubContextTable;
// Size of a subcontext entry
ULONG ulSubContextSize;
}NS_HELPER_TABLE_ENTRY,*PNS_HELPER_TABLE_ENTRY;
//
// Function Prototypes
//
VOID
LoadDllInfoFromRegistry(
VOID
);
DWORD
GetContextEntry(
IN PNS_HELPER_TABLE_ENTRY pHelper,
IN LPCWSTR pwszContext,
OUT PCNS_CONTEXT_ATTRIBUTES *ppContext
);
DWORD
GetHelperAttributes(
IN DWORD dwIndex,
OUT PHELPER_ENTRY_FN *ppfnEntryPt
);
DWORD
PrintHelperHelp(
DWORD dwDisplayFlags
);
DWORD
DumpSubContexts(
IN PNS_HELPER_TABLE_ENTRY pHelper,
IN LPWSTR *ppwcArguments,
IN DWORD dwArgCount,
IN LPCVOID pvData
);
DWORD
CallCommit(
IN DWORD dwAction,
OUT PBOOL pbCommit
);
DWORD
FreeHelpers(
VOID
);
DWORD
FreeDlls(
VOID
);
DWORD
UninstallTransport(
IN LPCWSTR pwszTransport
);
DWORD
InstallTransport(
IN LPCWSTR pwszTransport,
IN LPCWSTR pwszConfigDll,
IN LPCWSTR pwszInitFnName
);
extern BOOL g_bCommit;
DWORD
GetHelperEntry(
IN CONST GUID *pGuid,
OUT PNS_HELPER_TABLE_ENTRY *ppHelper
);
DWORD
GetRootContext(
OUT PCNS_CONTEXT_ATTRIBUTES *ppContext,
OUT PNS_HELPER_TABLE_ENTRY *ppHelper
);
extern PNS_HELPER_TABLE_ENTRY g_CurrentHelper;
extern PCNS_CONTEXT_ATTRIBUTES g_CurrentContext;
DWORD
GetDllEntry(
IN DWORD dwDllIndex,
OUT PNS_DLL_TABLE_ENTRY *ppDll
);
DWORD
DumpContext(
IN PCNS_CONTEXT_ATTRIBUTES pContext,
IN LPWSTR *ppwcArguments,
IN DWORD dwArgCount,
IN LPCVOID pvData
);
DWORD
GetParentContext(
IN PCNS_CONTEXT_ATTRIBUTES pChild,
OUT PCNS_CONTEXT_ATTRIBUTES *ppParent
);
DWORD
AppendFullContextName(
IN PCNS_CONTEXT_ATTRIBUTES pContext,
OUT LPWSTR *pwszContextName
);
DWORD
AddDllEntry(
LPCWSTR pwszValueName,
LPCWSTR pwszConfigDll
);
BOOL VerifyOsVersion(IN PNS_OSVERSIONCHECK pfnVersionCheck);