/*++
*******************************************************************************
* Copyright (c) 1990-98 Digi International Inc., All Rights Reserved          *
*                                                                             *
* This software contains proprietary and confidential information of Digi     *
* International Inc.  By accepting transfer of this copy, Recipient agrees    *
* to retain this software in confidence, to prevent disclosure to others,     *
* and to make no use of this software other than that for which it was        *
* delivered.  This is an unpublished copyrighted work of Digi International   *
* Inc.  Except as permitted by federal law, 17 USC 117, copying is strictly   *
* prohibited.                                                                 *
*                                                                             *
* Restricted Rights Legend                                                    *
*                                                                             *
* Use, duplication, or disclosure by the Government is subject to             *
* restrictions set forth in sub-paragraph (c)(1)(ii) of The Rights in         *
* Technical Data and Computer Software clause at DFARS 252.227-7031 or        *
* subparagraphs (c)(1) and (2) of the Commercial Computer Software -          *
* Restricted Rights at 48 CFR 52.227-19, as applicable.                       *
*                                                                             *
* Digi International Inc. 11001 Bren Road East, Minnetonka, MN 55343          *
*                                                                             *
*******************************************************************************

Module Name:

   dxbreg.h

Abstract:

   This file defines all registry keys and values used by WAN Links drivers 
   and applications.

Author:

   Michael Zarns

--*/

#ifndef _DXBREG_
#define _DXBREG_

#ifndef TEXT
#define TEXT __T
#endif


///////////////////////////////////////////////////////////////////////////////
//
// PCI Vendor and Device IDs
//

#define DIGI_PCI_VENDORID                          4431      // 0x114F
#define DIGI_PCI_SUBVENDORID                       4431      // 0x114F

#define DIGI_PCI_DEVICEID_SYNCPORT                 13        // 0x000D
#define DIGI_PCI_SUBDEVICEID_SYNCPORT              0         // 0x0000

#define DIGI_PCI_DEVICEID_PRIME                    12        // 0x000C
#define DIGI_PCI_DEVICEID_PRIME_T1_SINGLE          DIGI_PCI_DEVICEID_PRIME
#define DIGI_PCI_SUBDEVICEID_PRIME_T1_SINGLE       0         // 0x0000
#define DIGI_PCI_DEVICEID_PRIME_E1_SINGLE          26        // 0x001A
#define DIGI_PCI_SUBDEVICEID_PRIME_E1_SINGLE       0         // 0x0000

#define DIGI_PCI_DEVICEID_HOUSTON                  29        // 0x001D
#define DIGI_PCI_DEVICEID_HOUSTON_T1_SINGLE        DIGI_PCI_DEVICEID_HOUSTON
#define DIGI_PCI_SUBDEVICEID_HOUSTON_T1_SINGLE     82        // 0x0052
#define DIGI_PCI_DEVICEID_HOUSTON_T1_DUAL          DIGI_PCI_DEVICEID_HOUSTON
#define DIGI_PCI_SUBDEVICEID_HOUSTON_T1_DUAL       83        // 0x0053
#define DIGI_PCI_DEVICEID_HOUSTON_E1_SINGLE        DIGI_PCI_DEVICEID_HOUSTON
#define DIGI_PCI_SUBDEVICEID_HOUSTON_E1_SINGLE     80        // 0x0050
#define DIGI_PCI_DEVICEID_HOUSTON_E1_DUAL          DIGI_PCI_DEVICEID_HOUSTON
#define DIGI_PCI_SUBDEVICEID_HOUSTON_E1_DUAL       81        // 0x0051

#define DIGI_CPCI_DEVICEID_HOUSTON                 53        // 0x0035
#define DIGI_CPCI_DEVICEID_HOUSTON_T1_SINGLE       DIGI_CPCI_DEVICEID_HOUSTON
#define DIGI_CPCI_SUBDEVICEID_HOUSTON_T1_SINGLE    86        // 0x0056
#define DIGI_CPCI_DEVICEID_HOUSTON_T1_DUAL         DIGI_CPCI_DEVICEID_HOUSTON
#define DIGI_CPCI_SUBDEVICEID_HOUSTON_T1_DUAL      87        // 0x0057
#define DIGI_CPCI_DEVICEID_HOUSTON_E1_SINGLE       DIGI_CPCI_DEVICEID_HOUSTON
#define DIGI_CPCI_SUBDEVICEID_HOUSTON_E1_SINGLE    84        // 0x0054
#define DIGI_CPCI_DEVICEID_HOUSTON_E1_DUAL         DIGI_CPCI_DEVICEID_HOUSTON
#define DIGI_CPCI_SUBDEVICEID_HOUSTON_E1_DUAL      85        // 0x0055

#define DIGI_PCI_DEVICEID_LONDON                   36        // 0x0024
#define DIGI_PCI_DEVICEID_LONDON_ST                DIGI_PCI_DEVICEID_LONDON
#define DIGI_PCI_SUBDEVICEID_LONDON_ST             49        // 0x0031
#define DIGI_PCI_DEVICEID_LONDON_U                 DIGI_PCI_DEVICEID_LONDON
#define DIGI_PCI_SUBDEVICEID_LONDON_U              48        // 0x0030

#define DIGI_PCI_DEVICEID_CHASKA                   35        // 0x0023
#define DIGI_PCI_SUBDEVICEID_CHASKA_40             97        // 0x0061
#define DIGI_PCI_SUBDEVICEID_CHASKA_41             99        // 0x0063
#define DIGI_PCI_SUBDEVICEID_CHASKA_42             101       // 0x0065
#define DIGI_PCI_SUBDEVICEID_CHASKA_43             103       // 0x0067
#define DIGI_PCI_SUBDEVICEID_CHASKA_44             105       // 0x0069
#define DIGI_PCI_SUBDEVICEID_CHASKA_45             107       // 0x006B
#define DIGI_PCI_SUBDEVICEID_CHASKA_80             96        // 0x0060
#define DIGI_PCI_SUBDEVICEID_CHASKA_81             98        // 0x0062
#define DIGI_PCI_SUBDEVICEID_CHASKA_82             100       // 0x0064
#define DIGI_PCI_SUBDEVICEID_CHASKA_83             102       // 0x0066
#define DIGI_PCI_SUBDEVICEID_CHASKA_84             104       // 0x0068
#define DIGI_PCI_SUBDEVICEID_CHASKA_85             106       // 0x006A

#define DIGI_PCI_DEVICEID_CLYDE_NON_CSU_603_4      31        // 0x001F
#define DIGI_PCI_SUBDEVICEID_CLYDE_NON_CSU_603_4   DIGI_PCI_DEVICEID_CLYDE_NON_CSU_603_4
#define DIGI_PCI_DEVICEID_CLYDE_NON_CSU_603_2      32        // 0x0020
#define DIGI_PCI_SUBDEVICEID_CLYDE_NON_CSU_603_2   DIGI_PCI_DEVICEID_CLYDE_NON_CSU_603_2
#define DIGI_PCI_DEVICEID_CLYDE_NON_CSU_4          33        // 0x0021
#define DIGI_PCI_SUBDEVICEID_CLYDE_NON_CSU_4       DIGI_PCI_DEVICEID_CLYDE_NON_CSU_4
#define DIGI_PCI_DEVICEID_CLYDE_NON_CSU_2          34        // 0x0022
#define DIGI_PCI_SUBDEVICEID_CLYDE_NON_CSU_2       DIGI_PCI_DEVICEID_CLYDE_NON_CSU_2

#define DIGI_CPCI_DEVICEID_CLYDE_NON_CSU_603_4     58        // 0x003A
#define DIGI_CPCI_SUBDEVICEID_CLYDE_NON_CSU_603_4  DIGI_CPCI_DEVICEID_CLYDE_NON_CSU_603_4
#define DIGI_CPCI_DEVICEID_CLYDE_NON_CSU_603_2     59        // 0x003B
#define DIGI_CPCI_SUBDEVICEID_CLYDE_NON_CSU_603_2  DIGI_CPCI_DEVICEID_CLYDE_NON_CSU_603_2
#define DIGI_CPCI_DEVICEID_CLYDE_NON_CSU_4         60        // 0x003C
#define DIGI_CPCI_SUBDEVICEID_CLYDE_NON_CSU_4      DIGI_CPCI_DEVICEID_CLYDE_NON_CSU_4
#define DIGI_CPCI_DEVICEID_CLYDE_NON_CSU_2         61        // 0x003D
#define DIGI_CPCI_SUBDEVICEID_CLYDE_NON_CSU_2      DIGI_CPCI_DEVICEID_CLYDE_NON_CSU_2

#define DIGI_PMC_DEVICEID_CLYDE_NON_CSU_603_2     128        // 0x0080
#define DIGI_PMC_SUBDEVICEID_CLYDE_NON_CSU_603_2  DIGI_PMC_DEVICEID_CLYDE_NON_CSU_603_2

#define DIGI_PMC_DEVICEID_CLYDE_NON_CSU_2         129        // 0x0081
#define DIGI_PMC_SUBDEVICEID_CLYDE_NON_CSU_2      DIGI_PMC_DEVICEID_CLYDE_NON_CSU_2

