xbox-kernel/public/sdk/inc/nshelper.h
2020-09-30 17:17:25 +02:00

141 lines
2.8 KiB
C

/*++
Copyright (c) 1998-1999 Microsoft Corporation
Module Name:
nshelper.h
Abstract:
This file contains definitions which are needed by all NetSh helper DLLs
which allow other DLLs to register sub-contexts under them.
--*/
#ifndef _NSHELPER_H_
#define _NSHELPER_H_
#if _MSC_VER > 1000
#pragma once
#endif
#ifdef __cplusplus
extern "C" {
#endif
typedef struct _NS_DLL_TABLE_ENTRY
{
//
// Name of the DLL servicing the context
//
WCHAR pwszDLLName[MAX_NAME_LEN]; // Corresponding DLL
//
// Registry value used for this DLL
//
WCHAR pwszValueName[MAX_NAME_LEN];
//
// 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
{
//
// GUID associated with the helper
//
GUID guidHelper;
//
// GUID associated with the helper
//
GUID guidParent;
//
// Function (if any) to use to register sub-contexts
//
PVOID pfnRegisterContext;
//
// Function (if any) to use to register sub-contexts
//
PNS_DEREG_ALL_CONTEXTS_FN pfnDeregisterAllContexts;
//
// Function to start this helper
//
PNS_HELPER_START_FN pfnStart;
//
// Function to stop this helper
//
PNS_HELPER_STOP_FN pfnStop;
//
// Index of the DLL implementing the helper
//
DWORD dwDllIndex;
//
// TRUE if started
//
BOOL bStarted;
}NS_HELPER_TABLE_ENTRY,*PNS_HELPER_TABLE_ENTRY;
//
// This structure is a generic version of the attributes
// structure for a context. Typically, a helper which
// supports subcontexts will define its own context attributes
// structure which is the same form as this structure except
// that the types of the functions may vary. See the
// attributes structures in ipmontr.h and ipxmontr.h as examples.
//
typedef struct _NS_GENERIC_CONTEXT_ATTRIBUTES
{
#ifdef __cplusplus
NS_BASE_CONTEXT_ATTRIBUTES bca;
#else
NS_BASE_CONTEXT_ATTRIBUTES;
#endif
PVOID pfnEntryFn;
PNS_CONTEXT_COMMIT_FN pfnCommitFn;
PVOID pfnDumpFn;
PNS_CONTEXT_CONNECT_FN pfnConnectFn;
PVOID pfnSubEntryFn;
}NS_GENERIC_CONTEXT_ATTRIBUTES, *PNS_GENERIC_CONTEXT_ATTRIBUTES;
#ifdef __cplusplus
}
#endif
#endif // _NETSH_H_