NICがブリッジ設定画面のLAN Adapter一覧に表示されない

SoftEther VPN に関するご質問はこのフォーラムにお気軽にご投稿ください。
Post Reply
hiura
Posts: 143
Joined: Wed Mar 10, 2021 1:56 am

NICがブリッジ設定画面のLAN Adapter一覧に表示されない

Post by hiura » Thu Mar 07, 2024 1:01 am

「NICがブリッジ設定画面のLAN Adapter一覧に表示されない」について

SuAdapterInfoToAdapterList()関数内で、
info->FriendlyName[0]がNULL文字の為、IsEmptyStr(info->FriendlyName)で参照され、チェックがTRUEとなり、
エラーとして処理され、VPN SERVER管理のLocal Bridge Settings画面のlAN Adapter一覧リストに表示されません。

FriendlyNameはどこで定義されているのでしょうか?
ドライバーSeLow.c?であれば、どこで行っているのですか?
それとも他の場所?

ドライバー SeLow_x64.sys は Softether Lightweight Network ProtocolでソースコードはSeLow.cとの理解です。

以上よろしくお願いします。


NULLチェック関数:
・FILE:Cedar\SeLowUser.c

Code: Select all

// Create an adapters list
LIST *SuGetAdapterList(SU *u)
{
	LIST *ret;
	UINT read_size;
	UINT i;
	// Validate arguments
	if (u == NULL)
	{
		return NULL;
	}

	ret = NewList(SuCmpAdapterList);

	// Enumerate adapters
	Zero(&u->AdapterInfoList, sizeof(u->AdapterInfoList));
	if (ReadFile(u->hFile, &u->AdapterInfoList, sizeof(u->AdapterInfoList),
		&read_size, NULL) == false ||
		u->AdapterInfoList.Signature != SL_SIGNATURE)
	{
		SuFreeAdapterList(ret);
		return NULL;
	}

	for (i = 0;i < u->AdapterInfoList.NumAdapters;i++)
	{
		SL_ADAPTER_INFO *info = &u->AdapterInfoList.Adapters[i];
		SU_ADAPTER_LIST *a = SuAdapterInfoToAdapterList(info);	<-----SuAdapterInfoToAdapterList()内でIsEmptyStr(info->FriendlyName)チェック

		if (a != NULL)
		{
			Add(ret, a);
		}
	}

	// Sort
	Sort(ret);

	return ret;
}

// Create an adapter list item
SU_ADAPTER_LIST *SuAdapterInfoToAdapterList(SL_ADAPTER_INFO *info)
{
	SU_ADAPTER_LIST t;
	char tmp[MAX_SIZE];
	// Validate arguments
	if (info == NULL)
	{
		return NULL;
	}

	Zero(&t, sizeof(t));
	Copy(&t.Info, info, sizeof(SL_ADAPTER_INFO));

	UniToStr(tmp, sizeof(tmp), info->AdapterId);
	if (IsEmptyStr(tmp) || IsEmptyStr(info->FriendlyName) || StartWith(tmp, SL_ADAPTER_ID_PREFIX) == false) <----IsEmptyStr(info->FriendlyName)
	{
		// Name is invalid
		return NULL;
	}

	// GUID (Part after "SELOW_A_" prefix)
	StrCpy(t.Guid, sizeof(t.Guid), tmp + StrLen(SL_ADAPTER_ID_PREFIX));

	// Name
	StrCpy(t.Name, sizeof(t.Name), tmp);

	// Key for sort
	if (GetClassRegKeyWin32(t.SortKey, sizeof(t.SortKey), tmp, sizeof(tmp), t.Guid) == false)
	{
		// Can not be found
		return NULL;
	}

	return Clone(&t, sizeof(t));
}
実行環境は以下の通りです。

使用OS:
・WIN11 PRO (WIN11未対応PCのWIN10をWIN11に自己責任でUPDATEした)

使用VPN:
・SOFTETHER VPN DEVELOPER EDITION VERSION 5.02

使用NIC:
・ANKER
・USB3.0 TO GIGABIT ETHERNET ADAPTER
・MODEL A7611
USB_LAN_DRV_20240307.png
USB_LAN_PID_20240307.png
You do not have the required permissions to view the files attached to this post.
Last edited by hiura on Sat Mar 09, 2024 6:58 am, edited 7 times in total.

cedar
Site Admin
Posts: 2081
Joined: Sat Mar 09, 2013 5:37 am

Re: Selow(SeLow_x64.sys)について

Post by cedar » Thu Mar 07, 2024 10:30 am

どういう処理なのか十分に理解していないのですが、安定版の方では FriendlyName が空白だった場合の処理が書かれているようです。

https://github.com/SoftEtherVPN/SoftEth ... ser.c#L849

hiura
Posts: 143
Joined: Wed Mar 10, 2021 1:56 am

Re: Selow(SeLow_x64.sys)について

Post by hiura » Fri Mar 08, 2024 1:37 am

「NICによってはブリッジ設定画面のLAN Adapter一覧に表示されない場合がある。」について、
安定版は不具合を認識していたこと理解しました。

Post Reply