// Sub Device ID Zero for CPCI cards should go away when the SYNC2000
// CPCI card is released.
// All future CPCI cards should have s Sub Device ID.  This define is here
// to support pre-production version of SYNC2000 CPCI cards.
//
// Sub Device ID Zero for PCI cards will remain to support previously
// released PCI adapters.
#define DIGI_CPCI_SUBDEVICEID_NONE			       0         // 0x0000
#define DIGI_PCI_SUBDEVICEID_NONE			       0         // 0x0000

#define DIGI_PCI_DEVICEID_SYNC570_PCI_2PORT        20498     // 0x5012
#define DIGI_PCI_SUBDEVICEID_SYNC570_PCI_2PORT     0         // 0x0000
#define DIGI_PCI_DEVICEID_SYNC570_PCI_4PORT        20499     // 0x5013
#define DIGI_PCI_SUBDEVICEID_SYNC570_PCI_4PORT     0         // 0x0000


#define DIGI_PCI_DEVICEID_ACCELEPORT_2000          64        // 0x0040
#define DIGI_PCI_DEVICEID_HERCULES_TEST            DIGI_PCI_DEVICEID_ACCELEPORT_2000
#define DIGI_PCI_SUBDEVICEID_HERCULES_TEST         65        // 0x0041         
#define DIGI_PCI_DEVICEID_ACCELEPORT_2R_2000       DIGI_PCI_DEVICEID_ACCELEPORT_2000
#define DIGI_PCI_SUBDEVICEID_ACCELEPORT_2R_2000    66        // 0x0042
#define DIGI_PCI_DEVICEID_ACCELEPORT_4R_2000       DIGI_PCI_DEVICEID_ACCELEPORT_2000
#define DIGI_PCI_SUBDEVICEID_ACCELEPORT_4R_2000    67        // 0x0043
#define DIGI_PCI_DEVICEID_ACCELEPORT_8R_2000       DIGI_PCI_DEVICEID_ACCELEPORT_2000
#define DIGI_PCI_SUBDEVICEID_ACCELEPORT_8R_2000    68        // 0x0044
#define DIGI_PCI_DEVICEID_ACCELEPORT_16R_2000      DIGI_PCI_DEVICEID_ACCELEPORT_2000
#define DIGI_PCI_SUBDEVICEID_ACCELEPORT_16R_2000   69        // 0x0045


//
// IBM IDs
//
#define IBM_PCI_VENDORID                           4116      // 0x1014
#define IBM_PCI_SUBVENDORID                        4116      // 0x1014

#define IBM_PCI_DEVICEID_HOUSTON                   193       // 0x00C1
#define IBM_PCI_DEVICEID_HOUSTON_T1_SINGLE         IBM_PCI_DEVICEID_HOUSTON
#define IBM_PCI_SUBDEVICEID_HOUSTON_T1_SINGLE      194       // 0x00C2
#define IBM_PCI_DEVICEID_HOUSTON_T1_DUAL           IBM_PCI_DEVICEID_HOUSTON
#define IBM_PCI_SUBDEVICEID_HOUSTON_T1_DUAL        244       // 0x00F4
#define IBM_PCI_DEVICEID_HOUSTON_E1_SINGLE         IBM_PCI_DEVICEID_HOUSTON
#define IBM_PCI_SUBDEVICEID_HOUSTON_E1_SINGLE      243       // 0x00F3
#define IBM_PCI_DEVICEID_HOUSTON_E1_DUAL           IBM_PCI_DEVICEID_HOUSTON
#define IBM_PCI_SUBDEVICEID_HOUSTON_E1_DUAL        245       // 0x00F5

#define IBM_PCI_DEVICEID_LONDON                    191       // 0x00BF
#define IBM_PCI_DEVICEID_LONDON_ST                 IBM_PCI_DEVICEID_LONDON
#define IBM_PCI_SUBDEVICEID_LONDON_ST              192       // 0x00C0
#define IBM_PCI_DEVICEID_LONDON_U                  IBM_PCI_DEVICEID_LONDON
#define IBM_PCI_SUBDEVICEID_LONDON_U               241       // 0x00F1

#define IBM_PCI_DEVICEID_CHASKA                    195       // 0x00C3
#define IBM_PCI_SUBDEVICEID_CHASKA_40              242       // 0x00F2
#define IBM_PCI_SUBDEVICEID_CHASKA_41              294       // 0x0126
#define IBM_PCI_SUBDEVICEID_CHASKA_42              296       // 0x0128
#define IBM_PCI_SUBDEVICEID_CHASKA_43              298       // 0x012A
#define IBM_PCI_SUBDEVICEID_CHASKA_44              300       // 0x012C
#define IBM_PCI_SUBDEVICEID_CHASKA_45              302       // 0x012E
#define IBM_PCI_SUBDEVICEID_CHASKA_80              196       // 0x00C4
#define IBM_PCI_SUBDEVICEID_CHASKA_81              295       // 0x0127
#define IBM_PCI_SUBDEVICEID_CHASKA_82              297       // 0x0129
#define IBM_PCI_SUBDEVICEID_CHASKA_83              299       // 0x012B
#define IBM_PCI_SUBDEVICEID_CHASKA_84              301       // 0x012D
#define IBM_PCI_SUBDEVICEID_CHASKA_85              303       // 0x012F


///////////////////////////////////////////////////////////////////////////////
//
// Registry Keys, values, and defaults
//

#define DXB_REGKEY_PARAMETERS                      TEXT( "Parameters" )
#define DXB_REGKEY_NDI							   TEXT( "Ndi" )

#define DXB_REGVAL_ADAPTER_ENUM_SYNCPORT_ISA       TEXT( "DigiSyncportIsa" )
#define DXB_REGVAL_ADAPTER_ENUM_SYNCPORT_PCI       TEXT( "DigiSyncportPci" )
#define DXB_REGVAL_ADAPTER_ENUM_PRIME_ISA          TEXT( "DigiDatafirePrimeIsa" )
#define DXB_REGVAL_ADAPTER_ENUM_PRIME_T1_PCI       TEXT( "DigiDatafirePrimeT1Pci" )
#define DXB_REGVAL_ADAPTER_ENUM_PRIME_E1_PCI       TEXT( "DigiDatafirePrimeE1Pci" )
#define DXB_REGVAL_ADAPTER_ENUM_HOUSTON_T1_SINGLE  TEXT( "DigiHoustonT1Single" )
#define DXB_REGVAL_ADAPTER_ENUM_HOUSTON_T1_DUAL    TEXT( "DigiHoustonT1Dual" )
#define DXB_REGVAL_ADAPTER_ENUM_HOUSTON_E1_SINGLE  TEXT( "DigiHoustonE1Single" )
#define DXB_REGVAL_ADAPTER_ENUM_HOUSTON_E1_DUAL    TEXT( "DigiHoustonE1Dual" )
#define DXB_REGVAL_ADAPTER_ENUM_LONDON_ST          TEXT( "DigiLondonST" )
#define DXB_REGVAL_ADAPTER_ENUM_LONDON_U           TEXT( "DigiLondonU" )
#define DXB_REGVAL_ADAPTER_ENUM_HOUSTON_T1_SINGLE_CPCI  TEXT( "cPciDigiHoustonT1Single" )
#define DXB_REGVAL_ADAPTER_ENUM_HOUSTON_T1_DUAL_CPCI    TEXT( "cPciDigiHoustonT1Dual" )
#define DXB_REGVAL_ADAPTER_ENUM_HOUSTON_E1_SINGLE_CPCI  TEXT( "cPciDigiHoustonE1Single" )
#define DXB_REGVAL_ADAPTER_ENUM_HOUSTON_E1_DUAL_CPCI    TEXT( "cPciDigiHoustonE1Dual" )

// NT4
#define DXB_REGVAL_ADAPTER_ENUM_CHASKA_4           TEXT( "DigiChaska4" )
#define DXB_REGVAL_ADAPTER_ENUM_CHASKA_8           TEXT( "DigiChaska8" )

// W2K
#define DXB_REGVAL_ADAPTER_ENUM_CHASKA_40          TEXT( "DigiChaska40" )
#define DXB_REGVAL_ADAPTER_ENUM_CHASKA_41          TEXT( "DigiChaska41" )
#define DXB_REGVAL_ADAPTER_ENUM_CHASKA_42          TEXT( "DigiChaska42" )
#define DXB_REGVAL_ADAPTER_ENUM_CHASKA_43          TEXT( "DigiChaska43" )
#define DXB_REGVAL_ADAPTER_ENUM_CHASKA_44          TEXT( "DigiChaska44" )
#define DXB_REGVAL_ADAPTER_ENUM_CHASKA_45          TEXT( "DigiChaska45" )
#define DXB_REGVAL_ADAPTER_ENUM_CHASKA_80          TEXT( "DigiChaska80" )
#define DXB_REGVAL_ADAPTER_ENUM_CHASKA_81          TEXT( "DigiChaska81" )
#define DXB_REGVAL_ADAPTER_ENUM_CHASKA_82          TEXT( "DigiChaska82" )
#define DXB_REGVAL_ADAPTER_ENUM_CHASKA_83          TEXT( "DigiChaska83" )
#define DXB_REGVAL_ADAPTER_ENUM_CHASKA_84          TEXT( "DigiChaska84" )
#define DXB_REGVAL_ADAPTER_ENUM_CHASKA_85          TEXT( "DigiChaska85" )

