/// <summary> /// Creates a new <see cref="FileRelayClientHandle"/> 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 FileRelayClientHandle DangerousCreate(System.IntPtr unsafeHandle, bool ownsHandle) { FileRelayClientHandle safeHandle = new FileRelayClientHandle(ownsHandle); safeHandle.SetHandle(unsafeHandle); return(safeHandle); }
/// <summary> /// Request data for the given sources. Calls file_relay_request_sources_timeout() with /// a timeout of 60000 milliseconds (60 seconds). /// </summary> /// <param name="client"> /// The connected file_relay client. /// </param> /// <param name="sources"> /// A NULL-terminated list of sources to retrieve. /// Valid sources are: /// - AppleSupport /// - Network /// - VPN /// - WiFi /// - UserDatabases /// - CrashReporter /// - tmp /// - SystemConfiguration /// </param> /// <param name="connection"> /// The connection that has to be used for receiving the /// data using idevice_connection_receive(). The connection will be closed /// automatically by the device, but use file_relay_client_free() to clean /// up properly. /// </param> /// <returns> /// FILE_RELAY_E_SUCCESS on succes, FILE_RELAY_E_INVALID_ARG when one or /// more parameters are invalid, FILE_RELAY_E_MUX_ERROR if a communication /// error occurs, FILE_RELAY_E_PLIST_ERROR when the received result is NULL /// or is not a valid plist, FILE_RELAY_E_INVALID_SOURCE if one or more /// sources are invalid, FILE_RELAY_E_STAGING_EMPTY if no data is available /// for the given sources, or FILE_RELAY_E_UNKNOWN_ERROR otherwise. /// </returns> /// <remarks> /// WARNING: Don't call this function without reading the data afterwards. /// A directory mobile_file_relay.XXXX used for creating the archive will /// remain in the /tmp directory otherwise. /// </remarks> public virtual FileRelayError file_relay_request_sources_timeout(FileRelayClientHandle client, out string sources, out iDeviceConnectionHandle connection, uint timeout) { FileRelayError returnValue; returnValue = FileRelayNativeMethods.file_relay_request_sources_timeout(client, out sources, out connection, timeout); connection.Api = this.Parent; return(returnValue); }
public static FileRelayError file_relay_request_sources_timeout(FileRelayClientHandle client, out string sources, out iDeviceConnectionHandle connection, uint timeout) { System.Runtime.InteropServices.ICustomMarshaler sourcesMarshaler = NativeStringMarshaler.GetInstance(null); System.IntPtr sourcesNative = System.IntPtr.Zero; FileRelayError returnValue = FileRelayNativeMethods.file_relay_request_sources_timeout(client, out sourcesNative, out connection, timeout); sources = ((string)sourcesMarshaler.MarshalNativeToManaged(sourcesNative)); sourcesMarshaler.CleanUpNativeData(sourcesNative); return(returnValue); }
/// <summary> /// Creates a new <see cref="FileRelayClientHandle"/> from a <see cref="IntPtr"/>. /// </summary> /// <param name="unsafeHandle"> /// The underlying <see cref="IntPtr"/> /// </param> /// <returns> /// </returns> public static FileRelayClientHandle DangerousCreate(System.IntPtr unsafeHandle) { return(FileRelayClientHandle.DangerousCreate(unsafeHandle, true)); }
/// <summary> /// Starts a new file_relay service on the specified device and connects to it. /// </summary> /// <param name="device"> /// The device to connect to. /// </param> /// <param name="client"> /// Pointer that will point to a newly allocated /// file_relay_client_t upon successful return. Must be freed using /// file_relay_client_free() after use. /// </param> /// <param name="label"> /// The label to use for communication. Usually the program name. /// Pass NULL to disable sending the label in requests to lockdownd. /// </param> /// <returns> /// FILE_RELAY_E_SUCCESS on success, or an FILE_RELAY_E_* error /// code otherwise. /// </returns> public virtual FileRelayError file_relay_client_start_service(iDeviceHandle device, out FileRelayClientHandle client, string label) { FileRelayError returnValue; returnValue = FileRelayNativeMethods.file_relay_client_start_service(device, out client, label); client.Api = this.Parent; return(returnValue); }
/// <summary> /// Connects to the file_relay service on the specified device. /// </summary> /// <param name="device"> /// The device to connect to. /// </param> /// <param name="service"> /// The service descriptor returned by lockdownd_start_service. /// </param> /// <param name="client"> /// Reference that will point to a newly allocated /// file_relay_client_t upon successful return. /// </param> /// <returns> /// FILE_RELAY_E_SUCCESS on success, /// FILE_RELAY_E_INVALID_ARG when one of the parameters is invalid, /// or FILE_RELAY_E_MUX_ERROR when the connection failed. /// </returns> public virtual FileRelayError file_relay_client_new(iDeviceHandle device, LockdownServiceDescriptorHandle service, out FileRelayClientHandle client) { FileRelayError returnValue; returnValue = FileRelayNativeMethods.file_relay_client_new(device, service, out client); client.Api = this.Parent; return(returnValue); }
public static extern FileRelayError file_relay_client_start_service(iDeviceHandle device, out FileRelayClientHandle client, [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.LPStr)] string label);
public static extern FileRelayError file_relay_client_new(iDeviceHandle device, LockdownServiceDescriptorHandle service, out FileRelayClientHandle client);
public static extern FileRelayError file_relay_request_sources_timeout(FileRelayClientHandle client, out System.IntPtr sources, out iDeviceConnectionHandle connection, uint timeout);
public object MarshalNativeToManaged(System.IntPtr nativeData) { return(FileRelayClientHandle.DangerousCreate(nativeData, false)); }