/// <summary> /// Creates a new lockdownd client for the device and starts initial handshake. /// The handshake consists out of query_type, validate_pair, pair and /// start_session calls. It uses the internal pairing record management. /// </summary> /// <param name="device"> /// The device to create a lockdownd client for /// </param> /// <param name="client"> /// The pointer to the location of the new lockdownd_client /// </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> /// LOCKDOWN_E_SUCCESS on success, LOCKDOWN_E_INVALID_ARG when client is NULL, /// LOCKDOWN_E_INVALID_CONF if configuration data is wrong /// </returns> /// <remarks> /// The device disconnects automatically if the lockdown connection idles /// for more than 10 seconds. Make sure to call lockdownd_client_free() as soon /// as the connection is no longer needed. /// </remarks> public virtual LockdownError lockdownd_client_new_with_handshake(iDeviceHandle device, out LockdownClientHandle client, string label) { LockdownError returnValue; returnValue = LockdownNativeMethods.lockdownd_client_new_with_handshake(device, out client, label); client.Api = this.Parent; return(returnValue); }