#define DXB_REGVAL_ADAPTER_ENUM_CLYDE_NONCSU_4     TEXT( "DigiClydeNonCsu4" )
#define DXB_REGVAL_ADAPTER_ENUM_CLYDE_NONCSU_2     TEXT( "DigiClydeNonCsu2" )
#define DXB_REGVAL_ADAPTER_ENUM_CLYDE_NONCSU_603_4 TEXT( "DigiClydeNonCsu6034" )
#define DXB_REGVAL_ADAPTER_ENUM_CLYDE_NONCSU_603_2 TEXT( "DigiClydeNonCsu6032" )
#define DXB_REGVAL_ADAPTER_ENUM_SYNC570_PCI_2PORT  TEXT( "DigiSync570Port2Pci" )
#define DXB_REGVAL_ADAPTER_ENUM_SYNC570_PCI_4PORT  TEXT( "DigiSync570Port4Pci" )
#define DXB_REGVAL_ADAPTER_ENUM_SYNC570_ISA_2PORT  TEXT( "DigiSync570Port2Isa" )
#define DXB_REGVAL_ADAPTER_ENUM_SYNC570_ISA_4PORT  TEXT( "DigiSync570Port4Isa" )

#define DXB_REGVAL_ADAPTER_ENUM_ACCELEPORT_2R_2000    TEXT( "DigiAccelePort2r2000")
#define DXB_REGVAL_ADAPTER_ENUM_ACCELEPORT_4R_2000    TEXT( "DigiAccelePort4r2000")
#define DXB_REGVAL_ADAPTER_ENUM_ACCELEPORT_8R_2000    TEXT( "DigiAccelePort8r2000")
#define DXB_REGVAL_ADAPTER_ENUM_ACCELEPORT_16R_2000   TEXT( "DigiAccelePort16r2000")

#define DXB_REGVAL_IDENTITY                        TEXT( "Identity" )
#define DXB_REGVAL_OPTION                          TEXT( "Option" )
#define DXB_REGVAL_OPTION_TYPE                     REG_SZ
#define DXB_REGVAL_OPTION_ENUM_SYNCPORT            TEXT( "SyncPort" )
#define DXB_REGVAL_OPTION_ENUM_PRIME               TEXT( "Prime" )
#define DXB_REGVAL_OPTION_ENUM_HOUSTON             TEXT( "Houston" )
#define DXB_REGVAL_OPTION_ENUM_LONDON              TEXT( "London" )
#define DXB_REGVAL_OPTION_ENUM_CHASKA              TEXT( "Chaska" )
#define DXB_REGVAL_OPTION_ENUM_CLYDE               TEXT( "Clydesdale" )
#define DXB_REGVAL_OPTION_ENUM_SYNC570             TEXT( "Sync570" )
#define DXB_REGVAL_OPTION_ENUM_ACCELEPORT_2000        TEXT( "AccelePort2000" )

#define DXB_REGVAL_INTERRUPT                       TEXT( "InterruptNumber" )
#define DXB_REGVAL_INTERRUPT_TYPE                  REG_DWORD
#define DXB_REGVAL_INTERRUPT_DEFAULT               0

#define DXB_REGVAL_MEMORY_ADDRESS                  TEXT( "MemoryMappedBaseAddress" )
#define DXB_REGVAL_MEMORY_ADDRESS_TYPE             REG_DWORD
#define DXB_REGVAL_MEMORY_ADDRESS_DEFAULT_EPC      0xD0000
#define DXB_REGVAL_MEMORY_ADDRESS_ENUM_SYNCPORT    DXB_REGVAL_MEMORY_ADDRESS_DEFAULT_EPC
#define DXB_REGVAL_MEMORY_ADDRESS_ENUM_PRIME       DXB_REGVAL_MEMORY_ADDRESS_DEFAULT_EPC

#define DXB_REGVAL_MEMORY_LENGTH                   TEXT( "WindowSize" )
#define DXB_REGVAL_MEMORY_LENGTH_TYPE              REG_DWORD
#define DXB_REGVAL_MEMORY_LENGTH_DEFAULT_EPC       0x8000
#define DXB_REGVAL_MEMORY_LENGTH_ENUM_SYNCPORT     DXB_REGVAL_MEMORY_LENGTH_DEFAULT_EPC
#define DXB_REGVAL_MEMORY_LENGTH_ENUM_PRIME        DXB_REGVAL_MEMORY_LENGTH_DEFAULT_EPC

#define DXB_REGVAL_IO_ADDRESS                      TEXT( "IOBaseAddress" )
#define DXB_REGVAL_IO_ADDRESS_TYPE                 REG_DWORD
#define DXB_REGVAL_IO_ADDRESS_ENUM_SYNCPORT        0x324
#define DXB_REGVAL_IO_ADDRESS_ENUM_PRIME           0x32C

#define DXB_REGVAL_IO_LENGTH                       TEXT( "IoSpan" )
#define DXB_REGVAL_IO_LENGTH_TYPE                  REG_DWORD
#define DXB_REGVAL_IO_LENGTH_ENUM_EPC              0x04
#define DXB_REGVAL_IO_LENGTH_ENUM_SYNCPORT         DXB_REGVAL_IO_LENGTH_ENUM_EPC
#define DXB_REGVAL_IO_LENGTH_ENUM_PRIME            DXB_REGVAL_IO_LENGTH_ENUM_EPC

#define DXB_REGVAL_IO_CHOICES                      TEXT( "IoAddressChoices")
#define DXB_REGVAL_IO_CHOICES_TYPE                 REG_MULTISZ
#define DXB_REGVAL_MEM_CHOICES                     TEXT( "MemAddressChoices")
#define DXB_REGVAL_MEM_CHOICES_TYPE                REG_MULTISZ
#define DXB_REGVAL_IRQ_CHOICES                     TEXT( "InterruptNumberChoices")
#define DXB_REGVAL_IRQ_CHOICES_TYPE                REG_MULTISZ

#define DXB_REGVAL_BUS_TYPE                        TEXT( "BusType" )
#define DXB_REGVAL_BUS_TYPE_TYPE                   REG_DWORD

#define DXB_REGVAL_BUS_NAME                        TEXT( "BusName" )
#define DXB_REGVAL_BUS_NAME_TYPE                   REG_SZ

#define DXB_REGVAL_BUS_NUMBER                      TEXT( "BusNumber" )
#define DXB_REGVAL_BUS_NUMBER_TYPE                 REG_DWORD

#define DXB_REGVAL_SLOT_NUMBER                     TEXT( "SlotNumber" )
#define DXB_REGVAL_SLOT_NUMBER_TYPE                REG_DWORD

#define DXB_REGVAL_PCI_ID                          TEXT( "PciId" )
#define DXB_REGVAL_PCI_ID_TYPE                     REG_DWORD

#define DXB_REGVAL_DEVICE_ID                       DXB_REGVAL_PCI_ID
#define DXB_REGVAL_DEVICE_ID_TYPE                  DXB_REGVAL_PCI_ID_TYPE

#define DXB_REGVAL_SUBDEVICE_ID                    TEXT( "SubDeviceId" )
#define DXB_REGVAL_SUBDEVICE_ID_TYPE               REG_DWORD

#define DXB_REGVAL_VENDOR_ID                       TEXT( "VendorId" )
#define DXB_REGVAL_VENDOR_ID_TYPE                  REG_DWORD

#define DXB_REGVAL_SUBVENDOR_ID                    TEXT( "SubVendorId" )
#define DXB_REGVAL_SUBVENDOR_ID_TYPE               REG_DWORD

#define DXB_REGVAL_REVISION_ID                     TEXT( "RevisionId" )
#define DXB_REGVAL_REVISION_ID_TYPE                REG_DWORD

#define DXB_REGVAL_BIOS                            TEXT( "BiosImagePath" )
#define DXB_REGVAL_BIOS_TYPE                       REG_SZ
#define DXB_REGVAL_BIOS_ENUM_SYNCPORT_ISA          TEXT( "BioSpIsa.Bin" )
#define DXB_REGVAL_BIOS_ENUM_SYNCPORT_PCI          TEXT( "BioSpPci.Bin" )
#define DXB_REGVAL_BIOS_ENUM_PRIME                 TEXT( "BioPrime.Bin" )

#define DXB_REGVAL_FEP                             TEXT( "FepImagePath" )
#define DXB_REGVAL_FEP_TYPE                        REG_SZ
#define DXB_REGVAL_FEP_ENUM_SYNCPORT_ISA           TEXT( "FepSpIsa.Bin" )
#define DXB_REGVAL_FEP_ENUM_SYNCPORT_PCI           TEXT( "FepSpPci.Bin" )
#define DXB_REGVAL_FEP_ENUM_PRIME                  TEXT( "FepPrime.Bin" )
#define DXB_REGVAL_FEP_ENUM_HOUSTON                TEXT( "FepDense.Bin" )
#define DXB_REGVAL_FEP_ENUM_HOUSTON_CPCI           TEXT( "FepDense.Bin" )
#define DXB_REGVAL_FEP_ENUM_LONDON                 TEXT( "FepDense.Bin" )
#define DXB_REGVAL_FEP_ENUM_CHASKA                 TEXT( "FepDense.Bin" )
#define DXB_REGVAL_FEP_ENUM_CLYDE                  TEXT( "FepClyde.Bin" )
#define DXB_REGVAL_FEP_ENUM_ACCELEPORT_2000        TEXT( "FepHerc.Bin")

