Windows.Devices.Enumeration DeviceWatcher не находит все службы с несколькими сетевыми картами

У меня проблемы с Windows.Devices.Enumeration и его DeviceWatcher с DN-SD с C ++ / WinRT.
У меня есть 2 сетевые карты в моих машинах, и только те службы на машинах, подключенных через первую карту, найдены.

Это происходит как в моей собственной тестовой программе, так и когда я расширяю пример программы DeviceEnumeration в «Универсальных примерах Windows» Microsoft, чтобы включить DNS-SD, например, добавить к DeviceSelectorChoices в Samples / DeviceEnumerationAndPairing / cpp / DisplayHelpers.h

static property DeviceSelectorInfo^ Dnssd
{
DeviceSelectorInfo^ get();
}

и в Samples / DeviceEnumerationAndPairing / cpp / DisplayHelpers.cpp вставьте

DeviceSelectorInfo^ DeviceSelectorChoices::Dnssd::get()
{
return ref new DeviceSelectorInfo("DNS-SD",
DeviceClass::All,
"System.Devices.AepService.ProtocolId:=\"{4526e8c1-8aac-4153-9b16-55e86ada0e54}\" ""AND System.Devices.Dnssd.ServiceName:=\"_myservice._tcp\"",
DeviceInformationKind::AssociationEndpointService);
}

в Samples / DeviceEnumerationAndPairing / cpp / DisplayHelpers.cpp и обновите метод:

IVectorView<DeviceSelectorInfo^>^ DeviceSelectorChoices::DeviceWatcherSelectors::get()
{
Vector<DeviceSelectorInfo^>^ selectors = ref new Vector<DeviceSelectorInfo^>(begin(CommonDeviceSelectors), end(CommonDeviceSelectors));
selectors->Append(Dnssd);
...

Затем скомпилируйте, запустите и выберите DNS-SD из наблюдателя устройства — он находит сервисы только на машинах с подключением в подсети первого сетевого интерфейса, даже если он подключен во второй подсети. Но в нем не перечислены сервисы, которые работают на машинах только во второй сети.

Использование инструмента командной строки dns-sd находит все объявленные сервисы в обеих сетях:

dns-sd -B _myservice._tcp

Я пробовал много вариантов AQSFilter, думая, что он, возможно, не использует по умолчанию оба сетевых интерфейса — например, используя System.Devices.Dnssd.NetworkAdapterId — но не радость.

Я думаю, что это также возможно, что-то ниже в Windows, чем API перечисления устройств ..?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]