```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());
}
}
}
```