Tag: device instance id

如何从DEV_BROADCAST_DEVICEINTERFACE和设备实例ID获取友好设备名称

我已经使用RegisterDeviceNotification注册了一个窗口,并且可以成功接收DEV_BROADCAST_DEVICEINTERFACE消息。 但是,返回的结构中的dbcc_name字段始终为空。 我所拥有的结构定义如下: [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; } 我在WM_DEVICECHANGE消息的LParam上使用Marshal.PtrToStructure 。 这应该有用吗? 或者甚至更好……是否有另一种方法可以在连接时获取设备的名称? 编辑(02/05/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 […]