199 lines
3.4 KiB
C
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);
|