Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
//
// Broadbnd.cpp
//
// Code for keeping track of which NIC is the user's broadband NIC.
// NOTE: this may be replaced by standard ICS APIs.
//
// History:
//
// 9/29/1999 KenSh Created from JetNet sources
// 11/03/1999 KenSh Fixed so it uses proper registry keys
//
#include "stdafx.h"
#include "NetConn.h"
#include "nconnwrap.h"
static const TCHAR c_szAppRegKey[] = _T("Software\\Microsoft\\Windows\\CurrentVersion\\HomeNetWizard"); static const TCHAR c_szRegVal_Broadband[] = _T("BroadbandAdapter");
// Did the user pick this adapter as their broadband connection either in Setup
// or in the diagnostic app?
BOOL WINAPI IsAdapterBroadband(const NETADAPTER* pAdapter) { CRegistry reg; if (!reg.OpenKey(HKEY_LOCAL_MACHINE, c_szAppRegKey, KEY_READ)) { return (pAdapter->bIcsStatus == ICS_EXTERNAL); }
if (pAdapter->bNicType == NIC_VIRTUAL || pAdapter->bNetType != NETTYPE_LAN) return FALSE; // not an ethernet NIC, therefore not broadband
TCHAR szAdapterNumber[20]; if (reg.QueryStringValue(c_szRegVal_Broadband, szAdapterNumber, _countof(szAdapterNumber))) { return (0 == lstrcmpi(FindFileTitle(pAdapter->szClassKey), szAdapterNumber)); } else { return FALSE; } }
// Saves info about the user's broadband selection into the registry
// Adapter number is FindFileTitle(pAdapter->szClassKey)
void WINAPI SaveBroadbandSettings(LPCSTR pszBroadbandAdapterNumber) { CRegistry reg; if (reg.CreateKey(HKEY_LOCAL_MACHINE, c_szAppRegKey)) { // No high speed connection? then don't save one.
if (pszBroadbandAdapterNumber == NULL || *pszBroadbandAdapterNumber == _T('\0')) { reg.DeleteValue(c_szRegVal_Broadband); } else { // Save the enum key of the NIC we want to use
reg.SetStringValue(c_szRegVal_Broadband, pszBroadbandAdapterNumber); } } }
#if 0 // old JetNet function not used by Home Networking Wizard
// Loads current broadband settings from the registry, and updates the registry
// if we now have more information about a recently installed broadband NIC
BOOL WINAPI UpdateBroadbandSettings(LPTSTR pszEnumKeyBuf, int cchEnumKeyBuf) { ASSERT(pszEnumKeyBuf != NULL); *pszEnumKeyBuf = '\0';
CRegistry reg; if (reg.OpenKey(HKEY_LOCAL_MACHINE, c_szBroadbandRegKey)) { if (reg.QueryStringValue("BroadbandYes", pszEnumKeyBuf, cchEnumKeyBuf)) goto done; // we already have a particular broadband NIC selected
NETADAPTER* prgAdapters; int cAdapters = EnumNetAdapters(&prgAdapters); NETADAPTER* pBroadbandAdapter = NULL; for (int iAdapter = 0; iAdapter < cAdapters; iAdapter++) { NETADAPTER* pAdapter = &prgAdapters[iAdapter]; if (IsAdapterBroadband(pAdapter)) { pBroadbandAdapter = pAdapter; break; } } if (pBroadbandAdapter != NULL) { SaveBroadbandSettings(pBroadbandAdapter->szEnumKey); lstrcpyn(pszEnumKeyBuf, pBroadbandAdapter->szEnumKey, cchEnumKeyBuf); } NetConnFree(prgAdapters); }
done: return (*pszEnumKeyBuf != '\0'); } #endif // 0
|