Changeset 65698 in vbox for trunk/src/VBox/Main/src-client
- Timestamp:
- Feb 9, 2017 12:28:01 PM (8 years ago)
- svn:sync-xref-src-repo-rev:
- 113406
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Main/src-client/ConsoleImpl2.cpp
r65584 r65698 4830 4830 4831 4831 4832 #ifdef RT_OS_WINDOWS4833 DECLINLINE(bool) IsNdis6(void)4834 {4835 LogFlowFunc(("entry\n"));4836 HANDLE hFile = CreateFile(L"\\\\.\\VBoxNetLwf",4837 0,4838 FILE_SHARE_READ | FILE_SHARE_WRITE,4839 NULL,4840 OPEN_EXISTING,4841 0,4842 NULL);4843 bool fNdis6 = hFile != INVALID_HANDLE_VALUE;4844 if (fNdis6)4845 CloseHandle(hFile);4846 else4847 LogFunc(("CreateFile failed with 0x%x\n", GetLastError()));4848 LogFlowFunc(("return %s\n", fNdis6 ? "true" : "false"));4849 return fNdis6;4850 }4851 #endif /* RT_OS_WINDOWS */4852 4853 4854 4832 /** 4855 4833 * Construct the Network configuration tree … … 5665 5643 # define VBOX_WIN_BINDNAME_PREFIX "\\DEVICE\\" 5666 5644 char szTrunkName[INTNET_MAX_TRUNK_NAME]; 5667 char *pszTrunkName = szTrunkName;5668 wchar_t * p swzBindName;5669 hrc = pAdaptorComponent->Get BindName(&pswzBindName);5645 bool fNdis6 = false; 5646 wchar_t * pwszHelpText; 5647 hrc = pAdaptorComponent->GetHelpText(&pwszHelpText); 5670 5648 Assert(hrc == S_OK); 5671 5649 if (hrc == S_OK) 5672 5650 { 5673 int cwBindName = (int)wcslen(pswzBindName) + 1; 5674 int cbFullBindNamePrefix = sizeof(VBOX_WIN_BINDNAME_PREFIX); 5675 if (sizeof(szTrunkName) > cbFullBindNamePrefix + cwBindName) 5651 Log(("help-text=%ls\n", pwszHelpText)); 5652 if (!wcscmp(pwszHelpText, L"VirtualBox NDIS 6.0 Miniport Driver")) 5653 fNdis6 = true; 5654 CoTaskMemFree(pwszHelpText); 5655 } 5656 if (fNdis6) 5657 { 5658 strncpy(szTrunkName, pszHostOnlyName, sizeof(szTrunkName) - 1); 5659 Log(("trunk=%s\n", szTrunkName)); 5660 } 5661 else 5662 { 5663 char *pszTrunkName = szTrunkName; 5664 wchar_t * pswzBindName; 5665 hrc = pAdaptorComponent->GetBindName(&pswzBindName); 5666 Assert(hrc == S_OK); 5667 if (hrc == S_OK) 5676 5668 { 5677 strcpy(szTrunkName, VBOX_WIN_BINDNAME_PREFIX); 5678 pszTrunkName += cbFullBindNamePrefix-1; 5679 if (!WideCharToMultiByte(CP_ACP, 0, pswzBindName, cwBindName, pszTrunkName, 5680 sizeof(szTrunkName) - cbFullBindNamePrefix + 1, NULL, NULL)) 5669 int cwBindName = (int)wcslen(pswzBindName) + 1; 5670 int cbFullBindNamePrefix = sizeof(VBOX_WIN_BINDNAME_PREFIX); 5671 if (sizeof(szTrunkName) > cbFullBindNamePrefix + cwBindName) 5681 5672 { 5682 DWORD err = GetLastError(); 5683 hrc = HRESULT_FROM_WIN32(err); 5684 AssertLogRelMsgFailed(("NetworkAttachmentType_HostOnly: WideCharToMultiByte failed, hr=%Rhrc (0x%x) err=%u\n", 5685 hrc, hrc, err)); 5673 strcpy(szTrunkName, VBOX_WIN_BINDNAME_PREFIX); 5674 pszTrunkName += cbFullBindNamePrefix-1; 5675 if (!WideCharToMultiByte(CP_ACP, 0, pswzBindName, cwBindName, pszTrunkName, 5676 sizeof(szTrunkName) - cbFullBindNamePrefix + 1, NULL, NULL)) 5677 { 5678 DWORD err = GetLastError(); 5679 hrc = HRESULT_FROM_WIN32(err); 5680 AssertLogRelMsgFailed(("NetworkAttachmentType_HostOnly: WideCharToMultiByte failed, hr=%Rhrc (0x%x) err=%u\n", 5681 hrc, hrc, err)); 5682 } 5683 } 5684 else 5685 { 5686 AssertLogRelMsgFailed(("NetworkAttachmentType_HostOnly: insufficient szTrunkName buffer space\n")); 5687 /** @todo set appropriate error code */ 5688 hrc = E_FAIL; 5689 } 5690 5691 if (hrc != S_OK) 5692 { 5693 AssertFailed(); 5694 CoTaskMemFree(pswzBindName); 5695 VBoxNetCfgWinReleaseINetCfg(pNc, FALSE /*fHasWriteLock*/); 5696 H(); 5686 5697 } 5687 5698 } 5688 5699 else 5689 5700 { 5690 AssertLogRelMsgFailed(("NetworkAttachmentType_HostOnly: insufficient szTrunkName buffer space\n"));5691 /** @todo set appropriate error code */5692 hrc = E_FAIL;5693 }5694 5695 if (hrc != S_OK)5696 {5697 AssertFailed();5698 CoTaskMemFree(pswzBindName);5699 5701 VBoxNetCfgWinReleaseINetCfg(pNc, FALSE /*fHasWriteLock*/); 5702 AssertLogRelMsgFailed(("NetworkAttachmentType_HostOnly: VBoxNetCfgWinGetComponentByGuid failed, hrc=%Rhrc (0x%x)\n", 5703 hrc, hrc)); 5700 5704 H(); 5701 5705 } 5702 } 5703 else 5704 { 5705 VBoxNetCfgWinReleaseINetCfg(pNc, FALSE /*fHasWriteLock*/); 5706 AssertLogRelMsgFailed(("NetworkAttachmentType_HostOnly: VBoxNetCfgWinGetComponentByGuid failed, hrc=%Rhrc (0x%x)\n", 5707 hrc, hrc)); 5708 H(); 5709 } 5710 5711 5712 CoTaskMemFree(pswzBindName); 5713 5714 /* The old NDIS5.1 version of driver uses TRUNKTYPE_NETADP */ 5715 trunkType = IsNdis6() ? TRUNKTYPE_NETFLT : TRUNKTYPE_NETADP; 5716 InsertConfigInteger(pCfg, "TrunkType", trunkType == TRUNKTYPE_NETFLT ? kIntNetTrunkType_NetFlt : kIntNetTrunkType_NetAdp); 5706 5707 5708 CoTaskMemFree(pswzBindName); 5709 } 5710 5711 trunkType = TRUNKTYPE_NETADP; 5712 InsertConfigInteger(pCfg, "TrunkType", kIntNetTrunkType_NetAdp); 5717 5713 5718 5714 pAdaptorComponent.setNull();
Note:
See TracChangeset
for help on using the changeset viewer.