Код: Выделить всё
[StructLayout(LayoutKind.Sequential)]
public struct DEV_BROADCAST_DEVICEINTERFACE
{
public int dbcc_size;
public int dbcc_devicetype;
public int dbcc_reserved;
public Guid dbcc_classguid;
[MarshalAs(UnmanagedType.LPStr)]
public string dbcc_name;
}
Должно ли это работать?
Или еще лучше... Есть ли альтернативный способ получить имя устройства при подключении?
РЕДАКТИРОВАТЬ (05.02.2010 20:56GMT):
Я узнал, как заполнить поле dbcc_name, выполнив это:
Код: Выделить всё
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
public struct DEV_BROADCAST_DEVICEINTERFACE
{
public int dbcc_size;
public int dbcc_devicetype;
public int dbcc_reserved;
public Guid dbcc_classguid;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst=255)]
public string dbcc_name;
}
\?\USB#VID_05AC&PID_1294&MI_00#0#{6bdd1fc6-810f-11d0-bec7-08002be2092f
И я действительно просто хочу, чтобы это сказало «Apple iPhone» (именно это устройство в данном случае).