/// <summary> /// Creates a new <see cref="DeviceHandle"/> from a <see cref="IntPtr"/>. /// </summary> /// <param name="unsafeHandle"> /// The underlying <see cref="IntPtr"/> /// </param> /// <param name="ownsHandle"> /// <see langword="true"/> to reliably release the handle during the finalization phase; <see langword="false"/> to prevent reliable release (not recommended). /// </param> /// <returns> /// </returns> public static DeviceHandle DangerousCreate(IntPtr unsafeHandle, bool ownsHandle) { DeviceHandle safeHandle = new DeviceHandle(ownsHandle); safeHandle.SetHandle(unsafeHandle); return(safeHandle); }
public static extern Error SetAutoDetachKernelDriver(DeviceHandle devHandle, int enable);
public static extern Error AttachKernelDriver(DeviceHandle devHandle, int interfaceNumber);
public static extern int KernelDriverActive(DeviceHandle devHandle, int interfaceNumber);
public static extern Error DevMemFree(DeviceHandle devHandle, byte *buffer, UIntPtr length);
public static extern Device GetDevice(DeviceHandle devHandle);
/// <summary> /// Creates a new <see cref="DeviceHandle"/> from a <see cref="IntPtr"/>. /// </summary> /// <param name="unsafeHandle"> /// The underlying <see cref="IntPtr"/> /// </param> /// <returns> /// </returns> public static DeviceHandle DangerousCreate(IntPtr unsafeHandle) { return(DeviceHandle.DangerousCreate(unsafeHandle, true)); }
public static extern Error GetStringDescriptorAscii(DeviceHandle devHandle, byte descIndex, byte *data, int length);
public static extern Error ResetDevice(DeviceHandle devHandle);
public static extern Error ClearHalt(DeviceHandle devHandle, byte endpoint);
public static extern Error SetInterfaceAltSetting(DeviceHandle devHandle, int interfaceNumber, int alternateSetting);
public static extern Error ReleaseInterface(DeviceHandle devHandle, int interfaceNumber);
public static extern Error ClaimInterface(DeviceHandle devHandle, int interfaceNumber);
public static extern Error SetConfiguration(DeviceHandle devHandle, int configuration);
public static extern int ControlTransfer(DeviceHandle devHandle, byte requestType, byte brequest, ushort wvalue, ushort windex, byte *data, ushort wlength, uint timeout);
public static extern Error InterruptTransfer(DeviceHandle devHandle, byte endpoint, byte *data, int length, ref int actualLength, uint timeout);
public static extern Error AllocStreams(DeviceHandle devHandle, uint numStreams, byte *endpoints, int numEndpoints);
public static extern Error GetConfiguration(DeviceHandle dev, ref int config);
public static extern Error FreeStreams(DeviceHandle devHandle, byte *endpoints, int numEndpoints);
public static extern byte *DevMemAlloc(DeviceHandle devHandle, UIntPtr length);
public static extern Error GetBosDescriptor(DeviceHandle devHandle, BosDescriptor **bos);