Я пытаюсь перечислить подключенные портативные устройства в Windows, используя Windows Portable Devices API и PortableDeviceManager, предоставляемые этим API.
Я реализовал перечисление идентификаторов устройств по ссылке документации MSDN и различным блогам по ссылке , но все они приводят к одной и той же проблеме - я могу получить его только для получения идентификатора одного устройства, когда их несколько.
Вот фрагмент кода C #, который я использую:
PortableDeviceManagerClass deviceManager = new PortableDeviceManagerClass();
deviceManager.RefreshDeviceList();
uint numberOfDevices = 1;
deviceManager.GetDevices(null, ref numberOfDevices);
if (numberOfDevices == 0)
{
return new string[0];
}
string [] deviceIds = new string[numberOfDevices];
deviceManager.GetDevices(ref deviceIds[0], ref numberOfDevices);
return deviceIds;
У меня есть два устройства, подключенных к моему компьютеру, одна съемная карта памяти USB и одна цифровая камера. Когда оба активны, будет возвращен только идентификатор устройства моей камеры. Когда я выключаю камеру, возвращается идентификатор съемного USB-накопителя.
Есть ли кто-нибудь, имеющий опыт работы с этим API, который может указать мне на то, что я делаю неправильно?