// Fep testing backdoor.  Dxb will leave adapter instance in memory to allow 
// kme access to the card memory.  Attempts to use dxb APIs (Open,Ioctl,PutMsg,etc.)
// may cause bugchecks!
#define DXB_REGVAL_IGNORE_FEP_FAILURE              TEXT( "IgnoreFepFailure" )
#define DXB_REGVAL_IGNORE_FEP_FAILURE_TYPE         REG_DWORD

// Production Testing Back door
#define DXB_REGVAL_IGNORE_POST_ERRORS              TEXT( "IgnorePostErrors" )
#define DXB_REGVAL_IGNORE_POST_ERRORS_TYPE         REG_DWORD
// POST Error surfacing mechanism
#define DXB_REGVAL_POST_ERRORS                     TEXT( "PostErrors" )
#define DXB_REGVAL_POST_ERRORS_TYPE                REG_DWORD
#define DXB_REGVAL_POST_ERROR_REPORT               TEXT( "PostErrorReport" )
#define DXB_REGVAL_POST_ERROR_REPORT_TYPE          REG_BINARY

// PRIme firmware now supports two flavors of BusModes on PCI cards.  The older 
// "legacy" mode leaves queue pointers in shared memory.  The newer optimized mode
// uses PLX MAILBOX registers for queue pointers.  Default is to use new mailbox mode
// but setting this value to non-zero allows override for compatible mode.
// Value found in <adapter_key>\Parameters.
#define DXB_REGVAL_LEGACY_BUSMODE						TEXT( "LegacyBusMode" )
#define DXB_REGVAL_LEGACY_BUSMODE_TYPE					REG_DWORD

#define DXB_REGVAL_PROTOCOL                        TEXT( "LineProtocol" )
#define DXB_REGVAL_PROTOCOL_TYPE                   REG_SZ
#define DXB_REGVAL_PROTOCOL_ENUM_X25               TEXT( "X25" )
#define DXB_REGVAL_PROTOCOL_ENUM_FRAMERELAY        TEXT( "FR" )
#define DXB_REGVAL_PROTOCOL_ENUM_ISDN              TEXT( "ISDN" )
#define DXB_REGVAL_PROTOCOL_ENUM_PRI               TEXT( "PRI" )
#define DXB_REGVAL_PROTOCOL_ENUM_PRI_NFAS_MASTER   TEXT( "PRI-NFAS-MASTER" )
#define DXB_REGVAL_PROTOCOL_ENUM_PRI_NFAS_SLAVE    TEXT( "PRI-NFAS-SLAVE" )
#define DXB_REGVAL_PROTOCOL_ENUM_BRI               TEXT( "BRI" )
#define DXB_REGVAL_PROTOCOL_ENUM_T1                TEXT( "T1" )
#define DXB_REGVAL_PROTOCOL_ENUM_E1                TEXT( "E1 PRI" ) // Modified on: 8-7-00
#define DXB_REGVAL_PROTOCOL_ENUM_E1R2              TEXT( "E1R2" )   // Modified on: 8-1-00
#define DXB_REGVAL_PROTOCOL_ENUM_POTS              TEXT( "POTS" )
#define DXB_REGVAL_PROTOCOL_ENUM_PPP               TEXT( "PPP" )
#define DXB_REGVAL_PROTOCOL_ENUM_NONE              TEXT( "None" )
#define DXB_REGVAL_PROTOCOL_ENUM_SNA               TEXT( "SNA" )
#define DXB_REGVAL_PROTOCOL_ENUM_SERIAL            TEXT( "SERIAL" )
#define DXB_REGVAL_PROTOCOL_ENUM_RAWIP             TEXT( "RAWIP" )

#define DXB_REGVAL_PROTOCOL_DEFAULT                DXB_REGVAL_PROTOCOL_ENUM_NONE

#define DXB_REGVAL_PROTOCOLS_ALLOWED               TEXT( "ProtocolsAllowed" )
#define DXB_REGVAL_PROTOCOLS_ALLOWED_TYPE          REG_MULTI_SZ

// Adapter Config Params

#define DXB_REGVAL_ASKMULTILINES                   TEXT( "AskMultiLines" )
#define DXB_REGVAL_ASKMULTILINES_TYPE              REG_DWORD

#define DXB_REGVAL_CANDONFAS                       TEXT( "CanDoNFAS" )
#define DXB_REGVAL_CANDONFAS_TYPE                  REG_DWORD

#define DXB_REGVAL_BUSMODE                         TEXT( "DxbBusMode" )
#define DXB_REGVAL_BUSMODE_TYPE                    REG_DWORD

#define DXB_REGVAL_MAX_LOGICAL_CHANS_PER_LINE      TEXT( "MaxLogicalChannelsPerLine" )
#define DXB_REGVAL_MAX_LOGICAL_CHANS_PER_LINE_TYPE REG_DWORD

#define DXB_REGVAL_PRODUCT_NAME                    TEXT( "ProductName" )
#define DXB_REGVAL_PRODUCT_NAME_TYPE               REG_SZ

#define DXB_REGVAL_HAS_WIZARD                      TEXT( "HasWizard" )
#define DXB_REGVAL_HAS_WIZARD_TYPE                 REG_DWORD
#define DXB_REGVAL_HAS_WIZARD_DEFAULT              0x1

//
// DigiSOH Config Values
//
#define DXB_REGVAL_SNID_PREFIX_REQUIRED            TEXT( "SnidPrefixRequired" )
#define DXB_REGVAL_STREAMS_DRIVER                  TEXT( "DigiSOH" )
#define DXB_REGVAL_SNA_LINENAME                    TEXT( "SnaWanDevice" )
#define DXB_REGVAL_PPP_LINENAME                    TEXT( "PPPWanDevice" )
#define DXB_REGVAL_LINENAME_XWAN                   TEXT( "XWAN" )
#define DXB_REGVAL_LINENAME_WAN                    TEXT( "WAN%d" )
#define DXB_REGVAL_LINENAME                        TEXT( "LineName" )

//
// SNA Defines
//
// The SNA Device is used by the SNA configuration Programs to expose a SNADS interface
// Device Name for a Port
#define DXB_REGVAL_SNA_DEVICE                      TEXT( "SnaDevice" )
#define DXB_REGVAL_SNA_DEVICE_TYPE                 REG_SZ

//
// Client Driver Values (DigiIsdn and DigiAsyn use these)
//
#define DXB_REGVAL_REGPATH                         TEXT( "RegPath" )
#define DXB_REGVAL_REGPATH_TYPE                    REG_SZ

#define DXB_REGVAL_SERVICENAME                     TEXT( "ServiceName" )
#define DXB_REGVAL_SERVICENAME_TYPE                REG_SZ

#define DXB_REGVAL_SERVICE						   TEXT( "Service" )
#define DXB_REGVAL_SERVICE_TYPE                    REG_SZ

// Adapter is Physical device the DSAPI provider will communicate with..
#define DXB_REGVAL_ADAPTER                         TEXT( "Adapter" )
#define DXB_REGVAL_ADAPTER_TYPE                    REG_SZ

// Device is written to dxb client drivers (asyn, isdn, etc.) to identify the dxb
// devicename to use to access the adapter.  Of the form, "DigiDxb3".
#define DXB_REGVAL_DEVICE                          TEXT( "Device" )
#define DXB_REGVAL_DEVICE_TYPE                     REG_SZ

#define DXB_REGVAL_DESCRIPTION					   TEXT( "Desc" )
#define DXB_REGVAL_DESCRIPTION_TYPE                REG_SZ

#define DXB_REGVAL_DRIVER_DESCRIPTION			   TEXT( "DriverDesc" )
#define DXB_REGVAL_DRIVER_DESCRIPTION_TYPE         REG_SZ

// Ndis adapter instance is a string representation of the NCPA adapter instance 
// number assigned to our virtual lan or wan adapters.
#define DXB_REGVAL_NDIS_ADAPTER_INSTANCE           TEXT( "VAdapterNum" )
#define DXB_REGVAL_NDIS_ADAPTER_INSTANCE_TYPE      REG_SZ

// Endpoints == Number of Tapi devices to expose.  Used by DigiIsdn client driver.
#define DXB_REGVAL_ENDPOINTS                       TEXT( "Endpoints" )
#define DXB_REGVAL_ENDPOINTS_TYPE                  REG_DWORD

// LegacyApi is the Isdn firmware version 1 API used by DataFire PRIme
#define DXB_REGVAL_LEGACY_API                      TEXT( "LegacyApi" )
#define DXB_REGVAL_LEGACY_API_TYPE                 REG_DWORD

// DxbVersion2 is the used for Clydesdale firmware modified to support Dxb version 2
#define DXB_REGVAL_DXBVERSION2                      TEXT( "DxbVersion2" )
#define DXB_REGVAL_DXBVERSION2_TYPE                 REG_DWORD

