Beispiel #1
0
        private static bool GetDeviceDetails(IntPtr info, SP_DEVICE_INTERFACE_DATA deviceInfoData, out SP_DEVICE_INTERFACE_DETAIL_DATA details)
        {
            bool hasMore;
            int  required_size = 0;

            SetupDiGetDeviceInterfaceDetail(info, ref deviceInfoData, NULL, 0, ref required_size, NULL);
            details = new SP_DEVICE_INTERFACE_DETAIL_DATA();
            if (IntPtr.Size == 8)
            {
                details.cbSize = 8;
            }
            else if (IntPtr.Size == 4)
            {
                details.cbSize = 5;
            }

            hasMore = SetupDiGetDeviceInterfaceDetail(info, ref deviceInfoData, ref details, required_size, ref required_size, IntPtr.Zero);
            if (!hasMore)
            {
                return(true);
            }
            return(false);
        }
Beispiel #2
0
 private static extern bool SetupDiGetDeviceInterfaceDetail(IntPtr DeviceInfoSet, ref SP_DEVICE_INTERFACE_DATA DeviceInterfaceData, ref SP_DEVICE_INTERFACE_DETAIL_DATA DeviceInterfaceDetailData, int DeviceInterfaceDetailDataSize,
                                                            ref int RequiredSize, IntPtr DeviceInfoData);