windows-nt/Source/XPSP1/NT/net/config/netcfg/isdncfg/isdncfg.h
2020-09-26 16:20:57 +08:00

124 lines
3.7 KiB
C

//+---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1997.
//
// File: I S D N C F G . H
//
// Contents: ISDN Wizard/PropertySheet configuration structures
//
// Notes:
//
// Author: jeffspr 14 Jun 1997
//
//----------------------------------------------------------------------------
#pragma once
#include "ncsetup.h"
#include <ras.h>
// ISDN Switch type flags
const DWORD ISDN_SWITCH_NONE = 0x00000000;
const DWORD ISDN_SWITCH_AUTO = 0x00000001;
const DWORD ISDN_SWITCH_ATT = 0x00000002;
const DWORD ISDN_SWITCH_NI1 = 0x00000004;
const DWORD ISDN_SWITCH_NTI = 0x00000008;
const DWORD ISDN_SWITCH_INS64 = 0x00000010;
const DWORD ISDN_SWITCH_1TR6 = 0x00000020;
const DWORD ISDN_SWITCH_VN3 = 0x00000040;
const DWORD ISDN_SWITCH_NET3 = 0x00000080; // retained for backward compatibility
const DWORD ISDN_SWITCH_DSS1 = 0x00000080;
const DWORD ISDN_SWITCH_AUS = 0x00000100;
const DWORD ISDN_SWITCH_BEL = 0x00000200;
const DWORD ISDN_SWITCH_VN4 = 0x00000400;
const DWORD ISDN_SWITCH_NI2 = 0x00000800;
const DWORD ISDN_SWITCH_SWE = 0x00001000;
const DWORD ISDN_SWITCH_ITA = 0x00002000;
const DWORD ISDN_SWITCH_TWN = 0x00004000;
//---[ Structures for ISDN Config info ]--------------------------------------
// Configuration structure for an ISDN B Channel
//
struct _ISDNBChannel
{
WCHAR szSpid[RAS_MaxPhoneNumber + 1];
WCHAR szPhoneNumber[RAS_MaxPhoneNumber + 1];
WCHAR szSubaddress[RAS_MaxPhoneNumber + 1];
};
typedef struct _ISDNBChannel ISDN_B_CHANNEL;
typedef struct _ISDNBChannel * PISDN_B_CHANNEL;
// Configuration structure for an ISDN D Channel. Can contain multiple
// B Channel structures
//
struct _ISDNDChannel
{
DWORD dwNumBChannels;
PWSTR mszMsnNumbers;
PISDN_B_CHANNEL pBChannel;
};
typedef struct _ISDNDChannel ISDN_D_CHANNEL;
typedef struct _ISDNDChannel * PISDN_D_CHANNEL;
// Overall configuration for an ISDN adapter. Can contain multiple
// D Channel structures
//
struct _ISDNConfigInfo
{
DWORD dwWanEndpoints;
DWORD dwNumDChannels;
DWORD dwSwitchTypes;
DWORD dwCurSwitchType;
INT nOldDChannel;
INT nOldBChannel;
BOOL fIsPri; // TRUE if this is a PRI adapter
BOOL fSkipToEnd; // TRUE if we should skip the rest
// of the wizard pages
UINT idd; // Dialog resource ID of wizard page
// we used
PISDN_D_CHANNEL pDChannel;
HDEVINFO hdi;
PSP_DEVINFO_DATA pdeid;
};
typedef struct _ISDNConfigInfo ISDN_CONFIG_INFO;
typedef struct _ISDNConfigInfo * PISDN_CONFIG_INFO;
//---[ Prototypes ]-----------------------------------------------------------
// Read the ISDN registry structure into the config info
//
HRESULT
HrReadIsdnPropertiesInfo(HKEY hkeyISDNBase, HDEVINFO hdi,
PSP_DEVINFO_DATA pdeid,
PISDN_CONFIG_INFO * ppISDNConfig);
// Write the ISDN config info back into the registry
//
HRESULT
HrWriteIsdnPropertiesInfo(HKEY hkeyISDNBase,
PISDN_CONFIG_INFO pISDNConfig);
// Free the structure allocated by HrReadISDNPropertiesInfo
//
VOID
FreeIsdnPropertiesInfo( PISDN_CONFIG_INFO pISDNConfig);
BOOL
FAdapterIsIsdn(HKEY hkeyDriver);
BOOL
FShowIsdnPages(HKEY hkey);
// Set the next, back and cancel buttons depending if we are in GUI setup mode or stand-alone
//
VOID
SetWizardButtons(HWND hWnd, BOOLEAN bFirstPage, PISDN_CONFIG_INFO pISDNConfig);
const DWORD c_cchMaxDChannelName = 3;