/*++ Copyright (c) 1989-1993 Microsoft Corporation Module Name: config.h Abstract: Private include file for the ISN IPX module. file defines all constants and structures necessary for support of the dynamic configuration of ST. Revision History: --*/ // // These are used to index into the Parameters array in CONFIG. // #define CONFIG_DEDICATED_ROUTER 0 #define CONFIG_INIT_DATAGRAMS 1 #define CONFIG_MAX_DATAGRAMS 2 #define CONFIG_RIP_AGE_TIME 3 #define CONFIG_RIP_COUNT 4 #define CONFIG_RIP_TIMEOUT 5 #define CONFIG_RIP_USAGE_TIME 6 #define CONFIG_ROUTE_USAGE_TIME 7 #define CONFIG_SOCKET_UNIQUENESS 8 #define CONFIG_SOCKET_START 9 #define CONFIG_SOCKET_END 10 #define CONFIG_VIRTUAL_NETWORK 11 #define CONFIG_MAX_MEMORY_USAGE 12 #define CONFIG_RIP_TABLE_SIZE 13 #define CONFIG_VIRTUAL_OPTIONAL 14 #define CONFIG_ETHERNET_PAD 15 #define CONFIG_ETHERNET_LENGTH 16 #define CONFIG_SINGLE_NETWORK 17 #define CONFIG_DISABLE_DIALOUT_SAP 18 #define CONFIG_DISABLE_DIALIN_NB 19 #define CONFIG_VERIFY_SOURCE_ADDRESS 20 #define CONFIG_PARAMETERS 21 // // Main configuration structure. // typedef struct _CONFIG { ULONG Parameters[CONFIG_PARAMETERS]; // index defined above NDIS_STRING DeviceName; // device name exported PWSTR RegistryPathBuffer; // path to config info ULONG BindCount; // entries in BindingList LIST_ENTRY BindingList; // one per binding PDRIVER_OBJECT DriverObject; // used for logging errors } CONFIG, * PCONFIG; // // These are used to index into the Parameters array in BINDING_CONFIG. // #define BINDING_MAX_PKT_SIZE 0 #define BINDING_BIND_SAP 1 #define BINDING_DEFAULT_AUTO_DETECT 2 #define BINDING_SOURCE_ROUTE 3 #define BINDING_ALL_ROUTE_DEF 4 #define BINDING_ALL_ROUTE_BC 5 #define BINDING_ALL_ROUTE_MC 6 #define BINDING_ENABLE_FUNC_ADDR 7 #define BINDING_ENABLE_WAN 8 #define BINDING_PARAMETERS 9 // // One of these is allocated per adapter we are to bind to. // typedef struct _BINDING_CONFIG { LIST_ENTRY Linkage; // for chaining on BindingList NDIS_STRING AdapterName; // NDIS adapter to bind to ULONG FrameTypeCount; // number of frame types defined (max. 4) // == number of valid entries in arrays: ULONG FrameType[ISN_FRAME_TYPE_MAX]; // ISN_FRAME_TYPE_XXX ULONG NetworkNumber[ISN_FRAME_TYPE_MAX]; // may be 0 BOOLEAN AutoDetect[ISN_FRAME_TYPE_MAX]; // remove if net number can't be found BOOLEAN DefaultAutoDetect[ISN_FRAME_TYPE_MAX]; // use this if multiple or none found ULONG Parameters[BINDING_PARAMETERS]; // index defined above PDRIVER_OBJECT DriverObject; // used for logging errors } BINDING_CONFIG, * PBINDING_CONFIG; NTSTATUS IpxGetConfiguration ( IN PDRIVER_OBJECT DriverObject, IN PUNICODE_STRING RegistryPath, OUT PCONFIG * ConfigPtr ); VOID IpxFreeConfiguration ( IN PCONFIG Config ); VOID IpxWriteDefaultAutoDetectType( IN PUNICODE_STRING RegistryPath, IN struct _ADAPTER * Adapter, IN ULONG FrameType ); NTSTATUS IpxPnPGetVirtualNetworkNumber ( IN PCONFIG Config ); NTSTATUS IpxPnPGetAdapterParameters( IN PCONFIG Config, IN PNDIS_STRING DeviceName, IN OUT PBINDING_CONFIG Binding ); // // Reconfig info from NCPA --> NDIS --> IPXPnPHandler // We get a pointer to the RECONFIG Structure in the NET_PNP_EVENT Structure // This structure is defined below - an array of BOOLEANs. // #define RECONFIG_AUTO_DETECT 1 #define RECONFIG_MANUAL 2 #define RECONFIG_PREFERENCE_1 3 #define RECONFIG_NETWORK_NUMBER_1 4 #define RECONFIG_PREFERENCE_2 5 #define RECONFIG_NETWORK_NUMBER_2 6 #define RECONFIG_PREFERENCE_3 7 #define RECONFIG_NETWORK_NUMBER_3 8 #define RECONFIG_PREFERENCE_4 9 #define RECONFIG_NETWORK_NUMBER_4 10 #define RECONFIG_PARAMETERS 10 // // Main configuration structure. // typedef struct _RECONFIG { ULONG ulVersion; BOOLEAN VirtualNetworkNumber; BOOLEAN AdapterParameters[RECONFIG_PARAMETERS]; } RECONFIG, *PRECONFIG;