// added for NT5
#define DXB_REGCLASS_VALUE                         TEXT("System\\CurrentControlSet\\Control\\Class\\")
// Spoof flag allows bus driver (DXB) to load without registry parameters
#define DXB_REGVAL_SPOOF                           TEXT( "Spoof" )
#define DXB_REGVAL_SPOOF_TYPE                      REG_DWORD
#define DXB_REGVAL_SPOOF_ON                        1
#define DXB_REGVAL_SPOOF_OFF                       0
#define DXB_REGVAL_REGINSTANCE                     TEXT("RegInstance")
// Multi protocol adapters have this bit set to indicate that the protocol wiz page
// should be displayed by the coinstaller. Normally, no UI is allowed.
#define DXB_REGVAL_QUERY_FOR_PROTOCOL              TEXT( "QueryUserForProtocol" )
#define DXB_REGVAL_QUERY_FOR_PROTOCOL_TYPE         REG_DWORD
// Query the user for these protocols if DXB_REGVAL_QUERY_FOR_PROTOCOL is set
#define DXB_REGVAL_PROTOCOLS_TO_QUERY              TEXT( "ProtocolsToQuery" )
#define DXB_REGVAL_PROTOCOLS_TO_QUERY_TYPE         MULTI_SZ

// NT5 ISDN Wizard values
#define DXB_REGVAL_ISDNWIZ_SWITCH_TYPE             TEXT("IsdnSwitchType")
#define DXB_REGVAL_ISDNWIZ_NUM_DCHANNELS           TEXT("IsdnNumDChannels")
#define DXB_REGVAL_ISDNWIZ_NUM_BCHANNELS           TEXT("IsdnNumBChannels")
#define DXB_REGVAL_ISDNWIZ_MSN                     TEXT("IsdnMultiSubscriberNumbers")
#define DXB_REGVAL_ISDNWIZ_NUMBER                  TEXT("IsdnPhoneNumber")
#define DXB_REGVAL_ISDNWIZ_SPID                    TEXT("IsdnSpid")
#define DXB_REGVAL_ISDNWIZ_SUBADDRESS              TEXT("IsdnSubaddress")

// NT5 ISDN Wizard SwitchTypes, not yet defined in DDK headers!
// ISDN Switch type flags from http://www.microsoft.com/hwdev/network/nt5netinf.htm
#define ISDN_SWITCH_NONE  0x00000000
#define ISDN_SWITCH_AUTO  0x00000001    // Auto Detect
#define ISDN_SWITCH_ATT   0x00000002    // AT&T 5ESS
#define ISDN_SWITCH_NI1   0x00000004    // National ISDN 1
#define ISDN_SWITCH_NTI   0x00000008    // Northern Telecom DMS 100 (NT-1)
#define ISDN_SWITCH_INS64 0x00000010    // NTT INS64 (Japan)
#define ISDN_SWITCH_1TR6  0x00000020    // German National
#define ISDN_SWITCH_VN3   0x00000040    // French National (VN3)
#define ISDN_SWITCH_NET3  0x00000080    // European ISDN 
#define ISDN_SWITCH_DSS1  0x00000080    // European ISDN 
#define ISDN_SWITCH_AUS   0x00000100    // Australian National
#define ISDN_SWITCH_BEL   0x00000200    // Belgium National
#define ISDN_SWITCH_VN4   0x00000400    // French National (VN4)
#define ISDN_SWITCH_NI2   0x00000800    // National ISDN 2

#define DXB_REGVAL_PDO_HDWID                       TEXT("HardwareID")
#define DXB_REGVAL_PDO_HDWID_TYPE                  REG_SZ
// various hardware ID's. These strings have to match exactly to the ones
// being used by various INF's. We can't use preprocessing and have quoted strings in
// the INF. Also stay within 8 chars without underscores
// 
#define DXB_HDWID_ISDNT1                           TEXT( "DIGIT1" )
#define DXB_HDWID_ISDNE1                           TEXT( "DIGIE1" )
#define DXB_HDWID_ISDNBRI                          TEXT( "DIGIBRI" )
#define DXB_HDWID_ASYN                             TEXT( "DIGIASYN" )
#define DXB_HDWID_PVCFR                            TEXT( "DIGIPFR" )
#define DXB_HDWID_PVCX25                           TEXT( "DIGIPX25" )
#define DXB_HDWID_SVC                              TEXT( "DIGISVC" )
#define DXB_HDWID_SVC1                             TEXT( "DIGISVC1" )
#define DXB_HDWID_SVC2                             TEXT( "DIGISVC2" )
#define DXB_HDWID_PPP                              TEXT( "DIGIPPP" )
#define DXB_HDWID_SNA                              TEXT( "DIGISNA" )
#define DXB_HDWID_PPP_CSU                          TEXT( "DIGIPPPC" )

#define DXB_REGVAL_PDO_DEVTYPE                     TEXT("DeviceType")
#define DXB_REGVAL_PDO_DEVTYPE_TYPE                REG_DWORD
// various device types that get translated to appropriate FILE_DEVICE_TYPE by dxb
#define DXB_DEVICE_NETCARD                         0
#define DXB_DEVICE_SERIAL                          1

#define DXB_REGKEY_SYSTEM_ENUM                     TEXT( "System\\CurrentControlSet\\Enum\\DIGIASYN" )
//
// MGMTHLC.H: modem_nationality_t
//
#define DXB_REGVAL_MODEM_NATIONALITY               TEXT( "country_code" )
#define DXB_REGVAL_MODEM_NATIONALITY_TYPE          REG_DWORD
#ifdef MGMTCC_H_DEFINED
#define DXB_REGVAL_MODEM_NATIONALITY_DEFAULT       COUNTRY_CODE_UNITED_STATES
#endif

//
// Number of lines the adapter has
//
#define DXB_REGVAL_NUMBEROFLINES                   TEXT( "NumberOfLines" )
#define DXB_REGVAL_NUMBEROFLINES_TYPE              REG_DWORD
#define DXB_REGVAL_NUMBEROFLINES_DEFAULT           0

//
// DXB_REGKEY_LINE_BASE and DXB_REGKEY_LINE_ENUM_FIRST are used to build the Line keynames, i.e. 0, 1, etc.
//
#define DXB_REGKEY_LINE_BASE                       TEXT( "" )
#define DXB_REGKEY_LINE_ENUM_FIRST                 '0'

#define DXB_REGVAL_LINE_SNID                       TEXT( "Snid" )
#define DXB_REGVAL_LINE_SNID_TYPE                  REG_DWORD
#define DXB_REGVAL_LINE_SNID_ENUM_FIRST            1

//
// MGMTHLC.H: ds1_config_t
//
#define DXB_REGKEY_DS1                             TEXT( "DS1" )                    // used to be CSUDSU
#define DXB_REGVAL_DS1_CODING                      TEXT( "coding" )
#define DXB_REGVAL_DS1_CODING_TYPE                 REG_DWORD
#define DXB_REGVAL_DS1_FRAMING                     TEXT( "framing" )
#define DXB_REGVAL_DS1_FRAMING_TYPE                REG_DWORD
#define DXB_REGVAL_DS1_IF_TYPE                     TEXT( "if_type" )
#define DXB_REGVAL_DS1_IF_TYPE_TYPE                REG_DWORD
#define DXB_REGVAL_DS1_LONG_HAUL_LBO               TEXT( "long_haul_lbo" )
#define DXB_REGVAL_DS1_LONG_HAUL_LBO_TYPE          REG_DWORD
#define DXB_REGVAL_DS1_SHORT_HAUL_LEN              TEXT( "short_haul_len" )
#define DXB_REGVAL_DS1_SHORT_HAUL_LEN_TYPE         REG_DWORD
#define DXB_REGVAL_DS1_SIGNALLING                  TEXT( "signalling" )
#define DXB_REGVAL_DS1_SIGNALLING_TYPE             REG_DWORD
#define DXB_REGVAL_DS1_WINK_DIGITS                 TEXT( "wink_digits" )
#define DXB_REGVAL_DS1_WINK_DIGITS_TYPE            REG_DWORD
#define DXB_REGVAL_DS1_CLOCKING                    TEXT( "clocking" )
#define DXB_REGVAL_DS1_CLOCKING_TYPE               REG_DWORD
#define DXB_REGVAL_DS1_JITTER_ATTEN                TEXT( "jitter_atten" )
#define DXB_REGVAL_DS1_JITTER_ATTEN_TYPE           REG_DWORD
#define DXB_REGVAL_DS1_EQ_GAIN_LIMIT               TEXT( "eq_gain_limit" )
#define DXB_REGVAL_DS1_EQ_GAIN_LIMIT_TYPE          REG_DWORD
#define DXB_REGVAL_DS1_LEASED_MASK                 TEXT( "leased_mask" )
#define DXB_REGVAL_DS1_LEASED_MASK_TYPE            REG_DWORD
#define DXB_REGVAL_DS1_NFAS_MASTER_PORT            TEXT( "nfas_master_port" )
#define DXB_REGVAL_DS1_NFAS_MASTER_PORT_TYPE       REG_DWORD
#define DXB_REGVAL_DS1_NFAS_INTERFACE_ID           TEXT( "nfas_interface_id" )
#define DXB_REGVAL_DS1_NFAS_INTERFACE_ID_TYPE      REG_DWORD

