```c#
SetupApi.SafeDeviceInfoSetHandle deviceHandle=SetupApi.SetupDiGetClassDevs(guid,"",IntPtr.Zero, SetupApi.GetClassDevsFlags.DIGCF_DEVICEINTERFACE|SetupApi.GetClassDevsFlags.DIGCF_PROFILE);
SetupApi.SP_DEVICE_INTERFACE_DATA sP_DEVICE_INTERFACE_DATA = new SetupApi.SP_DEVICE_INTERFACE_DATA();
sP_DEVICE_INTERFACE_DATA.Size = Marshal.SizeOf(sP_DEVICE_INTERFACE_DATA);
IntPtr intptr = Marshal.AllocHGlobal(1024);
for (int i = 0; i < 1; i++) {
if (SetupApi.SetupDiEnumDeviceInterfaces(deviceHandle,IntPtr.Zero, ref guid,i, ref sP_DEVICE_INTERFACE_DATA)) {
if (!SetupApi.SetupDiGetDeviceInterfaceDetail(deviceHandle, ref sP_DEVICE_INTERFACE_DATA,IntPtr.Zero,0,intptr,IntPtr.Zero)) {
SetupApi.SP_DEVICE_INTERFACE_DETAIL_DATA oDevInterfaceDetailedData;
oDevInterfaceDetailedData.cbSize = SetupApi.SP_DEVICE_INTERFACE_DETAIL_DATA.ReportableStructSize;
IntPtr devInt = Marshal.AllocHGlobal(Marshal.SizeOf(oDevInterfaceDetailedData.cbSize));
Marshal.StructureToPtr(oDevInterfaceDetailedData,devInt,false);
int nRequiredSize =Marshal.ReadInt32(intptr,0);
Marshal.FreeHGlobal(intptr);
if (SetupApi.SetupDiGetDeviceInterfaceDetail(deviceHandle,ref sP_DEVICE_INTERFACE_DATA,devInt,nRequiredSize,IntPtr.Zero,IntPtr.Zero))
{
oDevInterfaceDetailedData = (SetupApi.SP_DEVICE_INTERFACE_DETAIL_DATA)Marshal.PtrToStructure(devInt,typeof(SetupApi.SP_DEVICE_INTERFACE_DETAIL_DATA));
//string str=new string(oDevInterfaceDetailedData.DevicePath);
Marshal.FreeHGlobal(devInt);
deviceHandle.Dispose();
}
MessageBox.Show(Marshal.GetLastWin32Error().ToString());
}
}
}
```
你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答
本次提问扣除的有问必答次数,将会以问答VIP体验卡(1次有问必答机会、商城购买实体图书享受95折优惠)的形式为您补发到账户。
因为有问必答VIP体验卡有效期仅有1天,您在需要使用的时候【私信】联系我,我会为您补发。