/// <summary> /// Initializes a new instance of the <see cref="DeviceInterfaceDetail"/> class. /// </summary> /// <param name="deviceInformationSetHandle"> /// The device Information Set Handle. /// </param> /// <param name="size"> /// The size. /// </param> /// <param name="marshalWrapper"> /// The marshal Wrapper. /// </param> /// <param name="deviceInfoDataFactory"> /// The device Info Data Factory. /// </param> /// <param name="unsafeNativeMethodsWrapper"> /// The unsafe Native Methods Wrapper. /// </param> public DeviceInterfaceDetail( IntPtr deviceInformationSetHandle, int size, IMarshalWrapper marshalWrapper, IDeviceInfoDataFactory deviceInfoDataFactory, IUnsafeNativeMethodsWrapper unsafeNativeMethodsWrapper) { _deviceInformationSetHandle = deviceInformationSetHandle; DeviceInfoData = deviceInfoDataFactory.Create(); _marshalWrapper = marshalWrapper; _unsafeNativeMethodsWrapper = unsafeNativeMethodsWrapper; DeviceInterfaceDetailBuffer = Marshal.AllocHGlobal(size); _marshalWrapper.WriteInteger32(DeviceInterfaceDetailBuffer, (IntPtr.Size == 4) ? (4 + Marshal.SystemDefaultCharSize) : 8); }
/// <summary> /// Initializes a new instance of the <see cref="UnsafeNativeMethodsWrapper"/> class. /// </summary> /// <param name="marshalWrapper"> /// The marshal wrapper. /// </param> /// <param name="deviceInformationElementFactory"> /// The device Information Element Factory. /// </param> /// <param name="deviceInfoDataFactory"> /// The device Info Data Factory. /// </param> /// <param name="deviceInterfaceDataFactory"> /// The device Interface Data Factory. /// </param> /// <param name="deviceInterfaceFactory"> /// The device Interface Factory. /// </param> /// <param name="deviceInterfaceDetailFactory"> /// The device Interface Detail Factory. /// </param> /// <param name="devicePropertyFactory"> /// The device Property Factory. /// </param> public UnsafeNativeMethodsWrapper( IMarshalWrapper marshalWrapper, IDeviceInformationElementFactory deviceInformationElementFactory, IDeviceInfoDataFactory deviceInfoDataFactory, IDeviceInterfaceDataFactory deviceInterfaceDataFactory, IDeviceInterfaceFactory deviceInterfaceFactory, IDeviceInterfaceDetailFactory deviceInterfaceDetailFactory, IDevicePropertyFactory devicePropertyFactory) { _marshalWrapper = marshalWrapper; _deviceInformationElementFactory = deviceInformationElementFactory; _deviceInfoDataFactory = deviceInfoDataFactory; _deviceInterfaceDataFactory = deviceInterfaceDataFactory; _deviceInterfaceFactory = deviceInterfaceFactory; _deviceInterfaceDetailFactory = deviceInterfaceDetailFactory; _devicePropertyFactory = devicePropertyFactory; }