//
// MGMTHLC.H: dchan_ext_config_t
//
#define DXB_REGKEY_DCHAN                           TEXT( "DChannel" )
#define DXB_REGVAL_DCHAN_MODE                      TEXT( "mode" )
#define DXB_REGVAL_DCHAN_MODE_TYPE                 REG_DWORD
#define DXB_REGVAL_DCHAN_ADDRESS_TYPE              TEXT( "address_type" )
#define DXB_REGVAL_DCHAN_ADDRESS_TYPE_TYPE         REG_DWORD
#define DXB_REGVAL_DCHAN_NUMBERING_PLAN            TEXT( "numbering_plan" )
#define DXB_REGVAL_DCHAN_NUMBERING_PLAN_TYPE       REG_DWORD
#define DXB_REGVAL_DCHAN_SUBADDRESS_TYPE           TEXT( "subaddress_type" )
#define DXB_REGVAL_DCHAN_SUBADDRESS_TYPE_TYPE      REG_DWORD

//
// MGMTHLC.H: ds1_e1r2_config_t
//
#define DXB_REGKEY_E1R2							  TEXT( "E1R2" )
#define DXB_REGVAL_E1R2_SIGNALLING                TEXT( "reserved_0" )
#define DXB_REGVAL_E1R2_SIGNALLING_TYPE	          REG_DWORD
#define DXB_REGVAL_E1R2_SWITCH_TYPE               TEXT( "r2_switch_type" )
#define DXB_REGVAL_E1R2_SWITCH_TYPE_TYPE          REG_DWORD
#define DXB_REGVAL_E1R2_METHOD	                  TEXT( "r2_method" )
#define DXB_REGVAL_E1R2_METHOD_TYPE		          REG_DWORD
#define DXB_REGVAL_E1R2_CD_BITS	                  TEXT( "r2_cd_bits" )
#define DXB_REGVAL_E1R2_CD_BITS_TYPE              REG_DWORD
#define DXB_REGVAL_E1R2_MIN_DNIS                  TEXT( "min_dnis_digits" )
#define DXB_REGVAL_E1R2_MIN_DNIS_TYPE             REG_DWORD
#define DXB_REGVAL_E1R2_MAX_DNIS	              TEXT( "max_dnis_digits" )
#define DXB_REGVAL_E1R2_MAX_DNIS_TYPE	          REG_DWORD
#define DXB_REGVAL_E1R2_MIN_ANI		              TEXT( "min_ani_digits" )
#define DXB_REGVAL_E1R2_MIN_ANI_TYPE		      REG_DWORD
#define DXB_REGVAL_E1R2_MAX_ANI			          TEXT( "max_ani_digits" )
#define DXB_REGVAL_E1R2_MAX_ANI_TYPE		      REG_DWORD
#define DXB_REGVAL_E1R2_SEND_ANI                  TEXT( "send_ani_digits" )
#define DXB_REGVAL_E1R2_SEND_ANI_TYPE             REG_DWORD
#define DXB_REGVAL_E1R2_ANI_SIGNAL                TEXT( "ani_digit_signal" )
#define DXB_REGVAL_E1R2_ANI_SIGNAL_TYPE           REG_DWORD
#define DXB_REGVAL_E1R2_ANSWER_SIGNAL             TEXT( "answer_signal" )
#define DXB_REGVAL_E1R2_ANSWER_SIGNAL_TYPE        REG_DWORD
#define DXB_REGVAL_E1R2_END_DNIS_SIGNAL		      TEXT( "end_dnis_signal" )
#define DXB_REGVAL_E1R2_END_DNIS_SIGNAL_TYPE      REG_DWORD
#define DXB_REGVAL_E1R2_BUSY_SIGNAL			      TEXT( "busy_signal" )
#define DXB_REGVAL_E1R2_BUSY_SIGNAL_TYPE		  REG_DWORD
#define DXB_REGVAL_E1R2_OUTGOING_TYPE		      TEXT( "outgoing_type" )
#define DXB_REGVAL_E1R2_OUTGOING_TYPE_TYPE		  REG_DWORD

//
// MGMTHLC.H: bri_config_t
//
#define DXB_REGKEY_BRI                             TEXT( "BRI" )
#define DXB_REGVAL_BRI_SWITCH_TYPE                 TEXT( "switch_type" )
#define DXB_REGVAL_BRI_SWITCH_TYPE_TYPE            REG_DWORD
#define DXB_REGVAL_BRI_AUTO_SPID                   TEXT( "auto_spid" )
#define DXB_REGVAL_BRI_AUTO_SPID_TYPE              REG_DWORD
#define DXB_REGVAL_BRI_LEASED_MASK                 TEXT( "leased_mask" )
#define DXB_REGVAL_BRI_LEASED_MASK_TYPE            REG_DWORD

#define DXB_REGKEY_BRI_DIRECTORY_BASE              TEXT( "" )
#define DXB_REGKEY_BRI_DIRECTORY_ENUM_FIRST        '0'
#define DXB_REGVAL_BRI_DIRECTORY_NUMBER            TEXT( "number" )
#define DXB_REGVAL_BRI_DIRECTORY_NUMBER_TYPE       REG_SZ
#define DXB_REGVAL_BRI_DIRECTORY_SUB_ADDRESS       TEXT( "sub_address" )
#define DXB_REGVAL_BRI_DIRECTORY_SUB_ADDRESS_TYPE  REG_SZ
#define DXB_REGVAL_BRI_DIRECTORY_SPID              TEXT( "spid" )
#define DXB_REGVAL_BRI_DIRECTORY_SPID_TYPE         REG_SZ

#define DXB_REGVAL_BRI_DIR_COUNT                   TEXT( "dir_count" )
#define DXB_REGVAL_BRI_DIR_COUNT_TYPE              REG_DWORD
#define DXB_REGVAL_BRI_MSN                         TEXT( "msn" )
#define DXB_REGVAL_BRI_MSN_TYPE                    REG_DWORD
#define DXB_REGVAL_BRI_AUTOALERT                   TEXT( "autoalert" )
#define DXB_REGVAL_BRI_AUTOALERT_TYPE              REG_DWORD

//
// MGMTHLC.H: serial_config_t
//
#define DXB_REGKEY_SERIAL                          TEXT( "Serial" )
#define DXB_REGVAL_SERIAL_PORT_TYPE                TEXT( "port_type" )
#define DXB_REGVAL_SERIAL_PORT_TYPE_TYPE           REG_DWORD
#define DXB_REGVAL_SERIAL_CLOCK_SOURCE             TEXT( "clock_source" )
#define DXB_REGVAL_SERIAL_CLOCK_SOURCE_TYPE        REG_DWORD
#define DXB_REGVAL_SERIAL_ALT_PIN                  TEXT( "alt_pin" )
#define DXB_REGVAL_SERIAL_ALT_PIN_TYPE             REG_DWORD
#define DXB_REGVAL_SERIAL_ALT_PIN_DEFAULT          0x0


// Old-style config...shouldn't be used by HLC family
#define DXB_REGKEY_IL3                             TEXT( "IL3" )                    // used to be ISDN
#define DXB_REGVAL_IL3_INFO_TRANSFER_CAP_IN        TEXT( "info_transfer_cap_in" )
#define DXB_REGVAL_IL3_INFO_TRANSFER_CAP_IN_TYPE   REG_DWORD
#define DXB_REGVAL_IL3_INFO_TRANSFER_CAP_OUT       TEXT( "info_transfer_cap_out" )
#define DXB_REGVAL_IL3_INFO_TRANSFER_CAP_OUT_TYPE  REG_DWORD
#define DXB_REGVAL_IL3_NATIONALITY                 TEXT( "nationality" )
#define DXB_REGVAL_IL3_NATIONALITY_TYPE            REG_DWORD
#define DXB_REGVAL_IL3_NUMBERING_PLAN              TEXT( "numbering_plan" )
#define DXB_REGVAL_IL3_NUMBERING_PLAN_TYPE         REG_DWORD
#define DXB_REGVAL_IL3_NUMBEROFBCHANNELS           TEXT( "NumberOfBChannels" )
#define DXB_REGVAL_IL3_NUMBEROFBCHANNELS_TYPE      REG_DWORD
#define DXB_REGVAL_IL3_OPTIONS                     TEXT( "options" )
#define DXB_REGVAL_IL3_OPTIONS_TYPE                REG_DWORD
#define DXB_REGVAL_IL3_OPTIONS_EXTRA               TEXT( "options_extra" )
#define DXB_REGVAL_IL3_OPTIONS_EXTRA_TYPE          REG_DWORD
#define DXB_REGVAL_IL3_RATE                        TEXT( "rate" )
#define DXB_REGVAL_IL3_RATE_TYPE                   REG_DWORD
#define DXB_REGVAL_IL3_T301                        TEXT( "T301" )
#define DXB_REGVAL_IL3_T301_TYPE                   REG_DWORD
#define DXB_REGVAL_IL3_T303                        TEXT( "T303" )
#define DXB_REGVAL_IL3_T303_TYPE                   REG_DWORD
#define DXB_REGVAL_IL3_T305                        TEXT( "T305" )
#define DXB_REGVAL_IL3_T305_TYPE                   REG_DWORD
#define DXB_REGVAL_IL3_T308                        TEXT( "T308" )
#define DXB_REGVAL_IL3_T308_TYPE                   REG_DWORD
#define DXB_REGVAL_IL3_T310                        TEXT( "T310" )
#define DXB_REGVAL_IL3_T310_TYPE                   REG_DWORD
#define DXB_REGVAL_IL3_T313                        TEXT( "T313" )
#define DXB_REGVAL_IL3_T313_TYPE                   REG_DWORD
#define DXB_REGVAL_IL3_T316                        TEXT( "T316" )
#define DXB_REGVAL_IL3_T316_TYPE                   REG_DWORD
#define DXB_REGVAL_IL3_T322                        TEXT( "T322" )
#define DXB_REGVAL_IL3_T322_TYPE                   REG_DWORD
#define DXB_REGVAL_IL3_TYPE_OF_ADDRESS             TEXT( "type_of_address" )
#define DXB_REGVAL_IL3_TYPE_OF_ADDRESS_TYPE        REG_DWORD
#define DXB_REGVAL_IL3_TYPE_OF_SUB_ADDRESS         TEXT( "type_of_sub_address" )
#define DXB_REGVAL_IL3_TYPE_OF_SUB_ADDRESS_TYPE    REG_DWORD


#define DXB_REGKEY_IWAN                            TEXT( "IWAN" )
#define DXB_REGVAL_IWAN_MAX_BUF_LEN                TEXT( "max_buf_len" )
#define DXB_REGVAL_IWAN_MAX_BUF_LEN_TYPE           REG_DWORD
#define DXB_REGVAL_IWAN_MAX_FRAME_LEN              TEXT( "max_frame_len" )
#define DXB_REGVAL_IWAN_MAX_FRAME_LEN_TYPE         REG_DWORD

#define DXB_REGKEY_LAPD                            TEXT( "LAPD" )
#define DXB_REGVAL_LAPD_ACK_DELAY                  TEXT( "ack_delay" )
#define DXB_REGVAL_LAPD_ACK_DELAY_TYPE             REG_DWORD
#define DXB_REGVAL_LAPD_LC_LAPD_SELECT             TEXT( "LC_LAPD_Select" )
#define DXB_REGVAL_LAPD_LC_LAPD_SELECT_TYPE        REG_DWORD
#define DXB_REGVAL_LAPD_LLCONFORM                  TEXT( "llconform" )
#define DXB_REGVAL_LAPD_LLCONFORM_TYPE             REG_DWORD
#define DXB_REGVAL_LAPD_LME_ENABLED                TEXT( "lme_enabled" )
#define DXB_REGVAL_LAPD_LME_ENABLED_TYPE           REG_DWORD
#define DXB_REGVAL_LAPD_MULTIPLE_TEI               TEXT( "multiple_tei" )
#define DXB_REGVAL_LAPD_MULTIPLE_TEI_TYPE          REG_DWORD
#define DXB_REGVAL_LAPD_N200                       TEXT( "N200" )
#define DXB_REGVAL_LAPD_N200_TYPE                  REG_DWORD
#define DXB_REGVAL_LAPD_N201                       TEXT( "N201" )
#define DXB_REGVAL_LAPD_N201_TYPE                  REG_DWORD
#define DXB_REGVAL_LAPD_N202                       TEXT( "N202" )
#define DXB_REGVAL_LAPD_N202_TYPE                  REG_DWORD
#define DXB_REGVAL_LAPD_NOTACK_MAX                 TEXT( "notack_max" )
#define DXB_REGVAL_LAPD_NOTACK_MAX_TYPE            REG_DWORD
#define DXB_REGVAL_LAPD_REM_BUSY_POLL              TEXT( "rem_busy_poll" )
#define DXB_REGVAL_LAPD_REM_BUSY_POLL_TYPE         REG_DWORD
#define DXB_REGVAL_LAPD_T200                       TEXT( "T200" )
#define DXB_REGVAL_LAPD_T200_TYPE                  REG_DWORD
#define DXB_REGVAL_LAPD_T202                       TEXT( "T202" )
#define DXB_REGVAL_LAPD_T202_TYPE                  REG_DWORD
#define DXB_REGVAL_LAPD_T203                       TEXT( "T203" )
#define DXB_REGVAL_LAPD_T203_TYPE                  REG_DWORD
#define DXB_REGVAL_LAPD_TX_WINDOW                  TEXT( "tx_window" )
#define DXB_REGVAL_LAPD_TX_WINDOW_TYPE             REG_DWORD


/*++

   DXB Adapter Registry Layout:

   NT 4.0:

      HKLM\SYSTEM\CurrentControlSet\Services\DigiDxbN    (where N = adapter instance)
         Parameters
            0
               Contains DigiDxb specific line settings, for example:

               DS1
                  coding: REG_DWORD: 1

               0
                  Contains DigiDxb specific port settings, if any
               1
               ...
               N                                         (where N = # of ports)
            1
            ...
            N                                            (where N = # of lines)

            ASYN
               Contains DigiAsyn specific settings for this adapter

               0
                  0
                  1
                  ...
                  N                                      (where N = # of ports)
               1
               ...
               N                                         (where N = # of lines)

            ISDN
               Contains DigiIsdn specific settings for this adapter

               0
                  0
                  1
                  ...
                  N                                      (where N = # of ports)
               1
               ...
               N                                         (where N = # of lines)


      HKLM\SYSTEM\CurrentControlSet\Services\DigiAsyn
         Parameters
            DigiDxbN                                     (where N = adapter instance)
               Adapter: REG_SZ: DigiDxbN                 (where N = adapter instance)
               RegPath: REG_SZ: SYSTEM\CurrentControlSet\Services\DigiDxbN\Parameters\ASYN

      HKLM\SYSTEM\CurrentControlSet\Services\DigiIsdnN   (where N = instance of the ISDN driver)
         Parameters
            Adapter: REG_SZ: DigiDxbN                    (where N = adapter instance)
            RegPath: REG_SZ: SYSTEM\CurrentControlSet\Services\DigiDxbN\Parameters\ISDN


   NOTE: The RegPath value above is used to redirect supporting drivers
          to the DigiDxb instance to which they are attached.

--*/

//
// Static config data area
//

#define DXB_REGKEY_SOFTWARE                     TEXT("SOFTWARE")
#define DXB_REGKEY_DIGI                         TEXT("Digi")
#define DXB_REGKEY_WANLINKS                     TEXT("WAN Links")
#define DXB_REGKEY_CURRENTVERSION               TEXT("CurrentVersion")
#define DXB_REGKEY_CONFIG                       TEXT("Config")

#define DXB_REGKEY_SOFTWARE_DIGI                DXB_REGKEY_SOFTWARE TEXT("\\") DXB_REGKEY_DIGI
#define DXB_REGKEY_SOFTWARE_WANLINKS            DXB_REGKEY_SOFTWARE_DIGI TEXT("\\") DXB_REGKEY_WANLINKS 
#define DXB_REGKEY_SOFTWARE_CURRENTVERSION      DXB_REGKEY_SOFTWARE_WANLINKS TEXT("\\") DXB_REGKEY_CURRENTVERSION
#define DXB_REGKEY_CONFIG_DATA                  DXB_REGKEY_SOFTWARE_CURRENTVERSION TEXT("\\") DXB_REGKEY_CONFIG

#define DXB_REGVAL_MAJOR                        TEXT("Major")
#define DXB_REGVAL_MAJOR_TYPE                   REG_DWORD
#define DXB_REGVAL_MINOR                        TEXT("Minor")
#define DXB_REGVAL_MINOR_TYPE                   REG_DWORD
#define DXB_REGVAL_BUILD                        TEXT("Build")
#define DXB_REGVAL_BUILD_TYPE                   REG_DWORD
#define DXB_REGVAL_DATE                         TEXT("Date")
#define DXB_REGVAL_DATE_TYPE                    REG_MULTI_SZ

//
// Line Services Parameters
//
#define DXB_REGVAL_LINE_SERVICES                   TEXT( "LineServices" )
#define DXB_REGVAL_LINE_SERVICES_TYPE              REG_MULTI_SZ

#define DXB_REGVAL_LINE_SERVICES_ALLOWED           TEXT( "ServicesAllowed" )
#define DXB_REGVAL_LINE_SERVICES_ALLOWED_TYPE      REG_MULTI_SZ

#define DXB_REGVAL_LINE_SERVICE_ASYN               TEXT( "ASYN" )
#define DXB_REGVAL_LINE_SERVICE_ISDN               TEXT( "ISDN" )
#define DXB_REGVAL_LINE_SERVICE_PRI                TEXT( "PRI" )
#define DXB_REGVAL_LINE_SERVICE_BRI                TEXT( "BRI" )
#define DXB_REGVAL_LINE_SERVICE_FR                 TEXT( "FRService" )
#define DXB_REGVAL_LINE_SERVICE_X25                TEXT( "X25Service" )
#define DXB_REGVAL_LINE_SERVICE_X25_SVC            TEXT( "X25SvcService" )
#define DXB_REGVAL_LINE_SERVICE_SNA                TEXT( "SNAService" )
#define DXB_REGVAL_LINE_SERVICE_PPP                TEXT( "PPPService" )
#define DXB_REGVAL_LINE_SERVICE_NONE               TEXT( "NoneService" )
#define DXB_REGVAL_LINE_SERVICE_DEFAULT            DXB_REGVAL_LINE_SERVICE_NONE

//
// Port Parameters
//
#define DXB_REGVAL_PORT_TYPE                       TEXT( "PortType" )
#define DXB_REGVAL_PORT_TYPE_TYPE                  REG_SZ

#define DXB_REGVAL_MAX_PORTS                       TEXT( "MaxPorts" )
#define DXB_REGVAL_MAX_PORTS_TYPE                  REG_DWORD

#define DXB_REGVAL_PORT_TYPE_SERIAL                TEXT( "Serial" )
#define DXB_REGVAL_PORT_TYPE_STD_COM               TEXT( "StdCom" )
#define DXB_REGVAL_PORT_TYPE_BCHANNEL              TEXT( "BChannel" )
#define DXB_REGVAL_PORT_TYPE_FR                    TEXT( "FRPVC" )
#define DXB_REGVAL_PORT_TYPE_X25                   TEXT( "X25PVC" )
#define DXB_REGVAL_PORT_TYPE_NONE                  TEXT( "None" )
#define DXB_REGVAL_PORT_TYPE_DEFAULT               DXB_REGVAL_PORT_TYPE_NONE

//
// Router Parameters
//
#define DXB_REGVAL_ROUTER_TYPE                     TEXT("RouterType")
#define DXB_REGVAL_ROUTER_TYPE_TYPE                REG_SZ
#define DXB_REGVAL_ROUTER_TYPE_WANX                TEXT("WanX")
#define DXB_REGVAL_ROUTER_TYPE_NONE                TEXT( "None" )
#define DXB_REGVAL_ROUTER_TYPE_DEFAULT             DXB_REGVAL_ROUTER_TYPE_NONE
#define DXB_REGVAL_ROUTER_INSTANCE                 TEXT("RouterInstance")
#define DXB_REGVAL_ROUTER_INSTANCE_TYPE            REG_SZ   

//
// Async Line/Port Configuration Parameters
//
#define DXB_REGKEY_ASYN                            DXB_REGVAL_LINE_SERVICE_ASYN

#define DXB_REGVAL_ASYN_CLOSETIMEOUT               TEXT( "CloseTimeOut" )
#define DXB_REGVAL_ASYN_CLOSETIMEOUT_TYPE          REG_DWORD
#define DXB_REGVAL_ASYN_CLOSETIMEOUT_DEFAULT       25
// 0x0 - do not wait, >0x0 - wait seconds, 0xffffffff - wait infinite
#define DXB_REGVAL_ASYN_COMPLETEWHENSENT           TEXT( "CompleteWhenSent" )
#define DXB_REGVAL_ASYN_COMPLETEWHENSENT_TYPE      REG_DWORD
#define DXB_REGVAL_ASYN_COMPLETEWHENSENT_DEFAULT   0x0
#define DXB_REGVAL_ASYN_DOSDEVICES                 TEXT( "DosDevices" )
#define DXB_REGVAL_ASYN_DOSDEVICES_TYPE            REG_SZ
#define DXB_REGVAL_ASYN_PURGEONCLOSE               TEXT( "PurgeOnClose" )
#define DXB_REGVAL_ASYN_PURGEONCLOSE_TYPE          REG_DWORD
#define DXB_REGVAL_ASYN_PURGEONCLOSE_DEFAULT       0x1
#define DXB_REGVAL_ASYN_MODEMDEVICE						TEXT( "InternalModem" )
#define DXB_REGVAL_ASYN_MODEMDEVICE_TYPE				REG_DWORD
#define DXB_REGVAL_ASYN_MODEMDEVICE_DEFAULT			0x0
// For AXp
#define DXB_REGVAL_ASYN_LOWLATENCY                 TEXT( "LowLatency" )
#define DXB_REGVAL_ASYN_LOWLATENCY_TYPE            REG_DWORD
#define DXB_REGVAL_ASYN_LOWLATENCY_DEFAULT         0x0

#define DXB_REGVAL_USE_INTERRUPTS                  TEXT( "UseInterrupts" )
#define DXB_REGVAL_USE_INTERRUPTS_TYPE             REG_DWORD
#define DXB_REGVAL_USE_INTERRUPTS_DEFAULT          0x0

#define DXB_REGVAL_COM_NUMBER                      TEXT( "ComNumber" )
#define DXB_REGVAL_COM_NUMBER_TYPE                 REG_DWORD
#define DXB_REGVAL_COM_NUMBER_DEFAULT              0x0

//
// Asyn Adapter Parameters
//   
//
// Registry value to enable ISDN call control should be placed at the RegPath
//   SYSTEM\CurrentControlSet\Services\DigiDxbN\Parameters\ASYN (when N is the adapter instance)
//   This setting will apply to all serial ports on the adapter.
#define DXB_REGVAL_ASYN_ISDN_CC                    TEXT( "ISDNCallControl" ) 
#define DXB_REGVAL_ASYN_ISDN_CC_TYPE               REG_DWORD
#define DXB_REGVAL_ASYN_ISDN_CC_ENABLED				1
#define DXB_REGVAL_ASYN_ISDN_CC_DISABLED           0
#define DXB_REGVAL_ASYN_ISDN_CC_DEFAULT            DXB_REGVAL_ASYN_ISDN_CC_DISABLED

// added for NT5
#define DXB_REGVAL_ASYN_PORTNAME                   TEXT( "PortName" )
#define DXB_REGVAL_ASYN_PORTNAME_TYPE              REG_SZ
#define DXB_ASYN_FRIENDLY_NAME                     TEXT( "Digi Communication Port - ")  
#define DXB_REGVAL_ASYN_SDXB_PORT                  TEXT( "SDxbPort" )

// NT5 PAM Agent
#define DXB_DIGIPAMA_SERVICE_NAME TEXT("DIGIPAMA")
#define DXB_DIGIPAMA_SERVICE_DISPLAY_NAME TEXT("DIGIPAMA")
#define DXB_DIGIPAMA_SERVICE_BINARY_PATH TEXT("SYSTEM32\\digipama.exe")


//
// ISDN Line/Port Configuration Parameters
//
#define DXB_REGKEY_ISDN                            DXB_REGVAL_LINE_SERVICE_ISDN

#define DXB_REGVAL_ISDN_LINESPEED                  TEXT( "LineSpeed" )
#define DXB_REGVAL_ISDN_LINESPEED_TYPE             REG_DWORD
#define DXB_REGVAL_ISDN_LINESPEED_DEFAULT          0xfa00
#define DXB_REGVAL_ISDN_MAXSENDWINDOW              TEXT( "MaxSendWindow" )
#define DXB_REGVAL_ISDN_MAXSENDWINDOW_TYPE         REG_DWORD
#define DXB_REGVAL_ISDN_MAXSENDWINDOW_DEFAULT      0x4
#define DXB_REGVAL_ISDN_NUMVC                      TEXT( "NumVC" )
#define DXB_REGVAL_ISDN_NUMVC_TYPE                 REG_DWORD
#define DXB_REGVAL_ISDN_NUMVC_DEFAULT              23

// CSU Fractional T1 Specific Parameters
#define DXB_REGVAL_CSU_FRACT1_CAPABLE              TEXT( "FracT1Capable" )
#define DXB_REGVAL_CSU_FRACT1_CAPABLE_TYPE         REG_DWORD
#define DXB_REGVAL_CSU_FRACT1_CAPABLE_DEFAULT      0x0

#define DXB_REGVAL_CSU_FRACT1_TS_MASK              TEXT( "FracT1TimeSlotMask" )
#define DXB_REGVAL_CSU_FRACT1_TS_MASK_TYPE         REG_DWORD
#define DXB_REGVAL_CSU_FRACT1_TS_MASK_DEFAULT      0x00FFFFFF

#define DXB_REGVAL_CSU_FRACT1_SPD_MASK             TEXT( "FracT1SpeedMask" )
#define DXB_REGVAL_CSU_FRACT1_SPD_MASK_TYPE        REG_DWORD
#define DXB_REGVAL_CSU_FRACT1_SPD_MASK_DEFAULT     0x0

#define DXB_REGVAL_CSU_FRACT1_CKT_MASK             TEXT( "FracT1CircuitMask" )
#define DXB_REGVAL_CSU_FRACT1_CKT_MASK_TYPE        REG_DWORD
#define DXB_REGVAL_CSU_FRACT1_CKT_MASK_DEFAULT     0x00000001

#define DXB_REGVAL_CSU_FRACT1_CKT_COUNT            TEXT( "FracT1CircuitCount" )
#define DXB_REGVAL_CSU_FRACT1_CKT_COUNT_TYPE       REG_DWORD
#define DXB_REGVAL_CSU_FRACT1_CKT_COUNT_DEFAULT    0x00000001

#define DXB_REGKEY_CSU_FRACT1_SINGLE_CKT           DXB_REGKEY_DS1 TEXT("\\0")

#define DXB_REGVAL_LINESPEED                       TEXT( "LineSpeed" )
#define DXB_REGVAL_LINESPEED_TYPE                  REG_DWORD
#define DXB_REGVAL_LINESPEED_DEFAULT               0x0

// PLX 9054 Workaround
#define DXB_REGVAL_PLX_RELOAD_FLAG                 TEXT( "PLX9054ReloadFlag" )
#define DXB_REGVAL_PLX_RELOAD_FLAG_TYPE            REG_DWORD
#define DXB_REGVAL_PLX_RELOAD_FLAG_DEFAULT         0x0


#if NT5_BUILD
#define DXB_REDIRECTPATH_ROOT L"\\Registry\\Machine\\System\\CurrentControlSet\\Control\\Class\\"
#else
#define DXB_REDIRECTPATH_ROOT L"\\Registry\\Machine\\System\\CurrentControlSet\\Services\\"
#endif


#endif