<?xml version="1.0"?>
<doc>
    <assembly>
        <name>iMobileDevice-net</name>
    </assembly>
    <members>
        <member name="F:iMobileDevice.Afc.AfcApi.parent">
            <summary>
            Backing field for the <see cref="P:iMobileDevice.Afc.AfcApi.Parent"/> property
            </summary>
        </member>
        <member name="M:iMobileDevice.Afc.AfcApi.#ctor(iMobileDevice.ILibiMobileDevice)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Afc.AfcApi"/> class
            </summary>
            <param name="parent">
            The <see cref="!:ILibiMobileDeviceApi"/> which owns this <see cref="N:iMobileDevice.Afc"/>.
            </param>
        </member>
        <member name="P:iMobileDevice.Afc.AfcApi.Parent">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.Afc.AfcApi.afc_client_new(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Lockdown.LockdownServiceDescriptorHandle,iMobileDevice.Afc.AfcClientHandle@)">
            <summary>
            Makes a connection to the AFC service on the 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">
            Pointer that will be set to a newly allocated afc_client_t
            upon successful return.
            </param>
            <returns>
            AFC_E_SUCCESS on success, AFC_E_INVALID_ARG if device or service is
            invalid, AFC_E_MUX_ERROR if the connection cannot be established,
            or AFC_E_NO_MEM if there is a memory allocation problem.
            </returns>
        </member>
        <member name="M:iMobileDevice.Afc.AfcApi.afc_client_start_service(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Afc.AfcClientHandle@,System.String)">
            <summary>
            Starts a new AFC 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 afc_client_t upon
            successful return. Must be freed using afc_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>
            AFC_E_SUCCESS on success, or an AFC_E_* error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Afc.AfcApi.afc_client_free(System.IntPtr)">
            <summary>
            Frees up an AFC client. If the connection was created by the client itself,
            the connection will be closed.
            </summary>
            <param name="client">
            The client to free.
            </param>
        </member>
        <member name="M:iMobileDevice.Afc.AfcApi.afc_get_device_info(iMobileDevice.Afc.AfcClientHandle,System.Collections.ObjectModel.ReadOnlyCollection{System.String}@)">
            <summary>
            Get device information for a connected client. The device information
            returned is the device model as well as the free space, the total capacity
            and blocksize on the accessed disk partition.
            </summary>
            <param name="client">
            The client to get device info for.
            </param>
            <param name="device_information">
            A char list of device information terminated by an
            empty string or NULL if there was an error. Free with
            afc_dictionary_free().
            </param>
            <returns>
            AFC_E_SUCCESS on success or an AFC_E_* error value.
            </returns>
        </member>
        <member name="M:iMobileDevice.Afc.AfcApi.afc_read_directory(iMobileDevice.Afc.AfcClientHandle,System.String,System.Collections.ObjectModel.ReadOnlyCollection{System.String}@)">
            <summary>
            Gets a directory listing of the directory requested.
            </summary>
            <param name="client">
            The client to get a directory listing from.
            </param>
            <param name="path">
            The directory for listing. (must be a fully-qualified path)
            </param>
            <param name="directory_information">
            A char list of files in the directory
            terminated by an empty string or NULL if there was an error. Free with
            afc_dictionary_free().
            </param>
            <returns>
            AFC_E_SUCCESS on success or an AFC_E_* error value.
            </returns>
        </member>
        <member name="M:iMobileDevice.Afc.AfcApi.afc_get_file_info(iMobileDevice.Afc.AfcClientHandle,System.String,System.Collections.ObjectModel.ReadOnlyCollection{System.String}@)">
            <summary>
            Gets information about a specific file.
            </summary>
            <param name="client">
            The client to use to get the information of the file.
            </param>
            <param name="filename">
            The fully-qualified path to the file.
            </param>
            <param name="file_information">
            Pointer to a buffer that will be filled with a
            NULL-terminated list of strings with the file information. Set to NULL
            before calling this function. Free with afc_dictionary_free().
            </param>
            <returns>
            AFC_E_SUCCESS on success or an AFC_E_* error value.
            </returns>
        </member>
        <member name="M:iMobileDevice.Afc.AfcApi.afc_file_open(iMobileDevice.Afc.AfcClientHandle,System.String,iMobileDevice.Afc.AfcFileMode,System.UInt64@)">
            <summary>
            Opens a file on the device.
            </summary>
            <param name="client">
            The client to use to open the file.
            </param>
            <param name="filename">
            The file to open. (must be a fully-qualified path)
            </param>
            <param name="file_mode">
            The mode to use to open the file.
            </param>
            <param name="handle">
            Pointer to a uint64_t that will hold the handle of the file
            </param>
            <returns>
            AFC_E_SUCCESS on success or an AFC_E_* error value.
            </returns>
        </member>
        <member name="M:iMobileDevice.Afc.AfcApi.afc_file_close(iMobileDevice.Afc.AfcClientHandle,System.UInt64)">
            <summary>
            Closes a file on the device.
            </summary>
            <param name="client">
            The client to close the file with.
            </param>
            <param name="handle">
            File handle of a previously opened file.
            </param>
        </member>
        <member name="M:iMobileDevice.Afc.AfcApi.afc_file_lock(iMobileDevice.Afc.AfcClientHandle,System.UInt64,iMobileDevice.Afc.AfcLockOp)">
            <summary>
            Locks or unlocks a file on the device.
            Makes use of flock on the device.
            </summary>
            <param name="client">
            The client to lock the file with.
            </param>
            <param name="handle">
            File handle of a previously opened file.
            </param>
            <param name="operation">
            the lock or unlock operation to perform, this is one of
            AFC_LOCK_SH (shared lock), AFC_LOCK_EX (exclusive lock), or
            AFC_LOCK_UN (unlock).
            </param>
        </member>
        <member name="M:iMobileDevice.Afc.AfcApi.afc_file_read(iMobileDevice.Afc.AfcClientHandle,System.UInt64,System.Byte[],System.UInt32,System.UInt32@)">
            <summary>
            Attempts to the read the given number of bytes from the given file.
            </summary>
            <param name="client">
            The relevant AFC client
            </param>
            <param name="handle">
            File handle of a previously opened file
            </param>
            <param name="data">
            The pointer to the memory region to store the read data
            </param>
            <param name="length">
            The number of bytes to read
            </param>
            <param name="bytes_read">
            The number of bytes actually read.
            </param>
            <returns>
            AFC_E_SUCCESS on success or an AFC_E_* error value.
            </returns>
        </member>
        <member name="M:iMobileDevice.Afc.AfcApi.afc_file_write(iMobileDevice.Afc.AfcClientHandle,System.UInt64,System.Byte[],System.UInt32,System.UInt32@)">
            <summary>
            Writes a given number of bytes to a file.
            </summary>
            <param name="client">
            The client to use to write to the file.
            </param>
            <param name="handle">
            File handle of previously opened file.
            </param>
            <param name="data">
            The data to write to the file.
            </param>
            <param name="length">
            How much data to write.
            </param>
            <param name="bytes_written">
            The number of bytes actually written to the file.
            </param>
            <returns>
            AFC_E_SUCCESS on success or an AFC_E_* error value.
            </returns>
        </member>
        <member name="M:iMobileDevice.Afc.AfcApi.afc_file_seek(iMobileDevice.Afc.AfcClientHandle,System.UInt64,System.Int64,System.Int32)">
            <summary>
            Seeks to a given position of a pre-opened file on the device.
            </summary>
            <param name="client">
            The client to use to seek to the position.
            </param>
            <param name="handle">
            File handle of a previously opened.
            </param>
            <param name="offset">
            Seek offset.
            </param>
            <param name="whence">
            Seeking direction, one of SEEK_SET, SEEK_CUR, or SEEK_END.
            </param>
            <returns>
            AFC_E_SUCCESS on success or an AFC_E_* error value.
            </returns>
        </member>
        <member name="M:iMobileDevice.Afc.AfcApi.afc_file_tell(iMobileDevice.Afc.AfcClientHandle,System.UInt64,System.UInt64@)">
            <summary>
            Returns current position in a pre-opened file on the device.
            </summary>
            <param name="client">
            The client to use.
            </param>
            <param name="handle">
            File handle of a previously opened file.
            </param>
            <param name="position">
            Position in bytes of indicator
            </param>
            <returns>
            AFC_E_SUCCESS on success or an AFC_E_* error value.
            </returns>
        </member>
        <member name="M:iMobileDevice.Afc.AfcApi.afc_file_truncate(iMobileDevice.Afc.AfcClientHandle,System.UInt64,System.UInt64)">
            <summary>
            Sets the size of a file on the device.
            </summary>
            <param name="client">
            The client to use to set the file size.
            </param>
            <param name="handle">
            File handle of a previously opened file.
            </param>
            <param name="newsize">
            The size to set the file to.
            </param>
            <returns>
            AFC_E_SUCCESS on success or an AFC_E_* error value.
            </returns>
            <remarks>
            This function is more akin to ftruncate than truncate, and truncate
            calls would have to open the file before calling this, sadly.
            </remarks>
        </member>
        <member name="M:iMobileDevice.Afc.AfcApi.afc_remove_path(iMobileDevice.Afc.AfcClientHandle,System.String)">
            <summary>
            Deletes a file or directory.
            </summary>
            <param name="client">
            The client to use.
            </param>
            <param name="path">
            The path to delete. (must be a fully-qualified path)
            </param>
            <returns>
            AFC_E_SUCCESS on success or an AFC_E_* error value.
            </returns>
        </member>
        <member name="M:iMobileDevice.Afc.AfcApi.afc_rename_path(iMobileDevice.Afc.AfcClientHandle,System.String,System.String)">
            <summary>
            Renames a file or directory on the device.
            </summary>
            <param name="client">
            The client to have rename.
            </param>
            <param name="from">
            The name to rename from. (must be a fully-qualified path)
            </param>
            <param name="to">
            The new name. (must also be a fully-qualified path)
            </param>
            <returns>
            AFC_E_SUCCESS on success or an AFC_E_* error value.
            </returns>
        </member>
        <member name="M:iMobileDevice.Afc.AfcApi.afc_make_directory(iMobileDevice.Afc.AfcClientHandle,System.String)">
            <summary>
            Creates a directory on the device.
            </summary>
            <param name="client">
            The client to use to make a directory.
            </param>
            <param name="path">
            The directory's path. (must be a fully-qualified path, I assume
            all other mkdir restrictions apply as well)
            </param>
            <returns>
            AFC_E_SUCCESS on success or an AFC_E_* error value.
            </returns>
        </member>
        <member name="M:iMobileDevice.Afc.AfcApi.afc_truncate(iMobileDevice.Afc.AfcClientHandle,System.String,System.UInt64)">
            <summary>
            Sets the size of a file on the device without prior opening it.
            </summary>
            <param name="client">
            The client to use to set the file size.
            </param>
            <param name="path">
            The path of the file to be truncated.
            </param>
            <param name="newsize">
            The size to set the file to.
            </param>
            <returns>
            AFC_E_SUCCESS on success or an AFC_E_* error value.
            </returns>
        </member>
        <member name="M:iMobileDevice.Afc.AfcApi.afc_make_link(iMobileDevice.Afc.AfcClientHandle,iMobileDevice.Afc.AfcLinkType,System.String,System.String)">
            <summary>
            Creates a hard link or symbolic link on the device.
            </summary>
            <param name="client">
            The client to use for making a link
            </param>
            <param name="linktype">
            1 = hard link, 2 = symlink
            </param>
            <param name="target">
            The file to be linked.
            </param>
            <param name="linkname">
            The name of link.
            </param>
            <returns>
            AFC_E_SUCCESS on success or an AFC_E_* error value.
            </returns>
        </member>
        <member name="M:iMobileDevice.Afc.AfcApi.afc_set_file_time(iMobileDevice.Afc.AfcClientHandle,System.String,System.UInt64)">
            <summary>
            Sets the modification time of a file on the device.
            </summary>
            <param name="client">
            The client to use to set the file size.
            </param>
            <param name="path">
            Path of the file for which the modification time should be set.
            </param>
            <param name="mtime">
            The modification time to set in nanoseconds since epoch.
            </param>
            <returns>
            AFC_E_SUCCESS on success or an AFC_E_* error value.
            </returns>
        </member>
        <member name="M:iMobileDevice.Afc.AfcApi.afc_remove_path_and_contents(iMobileDevice.Afc.AfcClientHandle,System.String)">
            <summary>
            Deletes a file or directory including possible contents.
            </summary>
            <param name="client">
            The client to use.
            </param>
            <param name="path">
            The path to delete. (must be a fully-qualified path)
            </param>
            <returns>
            AFC_E_SUCCESS on success or an AFC_E_* error value.
            </returns>
            <remarks>
            Only available in iOS 6 and later.
            </remarks>
        </member>
        <member name="M:iMobileDevice.Afc.AfcApi.afc_get_device_info_key(iMobileDevice.Afc.AfcClientHandle,System.String,System.String@)">
            <summary>
            Get a specific key of the device info list for a client connection.
            Known key values are: Model, FSTotalBytes, FSFreeBytes and FSBlockSize.
            This is a helper function for afc_get_device_info().
            </summary>
            <param name="client">
            The client to get device info for.
            </param>
            <param name="key">
            The key to get the value of.
            </param>
            <param name="value">
            The value for the key if successful or NULL otherwise.
            </param>
            <returns>
            AFC_E_SUCCESS on success or an AFC_E_* error value.
            </returns>
        </member>
        <member name="M:iMobileDevice.Afc.AfcApi.afc_dictionary_free(System.IntPtr)">
            <summary>
            Frees up a char dictionary as returned by some AFC functions.
            </summary>
            <param name="dictionary">
            The char array terminated by an empty string.
            </param>
            <returns>
            AFC_E_SUCCESS on success or an AFC_E_* error value.
            </returns>
        </member>
        <member name="T:iMobileDevice.Afc.AfcClientHandle">
            <summary>
            Represents a wrapper class for Afc handles.
            </summary>
        </member>
        <member name="M:iMobileDevice.Afc.AfcClientHandle.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Afc.AfcClientHandle"/> class.
            </summary>
        </member>
        <member name="M:iMobileDevice.Afc.AfcClientHandle.#ctor(System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Afc.AfcClientHandle"/> class, specifying whether the handle is to be reliably released.
            </summary>
            <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>
        </member>
        <member name="P:iMobileDevice.Afc.AfcClientHandle.Api">
            <summary>
            Gets or sets the API to use
            </summary>
        </member>
        <member name="P:iMobileDevice.Afc.AfcClientHandle.Zero">
            <summary>
            Gets a value which represents a pointer or handle that has been initialized to zero.
            </summary>
        </member>
        <member name="M:iMobileDevice.Afc.AfcClientHandle.ReleaseHandle">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.Afc.AfcClientHandle.DangerousCreate(System.IntPtr,System.Boolean)">
            <summary>
            Creates a new <see cref="T:iMobileDevice.Afc.AfcClientHandle"/> from a <see cref="T:System.IntPtr"/>.
            </summary>
            <param name="unsafeHandle">
            The underlying <see cref="T:System.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>
        </member>
        <member name="M:iMobileDevice.Afc.AfcClientHandle.DangerousCreate(System.IntPtr)">
            <summary>
            Creates a new <see cref="T:iMobileDevice.Afc.AfcClientHandle"/> from a <see cref="T:System.IntPtr"/>.
            </summary>
            <param name="unsafeHandle">
            The underlying <see cref="T:System.IntPtr"/>
            </param>
            <returns>
            </returns>
        </member>
        <member name="M:iMobileDevice.Afc.AfcClientHandle.ToString">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.Afc.AfcClientHandle.Equals(System.Object)">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.Afc.AfcClientHandle.GetHashCode">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.Afc.AfcClientHandle.op_Equality(iMobileDevice.Afc.AfcClientHandle,iMobileDevice.Afc.AfcClientHandle)">
            <summary>
            Determines whether two specified instances of <see cref="T:iMobileDevice.Afc.AfcClientHandle"/> are equal.
            </summary>
            <param name="value1">
            The first pointer or handle to compare.
            </param>
            <param name="value2">
            The second pointer or handle to compare.
            </param>
            <returns>
            <see langword="true"/> if <paramref name="value1"/> equals <paramref name="value2"/>; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="M:iMobileDevice.Afc.AfcClientHandle.op_Inequality(iMobileDevice.Afc.AfcClientHandle,iMobileDevice.Afc.AfcClientHandle)">
            <summary>
            Determines whether two specified instances of <see cref="T:iMobileDevice.Afc.AfcClientHandle"/> are not equal.
            </summary>
            <param name="value1">
            The first pointer or handle to compare.
            </param>
            <param name="value2">
            The second pointer or handle to compare.
            </param>
            <returns>
            <see langword="true"/> if <paramref name="value1"/> does not equal <paramref name="value2"/>; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="T:iMobileDevice.Afc.AfcError">
            <summary>
            Error Codes 
            </summary>
        </member>
        <member name="T:iMobileDevice.Afc.AfcException">
            Represents an exception that occurred when interacting with the Afc API.
        </member>
        <member name="F:iMobileDevice.Afc.AfcException.errorCode">
            <summary>
            Backing field for the <see cref="P:iMobileDevice.Afc.AfcException.ErrorCode"/> property.
            </summary>
        </member>
        <member name="M:iMobileDevice.Afc.AfcException.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Afc.AfcException"/> class.
            </summary>
        </member>
        <member name="M:iMobileDevice.Afc.AfcException.#ctor(iMobileDevice.Afc.AfcError)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Afc.AfcException"/> class with a specified error code.
            </summary>
            <param name="error">
            The error code of the error that occurred.
            </param>
        </member>
        <member name="M:iMobileDevice.Afc.AfcException.#ctor(iMobileDevice.Afc.AfcError,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Afc.AfcException"/> class with a specified error code and error message.
            </summary>
            <param name="error">
            The error code of the error that occurred.
            </param>
            <param name="message">
            A message which describes the error.
            </param>
        </member>
        <member name="M:iMobileDevice.Afc.AfcException.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Afc.AfcException"/> class with a specified error message.
            </summary>
            <param name="message">
            The message that describes the error.
            </param>
        </member>
        <member name="M:iMobileDevice.Afc.AfcException.#ctor(System.String,System.Exception)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Afc.AfcException"/> class with a specified error message and a reference to the inner exception that is the cause of this exception.
            </summary>
            <param name="message">
            The error message that explains the reason for the exception.
            </param>
            <param name="inner">
            The exception that is the cause of the current exception, or <see langword="null"/> if no inner exception is specified.
            </param>
        </member>
        <member name="M:iMobileDevice.Afc.AfcException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Afc.AfcException"/> class with serialized data.
            </summary>
            <param name="info">
            The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds the serialized object data about the exception being thrown.
            </param>
            <param name="context">
            The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that contains contextual information about the source or destination.
            </param>
        </member>
        <member name="P:iMobileDevice.Afc.AfcException.ErrorCode">
            <summary>
            Gets the error code that represents the error.
            </summary>
        </member>
        <member name="T:iMobileDevice.Afc.AfcFileMode">
            <summary>
            Flags for afc_file_open 
            </summary>
        </member>
        <member name="F:iMobileDevice.Afc.AfcFileMode.FopenRdappend">
            <summary>
            a+  O_RDWR   | O_APPEND | O_CREAT 
            </summary>
        </member>
        <member name="T:iMobileDevice.Afc.AfcLinkType">
            <summary>
            Type of link for afc_make_link() calls 
            </summary>
        </member>
        <member name="T:iMobileDevice.Afc.AfcLockOp">
            <summary>
            Lock operation flags 
            </summary>
        </member>
        <member name="F:iMobileDevice.Afc.AfcLockOp.LockUn">
            <summary>
            unlock 
            </summary>
        </member>
        <member name="M:iMobileDevice.Afc.AfcNativeMethods.afc_client_new(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Lockdown.LockdownServiceDescriptorHandle,iMobileDevice.Afc.AfcClientHandle@)">
            <summary>
            Makes a connection to the AFC service on the 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">
            Pointer that will be set to a newly allocated afc_client_t
            upon successful return.
            </param>
            <returns>
            AFC_E_SUCCESS on success, AFC_E_INVALID_ARG if device or service is
            invalid, AFC_E_MUX_ERROR if the connection cannot be established,
            or AFC_E_NO_MEM if there is a memory allocation problem.
            </returns>
        </member>
        <member name="M:iMobileDevice.Afc.AfcNativeMethods.afc_client_start_service(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Afc.AfcClientHandle@,System.String)">
            <summary>
            Starts a new AFC 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 afc_client_t upon
            successful return. Must be freed using afc_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>
            AFC_E_SUCCESS on success, or an AFC_E_* error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Afc.AfcNativeMethods.afc_client_free(System.IntPtr)">
            <summary>
            Frees up an AFC client. If the connection was created by the client itself,
            the connection will be closed.
            </summary>
            <param name="client">
            The client to free.
            </param>
        </member>
        <member name="M:iMobileDevice.Afc.AfcNativeMethods.afc_get_device_info(iMobileDevice.Afc.AfcClientHandle,System.IntPtr@)">
            <summary>
            Get device information for a connected client. The device information
            returned is the device model as well as the free space, the total capacity
            and blocksize on the accessed disk partition.
            </summary>
            <param name="client">
            The client to get device info for.
            </param>
            <param name="device_information">
            A char list of device information terminated by an
            empty string or NULL if there was an error. Free with
            afc_dictionary_free().
            </param>
            <returns>
            AFC_E_SUCCESS on success or an AFC_E_* error value.
            </returns>
        </member>
        <member name="M:iMobileDevice.Afc.AfcNativeMethods.afc_read_directory(iMobileDevice.Afc.AfcClientHandle,System.String,System.IntPtr@)">
            <summary>
            Gets a directory listing of the directory requested.
            </summary>
            <param name="client">
            The client to get a directory listing from.
            </param>
            <param name="path">
            The directory for listing. (must be a fully-qualified path)
            </param>
            <param name="directory_information">
            A char list of files in the directory
            terminated by an empty string or NULL if there was an error. Free with
            afc_dictionary_free().
            </param>
            <returns>
            AFC_E_SUCCESS on success or an AFC_E_* error value.
            </returns>
        </member>
        <member name="M:iMobileDevice.Afc.AfcNativeMethods.afc_get_file_info(iMobileDevice.Afc.AfcClientHandle,System.String,System.IntPtr@)">
            <summary>
            Gets information about a specific file.
            </summary>
            <param name="client">
            The client to use to get the information of the file.
            </param>
            <param name="filename">
            The fully-qualified path to the file.
            </param>
            <param name="file_information">
            Pointer to a buffer that will be filled with a
            NULL-terminated list of strings with the file information. Set to NULL
            before calling this function. Free with afc_dictionary_free().
            </param>
            <returns>
            AFC_E_SUCCESS on success or an AFC_E_* error value.
            </returns>
        </member>
        <member name="M:iMobileDevice.Afc.AfcNativeMethods.afc_file_open(iMobileDevice.Afc.AfcClientHandle,System.String,iMobileDevice.Afc.AfcFileMode,System.UInt64@)">
            <summary>
            Opens a file on the device.
            </summary>
            <param name="client">
            The client to use to open the file.
            </param>
            <param name="filename">
            The file to open. (must be a fully-qualified path)
            </param>
            <param name="file_mode">
            The mode to use to open the file.
            </param>
            <param name="handle">
            Pointer to a uint64_t that will hold the handle of the file
            </param>
            <returns>
            AFC_E_SUCCESS on success or an AFC_E_* error value.
            </returns>
        </member>
        <member name="M:iMobileDevice.Afc.AfcNativeMethods.afc_file_close(iMobileDevice.Afc.AfcClientHandle,System.UInt64)">
            <summary>
            Closes a file on the device.
            </summary>
            <param name="client">
            The client to close the file with.
            </param>
            <param name="handle">
            File handle of a previously opened file.
            </param>
        </member>
        <member name="M:iMobileDevice.Afc.AfcNativeMethods.afc_file_lock(iMobileDevice.Afc.AfcClientHandle,System.UInt64,iMobileDevice.Afc.AfcLockOp)">
            <summary>
            Locks or unlocks a file on the device.
            Makes use of flock on the device.
            </summary>
            <param name="client">
            The client to lock the file with.
            </param>
            <param name="handle">
            File handle of a previously opened file.
            </param>
            <param name="operation">
            the lock or unlock operation to perform, this is one of
            AFC_LOCK_SH (shared lock), AFC_LOCK_EX (exclusive lock), or
            AFC_LOCK_UN (unlock).
            </param>
        </member>
        <member name="M:iMobileDevice.Afc.AfcNativeMethods.afc_file_read(iMobileDevice.Afc.AfcClientHandle,System.UInt64,System.Byte[],System.UInt32,System.UInt32@)">
            <summary>
            Attempts to the read the given number of bytes from the given file.
            </summary>
            <param name="client">
            The relevant AFC client
            </param>
            <param name="handle">
            File handle of a previously opened file
            </param>
            <param name="data">
            The pointer to the memory region to store the read data
            </param>
            <param name="length">
            The number of bytes to read
            </param>
            <param name="bytes_read">
            The number of bytes actually read.
            </param>
            <returns>
            AFC_E_SUCCESS on success or an AFC_E_* error value.
            </returns>
        </member>
        <member name="M:iMobileDevice.Afc.AfcNativeMethods.afc_file_write(iMobileDevice.Afc.AfcClientHandle,System.UInt64,System.Byte[],System.UInt32,System.UInt32@)">
            <summary>
            Writes a given number of bytes to a file.
            </summary>
            <param name="client">
            The client to use to write to the file.
            </param>
            <param name="handle">
            File handle of previously opened file.
            </param>
            <param name="data">
            The data to write to the file.
            </param>
            <param name="length">
            How much data to write.
            </param>
            <param name="bytes_written">
            The number of bytes actually written to the file.
            </param>
            <returns>
            AFC_E_SUCCESS on success or an AFC_E_* error value.
            </returns>
        </member>
        <member name="M:iMobileDevice.Afc.AfcNativeMethods.afc_file_seek(iMobileDevice.Afc.AfcClientHandle,System.UInt64,System.Int64,System.Int32)">
            <summary>
            Seeks to a given position of a pre-opened file on the device.
            </summary>
            <param name="client">
            The client to use to seek to the position.
            </param>
            <param name="handle">
            File handle of a previously opened.
            </param>
            <param name="offset">
            Seek offset.
            </param>
            <param name="whence">
            Seeking direction, one of SEEK_SET, SEEK_CUR, or SEEK_END.
            </param>
            <returns>
            AFC_E_SUCCESS on success or an AFC_E_* error value.
            </returns>
        </member>
        <member name="M:iMobileDevice.Afc.AfcNativeMethods.afc_file_tell(iMobileDevice.Afc.AfcClientHandle,System.UInt64,System.UInt64@)">
            <summary>
            Returns current position in a pre-opened file on the device.
            </summary>
            <param name="client">
            The client to use.
            </param>
            <param name="handle">
            File handle of a previously opened file.
            </param>
            <param name="position">
            Position in bytes of indicator
            </param>
            <returns>
            AFC_E_SUCCESS on success or an AFC_E_* error value.
            </returns>
        </member>
        <member name="M:iMobileDevice.Afc.AfcNativeMethods.afc_file_truncate(iMobileDevice.Afc.AfcClientHandle,System.UInt64,System.UInt64)">
            <summary>
            Sets the size of a file on the device.
            </summary>
            <param name="client">
            The client to use to set the file size.
            </param>
            <param name="handle">
            File handle of a previously opened file.
            </param>
            <param name="newsize">
            The size to set the file to.
            </param>
            <returns>
            AFC_E_SUCCESS on success or an AFC_E_* error value.
            </returns>
            <remarks>
            This function is more akin to ftruncate than truncate, and truncate
            calls would have to open the file before calling this, sadly.
            </remarks>
        </member>
        <member name="M:iMobileDevice.Afc.AfcNativeMethods.afc_remove_path(iMobileDevice.Afc.AfcClientHandle,System.String)">
            <summary>
            Deletes a file or directory.
            </summary>
            <param name="client">
            The client to use.
            </param>
            <param name="path">
            The path to delete. (must be a fully-qualified path)
            </param>
            <returns>
            AFC_E_SUCCESS on success or an AFC_E_* error value.
            </returns>
        </member>
        <member name="M:iMobileDevice.Afc.AfcNativeMethods.afc_rename_path(iMobileDevice.Afc.AfcClientHandle,System.String,System.String)">
            <summary>
            Renames a file or directory on the device.
            </summary>
            <param name="client">
            The client to have rename.
            </param>
            <param name="from">
            The name to rename from. (must be a fully-qualified path)
            </param>
            <param name="to">
            The new name. (must also be a fully-qualified path)
            </param>
            <returns>
            AFC_E_SUCCESS on success or an AFC_E_* error value.
            </returns>
        </member>
        <member name="M:iMobileDevice.Afc.AfcNativeMethods.afc_make_directory(iMobileDevice.Afc.AfcClientHandle,System.String)">
            <summary>
            Creates a directory on the device.
            </summary>
            <param name="client">
            The client to use to make a directory.
            </param>
            <param name="path">
            The directory's path. (must be a fully-qualified path, I assume
            all other mkdir restrictions apply as well)
            </param>
            <returns>
            AFC_E_SUCCESS on success or an AFC_E_* error value.
            </returns>
        </member>
        <member name="M:iMobileDevice.Afc.AfcNativeMethods.afc_truncate(iMobileDevice.Afc.AfcClientHandle,System.String,System.UInt64)">
            <summary>
            Sets the size of a file on the device without prior opening it.
            </summary>
            <param name="client">
            The client to use to set the file size.
            </param>
            <param name="path">
            The path of the file to be truncated.
            </param>
            <param name="newsize">
            The size to set the file to.
            </param>
            <returns>
            AFC_E_SUCCESS on success or an AFC_E_* error value.
            </returns>
        </member>
        <member name="M:iMobileDevice.Afc.AfcNativeMethods.afc_make_link(iMobileDevice.Afc.AfcClientHandle,iMobileDevice.Afc.AfcLinkType,System.String,System.String)">
            <summary>
            Creates a hard link or symbolic link on the device.
            </summary>
            <param name="client">
            The client to use for making a link
            </param>
            <param name="linktype">
            1 = hard link, 2 = symlink
            </param>
            <param name="target">
            The file to be linked.
            </param>
            <param name="linkname">
            The name of link.
            </param>
            <returns>
            AFC_E_SUCCESS on success or an AFC_E_* error value.
            </returns>
        </member>
        <member name="M:iMobileDevice.Afc.AfcNativeMethods.afc_set_file_time(iMobileDevice.Afc.AfcClientHandle,System.String,System.UInt64)">
            <summary>
            Sets the modification time of a file on the device.
            </summary>
            <param name="client">
            The client to use to set the file size.
            </param>
            <param name="path">
            Path of the file for which the modification time should be set.
            </param>
            <param name="mtime">
            The modification time to set in nanoseconds since epoch.
            </param>
            <returns>
            AFC_E_SUCCESS on success or an AFC_E_* error value.
            </returns>
        </member>
        <member name="M:iMobileDevice.Afc.AfcNativeMethods.afc_remove_path_and_contents(iMobileDevice.Afc.AfcClientHandle,System.String)">
            <summary>
            Deletes a file or directory including possible contents.
            </summary>
            <param name="client">
            The client to use.
            </param>
            <param name="path">
            The path to delete. (must be a fully-qualified path)
            </param>
            <returns>
            AFC_E_SUCCESS on success or an AFC_E_* error value.
            </returns>
            <remarks>
            Only available in iOS 6 and later.
            </remarks>
        </member>
        <member name="M:iMobileDevice.Afc.AfcNativeMethods.afc_get_device_info_key(iMobileDevice.Afc.AfcClientHandle,System.String,System.IntPtr@)">
            <summary>
            Get a specific key of the device info list for a client connection.
            Known key values are: Model, FSTotalBytes, FSFreeBytes and FSBlockSize.
            This is a helper function for afc_get_device_info().
            </summary>
            <param name="client">
            The client to get device info for.
            </param>
            <param name="key">
            The key to get the value of.
            </param>
            <param name="value">
            The value for the key if successful or NULL otherwise.
            </param>
            <returns>
            AFC_E_SUCCESS on success or an AFC_E_* error value.
            </returns>
        </member>
        <member name="M:iMobileDevice.Afc.AfcNativeMethods.afc_dictionary_free(System.IntPtr)">
            <summary>
            Frees up a char dictionary as returned by some AFC functions.
            </summary>
            <param name="dictionary">
            The char array terminated by an empty string.
            </param>
            <returns>
            AFC_E_SUCCESS on success or an AFC_E_* error value.
            </returns>
        </member>
        <member name="P:iMobileDevice.Afc.IAfcApi.Parent">
            <summary>
            Gets or sets the <see cref="!:ILibiMobileDeviceApi"/> which owns this <see cref="N:iMobileDevice.Afc"/>.
            </summary>
        </member>
        <member name="M:iMobileDevice.Afc.IAfcApi.afc_client_new(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Lockdown.LockdownServiceDescriptorHandle,iMobileDevice.Afc.AfcClientHandle@)">
            <summary>
            Makes a connection to the AFC service on the 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">
            Pointer that will be set to a newly allocated afc_client_t
            upon successful return.
            </param>
            <returns>
            AFC_E_SUCCESS on success, AFC_E_INVALID_ARG if device or service is
            invalid, AFC_E_MUX_ERROR if the connection cannot be established,
            or AFC_E_NO_MEM if there is a memory allocation problem.
            </returns>
        </member>
        <member name="M:iMobileDevice.Afc.IAfcApi.afc_client_start_service(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Afc.AfcClientHandle@,System.String)">
            <summary>
            Starts a new AFC 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 afc_client_t upon
            successful return. Must be freed using afc_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>
            AFC_E_SUCCESS on success, or an AFC_E_* error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Afc.IAfcApi.afc_client_free(System.IntPtr)">
            <summary>
            Frees up an AFC client. If the connection was created by the client itself,
            the connection will be closed.
            </summary>
            <param name="client">
            The client to free.
            </param>
        </member>
        <member name="M:iMobileDevice.Afc.IAfcApi.afc_get_device_info(iMobileDevice.Afc.AfcClientHandle,System.Collections.ObjectModel.ReadOnlyCollection{System.String}@)">
            <summary>
            Get device information for a connected client. The device information
            returned is the device model as well as the free space, the total capacity
            and blocksize on the accessed disk partition.
            </summary>
            <param name="client">
            The client to get device info for.
            </param>
            <param name="device_information">
            A char list of device information terminated by an
            empty string or NULL if there was an error. Free with
            afc_dictionary_free().
            </param>
            <returns>
            AFC_E_SUCCESS on success or an AFC_E_* error value.
            </returns>
        </member>
        <member name="M:iMobileDevice.Afc.IAfcApi.afc_read_directory(iMobileDevice.Afc.AfcClientHandle,System.String,System.Collections.ObjectModel.ReadOnlyCollection{System.String}@)">
            <summary>
            Gets a directory listing of the directory requested.
            </summary>
            <param name="client">
            The client to get a directory listing from.
            </param>
            <param name="path">
            The directory for listing. (must be a fully-qualified path)
            </param>
            <param name="directory_information">
            A char list of files in the directory
            terminated by an empty string or NULL if there was an error. Free with
            afc_dictionary_free().
            </param>
            <returns>
            AFC_E_SUCCESS on success or an AFC_E_* error value.
            </returns>
        </member>
        <member name="M:iMobileDevice.Afc.IAfcApi.afc_get_file_info(iMobileDevice.Afc.AfcClientHandle,System.String,System.Collections.ObjectModel.ReadOnlyCollection{System.String}@)">
            <summary>
            Gets information about a specific file.
            </summary>
            <param name="client">
            The client to use to get the information of the file.
            </param>
            <param name="filename">
            The fully-qualified path to the file.
            </param>
            <param name="file_information">
            Pointer to a buffer that will be filled with a
            NULL-terminated list of strings with the file information. Set to NULL
            before calling this function. Free with afc_dictionary_free().
            </param>
            <returns>
            AFC_E_SUCCESS on success or an AFC_E_* error value.
            </returns>
        </member>
        <member name="M:iMobileDevice.Afc.IAfcApi.afc_file_open(iMobileDevice.Afc.AfcClientHandle,System.String,iMobileDevice.Afc.AfcFileMode,System.UInt64@)">
            <summary>
            Opens a file on the device.
            </summary>
            <param name="client">
            The client to use to open the file.
            </param>
            <param name="filename">
            The file to open. (must be a fully-qualified path)
            </param>
            <param name="file_mode">
            The mode to use to open the file.
            </param>
            <param name="handle">
            Pointer to a uint64_t that will hold the handle of the file
            </param>
            <returns>
            AFC_E_SUCCESS on success or an AFC_E_* error value.
            </returns>
        </member>
        <member name="M:iMobileDevice.Afc.IAfcApi.afc_file_close(iMobileDevice.Afc.AfcClientHandle,System.UInt64)">
            <summary>
            Closes a file on the device.
            </summary>
            <param name="client">
            The client to close the file with.
            </param>
            <param name="handle">
            File handle of a previously opened file.
            </param>
        </member>
        <member name="M:iMobileDevice.Afc.IAfcApi.afc_file_lock(iMobileDevice.Afc.AfcClientHandle,System.UInt64,iMobileDevice.Afc.AfcLockOp)">
            <summary>
            Locks or unlocks a file on the device.
            Makes use of flock on the device.
            </summary>
            <param name="client">
            The client to lock the file with.
            </param>
            <param name="handle">
            File handle of a previously opened file.
            </param>
            <param name="operation">
            the lock or unlock operation to perform, this is one of
            AFC_LOCK_SH (shared lock), AFC_LOCK_EX (exclusive lock), or
            AFC_LOCK_UN (unlock).
            </param>
        </member>
        <member name="M:iMobileDevice.Afc.IAfcApi.afc_file_read(iMobileDevice.Afc.AfcClientHandle,System.UInt64,System.Byte[],System.UInt32,System.UInt32@)">
            <summary>
            Attempts to the read the given number of bytes from the given file.
            </summary>
            <param name="client">
            The relevant AFC client
            </param>
            <param name="handle">
            File handle of a previously opened file
            </param>
            <param name="data">
            The pointer to the memory region to store the read data
            </param>
            <param name="length">
            The number of bytes to read
            </param>
            <param name="bytes_read">
            The number of bytes actually read.
            </param>
            <returns>
            AFC_E_SUCCESS on success or an AFC_E_* error value.
            </returns>
        </member>
        <member name="M:iMobileDevice.Afc.IAfcApi.afc_file_write(iMobileDevice.Afc.AfcClientHandle,System.UInt64,System.Byte[],System.UInt32,System.UInt32@)">
            <summary>
            Writes a given number of bytes to a file.
            </summary>
            <param name="client">
            The client to use to write to the file.
            </param>
            <param name="handle">
            File handle of previously opened file.
            </param>
            <param name="data">
            The data to write to the file.
            </param>
            <param name="length">
            How much data to write.
            </param>
            <param name="bytes_written">
            The number of bytes actually written to the file.
            </param>
            <returns>
            AFC_E_SUCCESS on success or an AFC_E_* error value.
            </returns>
        </member>
        <member name="M:iMobileDevice.Afc.IAfcApi.afc_file_seek(iMobileDevice.Afc.AfcClientHandle,System.UInt64,System.Int64,System.Int32)">
            <summary>
            Seeks to a given position of a pre-opened file on the device.
            </summary>
            <param name="client">
            The client to use to seek to the position.
            </param>
            <param name="handle">
            File handle of a previously opened.
            </param>
            <param name="offset">
            Seek offset.
            </param>
            <param name="whence">
            Seeking direction, one of SEEK_SET, SEEK_CUR, or SEEK_END.
            </param>
            <returns>
            AFC_E_SUCCESS on success or an AFC_E_* error value.
            </returns>
        </member>
        <member name="M:iMobileDevice.Afc.IAfcApi.afc_file_tell(iMobileDevice.Afc.AfcClientHandle,System.UInt64,System.UInt64@)">
            <summary>
            Returns current position in a pre-opened file on the device.
            </summary>
            <param name="client">
            The client to use.
            </param>
            <param name="handle">
            File handle of a previously opened file.
            </param>
            <param name="position">
            Position in bytes of indicator
            </param>
            <returns>
            AFC_E_SUCCESS on success or an AFC_E_* error value.
            </returns>
        </member>
        <member name="M:iMobileDevice.Afc.IAfcApi.afc_file_truncate(iMobileDevice.Afc.AfcClientHandle,System.UInt64,System.UInt64)">
            <summary>
            Sets the size of a file on the device.
            </summary>
            <param name="client">
            The client to use to set the file size.
            </param>
            <param name="handle">
            File handle of a previously opened file.
            </param>
            <param name="newsize">
            The size to set the file to.
            </param>
            <returns>
            AFC_E_SUCCESS on success or an AFC_E_* error value.
            </returns>
            <remarks>
            This function is more akin to ftruncate than truncate, and truncate
            calls would have to open the file before calling this, sadly.
            </remarks>
        </member>
        <member name="M:iMobileDevice.Afc.IAfcApi.afc_remove_path(iMobileDevice.Afc.AfcClientHandle,System.String)">
            <summary>
            Deletes a file or directory.
            </summary>
            <param name="client">
            The client to use.
            </param>
            <param name="path">
            The path to delete. (must be a fully-qualified path)
            </param>
            <returns>
            AFC_E_SUCCESS on success or an AFC_E_* error value.
            </returns>
        </member>
        <member name="M:iMobileDevice.Afc.IAfcApi.afc_rename_path(iMobileDevice.Afc.AfcClientHandle,System.String,System.String)">
            <summary>
            Renames a file or directory on the device.
            </summary>
            <param name="client">
            The client to have rename.
            </param>
            <param name="from">
            The name to rename from. (must be a fully-qualified path)
            </param>
            <param name="to">
            The new name. (must also be a fully-qualified path)
            </param>
            <returns>
            AFC_E_SUCCESS on success or an AFC_E_* error value.
            </returns>
        </member>
        <member name="M:iMobileDevice.Afc.IAfcApi.afc_make_directory(iMobileDevice.Afc.AfcClientHandle,System.String)">
            <summary>
            Creates a directory on the device.
            </summary>
            <param name="client">
            The client to use to make a directory.
            </param>
            <param name="path">
            The directory's path. (must be a fully-qualified path, I assume
            all other mkdir restrictions apply as well)
            </param>
            <returns>
            AFC_E_SUCCESS on success or an AFC_E_* error value.
            </returns>
        </member>
        <member name="M:iMobileDevice.Afc.IAfcApi.afc_truncate(iMobileDevice.Afc.AfcClientHandle,System.String,System.UInt64)">
            <summary>
            Sets the size of a file on the device without prior opening it.
            </summary>
            <param name="client">
            The client to use to set the file size.
            </param>
            <param name="path">
            The path of the file to be truncated.
            </param>
            <param name="newsize">
            The size to set the file to.
            </param>
            <returns>
            AFC_E_SUCCESS on success or an AFC_E_* error value.
            </returns>
        </member>
        <member name="M:iMobileDevice.Afc.IAfcApi.afc_make_link(iMobileDevice.Afc.AfcClientHandle,iMobileDevice.Afc.AfcLinkType,System.String,System.String)">
            <summary>
            Creates a hard link or symbolic link on the device.
            </summary>
            <param name="client">
            The client to use for making a link
            </param>
            <param name="linktype">
            1 = hard link, 2 = symlink
            </param>
            <param name="target">
            The file to be linked.
            </param>
            <param name="linkname">
            The name of link.
            </param>
            <returns>
            AFC_E_SUCCESS on success or an AFC_E_* error value.
            </returns>
        </member>
        <member name="M:iMobileDevice.Afc.IAfcApi.afc_set_file_time(iMobileDevice.Afc.AfcClientHandle,System.String,System.UInt64)">
            <summary>
            Sets the modification time of a file on the device.
            </summary>
            <param name="client">
            The client to use to set the file size.
            </param>
            <param name="path">
            Path of the file for which the modification time should be set.
            </param>
            <param name="mtime">
            The modification time to set in nanoseconds since epoch.
            </param>
            <returns>
            AFC_E_SUCCESS on success or an AFC_E_* error value.
            </returns>
        </member>
        <member name="M:iMobileDevice.Afc.IAfcApi.afc_remove_path_and_contents(iMobileDevice.Afc.AfcClientHandle,System.String)">
            <summary>
            Deletes a file or directory including possible contents.
            </summary>
            <param name="client">
            The client to use.
            </param>
            <param name="path">
            The path to delete. (must be a fully-qualified path)
            </param>
            <returns>
            AFC_E_SUCCESS on success or an AFC_E_* error value.
            </returns>
            <remarks>
            Only available in iOS 6 and later.
            </remarks>
        </member>
        <member name="M:iMobileDevice.Afc.IAfcApi.afc_get_device_info_key(iMobileDevice.Afc.AfcClientHandle,System.String,System.String@)">
            <summary>
            Get a specific key of the device info list for a client connection.
            Known key values are: Model, FSTotalBytes, FSFreeBytes and FSBlockSize.
            This is a helper function for afc_get_device_info().
            </summary>
            <param name="client">
            The client to get device info for.
            </param>
            <param name="key">
            The key to get the value of.
            </param>
            <param name="value">
            The value for the key if successful or NULL otherwise.
            </param>
            <returns>
            AFC_E_SUCCESS on success or an AFC_E_* error value.
            </returns>
        </member>
        <member name="M:iMobileDevice.Afc.IAfcApi.afc_dictionary_free(System.IntPtr)">
            <summary>
            Frees up a char dictionary as returned by some AFC functions.
            </summary>
            <param name="dictionary">
            The char array terminated by an empty string.
            </param>
            <returns>
            AFC_E_SUCCESS on success or an AFC_E_* error value.
            </returns>
        </member>
        <member name="F:iMobileDevice.CompanionProxy.CompanionProxyApi.parent">
            <summary>
            Backing field for the <see cref="P:iMobileDevice.CompanionProxy.CompanionProxyApi.Parent"/> property
            </summary>
        </member>
        <member name="M:iMobileDevice.CompanionProxy.CompanionProxyApi.#ctor(iMobileDevice.ILibiMobileDevice)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.CompanionProxy.CompanionProxyApi"/> class
            </summary>
            <param name="parent">
            The <see cref="!:ILibiMobileDeviceApi"/> which owns this <see cref="N:iMobileDevice.CompanionProxy"/>.
            </param>
        </member>
        <member name="P:iMobileDevice.CompanionProxy.CompanionProxyApi.Parent">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.CompanionProxy.CompanionProxyApi.companion_proxy_client_new(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Lockdown.LockdownServiceDescriptorHandle,iMobileDevice.CompanionProxy.CompanionProxyClientHandle@)">
            <summary>
            Connects to the companion_proxy 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">
            Pointer that will point to a newly allocated
            companion_proxy_client_t upon successful return. Must be freed using
            companion_proxy_client_free() after use.
            </param>
            <returns>
            COMPANION_PROXY_E_SUCCESS on success, COMPANION_PROXY_E_INVALID_ARG when
            the arguments are invalid, or an COMPANION_PROXY_E_* error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.CompanionProxy.CompanionProxyApi.companion_proxy_client_start_service(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.CompanionProxy.CompanionProxyClientHandle@,System.String)">
            <summary>
            Starts a new companion_proxy 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
            companion_proxy_client_t upon successful return. Must be freed using
            companion_proxy_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>
            COMPANION_PROXY_E_SUCCESS on success, or an COMPANION_PROXY_E_* error
            code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.CompanionProxy.CompanionProxyApi.companion_proxy_client_free(System.IntPtr)">
            <summary>
            Disconnects a companion_proxy client from the device and frees up the
            companion_proxy client data.
            </summary>
            <param name="client">
            The companion_proxy client to disconnect and free.
            </param>
            <returns>
            COMPANION_PROXY_E_SUCCESS on success, COMPANION_PROXY_E_INVALID_ARG when
            client is NULL, or an COMPANION_PROXY_E_* error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.CompanionProxy.CompanionProxyApi.companion_proxy_send(iMobileDevice.CompanionProxy.CompanionProxyClientHandle,iMobileDevice.Plist.PlistHandle)">
            <summary>
            Sends a plist to the service.
            </summary>
            <param name="client">
            The companion_proxy client
            </param>
            <param name="plist">
            The plist to send
            </param>
            <returns>
            COMPANION_PROXY_E_SUCCESS on success,
            COMPANION_PROXY_E_INVALID_ARG when client or plist is NULL
            </returns>
        </member>
        <member name="M:iMobileDevice.CompanionProxy.CompanionProxyApi.companion_proxy_receive(iMobileDevice.CompanionProxy.CompanionProxyClientHandle,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Receives a plist from the service.
            </summary>
            <param name="client">
            The companion_proxy client
            </param>
            <param name="plist">
            The plist to store the received data
            </param>
            <returns>
            COMPANION_PROXY_E_SUCCESS on success,
            COMPANION_PROXY_E_INVALID_ARG when client or plist is NULL
            </returns>
        </member>
        <member name="M:iMobileDevice.CompanionProxy.CompanionProxyApi.companion_proxy_get_device_registry(iMobileDevice.CompanionProxy.CompanionProxyClientHandle,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Retrieves a list of paired devices.
            </summary>
            <param name="client">
            The companion_proxy client
            </param>
            <param name="devices">
            Point that will receive a PLIST_ARRAY with paired device UDIDs
            </param>
            <returns>
            COMPANION_PROXY_E_SUCCESS on success,
            COMPANION_PROXY_E_NO_DEVICES if no devices are paired,
            or a COMPANION_PROXY_E_* error code otherwise.
            </returns>
            <remarks>
            The device closes the connection after sending the reply.
            </remarks>
        </member>
        <member name="M:iMobileDevice.CompanionProxy.CompanionProxyApi.companion_proxy_start_listening_for_devices(iMobileDevice.CompanionProxy.CompanionProxyClientHandle,iMobileDevice.CompanionProxy.CompanionProxyDeviceEventCallBack,System.IntPtr)">
            <summary>
            Starts listening for paired devices.
            </summary>
            <param name="client">
            The companion_proxy client
            </param>
            <param name="callback">
            Callback function that will be called when a new device is detected
            </param>
            <param name="userdata">
            Pointer that that will be passed to the callback function
            </param>
            <returns>
            COMPANION_PROXY_E_SUCCESS on success,
            or a COMPANION_PROXY_E_* error code otherwise.
            </returns>
            <remarks>
            The event parameter that gets passed to the callback function is
            freed internally after returning from the callback. The consumer needs
            to make a copy if required.
            </remarks>
        </member>
        <member name="M:iMobileDevice.CompanionProxy.CompanionProxyApi.companion_proxy_stop_listening_for_devices(iMobileDevice.CompanionProxy.CompanionProxyClientHandle)">
            <summary>
            Stops listening for paired devices
            </summary>
            <param name="client">
            The companion_proxy client
            </param>
            <returns>
            COMPANION_PROXY_E_SUCCESS on success,
            or a COMPANION_PROXY_E_* error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.CompanionProxy.CompanionProxyApi.companion_proxy_get_value_from_registry(iMobileDevice.CompanionProxy.CompanionProxyClientHandle,System.String,System.String,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Returns a value for the given key.
            </summary>
            <param name="client">
            The companion_proxy client
            </param>
            <param name="companion_udid">
            UDID of the (paired) companion device
            </param>
            <param name="key">
            The key to retrieve the value for
            </param>
            <returns>
            COMPANION_PROXY_E_SUCCESS on success,
            COMPANION_PROXY_E_INVALID_ARG when client or paired_devices is invalid,
            COMPANION_PROXY_E_UNSUPPORTED_KEY if the companion device doesn't support the given key,
            or a COMPANION_PROXY_E_* error code otherwise.
            </returns>
            <remarks>
            The device closes the connection after sending the reply.
            </remarks>
        </member>
        <member name="M:iMobileDevice.CompanionProxy.CompanionProxyApi.companion_proxy_start_forwarding_service_port(iMobileDevice.CompanionProxy.CompanionProxyClientHandle,System.UInt16,System.String,System.UInt16@,iMobileDevice.Plist.PlistHandle)">
            <summary>
            Start forwarding a service port on the companion device to a port on the idevice.
            </summary>
            <param name="client">
            The companion_proxy client
            </param>
            <param name="remote_port">
            remote port
            </param>
            <param name="service_name">
            The name of the service that shall be forwarded
            </param>
            <param name="forward_port">
            Pointer that will receive the newly-assigned port accessible via USB/Network on the idevice
            </param>
            <param name="options">
            PLIST_DICT with additional options. Currently known are
            IsServiceLowPriority (boolean) and PreferWifi (boolean).
            </param>
            <returns>
            COMPANION_PROXY_E_SUCCESS on success,
            or a COMPANION_PROXY_E_* error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.CompanionProxy.CompanionProxyApi.companion_proxy_stop_forwarding_service_port(iMobileDevice.CompanionProxy.CompanionProxyClientHandle,System.UInt16)">
            <summary>
            Stop forwarding a service port between companion device and idevice.
            </summary>
            <param name="client">
            The companion_proxy client
            </param>
            <param name="remote_port">
            remote port
            </param>
            <returns>
            COMPANION_PROXY_E_SUCCESS on success,
            or a COMPANION_PROXY_E_* error code otherwise.
            </returns>
        </member>
        <member name="T:iMobileDevice.CompanionProxy.CompanionProxyClientHandle">
            <summary>
            Represents a wrapper class for CompanionProxy handles.
            </summary>
        </member>
        <member name="M:iMobileDevice.CompanionProxy.CompanionProxyClientHandle.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.CompanionProxy.CompanionProxyClientHandle"/> class.
            </summary>
        </member>
        <member name="M:iMobileDevice.CompanionProxy.CompanionProxyClientHandle.#ctor(System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.CompanionProxy.CompanionProxyClientHandle"/> class, specifying whether the handle is to be reliably released.
            </summary>
            <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>
        </member>
        <member name="P:iMobileDevice.CompanionProxy.CompanionProxyClientHandle.Api">
            <summary>
            Gets or sets the API to use
            </summary>
        </member>
        <member name="P:iMobileDevice.CompanionProxy.CompanionProxyClientHandle.Zero">
            <summary>
            Gets a value which represents a pointer or handle that has been initialized to zero.
            </summary>
        </member>
        <member name="M:iMobileDevice.CompanionProxy.CompanionProxyClientHandle.ReleaseHandle">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.CompanionProxy.CompanionProxyClientHandle.DangerousCreate(System.IntPtr,System.Boolean)">
            <summary>
            Creates a new <see cref="T:iMobileDevice.CompanionProxy.CompanionProxyClientHandle"/> from a <see cref="T:System.IntPtr"/>.
            </summary>
            <param name="unsafeHandle">
            The underlying <see cref="T:System.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>
        </member>
        <member name="M:iMobileDevice.CompanionProxy.CompanionProxyClientHandle.DangerousCreate(System.IntPtr)">
            <summary>
            Creates a new <see cref="T:iMobileDevice.CompanionProxy.CompanionProxyClientHandle"/> from a <see cref="T:System.IntPtr"/>.
            </summary>
            <param name="unsafeHandle">
            The underlying <see cref="T:System.IntPtr"/>
            </param>
            <returns>
            </returns>
        </member>
        <member name="M:iMobileDevice.CompanionProxy.CompanionProxyClientHandle.ToString">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.CompanionProxy.CompanionProxyClientHandle.Equals(System.Object)">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.CompanionProxy.CompanionProxyClientHandle.GetHashCode">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.CompanionProxy.CompanionProxyClientHandle.op_Equality(iMobileDevice.CompanionProxy.CompanionProxyClientHandle,iMobileDevice.CompanionProxy.CompanionProxyClientHandle)">
            <summary>
            Determines whether two specified instances of <see cref="T:iMobileDevice.CompanionProxy.CompanionProxyClientHandle"/> are equal.
            </summary>
            <param name="value1">
            The first pointer or handle to compare.
            </param>
            <param name="value2">
            The second pointer or handle to compare.
            </param>
            <returns>
            <see langword="true"/> if <paramref name="value1"/> equals <paramref name="value2"/>; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="M:iMobileDevice.CompanionProxy.CompanionProxyClientHandle.op_Inequality(iMobileDevice.CompanionProxy.CompanionProxyClientHandle,iMobileDevice.CompanionProxy.CompanionProxyClientHandle)">
            <summary>
            Determines whether two specified instances of <see cref="T:iMobileDevice.CompanionProxy.CompanionProxyClientHandle"/> are not equal.
            </summary>
            <param name="value1">
            The first pointer or handle to compare.
            </param>
            <param name="value2">
            The second pointer or handle to compare.
            </param>
            <returns>
            <see langword="true"/> if <paramref name="value1"/> does not equal <paramref name="value2"/>; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="T:iMobileDevice.CompanionProxy.CompanionProxyError">
            <summary>
            Error Codes 
            </summary>
        </member>
        <member name="T:iMobileDevice.CompanionProxy.CompanionProxyException">
            Represents an exception that occurred when interacting with the CompanionProxy API.
        </member>
        <member name="F:iMobileDevice.CompanionProxy.CompanionProxyException.errorCode">
            <summary>
            Backing field for the <see cref="P:iMobileDevice.CompanionProxy.CompanionProxyException.ErrorCode"/> property.
            </summary>
        </member>
        <member name="M:iMobileDevice.CompanionProxy.CompanionProxyException.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.CompanionProxy.CompanionProxyException"/> class.
            </summary>
        </member>
        <member name="M:iMobileDevice.CompanionProxy.CompanionProxyException.#ctor(iMobileDevice.CompanionProxy.CompanionProxyError)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.CompanionProxy.CompanionProxyException"/> class with a specified error code.
            </summary>
            <param name="error">
            The error code of the error that occurred.
            </param>
        </member>
        <member name="M:iMobileDevice.CompanionProxy.CompanionProxyException.#ctor(iMobileDevice.CompanionProxy.CompanionProxyError,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.CompanionProxy.CompanionProxyException"/> class with a specified error code and error message.
            </summary>
            <param name="error">
            The error code of the error that occurred.
            </param>
            <param name="message">
            A message which describes the error.
            </param>
        </member>
        <member name="M:iMobileDevice.CompanionProxy.CompanionProxyException.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.CompanionProxy.CompanionProxyException"/> class with a specified error message.
            </summary>
            <param name="message">
            The message that describes the error.
            </param>
        </member>
        <member name="M:iMobileDevice.CompanionProxy.CompanionProxyException.#ctor(System.String,System.Exception)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.CompanionProxy.CompanionProxyException"/> class with a specified error message and a reference to the inner exception that is the cause of this exception.
            </summary>
            <param name="message">
            The error message that explains the reason for the exception.
            </param>
            <param name="inner">
            The exception that is the cause of the current exception, or <see langword="null"/> if no inner exception is specified.
            </param>
        </member>
        <member name="M:iMobileDevice.CompanionProxy.CompanionProxyException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.CompanionProxy.CompanionProxyException"/> class with serialized data.
            </summary>
            <param name="info">
            The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds the serialized object data about the exception being thrown.
            </param>
            <param name="context">
            The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that contains contextual information about the source or destination.
            </param>
        </member>
        <member name="P:iMobileDevice.CompanionProxy.CompanionProxyException.ErrorCode">
            <summary>
            Gets the error code that represents the error.
            </summary>
        </member>
        <member name="M:iMobileDevice.CompanionProxy.CompanionProxyNativeMethods.companion_proxy_client_new(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Lockdown.LockdownServiceDescriptorHandle,iMobileDevice.CompanionProxy.CompanionProxyClientHandle@)">
            <summary>
            Connects to the companion_proxy 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">
            Pointer that will point to a newly allocated
            companion_proxy_client_t upon successful return. Must be freed using
            companion_proxy_client_free() after use.
            </param>
            <returns>
            COMPANION_PROXY_E_SUCCESS on success, COMPANION_PROXY_E_INVALID_ARG when
            the arguments are invalid, or an COMPANION_PROXY_E_* error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.CompanionProxy.CompanionProxyNativeMethods.companion_proxy_client_start_service(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.CompanionProxy.CompanionProxyClientHandle@,System.String)">
            <summary>
            Starts a new companion_proxy 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
            companion_proxy_client_t upon successful return. Must be freed using
            companion_proxy_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>
            COMPANION_PROXY_E_SUCCESS on success, or an COMPANION_PROXY_E_* error
            code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.CompanionProxy.CompanionProxyNativeMethods.companion_proxy_client_free(System.IntPtr)">
            <summary>
            Disconnects a companion_proxy client from the device and frees up the
            companion_proxy client data.
            </summary>
            <param name="client">
            The companion_proxy client to disconnect and free.
            </param>
            <returns>
            COMPANION_PROXY_E_SUCCESS on success, COMPANION_PROXY_E_INVALID_ARG when
            client is NULL, or an COMPANION_PROXY_E_* error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.CompanionProxy.CompanionProxyNativeMethods.companion_proxy_send(iMobileDevice.CompanionProxy.CompanionProxyClientHandle,iMobileDevice.Plist.PlistHandle)">
            <summary>
            Sends a plist to the service.
            </summary>
            <param name="client">
            The companion_proxy client
            </param>
            <param name="plist">
            The plist to send
            </param>
            <returns>
            COMPANION_PROXY_E_SUCCESS on success,
            COMPANION_PROXY_E_INVALID_ARG when client or plist is NULL
            </returns>
        </member>
        <member name="M:iMobileDevice.CompanionProxy.CompanionProxyNativeMethods.companion_proxy_receive(iMobileDevice.CompanionProxy.CompanionProxyClientHandle,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Receives a plist from the service.
            </summary>
            <param name="client">
            The companion_proxy client
            </param>
            <param name="plist">
            The plist to store the received data
            </param>
            <returns>
            COMPANION_PROXY_E_SUCCESS on success,
            COMPANION_PROXY_E_INVALID_ARG when client or plist is NULL
            </returns>
        </member>
        <member name="M:iMobileDevice.CompanionProxy.CompanionProxyNativeMethods.companion_proxy_get_device_registry(iMobileDevice.CompanionProxy.CompanionProxyClientHandle,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Retrieves a list of paired devices.
            </summary>
            <param name="client">
            The companion_proxy client
            </param>
            <param name="devices">
            Point that will receive a PLIST_ARRAY with paired device UDIDs
            </param>
            <returns>
            COMPANION_PROXY_E_SUCCESS on success,
            COMPANION_PROXY_E_NO_DEVICES if no devices are paired,
            or a COMPANION_PROXY_E_* error code otherwise.
            </returns>
            <remarks>
            The device closes the connection after sending the reply.
            </remarks>
        </member>
        <member name="M:iMobileDevice.CompanionProxy.CompanionProxyNativeMethods.companion_proxy_start_listening_for_devices(iMobileDevice.CompanionProxy.CompanionProxyClientHandle,iMobileDevice.CompanionProxy.CompanionProxyDeviceEventCallBack,System.IntPtr)">
            <summary>
            Starts listening for paired devices.
            </summary>
            <param name="client">
            The companion_proxy client
            </param>
            <param name="callback">
            Callback function that will be called when a new device is detected
            </param>
            <param name="userdata">
            Pointer that that will be passed to the callback function
            </param>
            <returns>
            COMPANION_PROXY_E_SUCCESS on success,
            or a COMPANION_PROXY_E_* error code otherwise.
            </returns>
            <remarks>
            The event parameter that gets passed to the callback function is
            freed internally after returning from the callback. The consumer needs
            to make a copy if required.
            </remarks>
        </member>
        <member name="M:iMobileDevice.CompanionProxy.CompanionProxyNativeMethods.companion_proxy_stop_listening_for_devices(iMobileDevice.CompanionProxy.CompanionProxyClientHandle)">
            <summary>
            Stops listening for paired devices
            </summary>
            <param name="client">
            The companion_proxy client
            </param>
            <returns>
            COMPANION_PROXY_E_SUCCESS on success,
            or a COMPANION_PROXY_E_* error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.CompanionProxy.CompanionProxyNativeMethods.companion_proxy_get_value_from_registry(iMobileDevice.CompanionProxy.CompanionProxyClientHandle,System.String,System.String,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Returns a value for the given key.
            </summary>
            <param name="client">
            The companion_proxy client
            </param>
            <param name="companion_udid">
            UDID of the (paired) companion device
            </param>
            <param name="key">
            The key to retrieve the value for
            </param>
            <returns>
            COMPANION_PROXY_E_SUCCESS on success,
            COMPANION_PROXY_E_INVALID_ARG when client or paired_devices is invalid,
            COMPANION_PROXY_E_UNSUPPORTED_KEY if the companion device doesn't support the given key,
            or a COMPANION_PROXY_E_* error code otherwise.
            </returns>
            <remarks>
            The device closes the connection after sending the reply.
            </remarks>
        </member>
        <member name="M:iMobileDevice.CompanionProxy.CompanionProxyNativeMethods.companion_proxy_start_forwarding_service_port(iMobileDevice.CompanionProxy.CompanionProxyClientHandle,System.UInt16,System.String,System.UInt16@,iMobileDevice.Plist.PlistHandle)">
            <summary>
            Start forwarding a service port on the companion device to a port on the idevice.
            </summary>
            <param name="client">
            The companion_proxy client
            </param>
            <param name="remote_port">
            remote port
            </param>
            <param name="service_name">
            The name of the service that shall be forwarded
            </param>
            <param name="forward_port">
            Pointer that will receive the newly-assigned port accessible via USB/Network on the idevice
            </param>
            <param name="options">
            PLIST_DICT with additional options. Currently known are
            IsServiceLowPriority (boolean) and PreferWifi (boolean).
            </param>
            <returns>
            COMPANION_PROXY_E_SUCCESS on success,
            or a COMPANION_PROXY_E_* error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.CompanionProxy.CompanionProxyNativeMethods.companion_proxy_stop_forwarding_service_port(iMobileDevice.CompanionProxy.CompanionProxyClientHandle,System.UInt16)">
            <summary>
            Stop forwarding a service port between companion device and idevice.
            </summary>
            <param name="client">
            The companion_proxy client
            </param>
            <param name="remote_port">
            remote port
            </param>
            <returns>
            COMPANION_PROXY_E_SUCCESS on success,
            or a COMPANION_PROXY_E_* error code otherwise.
            </returns>
        </member>
        <member name="P:iMobileDevice.CompanionProxy.ICompanionProxyApi.Parent">
            <summary>
            Gets or sets the <see cref="!:ILibiMobileDeviceApi"/> which owns this <see cref="N:iMobileDevice.CompanionProxy"/>.
            </summary>
        </member>
        <member name="M:iMobileDevice.CompanionProxy.ICompanionProxyApi.companion_proxy_client_new(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Lockdown.LockdownServiceDescriptorHandle,iMobileDevice.CompanionProxy.CompanionProxyClientHandle@)">
            <summary>
            Connects to the companion_proxy 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">
            Pointer that will point to a newly allocated
            companion_proxy_client_t upon successful return. Must be freed using
            companion_proxy_client_free() after use.
            </param>
            <returns>
            COMPANION_PROXY_E_SUCCESS on success, COMPANION_PROXY_E_INVALID_ARG when
            the arguments are invalid, or an COMPANION_PROXY_E_* error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.CompanionProxy.ICompanionProxyApi.companion_proxy_client_start_service(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.CompanionProxy.CompanionProxyClientHandle@,System.String)">
            <summary>
            Starts a new companion_proxy 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
            companion_proxy_client_t upon successful return. Must be freed using
            companion_proxy_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>
            COMPANION_PROXY_E_SUCCESS on success, or an COMPANION_PROXY_E_* error
            code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.CompanionProxy.ICompanionProxyApi.companion_proxy_client_free(System.IntPtr)">
            <summary>
            Disconnects a companion_proxy client from the device and frees up the
            companion_proxy client data.
            </summary>
            <param name="client">
            The companion_proxy client to disconnect and free.
            </param>
            <returns>
            COMPANION_PROXY_E_SUCCESS on success, COMPANION_PROXY_E_INVALID_ARG when
            client is NULL, or an COMPANION_PROXY_E_* error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.CompanionProxy.ICompanionProxyApi.companion_proxy_send(iMobileDevice.CompanionProxy.CompanionProxyClientHandle,iMobileDevice.Plist.PlistHandle)">
            <summary>
            Sends a plist to the service.
            </summary>
            <param name="client">
            The companion_proxy client
            </param>
            <param name="plist">
            The plist to send
            </param>
            <returns>
            COMPANION_PROXY_E_SUCCESS on success,
            COMPANION_PROXY_E_INVALID_ARG when client or plist is NULL
            </returns>
        </member>
        <member name="M:iMobileDevice.CompanionProxy.ICompanionProxyApi.companion_proxy_receive(iMobileDevice.CompanionProxy.CompanionProxyClientHandle,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Receives a plist from the service.
            </summary>
            <param name="client">
            The companion_proxy client
            </param>
            <param name="plist">
            The plist to store the received data
            </param>
            <returns>
            COMPANION_PROXY_E_SUCCESS on success,
            COMPANION_PROXY_E_INVALID_ARG when client or plist is NULL
            </returns>
        </member>
        <member name="M:iMobileDevice.CompanionProxy.ICompanionProxyApi.companion_proxy_get_device_registry(iMobileDevice.CompanionProxy.CompanionProxyClientHandle,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Retrieves a list of paired devices.
            </summary>
            <param name="client">
            The companion_proxy client
            </param>
            <param name="devices">
            Point that will receive a PLIST_ARRAY with paired device UDIDs
            </param>
            <returns>
            COMPANION_PROXY_E_SUCCESS on success,
            COMPANION_PROXY_E_NO_DEVICES if no devices are paired,
            or a COMPANION_PROXY_E_* error code otherwise.
            </returns>
            <remarks>
            The device closes the connection after sending the reply.
            </remarks>
        </member>
        <member name="M:iMobileDevice.CompanionProxy.ICompanionProxyApi.companion_proxy_start_listening_for_devices(iMobileDevice.CompanionProxy.CompanionProxyClientHandle,iMobileDevice.CompanionProxy.CompanionProxyDeviceEventCallBack,System.IntPtr)">
            <summary>
            Starts listening for paired devices.
            </summary>
            <param name="client">
            The companion_proxy client
            </param>
            <param name="callback">
            Callback function that will be called when a new device is detected
            </param>
            <param name="userdata">
            Pointer that that will be passed to the callback function
            </param>
            <returns>
            COMPANION_PROXY_E_SUCCESS on success,
            or a COMPANION_PROXY_E_* error code otherwise.
            </returns>
            <remarks>
            The event parameter that gets passed to the callback function is
            freed internally after returning from the callback. The consumer needs
            to make a copy if required.
            </remarks>
        </member>
        <member name="M:iMobileDevice.CompanionProxy.ICompanionProxyApi.companion_proxy_stop_listening_for_devices(iMobileDevice.CompanionProxy.CompanionProxyClientHandle)">
            <summary>
            Stops listening for paired devices
            </summary>
            <param name="client">
            The companion_proxy client
            </param>
            <returns>
            COMPANION_PROXY_E_SUCCESS on success,
            or a COMPANION_PROXY_E_* error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.CompanionProxy.ICompanionProxyApi.companion_proxy_get_value_from_registry(iMobileDevice.CompanionProxy.CompanionProxyClientHandle,System.String,System.String,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Returns a value for the given key.
            </summary>
            <param name="client">
            The companion_proxy client
            </param>
            <param name="companion_udid">
            UDID of the (paired) companion device
            </param>
            <param name="key">
            The key to retrieve the value for
            </param>
            <returns>
            COMPANION_PROXY_E_SUCCESS on success,
            COMPANION_PROXY_E_INVALID_ARG when client or paired_devices is invalid,
            COMPANION_PROXY_E_UNSUPPORTED_KEY if the companion device doesn't support the given key,
            or a COMPANION_PROXY_E_* error code otherwise.
            </returns>
            <remarks>
            The device closes the connection after sending the reply.
            </remarks>
        </member>
        <member name="M:iMobileDevice.CompanionProxy.ICompanionProxyApi.companion_proxy_start_forwarding_service_port(iMobileDevice.CompanionProxy.CompanionProxyClientHandle,System.UInt16,System.String,System.UInt16@,iMobileDevice.Plist.PlistHandle)">
            <summary>
            Start forwarding a service port on the companion device to a port on the idevice.
            </summary>
            <param name="client">
            The companion_proxy client
            </param>
            <param name="remote_port">
            remote port
            </param>
            <param name="service_name">
            The name of the service that shall be forwarded
            </param>
            <param name="forward_port">
            Pointer that will receive the newly-assigned port accessible via USB/Network on the idevice
            </param>
            <param name="options">
            PLIST_DICT with additional options. Currently known are
            IsServiceLowPriority (boolean) and PreferWifi (boolean).
            </param>
            <returns>
            COMPANION_PROXY_E_SUCCESS on success,
            or a COMPANION_PROXY_E_* error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.CompanionProxy.ICompanionProxyApi.companion_proxy_stop_forwarding_service_port(iMobileDevice.CompanionProxy.CompanionProxyClientHandle,System.UInt16)">
            <summary>
            Stop forwarding a service port between companion device and idevice.
            </summary>
            <param name="client">
            The companion_proxy client
            </param>
            <param name="remote_port">
            remote port
            </param>
            <returns>
            COMPANION_PROXY_E_SUCCESS on success,
            or a COMPANION_PROXY_E_* error code otherwise.
            </returns>
        </member>
        <member name="F:iMobileDevice.DebugServer.DebugServerApi.parent">
            <summary>
            Backing field for the <see cref="P:iMobileDevice.DebugServer.DebugServerApi.Parent"/> property
            </summary>
        </member>
        <member name="M:iMobileDevice.DebugServer.DebugServerApi.#ctor(iMobileDevice.ILibiMobileDevice)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.DebugServer.DebugServerApi"/> class
            </summary>
            <param name="parent">
            The <see cref="!:ILibiMobileDeviceApi"/> which owns this <see cref="N:iMobileDevice.DebugServer"/>.
            </param>
        </member>
        <member name="P:iMobileDevice.DebugServer.DebugServerApi.Parent">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.DebugServer.DebugServerApi.debugserver_client_new(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Lockdown.LockdownServiceDescriptorHandle,iMobileDevice.DebugServer.DebugServerClientHandle@)">
            <summary>
            Connects to the debugserver 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">
            Pointer that will point to a newly allocated
            debugserver_client_t upon successful return. Must be freed using
            debugserver_client_free() after use.
            </param>
            <returns>
            DEBUGSERVER_E_SUCCESS on success, DEBUGSERVER_E_INVALID_ARG when
            client is NULL, or an DEBUGSERVER_E_* error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.DebugServer.DebugServerApi.debugserver_client_start_service(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.DebugServer.DebugServerClientHandle@,System.String)">
            <summary>
            Starts a new debugserver 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
            debugserver_client_t upon successful return. Must be freed using
            debugserver_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>
            DEBUGSERVER_E_SUCCESS on success, or an DEBUGSERVER_E_* error
            code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.DebugServer.DebugServerApi.debugserver_client_free(System.IntPtr)">
            <summary>
            Disconnects a debugserver client from the device and frees up the
            debugserver client data.
            </summary>
            <param name="client">
            The debugserver client to disconnect and free.
            </param>
            <returns>
            DEBUGSERVER_E_SUCCESS on success, DEBUGSERVER_E_INVALID_ARG when
            client is NULL, or an DEBUGSERVER_E_* error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.DebugServer.DebugServerApi.debugserver_client_send(iMobileDevice.DebugServer.DebugServerClientHandle,System.Byte[],System.UInt32,System.UInt32@)">
            <summary>
            Sends raw data using the given debugserver service client.
            </summary>
            <param name="client">
            The debugserver client to use for sending
            </param>
            <param name="data">
            Data to send
            </param>
            <param name="size">
            Size of the data to send
            </param>
            <param name="sent">
            Number of bytes sent (can be NULL to ignore)
            </param>
            <returns>
            DEBUGSERVER_E_SUCCESS on success,
            DEBUGSERVER_E_INVALID_ARG when one or more parameters are
            invalid, or DEBUGSERVER_E_UNKNOWN_ERROR when an unspecified
            error occurs.
            </returns>
        </member>
        <member name="M:iMobileDevice.DebugServer.DebugServerApi.debugserver_client_receive_with_timeout(iMobileDevice.DebugServer.DebugServerClientHandle,System.Byte[],System.UInt32,System.UInt32@,System.UInt32)">
            <summary>
            Receives raw data using the given debugserver client with specified timeout.
            </summary>
            <param name="client">
            The debugserver client to use for receiving
            </param>
            <param name="data">
            Buffer that will be filled with the data received
            </param>
            <param name="size">
            Number of bytes to receive
            </param>
            <param name="received">
            Number of bytes received (can be NULL to ignore)
            </param>
            <param name="timeout">
            Maximum time in milliseconds to wait for data.
            </param>
            <returns>
            DEBUGSERVER_E_SUCCESS on success,
            DEBUGSERVER_E_INVALID_ARG when one or more parameters are
            invalid, DEBUGSERVER_E_MUX_ERROR when a communication error
            occurs, or DEBUGSERVER_E_UNKNOWN_ERROR when an unspecified
            error occurs.
            </returns>
        </member>
        <member name="M:iMobileDevice.DebugServer.DebugServerApi.debugserver_client_receive(iMobileDevice.DebugServer.DebugServerClientHandle,System.Byte[],System.UInt32,System.UInt32@)">
            <summary>
            Receives raw data from the debugserver service.
            </summary>
            <param name="client">
            The debugserver client
            </param>
            <param name="data">
            Buffer that will be filled with the data received
            </param>
            <param name="size">
            Number of bytes to receive
            </param>
            <param name="received">
            Number of bytes received (can be NULL to ignore)
            </param>
            <returns>
            DEBUGSERVER_E_SUCCESS on success,
            DEBUGSERVER_E_INVALID_ARG when client or plist is NULL
            </returns>
            <remarks>
            The default read timeout is 10 seconds.
            </remarks>
        </member>
        <member name="M:iMobileDevice.DebugServer.DebugServerApi.debugserver_client_send_command(iMobileDevice.DebugServer.DebugServerClientHandle,iMobileDevice.DebugServer.DebugServerCommandHandle,System.String@,System.UInt32@)">
            <summary>
            Sends a command to the debugserver service.
            </summary>
            <param name="client">
            The debugserver client
            </param>
            <param name="command">
            Command to process and send
            </param>
            <param name="response">
            Response received for the command (can be NULL to ignore)
            </param>
            <param name="response_size">
            Pointer to receive response size. Set to NULL to ignore.
            </param>
            <returns>
            DEBUGSERVER_E_SUCCESS on success,
            DEBUGSERVER_E_INVALID_ARG when client or command is NULL
            </returns>
        </member>
        <member name="M:iMobileDevice.DebugServer.DebugServerApi.debugserver_client_receive_response(iMobileDevice.DebugServer.DebugServerClientHandle,System.String@,System.UInt32@)">
            <summary>
            Receives and parses response of debugserver service.
            </summary>
            <param name="client">
            The debugserver client
            </param>
            <param name="response">
            Response received for last command (can be NULL to ignore)
            </param>
            <param name="response_size">
            Pointer to receive response size. Set to NULL to ignore.
            </param>
            <returns>
            DEBUGSERVER_E_SUCCESS on success,
            DEBUGSERVER_E_INVALID_ARG when client is NULL
            </returns>
        </member>
        <member name="M:iMobileDevice.DebugServer.DebugServerApi.debugserver_client_set_ack_mode(iMobileDevice.DebugServer.DebugServerClientHandle,System.Int32)">
            <summary>
            Controls status of ACK mode when sending commands or receiving responses.
            </summary>
            <param name="client">
            The debugserver client
            </param>
            <param name="enabled">
            A boolean flag indicating whether the internal ACK mode
            handling should be enabled or disabled.
            </param>
            <returns>
            DEBUGSERVER_E_SUCCESS on success, or an DEBUGSERVER_E_* error
            code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.DebugServer.DebugServerApi.debugserver_client_set_argv(iMobileDevice.DebugServer.DebugServerClientHandle,System.Int32,System.Collections.ObjectModel.ReadOnlyCollection{System.String},System.String@)">
            <summary>
            Sets the argv which launches an app.
            </summary>
            <param name="client">
            The debugserver client
            </param>
            <param name="argc">
            Number of arguments
            </param>
            <param name="argv">
            Array starting with the executable to be run followed by it's arguments
            </param>
            <param name="response">
            Response received for the command (can be NULL to ignore)
            </param>
            <returns>
            DEBUGSERVER_E_SUCCESS on success,
            DEBUGSERVER_E_INVALID_ARG when client is NULL
            </returns>
        </member>
        <member name="M:iMobileDevice.DebugServer.DebugServerApi.debugserver_client_set_environment_hex_encoded(iMobileDevice.DebugServer.DebugServerClientHandle,System.String,System.String@)">
            <summary>
            Adds or sets an environment variable.
            </summary>
            <param name="client">
            The debugserver client
            </param>
            <param name="env">
            The environment variable in "KEY=VALUE" notation
            </param>
            <param name="response">
            Response received for the command (can be NULL to ignore)
            </param>
            <returns>
            DEBUGSERVER_E_SUCCESS on success,
            DEBUGSERVER_E_INVALID_ARG when client is NULL
            </returns>
        </member>
        <member name="M:iMobileDevice.DebugServer.DebugServerApi.debugserver_command_new(System.String,System.Int32,System.Collections.ObjectModel.ReadOnlyCollection{System.String},iMobileDevice.DebugServer.DebugServerCommandHandle@)">
            <summary>
            Creates and initializes a new command object.
            </summary>
            <param name="name">
            The name of the command which is sent in plain text
            </param>
            <param name="argv">
            Array of tokens for the command ment to be encoded
            </param>
            <param name="argc">
            Number of items in the token array
            </param>
            <param name="command">
            New command object
            </param>
            <returns>
            DEBUGSERVER_E_SUCCESS on success,
            DEBUGSERVER_E_INVALID_ARG when name or command is NULL
            </returns>
        </member>
        <member name="M:iMobileDevice.DebugServer.DebugServerApi.debugserver_command_free(System.IntPtr)">
            <summary>
            Frees memory of command object.
            </summary>
            <param name="command">
            The command object
            </param>
            <returns>
            DEBUGSERVER_E_SUCCESS on success,
            DEBUGSERVER_E_INVALID_ARG when command is NULL
            </returns>
        </member>
        <member name="M:iMobileDevice.DebugServer.DebugServerApi.debugserver_encode_string(System.String,System.String@,System.UInt32@)">
            <summary>
            Encodes a string into hex notation.
            </summary>
            <param name="buffer">
            String to encode into hex notiation
            </param>
            <param name="encoded_buffer">
            The buffer receives a hex encoded string
            </param>
            <param name="encoded_length">
            Length of the hex encoded string
            </param>
        </member>
        <member name="M:iMobileDevice.DebugServer.DebugServerApi.debugserver_decode_string(System.String,System.UInt32,System.String@)">
            <summary>
            Decodes a hex encoded string.
            </summary>
            <param name="encoded_buffer">
            The buffer with a hex encoded string
            </param>
            <param name="encoded_length">
            Length of the encoded buffer
            </param>
            <param name="buffer">
            Decoded string to be freed by the caller
            </param>
        </member>
        <member name="T:iMobileDevice.DebugServer.DebugServerClientHandle">
            <summary>
            Represents a wrapper class for DebugServer handles.
            </summary>
        </member>
        <member name="M:iMobileDevice.DebugServer.DebugServerClientHandle.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.DebugServer.DebugServerClientHandle"/> class.
            </summary>
        </member>
        <member name="M:iMobileDevice.DebugServer.DebugServerClientHandle.#ctor(System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.DebugServer.DebugServerClientHandle"/> class, specifying whether the handle is to be reliably released.
            </summary>
            <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>
        </member>
        <member name="P:iMobileDevice.DebugServer.DebugServerClientHandle.Api">
            <summary>
            Gets or sets the API to use
            </summary>
        </member>
        <member name="P:iMobileDevice.DebugServer.DebugServerClientHandle.Zero">
            <summary>
            Gets a value which represents a pointer or handle that has been initialized to zero.
            </summary>
        </member>
        <member name="M:iMobileDevice.DebugServer.DebugServerClientHandle.ReleaseHandle">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.DebugServer.DebugServerClientHandle.DangerousCreate(System.IntPtr,System.Boolean)">
            <summary>
            Creates a new <see cref="T:iMobileDevice.DebugServer.DebugServerClientHandle"/> from a <see cref="T:System.IntPtr"/>.
            </summary>
            <param name="unsafeHandle">
            The underlying <see cref="T:System.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>
        </member>
        <member name="M:iMobileDevice.DebugServer.DebugServerClientHandle.DangerousCreate(System.IntPtr)">
            <summary>
            Creates a new <see cref="T:iMobileDevice.DebugServer.DebugServerClientHandle"/> from a <see cref="T:System.IntPtr"/>.
            </summary>
            <param name="unsafeHandle">
            The underlying <see cref="T:System.IntPtr"/>
            </param>
            <returns>
            </returns>
        </member>
        <member name="M:iMobileDevice.DebugServer.DebugServerClientHandle.ToString">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.DebugServer.DebugServerClientHandle.Equals(System.Object)">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.DebugServer.DebugServerClientHandle.GetHashCode">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.DebugServer.DebugServerClientHandle.op_Equality(iMobileDevice.DebugServer.DebugServerClientHandle,iMobileDevice.DebugServer.DebugServerClientHandle)">
            <summary>
            Determines whether two specified instances of <see cref="T:iMobileDevice.DebugServer.DebugServerClientHandle"/> are equal.
            </summary>
            <param name="value1">
            The first pointer or handle to compare.
            </param>
            <param name="value2">
            The second pointer or handle to compare.
            </param>
            <returns>
            <see langword="true"/> if <paramref name="value1"/> equals <paramref name="value2"/>; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="M:iMobileDevice.DebugServer.DebugServerClientHandle.op_Inequality(iMobileDevice.DebugServer.DebugServerClientHandle,iMobileDevice.DebugServer.DebugServerClientHandle)">
            <summary>
            Determines whether two specified instances of <see cref="T:iMobileDevice.DebugServer.DebugServerClientHandle"/> are not equal.
            </summary>
            <param name="value1">
            The first pointer or handle to compare.
            </param>
            <param name="value2">
            The second pointer or handle to compare.
            </param>
            <returns>
            <see langword="true"/> if <paramref name="value1"/> does not equal <paramref name="value2"/>; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="T:iMobileDevice.DebugServer.DebugServerCommandHandle">
            <summary>
            Represents a wrapper class for DebugServer handles.
            </summary>
        </member>
        <member name="M:iMobileDevice.DebugServer.DebugServerCommandHandle.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.DebugServer.DebugServerCommandHandle"/> class.
            </summary>
        </member>
        <member name="M:iMobileDevice.DebugServer.DebugServerCommandHandle.#ctor(System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.DebugServer.DebugServerCommandHandle"/> class, specifying whether the handle is to be reliably released.
            </summary>
            <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>
        </member>
        <member name="P:iMobileDevice.DebugServer.DebugServerCommandHandle.Api">
            <summary>
            Gets or sets the API to use
            </summary>
        </member>
        <member name="P:iMobileDevice.DebugServer.DebugServerCommandHandle.Zero">
            <summary>
            Gets a value which represents a pointer or handle that has been initialized to zero.
            </summary>
        </member>
        <member name="M:iMobileDevice.DebugServer.DebugServerCommandHandle.ReleaseHandle">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.DebugServer.DebugServerCommandHandle.DangerousCreate(System.IntPtr,System.Boolean)">
            <summary>
            Creates a new <see cref="T:iMobileDevice.DebugServer.DebugServerCommandHandle"/> from a <see cref="T:System.IntPtr"/>.
            </summary>
            <param name="unsafeHandle">
            The underlying <see cref="T:System.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>
        </member>
        <member name="M:iMobileDevice.DebugServer.DebugServerCommandHandle.DangerousCreate(System.IntPtr)">
            <summary>
            Creates a new <see cref="T:iMobileDevice.DebugServer.DebugServerCommandHandle"/> from a <see cref="T:System.IntPtr"/>.
            </summary>
            <param name="unsafeHandle">
            The underlying <see cref="T:System.IntPtr"/>
            </param>
            <returns>
            </returns>
        </member>
        <member name="M:iMobileDevice.DebugServer.DebugServerCommandHandle.ToString">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.DebugServer.DebugServerCommandHandle.Equals(System.Object)">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.DebugServer.DebugServerCommandHandle.GetHashCode">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.DebugServer.DebugServerCommandHandle.op_Equality(iMobileDevice.DebugServer.DebugServerCommandHandle,iMobileDevice.DebugServer.DebugServerCommandHandle)">
            <summary>
            Determines whether two specified instances of <see cref="T:iMobileDevice.DebugServer.DebugServerCommandHandle"/> are equal.
            </summary>
            <param name="value1">
            The first pointer or handle to compare.
            </param>
            <param name="value2">
            The second pointer or handle to compare.
            </param>
            <returns>
            <see langword="true"/> if <paramref name="value1"/> equals <paramref name="value2"/>; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="M:iMobileDevice.DebugServer.DebugServerCommandHandle.op_Inequality(iMobileDevice.DebugServer.DebugServerCommandHandle,iMobileDevice.DebugServer.DebugServerCommandHandle)">
            <summary>
            Determines whether two specified instances of <see cref="T:iMobileDevice.DebugServer.DebugServerCommandHandle"/> are not equal.
            </summary>
            <param name="value1">
            The first pointer or handle to compare.
            </param>
            <param name="value2">
            The second pointer or handle to compare.
            </param>
            <returns>
            <see langword="true"/> if <paramref name="value1"/> does not equal <paramref name="value2"/>; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="T:iMobileDevice.DebugServer.DebugServerError">
            <summary>
            Error Codes 
            </summary>
        </member>
        <member name="T:iMobileDevice.DebugServer.DebugServerException">
            Represents an exception that occurred when interacting with the DebugServer API.
        </member>
        <member name="F:iMobileDevice.DebugServer.DebugServerException.errorCode">
            <summary>
            Backing field for the <see cref="P:iMobileDevice.DebugServer.DebugServerException.ErrorCode"/> property.
            </summary>
        </member>
        <member name="M:iMobileDevice.DebugServer.DebugServerException.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.DebugServer.DebugServerException"/> class.
            </summary>
        </member>
        <member name="M:iMobileDevice.DebugServer.DebugServerException.#ctor(iMobileDevice.DebugServer.DebugServerError)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.DebugServer.DebugServerException"/> class with a specified error code.
            </summary>
            <param name="error">
            The error code of the error that occurred.
            </param>
        </member>
        <member name="M:iMobileDevice.DebugServer.DebugServerException.#ctor(iMobileDevice.DebugServer.DebugServerError,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.DebugServer.DebugServerException"/> class with a specified error code and error message.
            </summary>
            <param name="error">
            The error code of the error that occurred.
            </param>
            <param name="message">
            A message which describes the error.
            </param>
        </member>
        <member name="M:iMobileDevice.DebugServer.DebugServerException.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.DebugServer.DebugServerException"/> class with a specified error message.
            </summary>
            <param name="message">
            The message that describes the error.
            </param>
        </member>
        <member name="M:iMobileDevice.DebugServer.DebugServerException.#ctor(System.String,System.Exception)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.DebugServer.DebugServerException"/> class with a specified error message and a reference to the inner exception that is the cause of this exception.
            </summary>
            <param name="message">
            The error message that explains the reason for the exception.
            </param>
            <param name="inner">
            The exception that is the cause of the current exception, or <see langword="null"/> if no inner exception is specified.
            </param>
        </member>
        <member name="M:iMobileDevice.DebugServer.DebugServerException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.DebugServer.DebugServerException"/> class with serialized data.
            </summary>
            <param name="info">
            The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds the serialized object data about the exception being thrown.
            </param>
            <param name="context">
            The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that contains contextual information about the source or destination.
            </param>
        </member>
        <member name="P:iMobileDevice.DebugServer.DebugServerException.ErrorCode">
            <summary>
            Gets the error code that represents the error.
            </summary>
        </member>
        <member name="M:iMobileDevice.DebugServer.DebugServerNativeMethods.debugserver_client_new(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Lockdown.LockdownServiceDescriptorHandle,iMobileDevice.DebugServer.DebugServerClientHandle@)">
            <summary>
            Connects to the debugserver 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">
            Pointer that will point to a newly allocated
            debugserver_client_t upon successful return. Must be freed using
            debugserver_client_free() after use.
            </param>
            <returns>
            DEBUGSERVER_E_SUCCESS on success, DEBUGSERVER_E_INVALID_ARG when
            client is NULL, or an DEBUGSERVER_E_* error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.DebugServer.DebugServerNativeMethods.debugserver_client_start_service(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.DebugServer.DebugServerClientHandle@,System.String)">
            <summary>
            Starts a new debugserver 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
            debugserver_client_t upon successful return. Must be freed using
            debugserver_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>
            DEBUGSERVER_E_SUCCESS on success, or an DEBUGSERVER_E_* error
            code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.DebugServer.DebugServerNativeMethods.debugserver_client_free(System.IntPtr)">
            <summary>
            Disconnects a debugserver client from the device and frees up the
            debugserver client data.
            </summary>
            <param name="client">
            The debugserver client to disconnect and free.
            </param>
            <returns>
            DEBUGSERVER_E_SUCCESS on success, DEBUGSERVER_E_INVALID_ARG when
            client is NULL, or an DEBUGSERVER_E_* error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.DebugServer.DebugServerNativeMethods.debugserver_client_send(iMobileDevice.DebugServer.DebugServerClientHandle,System.Byte[],System.UInt32,System.UInt32@)">
            <summary>
            Sends raw data using the given debugserver service client.
            </summary>
            <param name="client">
            The debugserver client to use for sending
            </param>
            <param name="data">
            Data to send
            </param>
            <param name="size">
            Size of the data to send
            </param>
            <param name="sent">
            Number of bytes sent (can be NULL to ignore)
            </param>
            <returns>
            DEBUGSERVER_E_SUCCESS on success,
            DEBUGSERVER_E_INVALID_ARG when one or more parameters are
            invalid, or DEBUGSERVER_E_UNKNOWN_ERROR when an unspecified
            error occurs.
            </returns>
        </member>
        <member name="M:iMobileDevice.DebugServer.DebugServerNativeMethods.debugserver_client_receive_with_timeout(iMobileDevice.DebugServer.DebugServerClientHandle,System.Byte[],System.UInt32,System.UInt32@,System.UInt32)">
            <summary>
            Receives raw data using the given debugserver client with specified timeout.
            </summary>
            <param name="client">
            The debugserver client to use for receiving
            </param>
            <param name="data">
            Buffer that will be filled with the data received
            </param>
            <param name="size">
            Number of bytes to receive
            </param>
            <param name="received">
            Number of bytes received (can be NULL to ignore)
            </param>
            <param name="timeout">
            Maximum time in milliseconds to wait for data.
            </param>
            <returns>
            DEBUGSERVER_E_SUCCESS on success,
            DEBUGSERVER_E_INVALID_ARG when one or more parameters are
            invalid, DEBUGSERVER_E_MUX_ERROR when a communication error
            occurs, or DEBUGSERVER_E_UNKNOWN_ERROR when an unspecified
            error occurs.
            </returns>
        </member>
        <member name="M:iMobileDevice.DebugServer.DebugServerNativeMethods.debugserver_client_receive(iMobileDevice.DebugServer.DebugServerClientHandle,System.Byte[],System.UInt32,System.UInt32@)">
            <summary>
            Receives raw data from the debugserver service.
            </summary>
            <param name="client">
            The debugserver client
            </param>
            <param name="data">
            Buffer that will be filled with the data received
            </param>
            <param name="size">
            Number of bytes to receive
            </param>
            <param name="received">
            Number of bytes received (can be NULL to ignore)
            </param>
            <returns>
            DEBUGSERVER_E_SUCCESS on success,
            DEBUGSERVER_E_INVALID_ARG when client or plist is NULL
            </returns>
            <remarks>
            The default read timeout is 10 seconds.
            </remarks>
        </member>
        <member name="M:iMobileDevice.DebugServer.DebugServerNativeMethods.debugserver_client_send_command(iMobileDevice.DebugServer.DebugServerClientHandle,iMobileDevice.DebugServer.DebugServerCommandHandle,System.IntPtr@,System.UInt32@)">
            <summary>
            Sends a command to the debugserver service.
            </summary>
            <param name="client">
            The debugserver client
            </param>
            <param name="command">
            Command to process and send
            </param>
            <param name="response">
            Response received for the command (can be NULL to ignore)
            </param>
            <param name="response_size">
            Pointer to receive response size. Set to NULL to ignore.
            </param>
            <returns>
            DEBUGSERVER_E_SUCCESS on success,
            DEBUGSERVER_E_INVALID_ARG when client or command is NULL
            </returns>
        </member>
        <member name="M:iMobileDevice.DebugServer.DebugServerNativeMethods.debugserver_client_receive_response(iMobileDevice.DebugServer.DebugServerClientHandle,System.IntPtr@,System.UInt32@)">
            <summary>
            Receives and parses response of debugserver service.
            </summary>
            <param name="client">
            The debugserver client
            </param>
            <param name="response">
            Response received for last command (can be NULL to ignore)
            </param>
            <param name="response_size">
            Pointer to receive response size. Set to NULL to ignore.
            </param>
            <returns>
            DEBUGSERVER_E_SUCCESS on success,
            DEBUGSERVER_E_INVALID_ARG when client is NULL
            </returns>
        </member>
        <member name="M:iMobileDevice.DebugServer.DebugServerNativeMethods.debugserver_client_set_ack_mode(iMobileDevice.DebugServer.DebugServerClientHandle,System.Int32)">
            <summary>
            Controls status of ACK mode when sending commands or receiving responses.
            </summary>
            <param name="client">
            The debugserver client
            </param>
            <param name="enabled">
            A boolean flag indicating whether the internal ACK mode
            handling should be enabled or disabled.
            </param>
            <returns>
            DEBUGSERVER_E_SUCCESS on success, or an DEBUGSERVER_E_* error
            code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.DebugServer.DebugServerNativeMethods.debugserver_client_set_argv(iMobileDevice.DebugServer.DebugServerClientHandle,System.Int32,System.IntPtr,System.IntPtr@)">
            <summary>
            Sets the argv which launches an app.
            </summary>
            <param name="client">
            The debugserver client
            </param>
            <param name="argc">
            Number of arguments
            </param>
            <param name="argv">
            Array starting with the executable to be run followed by it's arguments
            </param>
            <param name="response">
            Response received for the command (can be NULL to ignore)
            </param>
            <returns>
            DEBUGSERVER_E_SUCCESS on success,
            DEBUGSERVER_E_INVALID_ARG when client is NULL
            </returns>
        </member>
        <member name="M:iMobileDevice.DebugServer.DebugServerNativeMethods.debugserver_client_set_environment_hex_encoded(iMobileDevice.DebugServer.DebugServerClientHandle,System.String,System.IntPtr@)">
            <summary>
            Adds or sets an environment variable.
            </summary>
            <param name="client">
            The debugserver client
            </param>
            <param name="env">
            The environment variable in "KEY=VALUE" notation
            </param>
            <param name="response">
            Response received for the command (can be NULL to ignore)
            </param>
            <returns>
            DEBUGSERVER_E_SUCCESS on success,
            DEBUGSERVER_E_INVALID_ARG when client is NULL
            </returns>
        </member>
        <member name="M:iMobileDevice.DebugServer.DebugServerNativeMethods.debugserver_command_new(System.String,System.Int32,System.IntPtr,iMobileDevice.DebugServer.DebugServerCommandHandle@)">
            <summary>
            Creates and initializes a new command object.
            </summary>
            <param name="name">
            The name of the command which is sent in plain text
            </param>
            <param name="argv">
            Array of tokens for the command ment to be encoded
            </param>
            <param name="argc">
            Number of items in the token array
            </param>
            <param name="command">
            New command object
            </param>
            <returns>
            DEBUGSERVER_E_SUCCESS on success,
            DEBUGSERVER_E_INVALID_ARG when name or command is NULL
            </returns>
        </member>
        <member name="M:iMobileDevice.DebugServer.DebugServerNativeMethods.debugserver_command_free(System.IntPtr)">
            <summary>
            Frees memory of command object.
            </summary>
            <param name="command">
            The command object
            </param>
            <returns>
            DEBUGSERVER_E_SUCCESS on success,
            DEBUGSERVER_E_INVALID_ARG when command is NULL
            </returns>
        </member>
        <member name="M:iMobileDevice.DebugServer.DebugServerNativeMethods.debugserver_encode_string(System.String,System.IntPtr@,System.UInt32@)">
            <summary>
            Encodes a string into hex notation.
            </summary>
            <param name="buffer">
            String to encode into hex notiation
            </param>
            <param name="encoded_buffer">
            The buffer receives a hex encoded string
            </param>
            <param name="encoded_length">
            Length of the hex encoded string
            </param>
        </member>
        <member name="M:iMobileDevice.DebugServer.DebugServerNativeMethods.debugserver_decode_string(System.String,System.UInt32,System.IntPtr@)">
            <summary>
            Decodes a hex encoded string.
            </summary>
            <param name="encoded_buffer">
            The buffer with a hex encoded string
            </param>
            <param name="encoded_length">
            Length of the encoded buffer
            </param>
            <param name="buffer">
            Decoded string to be freed by the caller
            </param>
        </member>
        <member name="P:iMobileDevice.DebugServer.IDebugServerApi.Parent">
            <summary>
            Gets or sets the <see cref="!:ILibiMobileDeviceApi"/> which owns this <see cref="N:iMobileDevice.DebugServer"/>.
            </summary>
        </member>
        <member name="M:iMobileDevice.DebugServer.IDebugServerApi.debugserver_client_new(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Lockdown.LockdownServiceDescriptorHandle,iMobileDevice.DebugServer.DebugServerClientHandle@)">
            <summary>
            Connects to the debugserver 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">
            Pointer that will point to a newly allocated
            debugserver_client_t upon successful return. Must be freed using
            debugserver_client_free() after use.
            </param>
            <returns>
            DEBUGSERVER_E_SUCCESS on success, DEBUGSERVER_E_INVALID_ARG when
            client is NULL, or an DEBUGSERVER_E_* error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.DebugServer.IDebugServerApi.debugserver_client_start_service(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.DebugServer.DebugServerClientHandle@,System.String)">
            <summary>
            Starts a new debugserver 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
            debugserver_client_t upon successful return. Must be freed using
            debugserver_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>
            DEBUGSERVER_E_SUCCESS on success, or an DEBUGSERVER_E_* error
            code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.DebugServer.IDebugServerApi.debugserver_client_free(System.IntPtr)">
            <summary>
            Disconnects a debugserver client from the device and frees up the
            debugserver client data.
            </summary>
            <param name="client">
            The debugserver client to disconnect and free.
            </param>
            <returns>
            DEBUGSERVER_E_SUCCESS on success, DEBUGSERVER_E_INVALID_ARG when
            client is NULL, or an DEBUGSERVER_E_* error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.DebugServer.IDebugServerApi.debugserver_client_send(iMobileDevice.DebugServer.DebugServerClientHandle,System.Byte[],System.UInt32,System.UInt32@)">
            <summary>
            Sends raw data using the given debugserver service client.
            </summary>
            <param name="client">
            The debugserver client to use for sending
            </param>
            <param name="data">
            Data to send
            </param>
            <param name="size">
            Size of the data to send
            </param>
            <param name="sent">
            Number of bytes sent (can be NULL to ignore)
            </param>
            <returns>
            DEBUGSERVER_E_SUCCESS on success,
            DEBUGSERVER_E_INVALID_ARG when one or more parameters are
            invalid, or DEBUGSERVER_E_UNKNOWN_ERROR when an unspecified
            error occurs.
            </returns>
        </member>
        <member name="M:iMobileDevice.DebugServer.IDebugServerApi.debugserver_client_receive_with_timeout(iMobileDevice.DebugServer.DebugServerClientHandle,System.Byte[],System.UInt32,System.UInt32@,System.UInt32)">
            <summary>
            Receives raw data using the given debugserver client with specified timeout.
            </summary>
            <param name="client">
            The debugserver client to use for receiving
            </param>
            <param name="data">
            Buffer that will be filled with the data received
            </param>
            <param name="size">
            Number of bytes to receive
            </param>
            <param name="received">
            Number of bytes received (can be NULL to ignore)
            </param>
            <param name="timeout">
            Maximum time in milliseconds to wait for data.
            </param>
            <returns>
            DEBUGSERVER_E_SUCCESS on success,
            DEBUGSERVER_E_INVALID_ARG when one or more parameters are
            invalid, DEBUGSERVER_E_MUX_ERROR when a communication error
            occurs, or DEBUGSERVER_E_UNKNOWN_ERROR when an unspecified
            error occurs.
            </returns>
        </member>
        <member name="M:iMobileDevice.DebugServer.IDebugServerApi.debugserver_client_receive(iMobileDevice.DebugServer.DebugServerClientHandle,System.Byte[],System.UInt32,System.UInt32@)">
            <summary>
            Receives raw data from the debugserver service.
            </summary>
            <param name="client">
            The debugserver client
            </param>
            <param name="data">
            Buffer that will be filled with the data received
            </param>
            <param name="size">
            Number of bytes to receive
            </param>
            <param name="received">
            Number of bytes received (can be NULL to ignore)
            </param>
            <returns>
            DEBUGSERVER_E_SUCCESS on success,
            DEBUGSERVER_E_INVALID_ARG when client or plist is NULL
            </returns>
            <remarks>
            The default read timeout is 10 seconds.
            </remarks>
        </member>
        <member name="M:iMobileDevice.DebugServer.IDebugServerApi.debugserver_client_send_command(iMobileDevice.DebugServer.DebugServerClientHandle,iMobileDevice.DebugServer.DebugServerCommandHandle,System.String@,System.UInt32@)">
            <summary>
            Sends a command to the debugserver service.
            </summary>
            <param name="client">
            The debugserver client
            </param>
            <param name="command">
            Command to process and send
            </param>
            <param name="response">
            Response received for the command (can be NULL to ignore)
            </param>
            <param name="response_size">
            Pointer to receive response size. Set to NULL to ignore.
            </param>
            <returns>
            DEBUGSERVER_E_SUCCESS on success,
            DEBUGSERVER_E_INVALID_ARG when client or command is NULL
            </returns>
        </member>
        <member name="M:iMobileDevice.DebugServer.IDebugServerApi.debugserver_client_receive_response(iMobileDevice.DebugServer.DebugServerClientHandle,System.String@,System.UInt32@)">
            <summary>
            Receives and parses response of debugserver service.
            </summary>
            <param name="client">
            The debugserver client
            </param>
            <param name="response">
            Response received for last command (can be NULL to ignore)
            </param>
            <param name="response_size">
            Pointer to receive response size. Set to NULL to ignore.
            </param>
            <returns>
            DEBUGSERVER_E_SUCCESS on success,
            DEBUGSERVER_E_INVALID_ARG when client is NULL
            </returns>
        </member>
        <member name="M:iMobileDevice.DebugServer.IDebugServerApi.debugserver_client_set_ack_mode(iMobileDevice.DebugServer.DebugServerClientHandle,System.Int32)">
            <summary>
            Controls status of ACK mode when sending commands or receiving responses.
            </summary>
            <param name="client">
            The debugserver client
            </param>
            <param name="enabled">
            A boolean flag indicating whether the internal ACK mode
            handling should be enabled or disabled.
            </param>
            <returns>
            DEBUGSERVER_E_SUCCESS on success, or an DEBUGSERVER_E_* error
            code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.DebugServer.IDebugServerApi.debugserver_client_set_argv(iMobileDevice.DebugServer.DebugServerClientHandle,System.Int32,System.Collections.ObjectModel.ReadOnlyCollection{System.String},System.String@)">
            <summary>
            Sets the argv which launches an app.
            </summary>
            <param name="client">
            The debugserver client
            </param>
            <param name="argc">
            Number of arguments
            </param>
            <param name="argv">
            Array starting with the executable to be run followed by it's arguments
            </param>
            <param name="response">
            Response received for the command (can be NULL to ignore)
            </param>
            <returns>
            DEBUGSERVER_E_SUCCESS on success,
            DEBUGSERVER_E_INVALID_ARG when client is NULL
            </returns>
        </member>
        <member name="M:iMobileDevice.DebugServer.IDebugServerApi.debugserver_client_set_environment_hex_encoded(iMobileDevice.DebugServer.DebugServerClientHandle,System.String,System.String@)">
            <summary>
            Adds or sets an environment variable.
            </summary>
            <param name="client">
            The debugserver client
            </param>
            <param name="env">
            The environment variable in "KEY=VALUE" notation
            </param>
            <param name="response">
            Response received for the command (can be NULL to ignore)
            </param>
            <returns>
            DEBUGSERVER_E_SUCCESS on success,
            DEBUGSERVER_E_INVALID_ARG when client is NULL
            </returns>
        </member>
        <member name="M:iMobileDevice.DebugServer.IDebugServerApi.debugserver_command_new(System.String,System.Int32,System.Collections.ObjectModel.ReadOnlyCollection{System.String},iMobileDevice.DebugServer.DebugServerCommandHandle@)">
            <summary>
            Creates and initializes a new command object.
            </summary>
            <param name="name">
            The name of the command which is sent in plain text
            </param>
            <param name="argv">
            Array of tokens for the command ment to be encoded
            </param>
            <param name="argc">
            Number of items in the token array
            </param>
            <param name="command">
            New command object
            </param>
            <returns>
            DEBUGSERVER_E_SUCCESS on success,
            DEBUGSERVER_E_INVALID_ARG when name or command is NULL
            </returns>
        </member>
        <member name="M:iMobileDevice.DebugServer.IDebugServerApi.debugserver_command_free(System.IntPtr)">
            <summary>
            Frees memory of command object.
            </summary>
            <param name="command">
            The command object
            </param>
            <returns>
            DEBUGSERVER_E_SUCCESS on success,
            DEBUGSERVER_E_INVALID_ARG when command is NULL
            </returns>
        </member>
        <member name="M:iMobileDevice.DebugServer.IDebugServerApi.debugserver_encode_string(System.String,System.String@,System.UInt32@)">
            <summary>
            Encodes a string into hex notation.
            </summary>
            <param name="buffer">
            String to encode into hex notiation
            </param>
            <param name="encoded_buffer">
            The buffer receives a hex encoded string
            </param>
            <param name="encoded_length">
            Length of the hex encoded string
            </param>
        </member>
        <member name="M:iMobileDevice.DebugServer.IDebugServerApi.debugserver_decode_string(System.String,System.UInt32,System.String@)">
            <summary>
            Decodes a hex encoded string.
            </summary>
            <param name="encoded_buffer">
            The buffer with a hex encoded string
            </param>
            <param name="encoded_length">
            Length of the encoded buffer
            </param>
            <param name="buffer">
            Decoded string to be freed by the caller
            </param>
        </member>
        <member name="F:iMobileDevice.DiagnosticsRelay.DiagnosticsRelayApi.parent">
            <summary>
            Backing field for the <see cref="P:iMobileDevice.DiagnosticsRelay.DiagnosticsRelayApi.Parent"/> property
            </summary>
        </member>
        <member name="M:iMobileDevice.DiagnosticsRelay.DiagnosticsRelayApi.#ctor(iMobileDevice.ILibiMobileDevice)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.DiagnosticsRelay.DiagnosticsRelayApi"/> class
            </summary>
            <param name="parent">
            The <see cref="!:ILibiMobileDeviceApi"/> which owns this <see cref="N:iMobileDevice.DiagnosticsRelay"/>.
            </param>
        </member>
        <member name="P:iMobileDevice.DiagnosticsRelay.DiagnosticsRelayApi.Parent">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.DiagnosticsRelay.DiagnosticsRelayApi.diagnostics_relay_client_new(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Lockdown.LockdownServiceDescriptorHandle,iMobileDevice.DiagnosticsRelay.DiagnosticsRelayClientHandle@)">
            <summary>
            Connects to the diagnostics_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
            diagnostics_relay_client_t upon successful return.
            </param>
            <returns>
            DIAGNOSTICS_RELAY_E_SUCCESS on success,
            DIAGNOSTICS_RELAY_E_INVALID_ARG when one of the parameters is invalid,
            or DIAGNOSTICS_RELAY_E_MUX_ERROR when the connection failed.
            </returns>
        </member>
        <member name="M:iMobileDevice.DiagnosticsRelay.DiagnosticsRelayApi.diagnostics_relay_client_start_service(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.DiagnosticsRelay.DiagnosticsRelayClientHandle@,System.String)">
            <summary>
            Starts a new diagnostics_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
            diagnostics_relay_client_t upon successful return. Must be freed using
            diagnostics_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>
            DIAGNOSTICS_RELAY_E_SUCCESS on success, or an DIAGNOSTICS_RELAY_E_* error
            code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.DiagnosticsRelay.DiagnosticsRelayApi.diagnostics_relay_client_free(System.IntPtr)">
            <summary>
            Disconnects a diagnostics_relay client from the device and frees up the
            diagnostics_relay client data.
            </summary>
            <param name="client">
            The diagnostics_relay client to disconnect and free.
            </param>
            <returns>
            DIAGNOSTICS_RELAY_E_SUCCESS on success,
            DIAGNOSTICS_RELAY_E_INVALID_ARG when one of client or client->parent
            is invalid, or DIAGNOSTICS_RELAY_E_UNKNOWN_ERROR when the was an
            error freeing the parent property_list_service client.
            </returns>
        </member>
        <member name="M:iMobileDevice.DiagnosticsRelay.DiagnosticsRelayApi.diagnostics_relay_goodbye(iMobileDevice.DiagnosticsRelay.DiagnosticsRelayClientHandle)">
            <summary>
            Sends the Goodbye request signaling the end of communication.
            </summary>
            <param name="client">
            The diagnostics_relay client
            </param>
            <returns>
            DIAGNOSTICS_RELAY_E_SUCCESS on success,
            DIAGNOSTICS_RELAY_E_INVALID_ARG when client is NULL,
            DIAGNOSTICS_RELAY_E_PLIST_ERROR if the device did not acknowledge the
            request
            </returns>
        </member>
        <member name="M:iMobileDevice.DiagnosticsRelay.DiagnosticsRelayApi.diagnostics_relay_sleep(iMobileDevice.DiagnosticsRelay.DiagnosticsRelayClientHandle)">
            <summary>
            Puts the device into deep sleep mode and disconnects from host.
            </summary>
            <param name="client">
            The diagnostics_relay client
            </param>
            <returns>
            DIAGNOSTICS_RELAY_E_SUCCESS on success,
            DIAGNOSTICS_RELAY_E_INVALID_ARG when client is NULL,
            DIAGNOSTICS_RELAY_E_PLIST_ERROR if the device did not acknowledge the
            request
            </returns>
        </member>
        <member name="M:iMobileDevice.DiagnosticsRelay.DiagnosticsRelayApi.diagnostics_relay_restart(iMobileDevice.DiagnosticsRelay.DiagnosticsRelayClientHandle,iMobileDevice.DiagnosticsRelay.DiagnosticsRelayAction)">
            <summary>
            Restart the device and optionally show a user notification.
            </summary>
            <param name="client">
            The diagnostics_relay client
            </param>
            <param name="flags">
            A binary flag combination of
            DIAGNOSTICS_RELAY_ACTION_FLAG_WAIT_FOR_DISCONNECT to wait until
            diagnostics_relay_client_free() disconnects before execution and
            DIAGNOSTICS_RELAY_ACTION_FLAG_DISPLAY_FAIL to show a "FAIL" dialog
            or DIAGNOSTICS_RELAY_ACTION_FLAG_DISPLAY_PASS to show an "OK" dialog
            </param>
            <returns>
            DIAGNOSTICS_RELAY_E_SUCCESS on success,
            DIAGNOSTICS_RELAY_E_INVALID_ARG when client is NULL,
            DIAGNOSTICS_RELAY_E_PLIST_ERROR if the device did not acknowledge the
            request
            </returns>
        </member>
        <member name="M:iMobileDevice.DiagnosticsRelay.DiagnosticsRelayApi.diagnostics_relay_shutdown(iMobileDevice.DiagnosticsRelay.DiagnosticsRelayClientHandle,iMobileDevice.DiagnosticsRelay.DiagnosticsRelayAction)">
            <summary>
            Shutdown of the device and optionally show a user notification.
            </summary>
            <param name="client">
            The diagnostics_relay client
            </param>
            <param name="flags">
            A binary flag combination of
            DIAGNOSTICS_RELAY_ACTION_FLAG_WAIT_FOR_DISCONNECT to wait until
            diagnostics_relay_client_free() disconnects before execution and
            DIAGNOSTICS_RELAY_ACTION_FLAG_DISPLAY_FAIL to show a "FAIL" dialog
            or DIAGNOSTICS_RELAY_ACTION_FLAG_DISPLAY_PASS to show an "OK" dialog
            </param>
            <returns>
            DIAGNOSTICS_RELAY_E_SUCCESS on success,
            DIAGNOSTICS_RELAY_E_INVALID_ARG when client is NULL,
            DIAGNOSTICS_RELAY_E_PLIST_ERROR if the device did not acknowledge the
            request
            </returns>
        </member>
        <member name="M:iMobileDevice.DiagnosticsRelay.DiagnosticsRelayApi.diagnostics_relay_request_diagnostics(iMobileDevice.DiagnosticsRelay.DiagnosticsRelayClientHandle,System.String,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Shutdown of the device and optionally show a user notification.
            </summary>
            <param name="client">
            The diagnostics_relay client
            </param>
            <param name="flags">
            A binary flag combination of
            DIAGNOSTICS_RELAY_ACTION_FLAG_WAIT_FOR_DISCONNECT to wait until
            diagnostics_relay_client_free() disconnects before execution and
            DIAGNOSTICS_RELAY_ACTION_FLAG_DISPLAY_FAIL to show a "FAIL" dialog
            or DIAGNOSTICS_RELAY_ACTION_FLAG_DISPLAY_PASS to show an "OK" dialog
            </param>
            <returns>
            DIAGNOSTICS_RELAY_E_SUCCESS on success,
            DIAGNOSTICS_RELAY_E_INVALID_ARG when client is NULL,
            DIAGNOSTICS_RELAY_E_PLIST_ERROR if the device did not acknowledge the
            request
            </returns>
        </member>
        <member name="T:iMobileDevice.DiagnosticsRelay.DiagnosticsRelayClientHandle">
            <summary>
            Represents a wrapper class for DiagnosticsRelay handles.
            </summary>
        </member>
        <member name="M:iMobileDevice.DiagnosticsRelay.DiagnosticsRelayClientHandle.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.DiagnosticsRelay.DiagnosticsRelayClientHandle"/> class.
            </summary>
        </member>
        <member name="M:iMobileDevice.DiagnosticsRelay.DiagnosticsRelayClientHandle.#ctor(System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.DiagnosticsRelay.DiagnosticsRelayClientHandle"/> class, specifying whether the handle is to be reliably released.
            </summary>
            <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>
        </member>
        <member name="P:iMobileDevice.DiagnosticsRelay.DiagnosticsRelayClientHandle.Api">
            <summary>
            Gets or sets the API to use
            </summary>
        </member>
        <member name="P:iMobileDevice.DiagnosticsRelay.DiagnosticsRelayClientHandle.Zero">
            <summary>
            Gets a value which represents a pointer or handle that has been initialized to zero.
            </summary>
        </member>
        <member name="M:iMobileDevice.DiagnosticsRelay.DiagnosticsRelayClientHandle.ReleaseHandle">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.DiagnosticsRelay.DiagnosticsRelayClientHandle.DangerousCreate(System.IntPtr,System.Boolean)">
            <summary>
            Creates a new <see cref="T:iMobileDevice.DiagnosticsRelay.DiagnosticsRelayClientHandle"/> from a <see cref="T:System.IntPtr"/>.
            </summary>
            <param name="unsafeHandle">
            The underlying <see cref="T:System.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>
        </member>
        <member name="M:iMobileDevice.DiagnosticsRelay.DiagnosticsRelayClientHandle.DangerousCreate(System.IntPtr)">
            <summary>
            Creates a new <see cref="T:iMobileDevice.DiagnosticsRelay.DiagnosticsRelayClientHandle"/> from a <see cref="T:System.IntPtr"/>.
            </summary>
            <param name="unsafeHandle">
            The underlying <see cref="T:System.IntPtr"/>
            </param>
            <returns>
            </returns>
        </member>
        <member name="M:iMobileDevice.DiagnosticsRelay.DiagnosticsRelayClientHandle.ToString">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.DiagnosticsRelay.DiagnosticsRelayClientHandle.Equals(System.Object)">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.DiagnosticsRelay.DiagnosticsRelayClientHandle.GetHashCode">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.DiagnosticsRelay.DiagnosticsRelayClientHandle.op_Equality(iMobileDevice.DiagnosticsRelay.DiagnosticsRelayClientHandle,iMobileDevice.DiagnosticsRelay.DiagnosticsRelayClientHandle)">
            <summary>
            Determines whether two specified instances of <see cref="T:iMobileDevice.DiagnosticsRelay.DiagnosticsRelayClientHandle"/> are equal.
            </summary>
            <param name="value1">
            The first pointer or handle to compare.
            </param>
            <param name="value2">
            The second pointer or handle to compare.
            </param>
            <returns>
            <see langword="true"/> if <paramref name="value1"/> equals <paramref name="value2"/>; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="M:iMobileDevice.DiagnosticsRelay.DiagnosticsRelayClientHandle.op_Inequality(iMobileDevice.DiagnosticsRelay.DiagnosticsRelayClientHandle,iMobileDevice.DiagnosticsRelay.DiagnosticsRelayClientHandle)">
            <summary>
            Determines whether two specified instances of <see cref="T:iMobileDevice.DiagnosticsRelay.DiagnosticsRelayClientHandle"/> are not equal.
            </summary>
            <param name="value1">
            The first pointer or handle to compare.
            </param>
            <param name="value2">
            The second pointer or handle to compare.
            </param>
            <returns>
            <see langword="true"/> if <paramref name="value1"/> does not equal <paramref name="value2"/>; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="T:iMobileDevice.DiagnosticsRelay.DiagnosticsRelayError">
            <summary>
            Error Codes 
            </summary>
        </member>
        <member name="T:iMobileDevice.DiagnosticsRelay.DiagnosticsRelayException">
            Represents an exception that occurred when interacting with the DiagnosticsRelay API.
        </member>
        <member name="F:iMobileDevice.DiagnosticsRelay.DiagnosticsRelayException.errorCode">
            <summary>
            Backing field for the <see cref="P:iMobileDevice.DiagnosticsRelay.DiagnosticsRelayException.ErrorCode"/> property.
            </summary>
        </member>
        <member name="M:iMobileDevice.DiagnosticsRelay.DiagnosticsRelayException.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.DiagnosticsRelay.DiagnosticsRelayException"/> class.
            </summary>
        </member>
        <member name="M:iMobileDevice.DiagnosticsRelay.DiagnosticsRelayException.#ctor(iMobileDevice.DiagnosticsRelay.DiagnosticsRelayError)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.DiagnosticsRelay.DiagnosticsRelayException"/> class with a specified error code.
            </summary>
            <param name="error">
            The error code of the error that occurred.
            </param>
        </member>
        <member name="M:iMobileDevice.DiagnosticsRelay.DiagnosticsRelayException.#ctor(iMobileDevice.DiagnosticsRelay.DiagnosticsRelayError,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.DiagnosticsRelay.DiagnosticsRelayException"/> class with a specified error code and error message.
            </summary>
            <param name="error">
            The error code of the error that occurred.
            </param>
            <param name="message">
            A message which describes the error.
            </param>
        </member>
        <member name="M:iMobileDevice.DiagnosticsRelay.DiagnosticsRelayException.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.DiagnosticsRelay.DiagnosticsRelayException"/> class with a specified error message.
            </summary>
            <param name="message">
            The message that describes the error.
            </param>
        </member>
        <member name="M:iMobileDevice.DiagnosticsRelay.DiagnosticsRelayException.#ctor(System.String,System.Exception)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.DiagnosticsRelay.DiagnosticsRelayException"/> class with a specified error message and a reference to the inner exception that is the cause of this exception.
            </summary>
            <param name="message">
            The error message that explains the reason for the exception.
            </param>
            <param name="inner">
            The exception that is the cause of the current exception, or <see langword="null"/> if no inner exception is specified.
            </param>
        </member>
        <member name="M:iMobileDevice.DiagnosticsRelay.DiagnosticsRelayException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.DiagnosticsRelay.DiagnosticsRelayException"/> class with serialized data.
            </summary>
            <param name="info">
            The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds the serialized object data about the exception being thrown.
            </param>
            <param name="context">
            The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that contains contextual information about the source or destination.
            </param>
        </member>
        <member name="P:iMobileDevice.DiagnosticsRelay.DiagnosticsRelayException.ErrorCode">
            <summary>
            Gets the error code that represents the error.
            </summary>
        </member>
        <member name="M:iMobileDevice.DiagnosticsRelay.DiagnosticsRelayNativeMethods.diagnostics_relay_client_new(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Lockdown.LockdownServiceDescriptorHandle,iMobileDevice.DiagnosticsRelay.DiagnosticsRelayClientHandle@)">
            <summary>
            Connects to the diagnostics_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
            diagnostics_relay_client_t upon successful return.
            </param>
            <returns>
            DIAGNOSTICS_RELAY_E_SUCCESS on success,
            DIAGNOSTICS_RELAY_E_INVALID_ARG when one of the parameters is invalid,
            or DIAGNOSTICS_RELAY_E_MUX_ERROR when the connection failed.
            </returns>
        </member>
        <member name="M:iMobileDevice.DiagnosticsRelay.DiagnosticsRelayNativeMethods.diagnostics_relay_client_start_service(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.DiagnosticsRelay.DiagnosticsRelayClientHandle@,System.String)">
            <summary>
            Starts a new diagnostics_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
            diagnostics_relay_client_t upon successful return. Must be freed using
            diagnostics_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>
            DIAGNOSTICS_RELAY_E_SUCCESS on success, or an DIAGNOSTICS_RELAY_E_* error
            code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.DiagnosticsRelay.DiagnosticsRelayNativeMethods.diagnostics_relay_client_free(System.IntPtr)">
            <summary>
            Disconnects a diagnostics_relay client from the device and frees up the
            diagnostics_relay client data.
            </summary>
            <param name="client">
            The diagnostics_relay client to disconnect and free.
            </param>
            <returns>
            DIAGNOSTICS_RELAY_E_SUCCESS on success,
            DIAGNOSTICS_RELAY_E_INVALID_ARG when one of client or client->parent
            is invalid, or DIAGNOSTICS_RELAY_E_UNKNOWN_ERROR when the was an
            error freeing the parent property_list_service client.
            </returns>
        </member>
        <member name="M:iMobileDevice.DiagnosticsRelay.DiagnosticsRelayNativeMethods.diagnostics_relay_goodbye(iMobileDevice.DiagnosticsRelay.DiagnosticsRelayClientHandle)">
            <summary>
            Sends the Goodbye request signaling the end of communication.
            </summary>
            <param name="client">
            The diagnostics_relay client
            </param>
            <returns>
            DIAGNOSTICS_RELAY_E_SUCCESS on success,
            DIAGNOSTICS_RELAY_E_INVALID_ARG when client is NULL,
            DIAGNOSTICS_RELAY_E_PLIST_ERROR if the device did not acknowledge the
            request
            </returns>
        </member>
        <member name="M:iMobileDevice.DiagnosticsRelay.DiagnosticsRelayNativeMethods.diagnostics_relay_sleep(iMobileDevice.DiagnosticsRelay.DiagnosticsRelayClientHandle)">
            <summary>
            Puts the device into deep sleep mode and disconnects from host.
            </summary>
            <param name="client">
            The diagnostics_relay client
            </param>
            <returns>
            DIAGNOSTICS_RELAY_E_SUCCESS on success,
            DIAGNOSTICS_RELAY_E_INVALID_ARG when client is NULL,
            DIAGNOSTICS_RELAY_E_PLIST_ERROR if the device did not acknowledge the
            request
            </returns>
        </member>
        <member name="M:iMobileDevice.DiagnosticsRelay.DiagnosticsRelayNativeMethods.diagnostics_relay_restart(iMobileDevice.DiagnosticsRelay.DiagnosticsRelayClientHandle,iMobileDevice.DiagnosticsRelay.DiagnosticsRelayAction)">
            <summary>
            Restart the device and optionally show a user notification.
            </summary>
            <param name="client">
            The diagnostics_relay client
            </param>
            <param name="flags">
            A binary flag combination of
            DIAGNOSTICS_RELAY_ACTION_FLAG_WAIT_FOR_DISCONNECT to wait until
            diagnostics_relay_client_free() disconnects before execution and
            DIAGNOSTICS_RELAY_ACTION_FLAG_DISPLAY_FAIL to show a "FAIL" dialog
            or DIAGNOSTICS_RELAY_ACTION_FLAG_DISPLAY_PASS to show an "OK" dialog
            </param>
            <returns>
            DIAGNOSTICS_RELAY_E_SUCCESS on success,
            DIAGNOSTICS_RELAY_E_INVALID_ARG when client is NULL,
            DIAGNOSTICS_RELAY_E_PLIST_ERROR if the device did not acknowledge the
            request
            </returns>
        </member>
        <member name="M:iMobileDevice.DiagnosticsRelay.DiagnosticsRelayNativeMethods.diagnostics_relay_shutdown(iMobileDevice.DiagnosticsRelay.DiagnosticsRelayClientHandle,iMobileDevice.DiagnosticsRelay.DiagnosticsRelayAction)">
            <summary>
            Shutdown of the device and optionally show a user notification.
            </summary>
            <param name="client">
            The diagnostics_relay client
            </param>
            <param name="flags">
            A binary flag combination of
            DIAGNOSTICS_RELAY_ACTION_FLAG_WAIT_FOR_DISCONNECT to wait until
            diagnostics_relay_client_free() disconnects before execution and
            DIAGNOSTICS_RELAY_ACTION_FLAG_DISPLAY_FAIL to show a "FAIL" dialog
            or DIAGNOSTICS_RELAY_ACTION_FLAG_DISPLAY_PASS to show an "OK" dialog
            </param>
            <returns>
            DIAGNOSTICS_RELAY_E_SUCCESS on success,
            DIAGNOSTICS_RELAY_E_INVALID_ARG when client is NULL,
            DIAGNOSTICS_RELAY_E_PLIST_ERROR if the device did not acknowledge the
            request
            </returns>
        </member>
        <member name="M:iMobileDevice.DiagnosticsRelay.DiagnosticsRelayNativeMethods.diagnostics_relay_request_diagnostics(iMobileDevice.DiagnosticsRelay.DiagnosticsRelayClientHandle,System.String,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Shutdown of the device and optionally show a user notification.
            </summary>
            <param name="client">
            The diagnostics_relay client
            </param>
            <param name="flags">
            A binary flag combination of
            DIAGNOSTICS_RELAY_ACTION_FLAG_WAIT_FOR_DISCONNECT to wait until
            diagnostics_relay_client_free() disconnects before execution and
            DIAGNOSTICS_RELAY_ACTION_FLAG_DISPLAY_FAIL to show a "FAIL" dialog
            or DIAGNOSTICS_RELAY_ACTION_FLAG_DISPLAY_PASS to show an "OK" dialog
            </param>
            <returns>
            DIAGNOSTICS_RELAY_E_SUCCESS on success,
            DIAGNOSTICS_RELAY_E_INVALID_ARG when client is NULL,
            DIAGNOSTICS_RELAY_E_PLIST_ERROR if the device did not acknowledge the
            request
            </returns>
        </member>
        <member name="P:iMobileDevice.DiagnosticsRelay.IDiagnosticsRelayApi.Parent">
            <summary>
            Gets or sets the <see cref="!:ILibiMobileDeviceApi"/> which owns this <see cref="N:iMobileDevice.DiagnosticsRelay"/>.
            </summary>
        </member>
        <member name="M:iMobileDevice.DiagnosticsRelay.IDiagnosticsRelayApi.diagnostics_relay_client_new(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Lockdown.LockdownServiceDescriptorHandle,iMobileDevice.DiagnosticsRelay.DiagnosticsRelayClientHandle@)">
            <summary>
            Connects to the diagnostics_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
            diagnostics_relay_client_t upon successful return.
            </param>
            <returns>
            DIAGNOSTICS_RELAY_E_SUCCESS on success,
            DIAGNOSTICS_RELAY_E_INVALID_ARG when one of the parameters is invalid,
            or DIAGNOSTICS_RELAY_E_MUX_ERROR when the connection failed.
            </returns>
        </member>
        <member name="M:iMobileDevice.DiagnosticsRelay.IDiagnosticsRelayApi.diagnostics_relay_client_start_service(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.DiagnosticsRelay.DiagnosticsRelayClientHandle@,System.String)">
            <summary>
            Starts a new diagnostics_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
            diagnostics_relay_client_t upon successful return. Must be freed using
            diagnostics_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>
            DIAGNOSTICS_RELAY_E_SUCCESS on success, or an DIAGNOSTICS_RELAY_E_* error
            code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.DiagnosticsRelay.IDiagnosticsRelayApi.diagnostics_relay_client_free(System.IntPtr)">
            <summary>
            Disconnects a diagnostics_relay client from the device and frees up the
            diagnostics_relay client data.
            </summary>
            <param name="client">
            The diagnostics_relay client to disconnect and free.
            </param>
            <returns>
            DIAGNOSTICS_RELAY_E_SUCCESS on success,
            DIAGNOSTICS_RELAY_E_INVALID_ARG when one of client or client->parent
            is invalid, or DIAGNOSTICS_RELAY_E_UNKNOWN_ERROR when the was an
            error freeing the parent property_list_service client.
            </returns>
        </member>
        <member name="M:iMobileDevice.DiagnosticsRelay.IDiagnosticsRelayApi.diagnostics_relay_goodbye(iMobileDevice.DiagnosticsRelay.DiagnosticsRelayClientHandle)">
            <summary>
            Sends the Goodbye request signaling the end of communication.
            </summary>
            <param name="client">
            The diagnostics_relay client
            </param>
            <returns>
            DIAGNOSTICS_RELAY_E_SUCCESS on success,
            DIAGNOSTICS_RELAY_E_INVALID_ARG when client is NULL,
            DIAGNOSTICS_RELAY_E_PLIST_ERROR if the device did not acknowledge the
            request
            </returns>
        </member>
        <member name="M:iMobileDevice.DiagnosticsRelay.IDiagnosticsRelayApi.diagnostics_relay_sleep(iMobileDevice.DiagnosticsRelay.DiagnosticsRelayClientHandle)">
            <summary>
            Puts the device into deep sleep mode and disconnects from host.
            </summary>
            <param name="client">
            The diagnostics_relay client
            </param>
            <returns>
            DIAGNOSTICS_RELAY_E_SUCCESS on success,
            DIAGNOSTICS_RELAY_E_INVALID_ARG when client is NULL,
            DIAGNOSTICS_RELAY_E_PLIST_ERROR if the device did not acknowledge the
            request
            </returns>
        </member>
        <member name="M:iMobileDevice.DiagnosticsRelay.IDiagnosticsRelayApi.diagnostics_relay_restart(iMobileDevice.DiagnosticsRelay.DiagnosticsRelayClientHandle,iMobileDevice.DiagnosticsRelay.DiagnosticsRelayAction)">
            <summary>
            Restart the device and optionally show a user notification.
            </summary>
            <param name="client">
            The diagnostics_relay client
            </param>
            <param name="flags">
            A binary flag combination of
            DIAGNOSTICS_RELAY_ACTION_FLAG_WAIT_FOR_DISCONNECT to wait until
            diagnostics_relay_client_free() disconnects before execution and
            DIAGNOSTICS_RELAY_ACTION_FLAG_DISPLAY_FAIL to show a "FAIL" dialog
            or DIAGNOSTICS_RELAY_ACTION_FLAG_DISPLAY_PASS to show an "OK" dialog
            </param>
            <returns>
            DIAGNOSTICS_RELAY_E_SUCCESS on success,
            DIAGNOSTICS_RELAY_E_INVALID_ARG when client is NULL,
            DIAGNOSTICS_RELAY_E_PLIST_ERROR if the device did not acknowledge the
            request
            </returns>
        </member>
        <member name="M:iMobileDevice.DiagnosticsRelay.IDiagnosticsRelayApi.diagnostics_relay_shutdown(iMobileDevice.DiagnosticsRelay.DiagnosticsRelayClientHandle,iMobileDevice.DiagnosticsRelay.DiagnosticsRelayAction)">
            <summary>
            Shutdown of the device and optionally show a user notification.
            </summary>
            <param name="client">
            The diagnostics_relay client
            </param>
            <param name="flags">
            A binary flag combination of
            DIAGNOSTICS_RELAY_ACTION_FLAG_WAIT_FOR_DISCONNECT to wait until
            diagnostics_relay_client_free() disconnects before execution and
            DIAGNOSTICS_RELAY_ACTION_FLAG_DISPLAY_FAIL to show a "FAIL" dialog
            or DIAGNOSTICS_RELAY_ACTION_FLAG_DISPLAY_PASS to show an "OK" dialog
            </param>
            <returns>
            DIAGNOSTICS_RELAY_E_SUCCESS on success,
            DIAGNOSTICS_RELAY_E_INVALID_ARG when client is NULL,
            DIAGNOSTICS_RELAY_E_PLIST_ERROR if the device did not acknowledge the
            request
            </returns>
        </member>
        <member name="M:iMobileDevice.DiagnosticsRelay.IDiagnosticsRelayApi.diagnostics_relay_request_diagnostics(iMobileDevice.DiagnosticsRelay.DiagnosticsRelayClientHandle,System.String,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Shutdown of the device and optionally show a user notification.
            </summary>
            <param name="client">
            The diagnostics_relay client
            </param>
            <param name="flags">
            A binary flag combination of
            DIAGNOSTICS_RELAY_ACTION_FLAG_WAIT_FOR_DISCONNECT to wait until
            diagnostics_relay_client_free() disconnects before execution and
            DIAGNOSTICS_RELAY_ACTION_FLAG_DISPLAY_FAIL to show a "FAIL" dialog
            or DIAGNOSTICS_RELAY_ACTION_FLAG_DISPLAY_PASS to show an "OK" dialog
            </param>
            <returns>
            DIAGNOSTICS_RELAY_E_SUCCESS on success,
            DIAGNOSTICS_RELAY_E_INVALID_ARG when client is NULL,
            DIAGNOSTICS_RELAY_E_PLIST_ERROR if the device did not acknowledge the
            request
            </returns>
        </member>
        <member name="T:iMobileDevice.DlOpenFlags">
            <summary>
            Specifies how the <see cref="M:iMobileDevice.NativeMethods.dlopen(System.String,iMobileDevice.DlOpenFlags)"/> function loads
            a dynamic link library.
            </summary>
        </member>
        <member name="F:iMobileDevice.DlOpenFlags.RTLD_LAZY">
            <summary>
            Perform lazy binding. Only resolve symbols as the code that references them is executed.
            If the symbol is never referenced, then it is never resolved.
            (Lazy binding is only performed for function references; references to variables are always
            immediately bound when the library is loaded.)
            </summary>
        </member>
        <member name="F:iMobileDevice.DlOpenFlags.RTLD_NOW">
            <summary>
            If this value is specified, or the environment variable <c>LD_BIND_NOW</c> is set to a nonempty string,
            all undefined symbols in the library are resolved before <see cref="M:iMobileDevice.NativeMethods.dlopen(System.String,iMobileDevice.DlOpenFlags)"/> returns.
            If this cannot be done, an error is returned.
            </summary>
        </member>
        <member name="F:iMobileDevice.DlOpenFlags.RTLD_GLOBAL">
            <summary>
            The symbols defined by this library will be made available for symbol resolution of subsequently
            loaded libraries.
            </summary>
        </member>
        <member name="F:iMobileDevice.DlOpenFlags.RTLD_LOCAL">
            <summary>
            This is the converse of <see cref="F:iMobileDevice.DlOpenFlags.RTLD_GLOBAL"/>, and the default if neither flag is specified.
            Symbols defined in this library are not made available to resolve references in subsequently
            loaded libraries.
            </summary>
        </member>
        <member name="F:iMobileDevice.DlOpenFlags.RTLD_NODELETE">
            <summary>
            Do not unload the library during <see cref="!:NativeMethods.dlclose"/>. Consequently, the library's
            static variables are not reinitialized if the library is reloaded with
            <see cref="M:iMobileDevice.NativeMethods.dlopen(System.String,iMobileDevice.DlOpenFlags)"/> at a later time.
            </summary>
            <remarks>
            This flag is not specified in POSIX.1-2001.
            </remarks>
        </member>
        <member name="F:iMobileDevice.DlOpenFlags.RTLD_NOLOAD">
            <summary>
            Don't load the library. This can be used to test if the library is already resident
            (<see cref="M:iMobileDevice.NativeMethods.dlopen(System.String,iMobileDevice.DlOpenFlags)"/> returns <see cref="F:System.IntPtr.Zero"/> if it is not, or the library's
            handle if it is resident). This flag can also be used to promote the flags on a library
            that is already loaded. For example, a library that was previously loaded with
            <see cref="F:iMobileDevice.DlOpenFlags.RTLD_LOCAL"/> can be reopened with <see cref="F:iMobileDevice.DlOpenFlags.RTLD_NOLOAD"/> |
            <see cref="F:iMobileDevice.DlOpenFlags.RTLD_GLOBAL"/>.
            </summary>
            <remarks>
            This flag is not specified in POSIX.1-2001.
            </remarks>
        </member>
        <member name="F:iMobileDevice.DlOpenFlags.RTLD_DEEPBIND">
            <summary>
            Place the lookup scope of the symbols in this library ahead of the global scope.
            This means that a self-contained library will use its own symbols in preference to global
            symbols with the same name contained in libraries that have already been loaded.
            </summary>
            <remarks>
            This flag is not specified in POSIX.1-2001.
            </remarks>
        </member>
        <member name="F:iMobileDevice.FileRelay.FileRelayApi.parent">
            <summary>
            Backing field for the <see cref="P:iMobileDevice.FileRelay.FileRelayApi.Parent"/> property
            </summary>
        </member>
        <member name="M:iMobileDevice.FileRelay.FileRelayApi.#ctor(iMobileDevice.ILibiMobileDevice)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.FileRelay.FileRelayApi"/> class
            </summary>
            <param name="parent">
            The <see cref="!:ILibiMobileDeviceApi"/> which owns this <see cref="N:iMobileDevice.FileRelay"/>.
            </param>
        </member>
        <member name="P:iMobileDevice.FileRelay.FileRelayApi.Parent">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.FileRelay.FileRelayApi.file_relay_client_new(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Lockdown.LockdownServiceDescriptorHandle,iMobileDevice.FileRelay.FileRelayClientHandle@)">
            <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>
        </member>
        <member name="M:iMobileDevice.FileRelay.FileRelayApi.file_relay_client_start_service(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.FileRelay.FileRelayClientHandle@,System.String)">
            <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>
        </member>
        <member name="M:iMobileDevice.FileRelay.FileRelayApi.file_relay_client_free(System.IntPtr)">
            <summary>
            Disconnects a file_relay client from the device and frees up the file_relay
            client data.
            </summary>
            <param name="client">
            The file_relay client to disconnect and free.
            </param>
            <returns>
            FILE_RELAY_E_SUCCESS on success,
            FILE_RELAY_E_INVALID_ARG when one of client or client->parent
            is invalid, or FILE_RELAY_E_UNKNOWN_ERROR when the was an error
            freeing the parent property_list_service client.
            </returns>
        </member>
        <member name="M:iMobileDevice.FileRelay.FileRelayApi.file_relay_request_sources(iMobileDevice.FileRelay.FileRelayClientHandle,System.String@,iMobileDevice.iDevice.iDeviceConnectionHandle@)">
            <summary>
            Request data for the given sources.
            </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>
            <param name="timeout">
            Maximum time in milliseconds to wait for data.
            </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>
        </member>
        <member name="M:iMobileDevice.FileRelay.FileRelayApi.file_relay_request_sources_timeout(iMobileDevice.FileRelay.FileRelayClientHandle,System.String@,iMobileDevice.iDevice.iDeviceConnectionHandle@,System.UInt32)">
            <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>
        </member>
        <member name="T:iMobileDevice.FileRelay.FileRelayClientHandle">
            <summary>
            Represents a wrapper class for FileRelay handles.
            </summary>
        </member>
        <member name="M:iMobileDevice.FileRelay.FileRelayClientHandle.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.FileRelay.FileRelayClientHandle"/> class.
            </summary>
        </member>
        <member name="M:iMobileDevice.FileRelay.FileRelayClientHandle.#ctor(System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.FileRelay.FileRelayClientHandle"/> class, specifying whether the handle is to be reliably released.
            </summary>
            <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>
        </member>
        <member name="P:iMobileDevice.FileRelay.FileRelayClientHandle.Api">
            <summary>
            Gets or sets the API to use
            </summary>
        </member>
        <member name="P:iMobileDevice.FileRelay.FileRelayClientHandle.Zero">
            <summary>
            Gets a value which represents a pointer or handle that has been initialized to zero.
            </summary>
        </member>
        <member name="M:iMobileDevice.FileRelay.FileRelayClientHandle.ReleaseHandle">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.FileRelay.FileRelayClientHandle.DangerousCreate(System.IntPtr,System.Boolean)">
            <summary>
            Creates a new <see cref="T:iMobileDevice.FileRelay.FileRelayClientHandle"/> from a <see cref="T:System.IntPtr"/>.
            </summary>
            <param name="unsafeHandle">
            The underlying <see cref="T:System.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>
        </member>
        <member name="M:iMobileDevice.FileRelay.FileRelayClientHandle.DangerousCreate(System.IntPtr)">
            <summary>
            Creates a new <see cref="T:iMobileDevice.FileRelay.FileRelayClientHandle"/> from a <see cref="T:System.IntPtr"/>.
            </summary>
            <param name="unsafeHandle">
            The underlying <see cref="T:System.IntPtr"/>
            </param>
            <returns>
            </returns>
        </member>
        <member name="M:iMobileDevice.FileRelay.FileRelayClientHandle.ToString">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.FileRelay.FileRelayClientHandle.Equals(System.Object)">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.FileRelay.FileRelayClientHandle.GetHashCode">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.FileRelay.FileRelayClientHandle.op_Equality(iMobileDevice.FileRelay.FileRelayClientHandle,iMobileDevice.FileRelay.FileRelayClientHandle)">
            <summary>
            Determines whether two specified instances of <see cref="T:iMobileDevice.FileRelay.FileRelayClientHandle"/> are equal.
            </summary>
            <param name="value1">
            The first pointer or handle to compare.
            </param>
            <param name="value2">
            The second pointer or handle to compare.
            </param>
            <returns>
            <see langword="true"/> if <paramref name="value1"/> equals <paramref name="value2"/>; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="M:iMobileDevice.FileRelay.FileRelayClientHandle.op_Inequality(iMobileDevice.FileRelay.FileRelayClientHandle,iMobileDevice.FileRelay.FileRelayClientHandle)">
            <summary>
            Determines whether two specified instances of <see cref="T:iMobileDevice.FileRelay.FileRelayClientHandle"/> are not equal.
            </summary>
            <param name="value1">
            The first pointer or handle to compare.
            </param>
            <param name="value2">
            The second pointer or handle to compare.
            </param>
            <returns>
            <see langword="true"/> if <paramref name="value1"/> does not equal <paramref name="value2"/>; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="T:iMobileDevice.FileRelay.FileRelayError">
            <summary>
            Error Codes 
            </summary>
        </member>
        <member name="T:iMobileDevice.FileRelay.FileRelayException">
            Represents an exception that occurred when interacting with the FileRelay API.
        </member>
        <member name="F:iMobileDevice.FileRelay.FileRelayException.errorCode">
            <summary>
            Backing field for the <see cref="P:iMobileDevice.FileRelay.FileRelayException.ErrorCode"/> property.
            </summary>
        </member>
        <member name="M:iMobileDevice.FileRelay.FileRelayException.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.FileRelay.FileRelayException"/> class.
            </summary>
        </member>
        <member name="M:iMobileDevice.FileRelay.FileRelayException.#ctor(iMobileDevice.FileRelay.FileRelayError)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.FileRelay.FileRelayException"/> class with a specified error code.
            </summary>
            <param name="error">
            The error code of the error that occurred.
            </param>
        </member>
        <member name="M:iMobileDevice.FileRelay.FileRelayException.#ctor(iMobileDevice.FileRelay.FileRelayError,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.FileRelay.FileRelayException"/> class with a specified error code and error message.
            </summary>
            <param name="error">
            The error code of the error that occurred.
            </param>
            <param name="message">
            A message which describes the error.
            </param>
        </member>
        <member name="M:iMobileDevice.FileRelay.FileRelayException.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.FileRelay.FileRelayException"/> class with a specified error message.
            </summary>
            <param name="message">
            The message that describes the error.
            </param>
        </member>
        <member name="M:iMobileDevice.FileRelay.FileRelayException.#ctor(System.String,System.Exception)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.FileRelay.FileRelayException"/> class with a specified error message and a reference to the inner exception that is the cause of this exception.
            </summary>
            <param name="message">
            The error message that explains the reason for the exception.
            </param>
            <param name="inner">
            The exception that is the cause of the current exception, or <see langword="null"/> if no inner exception is specified.
            </param>
        </member>
        <member name="M:iMobileDevice.FileRelay.FileRelayException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.FileRelay.FileRelayException"/> class with serialized data.
            </summary>
            <param name="info">
            The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds the serialized object data about the exception being thrown.
            </param>
            <param name="context">
            The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that contains contextual information about the source or destination.
            </param>
        </member>
        <member name="P:iMobileDevice.FileRelay.FileRelayException.ErrorCode">
            <summary>
            Gets the error code that represents the error.
            </summary>
        </member>
        <member name="M:iMobileDevice.FileRelay.FileRelayNativeMethods.file_relay_client_new(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Lockdown.LockdownServiceDescriptorHandle,iMobileDevice.FileRelay.FileRelayClientHandle@)">
            <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>
        </member>
        <member name="M:iMobileDevice.FileRelay.FileRelayNativeMethods.file_relay_client_start_service(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.FileRelay.FileRelayClientHandle@,System.String)">
            <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>
        </member>
        <member name="M:iMobileDevice.FileRelay.FileRelayNativeMethods.file_relay_client_free(System.IntPtr)">
            <summary>
            Disconnects a file_relay client from the device and frees up the file_relay
            client data.
            </summary>
            <param name="client">
            The file_relay client to disconnect and free.
            </param>
            <returns>
            FILE_RELAY_E_SUCCESS on success,
            FILE_RELAY_E_INVALID_ARG when one of client or client->parent
            is invalid, or FILE_RELAY_E_UNKNOWN_ERROR when the was an error
            freeing the parent property_list_service client.
            </returns>
        </member>
        <member name="M:iMobileDevice.FileRelay.FileRelayNativeMethods.file_relay_request_sources(iMobileDevice.FileRelay.FileRelayClientHandle,System.IntPtr@,iMobileDevice.iDevice.iDeviceConnectionHandle@)">
            <summary>
            Request data for the given sources.
            </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>
            <param name="timeout">
            Maximum time in milliseconds to wait for data.
            </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>
        </member>
        <member name="M:iMobileDevice.FileRelay.FileRelayNativeMethods.file_relay_request_sources_timeout(iMobileDevice.FileRelay.FileRelayClientHandle,System.IntPtr@,iMobileDevice.iDevice.iDeviceConnectionHandle@,System.UInt32)">
            <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>
        </member>
        <member name="P:iMobileDevice.FileRelay.IFileRelayApi.Parent">
            <summary>
            Gets or sets the <see cref="!:ILibiMobileDeviceApi"/> which owns this <see cref="N:iMobileDevice.FileRelay"/>.
            </summary>
        </member>
        <member name="M:iMobileDevice.FileRelay.IFileRelayApi.file_relay_client_new(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Lockdown.LockdownServiceDescriptorHandle,iMobileDevice.FileRelay.FileRelayClientHandle@)">
            <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>
        </member>
        <member name="M:iMobileDevice.FileRelay.IFileRelayApi.file_relay_client_start_service(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.FileRelay.FileRelayClientHandle@,System.String)">
            <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>
        </member>
        <member name="M:iMobileDevice.FileRelay.IFileRelayApi.file_relay_client_free(System.IntPtr)">
            <summary>
            Disconnects a file_relay client from the device and frees up the file_relay
            client data.
            </summary>
            <param name="client">
            The file_relay client to disconnect and free.
            </param>
            <returns>
            FILE_RELAY_E_SUCCESS on success,
            FILE_RELAY_E_INVALID_ARG when one of client or client->parent
            is invalid, or FILE_RELAY_E_UNKNOWN_ERROR when the was an error
            freeing the parent property_list_service client.
            </returns>
        </member>
        <member name="M:iMobileDevice.FileRelay.IFileRelayApi.file_relay_request_sources(iMobileDevice.FileRelay.FileRelayClientHandle,System.String@,iMobileDevice.iDevice.iDeviceConnectionHandle@)">
            <summary>
            Request data for the given sources.
            </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>
            <param name="timeout">
            Maximum time in milliseconds to wait for data.
            </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>
        </member>
        <member name="M:iMobileDevice.FileRelay.IFileRelayApi.file_relay_request_sources_timeout(iMobileDevice.FileRelay.FileRelayClientHandle,System.String@,iMobileDevice.iDevice.iDeviceConnectionHandle@,System.UInt32)">
            <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>
        </member>
        <member name="F:iMobileDevice.HeartBeat.HeartBeatApi.parent">
            <summary>
            Backing field for the <see cref="P:iMobileDevice.HeartBeat.HeartBeatApi.Parent"/> property
            </summary>
        </member>
        <member name="M:iMobileDevice.HeartBeat.HeartBeatApi.#ctor(iMobileDevice.ILibiMobileDevice)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.HeartBeat.HeartBeatApi"/> class
            </summary>
            <param name="parent">
            The <see cref="!:ILibiMobileDeviceApi"/> which owns this <see cref="N:iMobileDevice.HeartBeat"/>.
            </param>
        </member>
        <member name="P:iMobileDevice.HeartBeat.HeartBeatApi.Parent">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.HeartBeat.HeartBeatApi.heartbeat_client_new(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Lockdown.LockdownServiceDescriptorHandle,iMobileDevice.HeartBeat.HeartBeatClientHandle@)">
            <summary>
            Connects to the heartbeat 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">
            Pointer that will point to a newly allocated
            heartbeat_client_t upon successful return. Must be freed using
            heartbeat_client_free() after use.
            </param>
            <returns>
            HEARTBEAT_E_SUCCESS on success, HEARTBEAT_E_INVALID_ARG when
            client is NULL, or an HEARTBEAT_E_* error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.HeartBeat.HeartBeatApi.heartbeat_client_start_service(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.HeartBeat.HeartBeatClientHandle@,System.String)">
            <summary>
            Starts a new heartbeat 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
            heartbeat_client_t upon successful return. Must be freed using
            heartbeat_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>
            HEARTBEAT_E_SUCCESS on success, or an HEARTBEAT_E_* error
            code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.HeartBeat.HeartBeatApi.heartbeat_client_free(System.IntPtr)">
            <summary>
            Disconnects a heartbeat client from the device and frees up the
            heartbeat client data.
            </summary>
            <param name="client">
            The heartbeat client to disconnect and free.
            </param>
            <returns>
            HEARTBEAT_E_SUCCESS on success, HEARTBEAT_E_INVALID_ARG when
            client is NULL, or an HEARTBEAT_E_* error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.HeartBeat.HeartBeatApi.heartbeat_send(iMobileDevice.HeartBeat.HeartBeatClientHandle,iMobileDevice.Plist.PlistHandle)">
            <summary>
            Sends a plist to the service.
            </summary>
            <param name="client">
            The heartbeat client
            </param>
            <param name="plist">
            The plist to send
            </param>
            <returns>
            HEARTBEAT_E_SUCCESS on success,
            HEARTBEAT_E_INVALID_ARG when client or plist is NULL
            </returns>
        </member>
        <member name="M:iMobileDevice.HeartBeat.HeartBeatApi.heartbeat_receive(iMobileDevice.HeartBeat.HeartBeatClientHandle,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Receives a plist from the service.
            </summary>
            <param name="client">
            The heartbeat client
            </param>
            <param name="plist">
            The plist to store the received data
            </param>
            <returns>
            HEARTBEAT_E_SUCCESS on success,
            HEARTBEAT_E_INVALID_ARG when client or plist is NULL
            </returns>
        </member>
        <member name="M:iMobileDevice.HeartBeat.HeartBeatApi.heartbeat_receive_with_timeout(iMobileDevice.HeartBeat.HeartBeatClientHandle,iMobileDevice.Plist.PlistHandle@,System.UInt32)">
            <summary>
            Receives a plist using the given heartbeat client.
            </summary>
            <param name="client">
            The heartbeat client to use for receiving
            </param>
            <param name="plist">
            pointer to a plist_t that will point to the received plist
            upon successful return
            </param>
            <param name="timeout">
            Maximum time in milliseconds to wait for data.
            </param>
            <returns>
            HEARTBEAT_E_SUCCESS on success,
            HEARTBEAT_E_INVALID_ARG when client or *plist is NULL,
            HEARTBEAT_E_NOT_ENOUGH_DATA when not enough data
            received, HEARTBEAT_E_TIMEOUT when the connection times out,
            HEARTBEAT_E_PLIST_ERROR when the received data cannot be
            converted to a plist, HEARTBEAT_E_MUX_ERROR when a
            communication error occurs, or HEARTBEAT_E_UNKNOWN_ERROR
            when an unspecified error occurs.
            </returns>
        </member>
        <member name="T:iMobileDevice.HeartBeat.HeartBeatClientHandle">
            <summary>
            Represents a wrapper class for HeartBeat handles.
            </summary>
        </member>
        <member name="M:iMobileDevice.HeartBeat.HeartBeatClientHandle.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.HeartBeat.HeartBeatClientHandle"/> class.
            </summary>
        </member>
        <member name="M:iMobileDevice.HeartBeat.HeartBeatClientHandle.#ctor(System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.HeartBeat.HeartBeatClientHandle"/> class, specifying whether the handle is to be reliably released.
            </summary>
            <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>
        </member>
        <member name="P:iMobileDevice.HeartBeat.HeartBeatClientHandle.Api">
            <summary>
            Gets or sets the API to use
            </summary>
        </member>
        <member name="P:iMobileDevice.HeartBeat.HeartBeatClientHandle.Zero">
            <summary>
            Gets a value which represents a pointer or handle that has been initialized to zero.
            </summary>
        </member>
        <member name="M:iMobileDevice.HeartBeat.HeartBeatClientHandle.ReleaseHandle">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.HeartBeat.HeartBeatClientHandle.DangerousCreate(System.IntPtr,System.Boolean)">
            <summary>
            Creates a new <see cref="T:iMobileDevice.HeartBeat.HeartBeatClientHandle"/> from a <see cref="T:System.IntPtr"/>.
            </summary>
            <param name="unsafeHandle">
            The underlying <see cref="T:System.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>
        </member>
        <member name="M:iMobileDevice.HeartBeat.HeartBeatClientHandle.DangerousCreate(System.IntPtr)">
            <summary>
            Creates a new <see cref="T:iMobileDevice.HeartBeat.HeartBeatClientHandle"/> from a <see cref="T:System.IntPtr"/>.
            </summary>
            <param name="unsafeHandle">
            The underlying <see cref="T:System.IntPtr"/>
            </param>
            <returns>
            </returns>
        </member>
        <member name="M:iMobileDevice.HeartBeat.HeartBeatClientHandle.ToString">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.HeartBeat.HeartBeatClientHandle.Equals(System.Object)">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.HeartBeat.HeartBeatClientHandle.GetHashCode">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.HeartBeat.HeartBeatClientHandle.op_Equality(iMobileDevice.HeartBeat.HeartBeatClientHandle,iMobileDevice.HeartBeat.HeartBeatClientHandle)">
            <summary>
            Determines whether two specified instances of <see cref="T:iMobileDevice.HeartBeat.HeartBeatClientHandle"/> are equal.
            </summary>
            <param name="value1">
            The first pointer or handle to compare.
            </param>
            <param name="value2">
            The second pointer or handle to compare.
            </param>
            <returns>
            <see langword="true"/> if <paramref name="value1"/> equals <paramref name="value2"/>; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="M:iMobileDevice.HeartBeat.HeartBeatClientHandle.op_Inequality(iMobileDevice.HeartBeat.HeartBeatClientHandle,iMobileDevice.HeartBeat.HeartBeatClientHandle)">
            <summary>
            Determines whether two specified instances of <see cref="T:iMobileDevice.HeartBeat.HeartBeatClientHandle"/> are not equal.
            </summary>
            <param name="value1">
            The first pointer or handle to compare.
            </param>
            <param name="value2">
            The second pointer or handle to compare.
            </param>
            <returns>
            <see langword="true"/> if <paramref name="value1"/> does not equal <paramref name="value2"/>; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="T:iMobileDevice.HeartBeat.HeartBeatError">
            <summary>
            Error Codes 
            </summary>
        </member>
        <member name="T:iMobileDevice.HeartBeat.HeartBeatException">
            Represents an exception that occurred when interacting with the HeartBeat API.
        </member>
        <member name="F:iMobileDevice.HeartBeat.HeartBeatException.errorCode">
            <summary>
            Backing field for the <see cref="P:iMobileDevice.HeartBeat.HeartBeatException.ErrorCode"/> property.
            </summary>
        </member>
        <member name="M:iMobileDevice.HeartBeat.HeartBeatException.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.HeartBeat.HeartBeatException"/> class.
            </summary>
        </member>
        <member name="M:iMobileDevice.HeartBeat.HeartBeatException.#ctor(iMobileDevice.HeartBeat.HeartBeatError)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.HeartBeat.HeartBeatException"/> class with a specified error code.
            </summary>
            <param name="error">
            The error code of the error that occurred.
            </param>
        </member>
        <member name="M:iMobileDevice.HeartBeat.HeartBeatException.#ctor(iMobileDevice.HeartBeat.HeartBeatError,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.HeartBeat.HeartBeatException"/> class with a specified error code and error message.
            </summary>
            <param name="error">
            The error code of the error that occurred.
            </param>
            <param name="message">
            A message which describes the error.
            </param>
        </member>
        <member name="M:iMobileDevice.HeartBeat.HeartBeatException.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.HeartBeat.HeartBeatException"/> class with a specified error message.
            </summary>
            <param name="message">
            The message that describes the error.
            </param>
        </member>
        <member name="M:iMobileDevice.HeartBeat.HeartBeatException.#ctor(System.String,System.Exception)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.HeartBeat.HeartBeatException"/> class with a specified error message and a reference to the inner exception that is the cause of this exception.
            </summary>
            <param name="message">
            The error message that explains the reason for the exception.
            </param>
            <param name="inner">
            The exception that is the cause of the current exception, or <see langword="null"/> if no inner exception is specified.
            </param>
        </member>
        <member name="M:iMobileDevice.HeartBeat.HeartBeatException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.HeartBeat.HeartBeatException"/> class with serialized data.
            </summary>
            <param name="info">
            The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds the serialized object data about the exception being thrown.
            </param>
            <param name="context">
            The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that contains contextual information about the source or destination.
            </param>
        </member>
        <member name="P:iMobileDevice.HeartBeat.HeartBeatException.ErrorCode">
            <summary>
            Gets the error code that represents the error.
            </summary>
        </member>
        <member name="M:iMobileDevice.HeartBeat.HeartBeatNativeMethods.heartbeat_client_new(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Lockdown.LockdownServiceDescriptorHandle,iMobileDevice.HeartBeat.HeartBeatClientHandle@)">
            <summary>
            Connects to the heartbeat 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">
            Pointer that will point to a newly allocated
            heartbeat_client_t upon successful return. Must be freed using
            heartbeat_client_free() after use.
            </param>
            <returns>
            HEARTBEAT_E_SUCCESS on success, HEARTBEAT_E_INVALID_ARG when
            client is NULL, or an HEARTBEAT_E_* error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.HeartBeat.HeartBeatNativeMethods.heartbeat_client_start_service(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.HeartBeat.HeartBeatClientHandle@,System.String)">
            <summary>
            Starts a new heartbeat 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
            heartbeat_client_t upon successful return. Must be freed using
            heartbeat_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>
            HEARTBEAT_E_SUCCESS on success, or an HEARTBEAT_E_* error
            code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.HeartBeat.HeartBeatNativeMethods.heartbeat_client_free(System.IntPtr)">
            <summary>
            Disconnects a heartbeat client from the device and frees up the
            heartbeat client data.
            </summary>
            <param name="client">
            The heartbeat client to disconnect and free.
            </param>
            <returns>
            HEARTBEAT_E_SUCCESS on success, HEARTBEAT_E_INVALID_ARG when
            client is NULL, or an HEARTBEAT_E_* error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.HeartBeat.HeartBeatNativeMethods.heartbeat_send(iMobileDevice.HeartBeat.HeartBeatClientHandle,iMobileDevice.Plist.PlistHandle)">
            <summary>
            Sends a plist to the service.
            </summary>
            <param name="client">
            The heartbeat client
            </param>
            <param name="plist">
            The plist to send
            </param>
            <returns>
            HEARTBEAT_E_SUCCESS on success,
            HEARTBEAT_E_INVALID_ARG when client or plist is NULL
            </returns>
        </member>
        <member name="M:iMobileDevice.HeartBeat.HeartBeatNativeMethods.heartbeat_receive(iMobileDevice.HeartBeat.HeartBeatClientHandle,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Receives a plist from the service.
            </summary>
            <param name="client">
            The heartbeat client
            </param>
            <param name="plist">
            The plist to store the received data
            </param>
            <returns>
            HEARTBEAT_E_SUCCESS on success,
            HEARTBEAT_E_INVALID_ARG when client or plist is NULL
            </returns>
        </member>
        <member name="M:iMobileDevice.HeartBeat.HeartBeatNativeMethods.heartbeat_receive_with_timeout(iMobileDevice.HeartBeat.HeartBeatClientHandle,iMobileDevice.Plist.PlistHandle@,System.UInt32)">
            <summary>
            Receives a plist using the given heartbeat client.
            </summary>
            <param name="client">
            The heartbeat client to use for receiving
            </param>
            <param name="plist">
            pointer to a plist_t that will point to the received plist
            upon successful return
            </param>
            <param name="timeout">
            Maximum time in milliseconds to wait for data.
            </param>
            <returns>
            HEARTBEAT_E_SUCCESS on success,
            HEARTBEAT_E_INVALID_ARG when client or *plist is NULL,
            HEARTBEAT_E_NOT_ENOUGH_DATA when not enough data
            received, HEARTBEAT_E_TIMEOUT when the connection times out,
            HEARTBEAT_E_PLIST_ERROR when the received data cannot be
            converted to a plist, HEARTBEAT_E_MUX_ERROR when a
            communication error occurs, or HEARTBEAT_E_UNKNOWN_ERROR
            when an unspecified error occurs.
            </returns>
        </member>
        <member name="P:iMobileDevice.HeartBeat.IHeartBeatApi.Parent">
            <summary>
            Gets or sets the <see cref="!:ILibiMobileDeviceApi"/> which owns this <see cref="N:iMobileDevice.HeartBeat"/>.
            </summary>
        </member>
        <member name="M:iMobileDevice.HeartBeat.IHeartBeatApi.heartbeat_client_new(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Lockdown.LockdownServiceDescriptorHandle,iMobileDevice.HeartBeat.HeartBeatClientHandle@)">
            <summary>
            Connects to the heartbeat 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">
            Pointer that will point to a newly allocated
            heartbeat_client_t upon successful return. Must be freed using
            heartbeat_client_free() after use.
            </param>
            <returns>
            HEARTBEAT_E_SUCCESS on success, HEARTBEAT_E_INVALID_ARG when
            client is NULL, or an HEARTBEAT_E_* error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.HeartBeat.IHeartBeatApi.heartbeat_client_start_service(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.HeartBeat.HeartBeatClientHandle@,System.String)">
            <summary>
            Starts a new heartbeat 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
            heartbeat_client_t upon successful return. Must be freed using
            heartbeat_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>
            HEARTBEAT_E_SUCCESS on success, or an HEARTBEAT_E_* error
            code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.HeartBeat.IHeartBeatApi.heartbeat_client_free(System.IntPtr)">
            <summary>
            Disconnects a heartbeat client from the device and frees up the
            heartbeat client data.
            </summary>
            <param name="client">
            The heartbeat client to disconnect and free.
            </param>
            <returns>
            HEARTBEAT_E_SUCCESS on success, HEARTBEAT_E_INVALID_ARG when
            client is NULL, or an HEARTBEAT_E_* error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.HeartBeat.IHeartBeatApi.heartbeat_send(iMobileDevice.HeartBeat.HeartBeatClientHandle,iMobileDevice.Plist.PlistHandle)">
            <summary>
            Sends a plist to the service.
            </summary>
            <param name="client">
            The heartbeat client
            </param>
            <param name="plist">
            The plist to send
            </param>
            <returns>
            HEARTBEAT_E_SUCCESS on success,
            HEARTBEAT_E_INVALID_ARG when client or plist is NULL
            </returns>
        </member>
        <member name="M:iMobileDevice.HeartBeat.IHeartBeatApi.heartbeat_receive(iMobileDevice.HeartBeat.HeartBeatClientHandle,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Receives a plist from the service.
            </summary>
            <param name="client">
            The heartbeat client
            </param>
            <param name="plist">
            The plist to store the received data
            </param>
            <returns>
            HEARTBEAT_E_SUCCESS on success,
            HEARTBEAT_E_INVALID_ARG when client or plist is NULL
            </returns>
        </member>
        <member name="M:iMobileDevice.HeartBeat.IHeartBeatApi.heartbeat_receive_with_timeout(iMobileDevice.HeartBeat.HeartBeatClientHandle,iMobileDevice.Plist.PlistHandle@,System.UInt32)">
            <summary>
            Receives a plist using the given heartbeat client.
            </summary>
            <param name="client">
            The heartbeat client to use for receiving
            </param>
            <param name="plist">
            pointer to a plist_t that will point to the received plist
            upon successful return
            </param>
            <param name="timeout">
            Maximum time in milliseconds to wait for data.
            </param>
            <returns>
            HEARTBEAT_E_SUCCESS on success,
            HEARTBEAT_E_INVALID_ARG when client or *plist is NULL,
            HEARTBEAT_E_NOT_ENOUGH_DATA when not enough data
            received, HEARTBEAT_E_TIMEOUT when the connection times out,
            HEARTBEAT_E_PLIST_ERROR when the received data cannot be
            converted to a plist, HEARTBEAT_E_MUX_ERROR when a
            communication error occurs, or HEARTBEAT_E_UNKNOWN_ERROR
            when an unspecified error occurs.
            </returns>
        </member>
        <member name="F:iMobileDevice.HouseArrest.HouseArrestApi.parent">
            <summary>
            Backing field for the <see cref="P:iMobileDevice.HouseArrest.HouseArrestApi.Parent"/> property
            </summary>
        </member>
        <member name="M:iMobileDevice.HouseArrest.HouseArrestApi.#ctor(iMobileDevice.ILibiMobileDevice)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.HouseArrest.HouseArrestApi"/> class
            </summary>
            <param name="parent">
            The <see cref="!:ILibiMobileDeviceApi"/> which owns this <see cref="N:iMobileDevice.HouseArrest"/>.
            </param>
        </member>
        <member name="P:iMobileDevice.HouseArrest.HouseArrestApi.Parent">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.HouseArrest.HouseArrestApi.house_arrest_client_new(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Lockdown.LockdownServiceDescriptorHandle,iMobileDevice.HouseArrest.HouseArrestClientHandle@)">
            <summary>
            Connects to the house_arrest 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">
            Pointer that will point to a newly allocated
            housearrest_client_t upon successful return.
            </param>
            <returns>
            HOUSE_ARREST_E_SUCCESS on success, HOUSE_ARREST_E_INVALID_ARG when
            client is NULL, or an HOUSE_ARREST_E_* error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.HouseArrest.HouseArrestApi.house_arrest_client_start_service(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.HouseArrest.HouseArrestClientHandle@,System.String)">
            <summary>
            Starts a new house_arrest 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
            house_arrest_client_t upon successful return. Must be freed using
            house_arrest_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>
            HOUSE_ARREST_E_SUCCESS on success, or an HOUSE_ARREST_E_* error
            code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.HouseArrest.HouseArrestApi.house_arrest_client_free(System.IntPtr)">
            <summary>
            Disconnects an house_arrest client from the device and frees up the
            house_arrest client data.
            </summary>
            <param name="client">
            The house_arrest client to disconnect and free.
            </param>
            <returns>
            HOUSE_ARREST_E_SUCCESS on success, HOUSE_ARREST_E_INVALID_ARG when
            client is NULL, or an HOUSE_ARREST_E_* error code otherwise.
            </returns>
            <remarks>
            After using afc_client_new_from_house_arrest_client(), make sure
            you call afc_client_free() before calling this function to ensure
            a proper cleanup. Do not call this function if you still need to
            perform AFC operations since it will close the connection.
            </remarks>
        </member>
        <member name="M:iMobileDevice.HouseArrest.HouseArrestApi.house_arrest_send_request(iMobileDevice.HouseArrest.HouseArrestClientHandle,iMobileDevice.Plist.PlistHandle)">
            <summary>
            Sends a generic request to the connected house_arrest service.
            </summary>
            <param name="client">
            The house_arrest client to use.
            </param>
            <param name="dict">
            The request to send as a plist of type PLIST_DICT.
            </param>
            <returns>
            HOUSE_ARREST_E_SUCCESS if the request was successfully sent,
            HOUSE_ARREST_E_INVALID_ARG if client or dict is invalid,
            HOUSE_ARREST_E_PLIST_ERROR if dict is not a plist of type PLIST_DICT,
            HOUSE_ARREST_E_INVALID_MODE if the client is not in the correct mode,
            or HOUSE_ARREST_E_CONN_FAILED if a connection error occurred.
            </returns>
            <remarks>
            If this function returns HOUSE_ARREST_E_SUCCESS it does not mean
            that the request was successful. To check for success or failure you
            need to call house_arrest_get_result().
            </remarks>
        </member>
        <member name="M:iMobileDevice.HouseArrest.HouseArrestApi.house_arrest_send_command(iMobileDevice.HouseArrest.HouseArrestClientHandle,System.String,System.String)">
            <summary>
            Send a command to the connected house_arrest service.
            Calls house_arrest_send_request() internally.
            </summary>
            <param name="client">
            The house_arrest client to use.
            </param>
            <param name="command">
            The command to send. Currently, only VendContainer and
            VendDocuments are known.
            </param>
            <param name="appid">
            The application identifier to pass along with the .
            </param>
            <returns>
            HOUSE_ARREST_E_SUCCESS if the command was successfully sent,
            HOUSE_ARREST_E_INVALID_ARG if client, command, or appid is invalid,
            HOUSE_ARREST_E_INVALID_MODE if the client is not in the correct mode,
            or HOUSE_ARREST_E_CONN_FAILED if a connection error occurred.
            </returns>
            <remarks>
            If this function returns HOUSE_ARREST_E_SUCCESS it does not mean
            that the command was successful. To check for success or failure you
            need to call house_arrest_get_result().
            </remarks>
        </member>
        <member name="M:iMobileDevice.HouseArrest.HouseArrestApi.house_arrest_get_result(iMobileDevice.HouseArrest.HouseArrestClientHandle,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Retrieves the result of a previously sent house_arrest_request_* request.
            </summary>
            <param name="client">
            The house_arrest client to use
            </param>
            <param name="dict">
            Pointer that will be set to a plist containing the result to
            the last performed operation. It holds a key 'Status' with the value
            'Complete' on success or a key 'Error' with an error description as
            value. The caller is responsible for freeing the returned plist.
            </param>
            <returns>
            HOUSE_ARREST_E_SUCCESS if a result plist was retrieved,
            HOUSE_ARREST_E_INVALID_ARG if client is invalid,
            HOUSE_ARREST_E_INVALID_MODE if the client is not in the correct mode,
            or HOUSE_ARREST_E_CONN_FAILED if a connection error occurred.
            </returns>
        </member>
        <member name="M:iMobileDevice.HouseArrest.HouseArrestApi.afc_client_new_from_house_arrest_client(iMobileDevice.HouseArrest.HouseArrestClientHandle,iMobileDevice.Afc.AfcClientHandle@)">
            <summary>
            Creates an AFC client using the given house_arrest client's connection
            allowing file access to a specific application directory requested by
            functions like house_arrest_request_vendor_documents().
            </summary>
            <param name="client">
            The house_arrest client to use.
            </param>
            <param name="afc_client">
            Pointer that will be set to a newly allocated afc_client_t
            upon successful return.
            </param>
            <returns>
            AFC_E_SUCCESS if the afc client was successfully created,
            AFC_E_INVALID_ARG if client is invalid or was already used to create
            an afc client, or an AFC_E_* error code returned by
            afc_client_new_with_service_client().
            </returns>
            <remarks>
            After calling this function the house_arrest client will go in an
            AFC mode that will only allow calling house_arrest_client_free().
            Only call house_arrest_client_free() if all AFC operations have
            completed since it will close the connection.
            </remarks>
        </member>
        <member name="T:iMobileDevice.HouseArrest.HouseArrestClientHandle">
            <summary>
            Represents a wrapper class for HouseArrest handles.
            </summary>
        </member>
        <member name="M:iMobileDevice.HouseArrest.HouseArrestClientHandle.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.HouseArrest.HouseArrestClientHandle"/> class.
            </summary>
        </member>
        <member name="M:iMobileDevice.HouseArrest.HouseArrestClientHandle.#ctor(System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.HouseArrest.HouseArrestClientHandle"/> class, specifying whether the handle is to be reliably released.
            </summary>
            <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>
        </member>
        <member name="P:iMobileDevice.HouseArrest.HouseArrestClientHandle.Api">
            <summary>
            Gets or sets the API to use
            </summary>
        </member>
        <member name="P:iMobileDevice.HouseArrest.HouseArrestClientHandle.Zero">
            <summary>
            Gets a value which represents a pointer or handle that has been initialized to zero.
            </summary>
        </member>
        <member name="M:iMobileDevice.HouseArrest.HouseArrestClientHandle.ReleaseHandle">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.HouseArrest.HouseArrestClientHandle.DangerousCreate(System.IntPtr,System.Boolean)">
            <summary>
            Creates a new <see cref="T:iMobileDevice.HouseArrest.HouseArrestClientHandle"/> from a <see cref="T:System.IntPtr"/>.
            </summary>
            <param name="unsafeHandle">
            The underlying <see cref="T:System.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>
        </member>
        <member name="M:iMobileDevice.HouseArrest.HouseArrestClientHandle.DangerousCreate(System.IntPtr)">
            <summary>
            Creates a new <see cref="T:iMobileDevice.HouseArrest.HouseArrestClientHandle"/> from a <see cref="T:System.IntPtr"/>.
            </summary>
            <param name="unsafeHandle">
            The underlying <see cref="T:System.IntPtr"/>
            </param>
            <returns>
            </returns>
        </member>
        <member name="M:iMobileDevice.HouseArrest.HouseArrestClientHandle.ToString">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.HouseArrest.HouseArrestClientHandle.Equals(System.Object)">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.HouseArrest.HouseArrestClientHandle.GetHashCode">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.HouseArrest.HouseArrestClientHandle.op_Equality(iMobileDevice.HouseArrest.HouseArrestClientHandle,iMobileDevice.HouseArrest.HouseArrestClientHandle)">
            <summary>
            Determines whether two specified instances of <see cref="T:iMobileDevice.HouseArrest.HouseArrestClientHandle"/> are equal.
            </summary>
            <param name="value1">
            The first pointer or handle to compare.
            </param>
            <param name="value2">
            The second pointer or handle to compare.
            </param>
            <returns>
            <see langword="true"/> if <paramref name="value1"/> equals <paramref name="value2"/>; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="M:iMobileDevice.HouseArrest.HouseArrestClientHandle.op_Inequality(iMobileDevice.HouseArrest.HouseArrestClientHandle,iMobileDevice.HouseArrest.HouseArrestClientHandle)">
            <summary>
            Determines whether two specified instances of <see cref="T:iMobileDevice.HouseArrest.HouseArrestClientHandle"/> are not equal.
            </summary>
            <param name="value1">
            The first pointer or handle to compare.
            </param>
            <param name="value2">
            The second pointer or handle to compare.
            </param>
            <returns>
            <see langword="true"/> if <paramref name="value1"/> does not equal <paramref name="value2"/>; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="T:iMobileDevice.HouseArrest.HouseArrestError">
            <summary>
            Error Codes 
            </summary>
        </member>
        <member name="T:iMobileDevice.HouseArrest.HouseArrestException">
            Represents an exception that occurred when interacting with the HouseArrest API.
        </member>
        <member name="F:iMobileDevice.HouseArrest.HouseArrestException.errorCode">
            <summary>
            Backing field for the <see cref="P:iMobileDevice.HouseArrest.HouseArrestException.ErrorCode"/> property.
            </summary>
        </member>
        <member name="M:iMobileDevice.HouseArrest.HouseArrestException.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.HouseArrest.HouseArrestException"/> class.
            </summary>
        </member>
        <member name="M:iMobileDevice.HouseArrest.HouseArrestException.#ctor(iMobileDevice.HouseArrest.HouseArrestError)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.HouseArrest.HouseArrestException"/> class with a specified error code.
            </summary>
            <param name="error">
            The error code of the error that occurred.
            </param>
        </member>
        <member name="M:iMobileDevice.HouseArrest.HouseArrestException.#ctor(iMobileDevice.HouseArrest.HouseArrestError,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.HouseArrest.HouseArrestException"/> class with a specified error code and error message.
            </summary>
            <param name="error">
            The error code of the error that occurred.
            </param>
            <param name="message">
            A message which describes the error.
            </param>
        </member>
        <member name="M:iMobileDevice.HouseArrest.HouseArrestException.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.HouseArrest.HouseArrestException"/> class with a specified error message.
            </summary>
            <param name="message">
            The message that describes the error.
            </param>
        </member>
        <member name="M:iMobileDevice.HouseArrest.HouseArrestException.#ctor(System.String,System.Exception)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.HouseArrest.HouseArrestException"/> class with a specified error message and a reference to the inner exception that is the cause of this exception.
            </summary>
            <param name="message">
            The error message that explains the reason for the exception.
            </param>
            <param name="inner">
            The exception that is the cause of the current exception, or <see langword="null"/> if no inner exception is specified.
            </param>
        </member>
        <member name="M:iMobileDevice.HouseArrest.HouseArrestException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.HouseArrest.HouseArrestException"/> class with serialized data.
            </summary>
            <param name="info">
            The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds the serialized object data about the exception being thrown.
            </param>
            <param name="context">
            The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that contains contextual information about the source or destination.
            </param>
        </member>
        <member name="P:iMobileDevice.HouseArrest.HouseArrestException.ErrorCode">
            <summary>
            Gets the error code that represents the error.
            </summary>
        </member>
        <member name="M:iMobileDevice.HouseArrest.HouseArrestNativeMethods.house_arrest_client_new(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Lockdown.LockdownServiceDescriptorHandle,iMobileDevice.HouseArrest.HouseArrestClientHandle@)">
            <summary>
            Connects to the house_arrest 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">
            Pointer that will point to a newly allocated
            housearrest_client_t upon successful return.
            </param>
            <returns>
            HOUSE_ARREST_E_SUCCESS on success, HOUSE_ARREST_E_INVALID_ARG when
            client is NULL, or an HOUSE_ARREST_E_* error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.HouseArrest.HouseArrestNativeMethods.house_arrest_client_start_service(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.HouseArrest.HouseArrestClientHandle@,System.String)">
            <summary>
            Starts a new house_arrest 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
            house_arrest_client_t upon successful return. Must be freed using
            house_arrest_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>
            HOUSE_ARREST_E_SUCCESS on success, or an HOUSE_ARREST_E_* error
            code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.HouseArrest.HouseArrestNativeMethods.house_arrest_client_free(System.IntPtr)">
            <summary>
            Disconnects an house_arrest client from the device and frees up the
            house_arrest client data.
            </summary>
            <param name="client">
            The house_arrest client to disconnect and free.
            </param>
            <returns>
            HOUSE_ARREST_E_SUCCESS on success, HOUSE_ARREST_E_INVALID_ARG when
            client is NULL, or an HOUSE_ARREST_E_* error code otherwise.
            </returns>
            <remarks>
            After using afc_client_new_from_house_arrest_client(), make sure
            you call afc_client_free() before calling this function to ensure
            a proper cleanup. Do not call this function if you still need to
            perform AFC operations since it will close the connection.
            </remarks>
        </member>
        <member name="M:iMobileDevice.HouseArrest.HouseArrestNativeMethods.house_arrest_send_request(iMobileDevice.HouseArrest.HouseArrestClientHandle,iMobileDevice.Plist.PlistHandle)">
            <summary>
            Sends a generic request to the connected house_arrest service.
            </summary>
            <param name="client">
            The house_arrest client to use.
            </param>
            <param name="dict">
            The request to send as a plist of type PLIST_DICT.
            </param>
            <returns>
            HOUSE_ARREST_E_SUCCESS if the request was successfully sent,
            HOUSE_ARREST_E_INVALID_ARG if client or dict is invalid,
            HOUSE_ARREST_E_PLIST_ERROR if dict is not a plist of type PLIST_DICT,
            HOUSE_ARREST_E_INVALID_MODE if the client is not in the correct mode,
            or HOUSE_ARREST_E_CONN_FAILED if a connection error occurred.
            </returns>
            <remarks>
            If this function returns HOUSE_ARREST_E_SUCCESS it does not mean
            that the request was successful. To check for success or failure you
            need to call house_arrest_get_result().
            </remarks>
        </member>
        <member name="M:iMobileDevice.HouseArrest.HouseArrestNativeMethods.house_arrest_send_command(iMobileDevice.HouseArrest.HouseArrestClientHandle,System.String,System.String)">
            <summary>
            Send a command to the connected house_arrest service.
            Calls house_arrest_send_request() internally.
            </summary>
            <param name="client">
            The house_arrest client to use.
            </param>
            <param name="command">
            The command to send. Currently, only VendContainer and
            VendDocuments are known.
            </param>
            <param name="appid">
            The application identifier to pass along with the .
            </param>
            <returns>
            HOUSE_ARREST_E_SUCCESS if the command was successfully sent,
            HOUSE_ARREST_E_INVALID_ARG if client, command, or appid is invalid,
            HOUSE_ARREST_E_INVALID_MODE if the client is not in the correct mode,
            or HOUSE_ARREST_E_CONN_FAILED if a connection error occurred.
            </returns>
            <remarks>
            If this function returns HOUSE_ARREST_E_SUCCESS it does not mean
            that the command was successful. To check for success or failure you
            need to call house_arrest_get_result().
            </remarks>
        </member>
        <member name="M:iMobileDevice.HouseArrest.HouseArrestNativeMethods.house_arrest_get_result(iMobileDevice.HouseArrest.HouseArrestClientHandle,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Retrieves the result of a previously sent house_arrest_request_* request.
            </summary>
            <param name="client">
            The house_arrest client to use
            </param>
            <param name="dict">
            Pointer that will be set to a plist containing the result to
            the last performed operation. It holds a key 'Status' with the value
            'Complete' on success or a key 'Error' with an error description as
            value. The caller is responsible for freeing the returned plist.
            </param>
            <returns>
            HOUSE_ARREST_E_SUCCESS if a result plist was retrieved,
            HOUSE_ARREST_E_INVALID_ARG if client is invalid,
            HOUSE_ARREST_E_INVALID_MODE if the client is not in the correct mode,
            or HOUSE_ARREST_E_CONN_FAILED if a connection error occurred.
            </returns>
        </member>
        <member name="M:iMobileDevice.HouseArrest.HouseArrestNativeMethods.afc_client_new_from_house_arrest_client(iMobileDevice.HouseArrest.HouseArrestClientHandle,iMobileDevice.Afc.AfcClientHandle@)">
            <summary>
            Creates an AFC client using the given house_arrest client's connection
            allowing file access to a specific application directory requested by
            functions like house_arrest_request_vendor_documents().
            </summary>
            <param name="client">
            The house_arrest client to use.
            </param>
            <param name="afc_client">
            Pointer that will be set to a newly allocated afc_client_t
            upon successful return.
            </param>
            <returns>
            AFC_E_SUCCESS if the afc client was successfully created,
            AFC_E_INVALID_ARG if client is invalid or was already used to create
            an afc client, or an AFC_E_* error code returned by
            afc_client_new_with_service_client().
            </returns>
            <remarks>
            After calling this function the house_arrest client will go in an
            AFC mode that will only allow calling house_arrest_client_free().
            Only call house_arrest_client_free() if all AFC operations have
            completed since it will close the connection.
            </remarks>
        </member>
        <member name="P:iMobileDevice.HouseArrest.IHouseArrestApi.Parent">
            <summary>
            Gets or sets the <see cref="!:ILibiMobileDeviceApi"/> which owns this <see cref="N:iMobileDevice.HouseArrest"/>.
            </summary>
        </member>
        <member name="M:iMobileDevice.HouseArrest.IHouseArrestApi.house_arrest_client_new(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Lockdown.LockdownServiceDescriptorHandle,iMobileDevice.HouseArrest.HouseArrestClientHandle@)">
            <summary>
            Connects to the house_arrest 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">
            Pointer that will point to a newly allocated
            housearrest_client_t upon successful return.
            </param>
            <returns>
            HOUSE_ARREST_E_SUCCESS on success, HOUSE_ARREST_E_INVALID_ARG when
            client is NULL, or an HOUSE_ARREST_E_* error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.HouseArrest.IHouseArrestApi.house_arrest_client_start_service(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.HouseArrest.HouseArrestClientHandle@,System.String)">
            <summary>
            Starts a new house_arrest 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
            house_arrest_client_t upon successful return. Must be freed using
            house_arrest_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>
            HOUSE_ARREST_E_SUCCESS on success, or an HOUSE_ARREST_E_* error
            code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.HouseArrest.IHouseArrestApi.house_arrest_client_free(System.IntPtr)">
            <summary>
            Disconnects an house_arrest client from the device and frees up the
            house_arrest client data.
            </summary>
            <param name="client">
            The house_arrest client to disconnect and free.
            </param>
            <returns>
            HOUSE_ARREST_E_SUCCESS on success, HOUSE_ARREST_E_INVALID_ARG when
            client is NULL, or an HOUSE_ARREST_E_* error code otherwise.
            </returns>
            <remarks>
            After using afc_client_new_from_house_arrest_client(), make sure
            you call afc_client_free() before calling this function to ensure
            a proper cleanup. Do not call this function if you still need to
            perform AFC operations since it will close the connection.
            </remarks>
        </member>
        <member name="M:iMobileDevice.HouseArrest.IHouseArrestApi.house_arrest_send_request(iMobileDevice.HouseArrest.HouseArrestClientHandle,iMobileDevice.Plist.PlistHandle)">
            <summary>
            Sends a generic request to the connected house_arrest service.
            </summary>
            <param name="client">
            The house_arrest client to use.
            </param>
            <param name="dict">
            The request to send as a plist of type PLIST_DICT.
            </param>
            <returns>
            HOUSE_ARREST_E_SUCCESS if the request was successfully sent,
            HOUSE_ARREST_E_INVALID_ARG if client or dict is invalid,
            HOUSE_ARREST_E_PLIST_ERROR if dict is not a plist of type PLIST_DICT,
            HOUSE_ARREST_E_INVALID_MODE if the client is not in the correct mode,
            or HOUSE_ARREST_E_CONN_FAILED if a connection error occurred.
            </returns>
            <remarks>
            If this function returns HOUSE_ARREST_E_SUCCESS it does not mean
            that the request was successful. To check for success or failure you
            need to call house_arrest_get_result().
            </remarks>
        </member>
        <member name="M:iMobileDevice.HouseArrest.IHouseArrestApi.house_arrest_send_command(iMobileDevice.HouseArrest.HouseArrestClientHandle,System.String,System.String)">
            <summary>
            Send a command to the connected house_arrest service.
            Calls house_arrest_send_request() internally.
            </summary>
            <param name="client">
            The house_arrest client to use.
            </param>
            <param name="command">
            The command to send. Currently, only VendContainer and
            VendDocuments are known.
            </param>
            <param name="appid">
            The application identifier to pass along with the .
            </param>
            <returns>
            HOUSE_ARREST_E_SUCCESS if the command was successfully sent,
            HOUSE_ARREST_E_INVALID_ARG if client, command, or appid is invalid,
            HOUSE_ARREST_E_INVALID_MODE if the client is not in the correct mode,
            or HOUSE_ARREST_E_CONN_FAILED if a connection error occurred.
            </returns>
            <remarks>
            If this function returns HOUSE_ARREST_E_SUCCESS it does not mean
            that the command was successful. To check for success or failure you
            need to call house_arrest_get_result().
            </remarks>
        </member>
        <member name="M:iMobileDevice.HouseArrest.IHouseArrestApi.house_arrest_get_result(iMobileDevice.HouseArrest.HouseArrestClientHandle,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Retrieves the result of a previously sent house_arrest_request_* request.
            </summary>
            <param name="client">
            The house_arrest client to use
            </param>
            <param name="dict">
            Pointer that will be set to a plist containing the result to
            the last performed operation. It holds a key 'Status' with the value
            'Complete' on success or a key 'Error' with an error description as
            value. The caller is responsible for freeing the returned plist.
            </param>
            <returns>
            HOUSE_ARREST_E_SUCCESS if a result plist was retrieved,
            HOUSE_ARREST_E_INVALID_ARG if client is invalid,
            HOUSE_ARREST_E_INVALID_MODE if the client is not in the correct mode,
            or HOUSE_ARREST_E_CONN_FAILED if a connection error occurred.
            </returns>
        </member>
        <member name="M:iMobileDevice.HouseArrest.IHouseArrestApi.afc_client_new_from_house_arrest_client(iMobileDevice.HouseArrest.HouseArrestClientHandle,iMobileDevice.Afc.AfcClientHandle@)">
            <summary>
            Creates an AFC client using the given house_arrest client's connection
            allowing file access to a specific application directory requested by
            functions like house_arrest_request_vendor_documents().
            </summary>
            <param name="client">
            The house_arrest client to use.
            </param>
            <param name="afc_client">
            Pointer that will be set to a newly allocated afc_client_t
            upon successful return.
            </param>
            <returns>
            AFC_E_SUCCESS if the afc client was successfully created,
            AFC_E_INVALID_ARG if client is invalid or was already used to create
            an afc client, or an AFC_E_* error code returned by
            afc_client_new_with_service_client().
            </returns>
            <remarks>
            After calling this function the house_arrest client will go in an
            AFC mode that will only allow calling house_arrest_client_free().
            Only call house_arrest_client_free() if all AFC operations have
            completed since it will close the connection.
            </remarks>
        </member>
        <member name="F:iMobileDevice.iDeviceActivation.iDeviceActivationApi.parent">
            <summary>
            Backing field for the <see cref="P:iMobileDevice.iDeviceActivation.iDeviceActivationApi.Parent"/> property
            </summary>
        </member>
        <member name="M:iMobileDevice.iDeviceActivation.iDeviceActivationApi.#ctor(iMobileDevice.ILibiMobileDevice)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.iDeviceActivation.iDeviceActivationApi"/> class
            </summary>
            <param name="parent">
            The <see cref="!:ILibiMobileDeviceApi"/> which owns this <see cref="N:iMobileDevice.iDeviceActivation"/>.
            </param>
        </member>
        <member name="P:iMobileDevice.iDeviceActivation.iDeviceActivationApi.Parent">
            <inheritdoc/>
        </member>
        <member name="T:iMobileDevice.iDeviceActivation.iDeviceActivationException">
            Represents an exception that occurred when interacting with the iDeviceActivation API.
        </member>
        <member name="F:iMobileDevice.iDeviceActivation.iDeviceActivationException.errorCode">
            <summary>
            Backing field for the <see cref="P:iMobileDevice.iDeviceActivation.iDeviceActivationException.ErrorCode"/> property.
            </summary>
        </member>
        <member name="M:iMobileDevice.iDeviceActivation.iDeviceActivationException.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.iDeviceActivation.iDeviceActivationException"/> class.
            </summary>
        </member>
        <member name="M:iMobileDevice.iDeviceActivation.iDeviceActivationException.#ctor(iMobileDevice.iDeviceActivation.iDeviceActivationError)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.iDeviceActivation.iDeviceActivationException"/> class with a specified error code.
            </summary>
            <param name="error">
            The error code of the error that occurred.
            </param>
        </member>
        <member name="M:iMobileDevice.iDeviceActivation.iDeviceActivationException.#ctor(iMobileDevice.iDeviceActivation.iDeviceActivationError,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.iDeviceActivation.iDeviceActivationException"/> class with a specified error code and error message.
            </summary>
            <param name="error">
            The error code of the error that occurred.
            </param>
            <param name="message">
            A message which describes the error.
            </param>
        </member>
        <member name="M:iMobileDevice.iDeviceActivation.iDeviceActivationException.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.iDeviceActivation.iDeviceActivationException"/> class with a specified error message.
            </summary>
            <param name="message">
            The message that describes the error.
            </param>
        </member>
        <member name="M:iMobileDevice.iDeviceActivation.iDeviceActivationException.#ctor(System.String,System.Exception)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.iDeviceActivation.iDeviceActivationException"/> class with a specified error message and a reference to the inner exception that is the cause of this exception.
            </summary>
            <param name="message">
            The error message that explains the reason for the exception.
            </param>
            <param name="inner">
            The exception that is the cause of the current exception, or <see langword="null"/> if no inner exception is specified.
            </param>
        </member>
        <member name="M:iMobileDevice.iDeviceActivation.iDeviceActivationException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.iDeviceActivation.iDeviceActivationException"/> class with serialized data.
            </summary>
            <param name="info">
            The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds the serialized object data about the exception being thrown.
            </param>
            <param name="context">
            The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that contains contextual information about the source or destination.
            </param>
        </member>
        <member name="P:iMobileDevice.iDeviceActivation.iDeviceActivationException.ErrorCode">
            <summary>
            Gets the error code that represents the error.
            </summary>
        </member>
        <member name="T:iMobileDevice.iDeviceActivation.iDeviceActivationRequestHandle">
            <summary>
            Represents a wrapper class for iDeviceActivation handles.
            </summary>
        </member>
        <member name="M:iMobileDevice.iDeviceActivation.iDeviceActivationRequestHandle.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.iDeviceActivation.iDeviceActivationRequestHandle"/> class.
            </summary>
        </member>
        <member name="M:iMobileDevice.iDeviceActivation.iDeviceActivationRequestHandle.#ctor(System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.iDeviceActivation.iDeviceActivationRequestHandle"/> class, specifying whether the handle is to be reliably released.
            </summary>
            <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>
        </member>
        <member name="P:iMobileDevice.iDeviceActivation.iDeviceActivationRequestHandle.Api">
            <summary>
            Gets or sets the API to use
            </summary>
        </member>
        <member name="P:iMobileDevice.iDeviceActivation.iDeviceActivationRequestHandle.Zero">
            <summary>
            Gets a value which represents a pointer or handle that has been initialized to zero.
            </summary>
        </member>
        <member name="M:iMobileDevice.iDeviceActivation.iDeviceActivationRequestHandle.ReleaseHandle">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.iDeviceActivation.iDeviceActivationRequestHandle.DangerousCreate(System.IntPtr,System.Boolean)">
            <summary>
            Creates a new <see cref="T:iMobileDevice.iDeviceActivation.iDeviceActivationRequestHandle"/> from a <see cref="T:System.IntPtr"/>.
            </summary>
            <param name="unsafeHandle">
            The underlying <see cref="T:System.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>
        </member>
        <member name="M:iMobileDevice.iDeviceActivation.iDeviceActivationRequestHandle.DangerousCreate(System.IntPtr)">
            <summary>
            Creates a new <see cref="T:iMobileDevice.iDeviceActivation.iDeviceActivationRequestHandle"/> from a <see cref="T:System.IntPtr"/>.
            </summary>
            <param name="unsafeHandle">
            The underlying <see cref="T:System.IntPtr"/>
            </param>
            <returns>
            </returns>
        </member>
        <member name="M:iMobileDevice.iDeviceActivation.iDeviceActivationRequestHandle.ToString">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.iDeviceActivation.iDeviceActivationRequestHandle.Equals(System.Object)">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.iDeviceActivation.iDeviceActivationRequestHandle.GetHashCode">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.iDeviceActivation.iDeviceActivationRequestHandle.op_Equality(iMobileDevice.iDeviceActivation.iDeviceActivationRequestHandle,iMobileDevice.iDeviceActivation.iDeviceActivationRequestHandle)">
            <summary>
            Determines whether two specified instances of <see cref="T:iMobileDevice.iDeviceActivation.iDeviceActivationRequestHandle"/> are equal.
            </summary>
            <param name="value1">
            The first pointer or handle to compare.
            </param>
            <param name="value2">
            The second pointer or handle to compare.
            </param>
            <returns>
            <see langword="true"/> if <paramref name="value1"/> equals <paramref name="value2"/>; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="M:iMobileDevice.iDeviceActivation.iDeviceActivationRequestHandle.op_Inequality(iMobileDevice.iDeviceActivation.iDeviceActivationRequestHandle,iMobileDevice.iDeviceActivation.iDeviceActivationRequestHandle)">
            <summary>
            Determines whether two specified instances of <see cref="T:iMobileDevice.iDeviceActivation.iDeviceActivationRequestHandle"/> are not equal.
            </summary>
            <param name="value1">
            The first pointer or handle to compare.
            </param>
            <param name="value2">
            The second pointer or handle to compare.
            </param>
            <returns>
            <see langword="true"/> if <paramref name="value1"/> does not equal <paramref name="value2"/>; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="T:iMobileDevice.iDeviceActivation.iDeviceActivationResponseHandle">
            <summary>
            Represents a wrapper class for iDeviceActivation handles.
            </summary>
        </member>
        <member name="M:iMobileDevice.iDeviceActivation.iDeviceActivationResponseHandle.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.iDeviceActivation.iDeviceActivationResponseHandle"/> class.
            </summary>
        </member>
        <member name="M:iMobileDevice.iDeviceActivation.iDeviceActivationResponseHandle.#ctor(System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.iDeviceActivation.iDeviceActivationResponseHandle"/> class, specifying whether the handle is to be reliably released.
            </summary>
            <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>
        </member>
        <member name="P:iMobileDevice.iDeviceActivation.iDeviceActivationResponseHandle.Api">
            <summary>
            Gets or sets the API to use
            </summary>
        </member>
        <member name="P:iMobileDevice.iDeviceActivation.iDeviceActivationResponseHandle.Zero">
            <summary>
            Gets a value which represents a pointer or handle that has been initialized to zero.
            </summary>
        </member>
        <member name="M:iMobileDevice.iDeviceActivation.iDeviceActivationResponseHandle.ReleaseHandle">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.iDeviceActivation.iDeviceActivationResponseHandle.DangerousCreate(System.IntPtr,System.Boolean)">
            <summary>
            Creates a new <see cref="T:iMobileDevice.iDeviceActivation.iDeviceActivationResponseHandle"/> from a <see cref="T:System.IntPtr"/>.
            </summary>
            <param name="unsafeHandle">
            The underlying <see cref="T:System.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>
        </member>
        <member name="M:iMobileDevice.iDeviceActivation.iDeviceActivationResponseHandle.DangerousCreate(System.IntPtr)">
            <summary>
            Creates a new <see cref="T:iMobileDevice.iDeviceActivation.iDeviceActivationResponseHandle"/> from a <see cref="T:System.IntPtr"/>.
            </summary>
            <param name="unsafeHandle">
            The underlying <see cref="T:System.IntPtr"/>
            </param>
            <returns>
            </returns>
        </member>
        <member name="M:iMobileDevice.iDeviceActivation.iDeviceActivationResponseHandle.ToString">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.iDeviceActivation.iDeviceActivationResponseHandle.Equals(System.Object)">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.iDeviceActivation.iDeviceActivationResponseHandle.GetHashCode">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.iDeviceActivation.iDeviceActivationResponseHandle.op_Equality(iMobileDevice.iDeviceActivation.iDeviceActivationResponseHandle,iMobileDevice.iDeviceActivation.iDeviceActivationResponseHandle)">
            <summary>
            Determines whether two specified instances of <see cref="T:iMobileDevice.iDeviceActivation.iDeviceActivationResponseHandle"/> are equal.
            </summary>
            <param name="value1">
            The first pointer or handle to compare.
            </param>
            <param name="value2">
            The second pointer or handle to compare.
            </param>
            <returns>
            <see langword="true"/> if <paramref name="value1"/> equals <paramref name="value2"/>; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="M:iMobileDevice.iDeviceActivation.iDeviceActivationResponseHandle.op_Inequality(iMobileDevice.iDeviceActivation.iDeviceActivationResponseHandle,iMobileDevice.iDeviceActivation.iDeviceActivationResponseHandle)">
            <summary>
            Determines whether two specified instances of <see cref="T:iMobileDevice.iDeviceActivation.iDeviceActivationResponseHandle"/> are not equal.
            </summary>
            <param name="value1">
            The first pointer or handle to compare.
            </param>
            <param name="value2">
            The second pointer or handle to compare.
            </param>
            <returns>
            <see langword="true"/> if <paramref name="value1"/> does not equal <paramref name="value2"/>; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="P:iMobileDevice.iDeviceActivation.IiDeviceActivationApi.Parent">
            <summary>
            Gets or sets the <see cref="!:ILibiMobileDeviceApi"/> which owns this <see cref="N:iMobileDevice.iDeviceActivation"/>.
            </summary>
        </member>
        <member name="F:iMobileDevice.iDevice.iDeviceApi.parent">
            <summary>
            Backing field for the <see cref="P:iMobileDevice.iDevice.iDeviceApi.Parent"/> property
            </summary>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceApi.#ctor(iMobileDevice.ILibiMobileDevice)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.iDevice.iDeviceApi"/> class
            </summary>
            <param name="parent">
            The <see cref="!:ILibiMobileDeviceApi"/> which owns this <see cref="N:iMobileDevice.iDevice"/>.
            </param>
        </member>
        <member name="P:iMobileDevice.iDevice.iDeviceApi.Parent">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceApi.idevice_set_debug_callback(iMobileDevice.iDevice.iDeviceDebugCallBack)">
            <summary>
            Sets the callback to invoke when writing out debug messages. If this callback is set, messages
            will be written to this callback instead of the standard output.
            </summary>
            <param name="callback">
            The callback which will receive the debug messages. Set to NULL to redirect to stdout.
            </param>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceApi.idevice_set_debug_level(System.Int32)">
            <summary>
            Set the level of debugging.
            </summary>
            <param name="level">
            Set to 0 for no debug output, 1 to enable basic debug output and 2 to enable full debug output.
            When set to 2, the values of buffers being sent across the wire are printed out as well, this results in very
            verbose output.
            </param>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceApi.idevice_event_subscribe(iMobileDevice.iDevice.iDeviceEventCallBack,System.IntPtr)">
            <summary>
            Register a callback function that will be called when device add/remove
            events occur.
            </summary>
            <param name="callback">
            Callback function to call.
            </param>
            <param name="user_data">
            Application-specific data passed as parameter
            to the registered callback function.
            </param>
            <returns>
            IDEVICE_E_SUCCESS on success or an error value when an error occurred.
            </returns>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceApi.idevice_event_unsubscribe">
            <summary>
            Release the event callback function that has been registered with
            idevice_event_subscribe().
            </summary>
            <returns>
            IDEVICE_E_SUCCESS on success or an error value when an error occurred.
            </returns>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceApi.idevice_get_device_list(System.Collections.ObjectModel.ReadOnlyCollection{System.String}@,System.Int32@)">
            <summary>
            Get a list of UDIDs of currently available devices (USBMUX devices only).
            </summary>
            <param name="devices">
            List of UDIDs of devices that are currently available.
            This list is terminated by a NULL pointer.
            </param>
            <param name="count">
            Number of devices found.
            </param>
            <returns>
            IDEVICE_E_SUCCESS on success or an error value when an error occurred.
            </returns>
            <remarks>
            This function only returns the UDIDs of USBMUX devices. To also include
            network devices in the list, use idevice_get_device_list_extended().
            </remarks>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceApi.idevice_device_list_free(System.IntPtr)">
            <summary>
            Free a list of device UDIDs.
            </summary>
            <param name="devices">
            List of UDIDs to free.
            </param>
            <returns>
            Always returnes IDEVICE_E_SUCCESS.
            </returns>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceApi.idevice_get_device_list_extended(System.IntPtr@,System.Int32@)">
            <summary>
            Get a list of currently available devices
            </summary>
            <param name="devices">
            List of idevice_info_t records with device information.
            This list is terminated by a NULL pointer.
            </param>
            <param name="count">
            Number of devices included in the list.
            </param>
            <returns>
            IDEVICE_E_SUCCESS on success or an error value when an error occurred.
            </returns>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceApi.idevice_device_list_extended_free(System.IntPtr)">
            <summary>
            Free an extended device list retrieved through idevice_get_device_list_extended().
            </summary>
            <param name="devices">
            Device list to free.
            </param>
            <returns>
            IDEVICE_E_SUCCESS on success or an error value when an error occurred.
            </returns>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceApi.idevice_new(iMobileDevice.iDevice.iDeviceHandle@,System.String)">
            <summary>
            Creates an idevice_t structure for the device specified by UDID,
            if the device is available (USBMUX devices only).
            </summary>
            <param name="device">
            Upon calling this function, a pointer to a location of type
            idevice_t. On successful return, this location will be populated.
            </param>
            <param name="udid">
            The UDID to match.
            </param>
            <returns>
            IDEVICE_E_SUCCESS if ok, otherwise an error code.
            </returns>
            <remarks>
            The resulting idevice_t structure has to be freed with
            idevice_free() if it is no longer used.
            If you need to connect to a device available via network, use
            idevice_new_with_options() and include IDEVICE_LOOKUP_NETWORK in options.
            </remarks>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceApi.idevice_new_with_options(iMobileDevice.iDevice.iDeviceHandle@,System.String,System.Int32)">
            <summary>
            Creates an idevice_t structure for the device specified by UDID,
            if the device is available, with the given lookup options.
            </summary>
            <param name="device">
            Upon calling this function, a pointer to a location of type
            idevice_t. On successful return, this location will be populated.
            </param>
            <param name="udid">
            The UDID to match.
            </param>
            <param name="options">
            Specifies what connection types should be considered
            when looking up devices. Accepts bitwise or'ed values of idevice_options.
            If 0 (no option) is specified it will default to IDEVICE_LOOKUP_USBMUX.
            To lookup both USB and network-connected devices, pass
            IDEVICE_LOOKUP_USBMUX | IDEVICE_LOOKUP_NETWORK. If a device is available
            both via USBMUX *and* network, it will select the USB connection.
            This behavior can be changed by adding IDEVICE_LOOKUP_PREFER_NETWORK
            to the options in which case it will select the network connection.
            </param>
            <returns>
            IDEVICE_E_SUCCESS if ok, otherwise an error code.
            </returns>
            <remarks>
            The resulting idevice_t structure has to be freed with
            idevice_free() if it is no longer used.
            </remarks>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceApi.idevice_free(System.IntPtr)">
            <summary>
            Cleans up an idevice structure, then frees the structure itself.
            </summary>
            <param name="device">
            idevice_t to free.
            </param>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceApi.idevice_connect(iMobileDevice.iDevice.iDeviceHandle,System.UInt16,iMobileDevice.iDevice.iDeviceConnectionHandle@)">
            <summary>
            Set up a connection to the given device.
            </summary>
            <param name="device">
            The device to connect to.
            </param>
            <param name="port">
            The destination port to connect to.
            </param>
            <param name="connection">
            Pointer to an idevice_connection_t that will be filled
            with the necessary data of the connection.
            </param>
            <returns>
            IDEVICE_E_SUCCESS if ok, otherwise an error code.
            </returns>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceApi.idevice_disconnect(System.IntPtr)">
            <summary>
            Disconnect from the device and clean up the connection structure.
            </summary>
            <param name="connection">
            The connection to close.
            </param>
            <returns>
            IDEVICE_E_SUCCESS if ok, otherwise an error code.
            </returns>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceApi.idevice_connection_send(iMobileDevice.iDevice.iDeviceConnectionHandle,System.Byte[],System.UInt32,System.UInt32@)">
            <summary>
            Send data to a device via the given connection.
            </summary>
            <param name="connection">
            The connection to send data over.
            </param>
            <param name="data">
            Buffer with data to send.
            </param>
            <param name="len">
            Size of the buffer to send.
            </param>
            <param name="sent_bytes">
            Pointer to an uint32_t that will be filled
            with the number of bytes actually sent.
            </param>
            <returns>
            IDEVICE_E_SUCCESS if ok, otherwise an error code.
            </returns>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceApi.idevice_connection_receive_timeout(iMobileDevice.iDevice.iDeviceConnectionHandle,System.Byte[],System.UInt32,System.UInt32@,System.UInt32)">
            <summary>
            Receive data from a device via the given connection.
            This function will return after the given timeout even if no data has been
            received.
            </summary>
            <param name="connection">
            The connection to receive data from.
            </param>
            <param name="data">
            Buffer that will be filled with the received data.
            This buffer has to be large enough to hold len bytes.
            </param>
            <param name="len">
            Buffer size or number of bytes to receive.
            </param>
            <param name="recv_bytes">
            Number of bytes actually received.
            </param>
            <param name="timeout">
            Timeout in milliseconds after which this function should
            return even if no data has been received.
            </param>
            <returns>
            IDEVICE_E_SUCCESS if ok, otherwise an error code.
            </returns>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceApi.idevice_connection_receive(iMobileDevice.iDevice.iDeviceConnectionHandle,System.Byte[],System.UInt32,System.UInt32@)">
            <summary>
            Receive data from a device via the given connection.
            This function is like idevice_connection_receive_timeout, but with a
            predefined reasonable timeout.
            </summary>
            <param name="connection">
            The connection to receive data from.
            </param>
            <param name="data">
            Buffer that will be filled with the received data.
            This buffer has to be large enough to hold len bytes.
            </param>
            <param name="len">
            Buffer size or number of bytes to receive.
            </param>
            <param name="recv_bytes">
            Number of bytes actually received.
            </param>
            <returns>
            IDEVICE_E_SUCCESS if ok, otherwise an error code.
            </returns>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceApi.idevice_connection_enable_ssl(iMobileDevice.iDevice.iDeviceConnectionHandle)">
            <summary>
            Enables SSL for the given connection.
            </summary>
            <param name="connection">
            The connection to enable SSL for.
            </param>
            <returns>
            IDEVICE_E_SUCCESS on success, IDEVICE_E_INVALID_ARG when connection
            is NULL or connection->ssl_data is non-NULL, or IDEVICE_E_SSL_ERROR when
            SSL initialization, setup, or handshake fails.
            </returns>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceApi.idevice_connection_disable_ssl(iMobileDevice.iDevice.iDeviceConnectionHandle)">
            <summary>
            Disable SSL for the given connection.
            </summary>
            <param name="connection">
            The connection to disable SSL for.
            </param>
            <returns>
            IDEVICE_E_SUCCESS on success, IDEVICE_E_INVALID_ARG when connection
            is NULL. This function also returns IDEVICE_E_SUCCESS when SSL is not
            enabled and does no further error checking on cleanup.
            </returns>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceApi.idevice_connection_disable_bypass_ssl(iMobileDevice.iDevice.iDeviceConnectionHandle,System.Char)">
            <summary>
            Disable bypass SSL for the given connection without sending out terminate messages.
            </summary>
            <param name="connection">
            The connection to disable SSL for.
            </param>
            <param name="sslBypass">
            if true ssl connection will not be terminated but just cleaned up, allowing
            plain text data going on underlying connection
            </param>
            <returns>
            IDEVICE_E_SUCCESS on success, IDEVICE_E_INVALID_ARG when connection
            is NULL. This function also returns IDEVICE_E_SUCCESS when SSL is not
            enabled and does no further error checking on cleanup.
            </returns>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceApi.idevice_connection_get_fd(iMobileDevice.iDevice.iDeviceConnectionHandle,System.Int32@)">
            <summary>
            Get the underlying file descriptor for a connection
            </summary>
            <param name="connection">
            The connection to get fd of
            </param>
            <param name="fd">
            Pointer to an int where the fd is stored
            </param>
            <returns>
            IDEVICE_E_SUCCESS if ok, otherwise an error code.
            </returns>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceApi.idevice_get_handle(iMobileDevice.iDevice.iDeviceHandle,System.UInt32@)">
            <summary>
            Gets the handle or (usbmux device id) of the device.
            </summary>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceApi.idevice_get_udid(iMobileDevice.iDevice.iDeviceHandle,System.String@)">
            <summary>
            Gets the unique id for the device.
            </summary>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceApi.idevice_set_socket_type(System.Int32)">
            <summary>
            Sets the socket type (Unix socket or TCP socket) libimobiledevice should use when connecting
            to usbmuxd.
            </summary>
            <param name="value">
            IDEVICE_SOCKET_TYPE_UNIX or IDEVICE_SOCKET_TYPE_TCP
            </param>
            <returns>
            0 on success or negative on error
            </returns>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceApi.idevice_get_socket_type(System.Int32@)">
            <summary>
            Gets the socket type (Unix socket or TCP socket) libimobiledevice should use when connecting
            to usbmuxd.
            </summary>
            <param name="value">
            A pointer to an integer which will reveive the current socket type
            </param>
            <returns>
            0 on success or negative on error
            </returns>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceApi.idevice_set_tcp_endpoint(System.String,System.UInt16)">
            <summary>
            Sets the TCP endpoint to which libimobiledevice will connect if the socket type is set to
            SOCKET_TYPE_TCP
            </summary>
            <param name="host">
            The hostname or IP address to which to connect
            </param>
            <param name="port">
            The port to which to connect.
            </param>
            <returns>
            0 on success or negative on error
            </returns>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceApi.idevice_get_tcp_endpoint(System.String@,System.UInt16@)">
            <summary>
            Gets the TCP endpoint to which libimobiledevice will connect if the socket type is set to
            SOCKET_TYPE_TCP
            </summary>
            <param name="host">
            A pointer which will be set to the hostname or IP address to which to connect.
            The caller must free this string.
            </param>
            <param name="port">
            The port to which to connect
            </param>
            <returns>
            0 on success or negative on error
            </returns>
        </member>
        <member name="T:iMobileDevice.iDevice.iDeviceConnectionHandle">
            <summary>
            Represents a wrapper class for iDevice handles.
            </summary>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceConnectionHandle.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.iDevice.iDeviceConnectionHandle"/> class.
            </summary>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceConnectionHandle.#ctor(System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.iDevice.iDeviceConnectionHandle"/> class, specifying whether the handle is to be reliably released.
            </summary>
            <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>
        </member>
        <member name="P:iMobileDevice.iDevice.iDeviceConnectionHandle.Api">
            <summary>
            Gets or sets the API to use
            </summary>
        </member>
        <member name="P:iMobileDevice.iDevice.iDeviceConnectionHandle.Zero">
            <summary>
            Gets a value which represents a pointer or handle that has been initialized to zero.
            </summary>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceConnectionHandle.ReleaseHandle">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceConnectionHandle.DangerousCreate(System.IntPtr,System.Boolean)">
            <summary>
            Creates a new <see cref="T:iMobileDevice.iDevice.iDeviceConnectionHandle"/> from a <see cref="T:System.IntPtr"/>.
            </summary>
            <param name="unsafeHandle">
            The underlying <see cref="T:System.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>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceConnectionHandle.DangerousCreate(System.IntPtr)">
            <summary>
            Creates a new <see cref="T:iMobileDevice.iDevice.iDeviceConnectionHandle"/> from a <see cref="T:System.IntPtr"/>.
            </summary>
            <param name="unsafeHandle">
            The underlying <see cref="T:System.IntPtr"/>
            </param>
            <returns>
            </returns>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceConnectionHandle.ToString">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceConnectionHandle.Equals(System.Object)">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceConnectionHandle.GetHashCode">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceConnectionHandle.op_Equality(iMobileDevice.iDevice.iDeviceConnectionHandle,iMobileDevice.iDevice.iDeviceConnectionHandle)">
            <summary>
            Determines whether two specified instances of <see cref="T:iMobileDevice.iDevice.iDeviceConnectionHandle"/> are equal.
            </summary>
            <param name="value1">
            The first pointer or handle to compare.
            </param>
            <param name="value2">
            The second pointer or handle to compare.
            </param>
            <returns>
            <see langword="true"/> if <paramref name="value1"/> equals <paramref name="value2"/>; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceConnectionHandle.op_Inequality(iMobileDevice.iDevice.iDeviceConnectionHandle,iMobileDevice.iDevice.iDeviceConnectionHandle)">
            <summary>
            Determines whether two specified instances of <see cref="T:iMobileDevice.iDevice.iDeviceConnectionHandle"/> are not equal.
            </summary>
            <param name="value1">
            The first pointer or handle to compare.
            </param>
            <param name="value2">
            The second pointer or handle to compare.
            </param>
            <returns>
            <see langword="true"/> if <paramref name="value1"/> does not equal <paramref name="value2"/>; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="T:iMobileDevice.iDevice.iDeviceConnectionType">
            <summary>
            Type of connection a device is available on 
            </summary>
        </member>
        <member name="T:iMobileDevice.iDevice.iDeviceError">
            <summary>
            Error Codes 
            </summary>
        </member>
        <member name="T:iMobileDevice.iDevice.iDeviceEventType">
            <summary>
            The event type for device add or removal 
            </summary>
        </member>
        <member name="T:iMobileDevice.iDevice.iDeviceException">
            Represents an exception that occurred when interacting with the iDevice API.
        </member>
        <member name="F:iMobileDevice.iDevice.iDeviceException.errorCode">
            <summary>
            Backing field for the <see cref="P:iMobileDevice.iDevice.iDeviceException.ErrorCode"/> property.
            </summary>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceException.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.iDevice.iDeviceException"/> class.
            </summary>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceException.#ctor(iMobileDevice.iDevice.iDeviceError)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.iDevice.iDeviceException"/> class with a specified error code.
            </summary>
            <param name="error">
            The error code of the error that occurred.
            </param>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceException.#ctor(iMobileDevice.iDevice.iDeviceError,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.iDevice.iDeviceException"/> class with a specified error code and error message.
            </summary>
            <param name="error">
            The error code of the error that occurred.
            </param>
            <param name="message">
            A message which describes the error.
            </param>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceException.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.iDevice.iDeviceException"/> class with a specified error message.
            </summary>
            <param name="message">
            The message that describes the error.
            </param>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceException.#ctor(System.String,System.Exception)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.iDevice.iDeviceException"/> class with a specified error message and a reference to the inner exception that is the cause of this exception.
            </summary>
            <param name="message">
            The error message that explains the reason for the exception.
            </param>
            <param name="inner">
            The exception that is the cause of the current exception, or <see langword="null"/> if no inner exception is specified.
            </param>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.iDevice.iDeviceException"/> class with serialized data.
            </summary>
            <param name="info">
            The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds the serialized object data about the exception being thrown.
            </param>
            <param name="context">
            The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that contains contextual information about the source or destination.
            </param>
        </member>
        <member name="P:iMobileDevice.iDevice.iDeviceException.ErrorCode">
            <summary>
            Gets the error code that represents the error.
            </summary>
        </member>
        <member name="T:iMobileDevice.iDevice.iDeviceHandle">
            <summary>
            Represents a wrapper class for iDevice handles.
            </summary>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceHandle.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.iDevice.iDeviceHandle"/> class.
            </summary>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceHandle.#ctor(System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.iDevice.iDeviceHandle"/> class, specifying whether the handle is to be reliably released.
            </summary>
            <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>
        </member>
        <member name="P:iMobileDevice.iDevice.iDeviceHandle.Api">
            <summary>
            Gets or sets the API to use
            </summary>
        </member>
        <member name="P:iMobileDevice.iDevice.iDeviceHandle.Zero">
            <summary>
            Gets a value which represents a pointer or handle that has been initialized to zero.
            </summary>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceHandle.ReleaseHandle">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceHandle.DangerousCreate(System.IntPtr,System.Boolean)">
            <summary>
            Creates a new <see cref="T:iMobileDevice.iDevice.iDeviceHandle"/> from a <see cref="T:System.IntPtr"/>.
            </summary>
            <param name="unsafeHandle">
            The underlying <see cref="T:System.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>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceHandle.DangerousCreate(System.IntPtr)">
            <summary>
            Creates a new <see cref="T:iMobileDevice.iDevice.iDeviceHandle"/> from a <see cref="T:System.IntPtr"/>.
            </summary>
            <param name="unsafeHandle">
            The underlying <see cref="T:System.IntPtr"/>
            </param>
            <returns>
            </returns>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceHandle.ToString">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceHandle.Equals(System.Object)">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceHandle.GetHashCode">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceHandle.op_Equality(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.iDevice.iDeviceHandle)">
            <summary>
            Determines whether two specified instances of <see cref="T:iMobileDevice.iDevice.iDeviceHandle"/> are equal.
            </summary>
            <param name="value1">
            The first pointer or handle to compare.
            </param>
            <param name="value2">
            The second pointer or handle to compare.
            </param>
            <returns>
            <see langword="true"/> if <paramref name="value1"/> equals <paramref name="value2"/>; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceHandle.op_Inequality(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.iDevice.iDeviceHandle)">
            <summary>
            Determines whether two specified instances of <see cref="T:iMobileDevice.iDevice.iDeviceHandle"/> are not equal.
            </summary>
            <param name="value1">
            The first pointer or handle to compare.
            </param>
            <param name="value2">
            The second pointer or handle to compare.
            </param>
            <returns>
            <see langword="true"/> if <paramref name="value1"/> does not equal <paramref name="value2"/>; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="T:iMobileDevice.iDevice.iDeviceInfoHandle">
            <summary>
            Represents a wrapper class for iDevice handles.
            </summary>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceInfoHandle.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.iDevice.iDeviceInfoHandle"/> class.
            </summary>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceInfoHandle.#ctor(System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.iDevice.iDeviceInfoHandle"/> class, specifying whether the handle is to be reliably released.
            </summary>
            <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>
        </member>
        <member name="P:iMobileDevice.iDevice.iDeviceInfoHandle.Api">
            <summary>
            Gets or sets the API to use
            </summary>
        </member>
        <member name="P:iMobileDevice.iDevice.iDeviceInfoHandle.Zero">
            <summary>
            Gets a value which represents a pointer or handle that has been initialized to zero.
            </summary>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceInfoHandle.ReleaseHandle">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceInfoHandle.DangerousCreate(System.IntPtr,System.Boolean)">
            <summary>
            Creates a new <see cref="T:iMobileDevice.iDevice.iDeviceInfoHandle"/> from a <see cref="T:System.IntPtr"/>.
            </summary>
            <param name="unsafeHandle">
            The underlying <see cref="T:System.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>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceInfoHandle.DangerousCreate(System.IntPtr)">
            <summary>
            Creates a new <see cref="T:iMobileDevice.iDevice.iDeviceInfoHandle"/> from a <see cref="T:System.IntPtr"/>.
            </summary>
            <param name="unsafeHandle">
            The underlying <see cref="T:System.IntPtr"/>
            </param>
            <returns>
            </returns>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceInfoHandle.ToString">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceInfoHandle.Equals(System.Object)">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceInfoHandle.GetHashCode">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceInfoHandle.op_Equality(iMobileDevice.iDevice.iDeviceInfoHandle,iMobileDevice.iDevice.iDeviceInfoHandle)">
            <summary>
            Determines whether two specified instances of <see cref="T:iMobileDevice.iDevice.iDeviceInfoHandle"/> are equal.
            </summary>
            <param name="value1">
            The first pointer or handle to compare.
            </param>
            <param name="value2">
            The second pointer or handle to compare.
            </param>
            <returns>
            <see langword="true"/> if <paramref name="value1"/> equals <paramref name="value2"/>; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceInfoHandle.op_Inequality(iMobileDevice.iDevice.iDeviceInfoHandle,iMobileDevice.iDevice.iDeviceInfoHandle)">
            <summary>
            Determines whether two specified instances of <see cref="T:iMobileDevice.iDevice.iDeviceInfoHandle"/> are not equal.
            </summary>
            <param name="value1">
            The first pointer or handle to compare.
            </param>
            <param name="value2">
            The second pointer or handle to compare.
            </param>
            <returns>
            <see langword="true"/> if <paramref name="value1"/> does not equal <paramref name="value2"/>; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceNativeMethods.idevice_set_debug_callback(iMobileDevice.iDevice.iDeviceDebugCallBack)">
            <summary>
            Sets the callback to invoke when writing out debug messages. If this callback is set, messages
            will be written to this callback instead of the standard output.
            </summary>
            <param name="callback">
            The callback which will receive the debug messages. Set to NULL to redirect to stdout.
            </param>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceNativeMethods.idevice_set_debug_level(System.Int32)">
            <summary>
            Set the level of debugging.
            </summary>
            <param name="level">
            Set to 0 for no debug output, 1 to enable basic debug output and 2 to enable full debug output.
            When set to 2, the values of buffers being sent across the wire are printed out as well, this results in very
            verbose output.
            </param>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceNativeMethods.idevice_event_subscribe(iMobileDevice.iDevice.iDeviceEventCallBack,System.IntPtr)">
            <summary>
            Register a callback function that will be called when device add/remove
            events occur.
            </summary>
            <param name="callback">
            Callback function to call.
            </param>
            <param name="user_data">
            Application-specific data passed as parameter
            to the registered callback function.
            </param>
            <returns>
            IDEVICE_E_SUCCESS on success or an error value when an error occurred.
            </returns>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceNativeMethods.idevice_event_unsubscribe">
            <summary>
            Release the event callback function that has been registered with
            idevice_event_subscribe().
            </summary>
            <returns>
            IDEVICE_E_SUCCESS on success or an error value when an error occurred.
            </returns>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceNativeMethods.idevice_get_device_list(System.IntPtr@,System.Int32@)">
            <summary>
            Get a list of UDIDs of currently available devices (USBMUX devices only).
            </summary>
            <param name="devices">
            List of UDIDs of devices that are currently available.
            This list is terminated by a NULL pointer.
            </param>
            <param name="count">
            Number of devices found.
            </param>
            <returns>
            IDEVICE_E_SUCCESS on success or an error value when an error occurred.
            </returns>
            <remarks>
            This function only returns the UDIDs of USBMUX devices. To also include
            network devices in the list, use idevice_get_device_list_extended().
            </remarks>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceNativeMethods.idevice_device_list_free(System.IntPtr)">
            <summary>
            Free a list of device UDIDs.
            </summary>
            <param name="devices">
            List of UDIDs to free.
            </param>
            <returns>
            Always returnes IDEVICE_E_SUCCESS.
            </returns>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceNativeMethods.idevice_get_device_list_extended(System.IntPtr@,System.Int32@)">
            <summary>
            Get a list of currently available devices
            </summary>
            <param name="devices">
            List of idevice_info_t records with device information.
            This list is terminated by a NULL pointer.
            </param>
            <param name="count">
            Number of devices included in the list.
            </param>
            <returns>
            IDEVICE_E_SUCCESS on success or an error value when an error occurred.
            </returns>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceNativeMethods.idevice_device_list_extended_free(System.IntPtr)">
            <summary>
            Free an extended device list retrieved through idevice_get_device_list_extended().
            </summary>
            <param name="devices">
            Device list to free.
            </param>
            <returns>
            IDEVICE_E_SUCCESS on success or an error value when an error occurred.
            </returns>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceNativeMethods.idevice_new(iMobileDevice.iDevice.iDeviceHandle@,System.String)">
            <summary>
            Creates an idevice_t structure for the device specified by UDID,
            if the device is available (USBMUX devices only).
            </summary>
            <param name="device">
            Upon calling this function, a pointer to a location of type
            idevice_t. On successful return, this location will be populated.
            </param>
            <param name="udid">
            The UDID to match.
            </param>
            <returns>
            IDEVICE_E_SUCCESS if ok, otherwise an error code.
            </returns>
            <remarks>
            The resulting idevice_t structure has to be freed with
            idevice_free() if it is no longer used.
            If you need to connect to a device available via network, use
            idevice_new_with_options() and include IDEVICE_LOOKUP_NETWORK in options.
            </remarks>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceNativeMethods.idevice_new_with_options(iMobileDevice.iDevice.iDeviceHandle@,System.String,System.Int32)">
            <summary>
            Creates an idevice_t structure for the device specified by UDID,
            if the device is available, with the given lookup options.
            </summary>
            <param name="device">
            Upon calling this function, a pointer to a location of type
            idevice_t. On successful return, this location will be populated.
            </param>
            <param name="udid">
            The UDID to match.
            </param>
            <param name="options">
            Specifies what connection types should be considered
            when looking up devices. Accepts bitwise or'ed values of idevice_options.
            If 0 (no option) is specified it will default to IDEVICE_LOOKUP_USBMUX.
            To lookup both USB and network-connected devices, pass
            IDEVICE_LOOKUP_USBMUX | IDEVICE_LOOKUP_NETWORK. If a device is available
            both via USBMUX *and* network, it will select the USB connection.
            This behavior can be changed by adding IDEVICE_LOOKUP_PREFER_NETWORK
            to the options in which case it will select the network connection.
            </param>
            <returns>
            IDEVICE_E_SUCCESS if ok, otherwise an error code.
            </returns>
            <remarks>
            The resulting idevice_t structure has to be freed with
            idevice_free() if it is no longer used.
            </remarks>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceNativeMethods.idevice_free(System.IntPtr)">
            <summary>
            Cleans up an idevice structure, then frees the structure itself.
            </summary>
            <param name="device">
            idevice_t to free.
            </param>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceNativeMethods.idevice_connect(iMobileDevice.iDevice.iDeviceHandle,System.UInt16,iMobileDevice.iDevice.iDeviceConnectionHandle@)">
            <summary>
            Set up a connection to the given device.
            </summary>
            <param name="device">
            The device to connect to.
            </param>
            <param name="port">
            The destination port to connect to.
            </param>
            <param name="connection">
            Pointer to an idevice_connection_t that will be filled
            with the necessary data of the connection.
            </param>
            <returns>
            IDEVICE_E_SUCCESS if ok, otherwise an error code.
            </returns>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceNativeMethods.idevice_disconnect(System.IntPtr)">
            <summary>
            Disconnect from the device and clean up the connection structure.
            </summary>
            <param name="connection">
            The connection to close.
            </param>
            <returns>
            IDEVICE_E_SUCCESS if ok, otherwise an error code.
            </returns>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceNativeMethods.idevice_connection_send(iMobileDevice.iDevice.iDeviceConnectionHandle,System.Byte[],System.UInt32,System.UInt32@)">
            <summary>
            Send data to a device via the given connection.
            </summary>
            <param name="connection">
            The connection to send data over.
            </param>
            <param name="data">
            Buffer with data to send.
            </param>
            <param name="len">
            Size of the buffer to send.
            </param>
            <param name="sent_bytes">
            Pointer to an uint32_t that will be filled
            with the number of bytes actually sent.
            </param>
            <returns>
            IDEVICE_E_SUCCESS if ok, otherwise an error code.
            </returns>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceNativeMethods.idevice_connection_receive_timeout(iMobileDevice.iDevice.iDeviceConnectionHandle,System.Byte[],System.UInt32,System.UInt32@,System.UInt32)">
            <summary>
            Receive data from a device via the given connection.
            This function will return after the given timeout even if no data has been
            received.
            </summary>
            <param name="connection">
            The connection to receive data from.
            </param>
            <param name="data">
            Buffer that will be filled with the received data.
            This buffer has to be large enough to hold len bytes.
            </param>
            <param name="len">
            Buffer size or number of bytes to receive.
            </param>
            <param name="recv_bytes">
            Number of bytes actually received.
            </param>
            <param name="timeout">
            Timeout in milliseconds after which this function should
            return even if no data has been received.
            </param>
            <returns>
            IDEVICE_E_SUCCESS if ok, otherwise an error code.
            </returns>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceNativeMethods.idevice_connection_receive(iMobileDevice.iDevice.iDeviceConnectionHandle,System.Byte[],System.UInt32,System.UInt32@)">
            <summary>
            Receive data from a device via the given connection.
            This function is like idevice_connection_receive_timeout, but with a
            predefined reasonable timeout.
            </summary>
            <param name="connection">
            The connection to receive data from.
            </param>
            <param name="data">
            Buffer that will be filled with the received data.
            This buffer has to be large enough to hold len bytes.
            </param>
            <param name="len">
            Buffer size or number of bytes to receive.
            </param>
            <param name="recv_bytes">
            Number of bytes actually received.
            </param>
            <returns>
            IDEVICE_E_SUCCESS if ok, otherwise an error code.
            </returns>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceNativeMethods.idevice_connection_enable_ssl(iMobileDevice.iDevice.iDeviceConnectionHandle)">
            <summary>
            Enables SSL for the given connection.
            </summary>
            <param name="connection">
            The connection to enable SSL for.
            </param>
            <returns>
            IDEVICE_E_SUCCESS on success, IDEVICE_E_INVALID_ARG when connection
            is NULL or connection->ssl_data is non-NULL, or IDEVICE_E_SSL_ERROR when
            SSL initialization, setup, or handshake fails.
            </returns>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceNativeMethods.idevice_connection_disable_ssl(iMobileDevice.iDevice.iDeviceConnectionHandle)">
            <summary>
            Disable SSL for the given connection.
            </summary>
            <param name="connection">
            The connection to disable SSL for.
            </param>
            <returns>
            IDEVICE_E_SUCCESS on success, IDEVICE_E_INVALID_ARG when connection
            is NULL. This function also returns IDEVICE_E_SUCCESS when SSL is not
            enabled and does no further error checking on cleanup.
            </returns>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceNativeMethods.idevice_connection_disable_bypass_ssl(iMobileDevice.iDevice.iDeviceConnectionHandle,System.Char)">
            <summary>
            Disable bypass SSL for the given connection without sending out terminate messages.
            </summary>
            <param name="connection">
            The connection to disable SSL for.
            </param>
            <param name="sslBypass">
            if true ssl connection will not be terminated but just cleaned up, allowing
            plain text data going on underlying connection
            </param>
            <returns>
            IDEVICE_E_SUCCESS on success, IDEVICE_E_INVALID_ARG when connection
            is NULL. This function also returns IDEVICE_E_SUCCESS when SSL is not
            enabled and does no further error checking on cleanup.
            </returns>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceNativeMethods.idevice_connection_get_fd(iMobileDevice.iDevice.iDeviceConnectionHandle,System.Int32@)">
            <summary>
            Get the underlying file descriptor for a connection
            </summary>
            <param name="connection">
            The connection to get fd of
            </param>
            <param name="fd">
            Pointer to an int where the fd is stored
            </param>
            <returns>
            IDEVICE_E_SUCCESS if ok, otherwise an error code.
            </returns>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceNativeMethods.idevice_get_handle(iMobileDevice.iDevice.iDeviceHandle,System.UInt32@)">
            <summary>
            Gets the handle or (usbmux device id) of the device.
            </summary>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceNativeMethods.idevice_get_udid(iMobileDevice.iDevice.iDeviceHandle,System.IntPtr@)">
            <summary>
            Gets the unique id for the device.
            </summary>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceNativeMethods.idevice_set_socket_type(System.Int32)">
            <summary>
            Sets the socket type (Unix socket or TCP socket) libimobiledevice should use when connecting
            to usbmuxd.
            </summary>
            <param name="value">
            IDEVICE_SOCKET_TYPE_UNIX or IDEVICE_SOCKET_TYPE_TCP
            </param>
            <returns>
            0 on success or negative on error
            </returns>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceNativeMethods.idevice_get_socket_type(System.Int32@)">
            <summary>
            Gets the socket type (Unix socket or TCP socket) libimobiledevice should use when connecting
            to usbmuxd.
            </summary>
            <param name="value">
            A pointer to an integer which will reveive the current socket type
            </param>
            <returns>
            0 on success or negative on error
            </returns>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceNativeMethods.idevice_set_tcp_endpoint(System.String,System.UInt16)">
            <summary>
            Sets the TCP endpoint to which libimobiledevice will connect if the socket type is set to
            SOCKET_TYPE_TCP
            </summary>
            <param name="host">
            The hostname or IP address to which to connect
            </param>
            <param name="port">
            The port to which to connect.
            </param>
            <returns>
            0 on success or negative on error
            </returns>
        </member>
        <member name="M:iMobileDevice.iDevice.iDeviceNativeMethods.idevice_get_tcp_endpoint(System.IntPtr@,System.UInt16@)">
            <summary>
            Gets the TCP endpoint to which libimobiledevice will connect if the socket type is set to
            SOCKET_TYPE_TCP
            </summary>
            <param name="host">
            A pointer which will be set to the hostname or IP address to which to connect.
            The caller must free this string.
            </param>
            <param name="port">
            The port to which to connect
            </param>
            <returns>
            0 on success or negative on error
            </returns>
        </member>
        <member name="T:iMobileDevice.iDevice.iDeviceOptions">
            <summary>
            Options for idevice_new_with_options() 
            </summary>
        </member>
        <member name="F:iMobileDevice.iDevice.iDeviceOptions.LookupPreferNetwork">
            <summary>
            prefer network connection if device is available via USBMUX *and* network 
            </summary>
        </member>
        <member name="T:iMobileDevice.iDevice.iDeviceSocketType">
            <summary>
            specifies how libusbmuxd should connect to usbmuxd
            </summary>
        </member>
        <member name="P:iMobileDevice.iDevice.IiDeviceApi.Parent">
            <summary>
            Gets or sets the <see cref="!:ILibiMobileDeviceApi"/> which owns this <see cref="N:iMobileDevice.iDevice"/>.
            </summary>
        </member>
        <member name="M:iMobileDevice.iDevice.IiDeviceApi.idevice_set_debug_callback(iMobileDevice.iDevice.iDeviceDebugCallBack)">
            <summary>
            Sets the callback to invoke when writing out debug messages. If this callback is set, messages
            will be written to this callback instead of the standard output.
            </summary>
            <param name="callback">
            The callback which will receive the debug messages. Set to NULL to redirect to stdout.
            </param>
        </member>
        <member name="M:iMobileDevice.iDevice.IiDeviceApi.idevice_set_debug_level(System.Int32)">
            <summary>
            Set the level of debugging.
            </summary>
            <param name="level">
            Set to 0 for no debug output, 1 to enable basic debug output and 2 to enable full debug output.
            When set to 2, the values of buffers being sent across the wire are printed out as well, this results in very
            verbose output.
            </param>
        </member>
        <member name="M:iMobileDevice.iDevice.IiDeviceApi.idevice_event_subscribe(iMobileDevice.iDevice.iDeviceEventCallBack,System.IntPtr)">
            <summary>
            Register a callback function that will be called when device add/remove
            events occur.
            </summary>
            <param name="callback">
            Callback function to call.
            </param>
            <param name="user_data">
            Application-specific data passed as parameter
            to the registered callback function.
            </param>
            <returns>
            IDEVICE_E_SUCCESS on success or an error value when an error occurred.
            </returns>
        </member>
        <member name="M:iMobileDevice.iDevice.IiDeviceApi.idevice_event_unsubscribe">
            <summary>
            Release the event callback function that has been registered with
            idevice_event_subscribe().
            </summary>
            <returns>
            IDEVICE_E_SUCCESS on success or an error value when an error occurred.
            </returns>
        </member>
        <member name="M:iMobileDevice.iDevice.IiDeviceApi.idevice_get_device_list(System.Collections.ObjectModel.ReadOnlyCollection{System.String}@,System.Int32@)">
            <summary>
            Get a list of UDIDs of currently available devices (USBMUX devices only).
            </summary>
            <param name="devices">
            List of UDIDs of devices that are currently available.
            This list is terminated by a NULL pointer.
            </param>
            <param name="count">
            Number of devices found.
            </param>
            <returns>
            IDEVICE_E_SUCCESS on success or an error value when an error occurred.
            </returns>
            <remarks>
            This function only returns the UDIDs of USBMUX devices. To also include
            network devices in the list, use idevice_get_device_list_extended().
            </remarks>
        </member>
        <member name="M:iMobileDevice.iDevice.IiDeviceApi.idevice_device_list_free(System.IntPtr)">
            <summary>
            Free a list of device UDIDs.
            </summary>
            <param name="devices">
            List of UDIDs to free.
            </param>
            <returns>
            Always returnes IDEVICE_E_SUCCESS.
            </returns>
        </member>
        <member name="M:iMobileDevice.iDevice.IiDeviceApi.idevice_get_device_list_extended(System.IntPtr@,System.Int32@)">
            <summary>
            Get a list of currently available devices
            </summary>
            <param name="devices">
            List of idevice_info_t records with device information.
            This list is terminated by a NULL pointer.
            </param>
            <param name="count">
            Number of devices included in the list.
            </param>
            <returns>
            IDEVICE_E_SUCCESS on success or an error value when an error occurred.
            </returns>
        </member>
        <member name="M:iMobileDevice.iDevice.IiDeviceApi.idevice_device_list_extended_free(System.IntPtr)">
            <summary>
            Free an extended device list retrieved through idevice_get_device_list_extended().
            </summary>
            <param name="devices">
            Device list to free.
            </param>
            <returns>
            IDEVICE_E_SUCCESS on success or an error value when an error occurred.
            </returns>
        </member>
        <member name="M:iMobileDevice.iDevice.IiDeviceApi.idevice_new(iMobileDevice.iDevice.iDeviceHandle@,System.String)">
            <summary>
            Creates an idevice_t structure for the device specified by UDID,
            if the device is available (USBMUX devices only).
            </summary>
            <param name="device">
            Upon calling this function, a pointer to a location of type
            idevice_t. On successful return, this location will be populated.
            </param>
            <param name="udid">
            The UDID to match.
            </param>
            <returns>
            IDEVICE_E_SUCCESS if ok, otherwise an error code.
            </returns>
            <remarks>
            The resulting idevice_t structure has to be freed with
            idevice_free() if it is no longer used.
            If you need to connect to a device available via network, use
            idevice_new_with_options() and include IDEVICE_LOOKUP_NETWORK in options.
            </remarks>
        </member>
        <member name="M:iMobileDevice.iDevice.IiDeviceApi.idevice_new_with_options(iMobileDevice.iDevice.iDeviceHandle@,System.String,System.Int32)">
            <summary>
            Creates an idevice_t structure for the device specified by UDID,
            if the device is available, with the given lookup options.
            </summary>
            <param name="device">
            Upon calling this function, a pointer to a location of type
            idevice_t. On successful return, this location will be populated.
            </param>
            <param name="udid">
            The UDID to match.
            </param>
            <param name="options">
            Specifies what connection types should be considered
            when looking up devices. Accepts bitwise or'ed values of idevice_options.
            If 0 (no option) is specified it will default to IDEVICE_LOOKUP_USBMUX.
            To lookup both USB and network-connected devices, pass
            IDEVICE_LOOKUP_USBMUX | IDEVICE_LOOKUP_NETWORK. If a device is available
            both via USBMUX *and* network, it will select the USB connection.
            This behavior can be changed by adding IDEVICE_LOOKUP_PREFER_NETWORK
            to the options in which case it will select the network connection.
            </param>
            <returns>
            IDEVICE_E_SUCCESS if ok, otherwise an error code.
            </returns>
            <remarks>
            The resulting idevice_t structure has to be freed with
            idevice_free() if it is no longer used.
            </remarks>
        </member>
        <member name="M:iMobileDevice.iDevice.IiDeviceApi.idevice_free(System.IntPtr)">
            <summary>
            Cleans up an idevice structure, then frees the structure itself.
            </summary>
            <param name="device">
            idevice_t to free.
            </param>
        </member>
        <member name="M:iMobileDevice.iDevice.IiDeviceApi.idevice_connect(iMobileDevice.iDevice.iDeviceHandle,System.UInt16,iMobileDevice.iDevice.iDeviceConnectionHandle@)">
            <summary>
            Set up a connection to the given device.
            </summary>
            <param name="device">
            The device to connect to.
            </param>
            <param name="port">
            The destination port to connect to.
            </param>
            <param name="connection">
            Pointer to an idevice_connection_t that will be filled
            with the necessary data of the connection.
            </param>
            <returns>
            IDEVICE_E_SUCCESS if ok, otherwise an error code.
            </returns>
        </member>
        <member name="M:iMobileDevice.iDevice.IiDeviceApi.idevice_disconnect(System.IntPtr)">
            <summary>
            Disconnect from the device and clean up the connection structure.
            </summary>
            <param name="connection">
            The connection to close.
            </param>
            <returns>
            IDEVICE_E_SUCCESS if ok, otherwise an error code.
            </returns>
        </member>
        <member name="M:iMobileDevice.iDevice.IiDeviceApi.idevice_connection_send(iMobileDevice.iDevice.iDeviceConnectionHandle,System.Byte[],System.UInt32,System.UInt32@)">
            <summary>
            Send data to a device via the given connection.
            </summary>
            <param name="connection">
            The connection to send data over.
            </param>
            <param name="data">
            Buffer with data to send.
            </param>
            <param name="len">
            Size of the buffer to send.
            </param>
            <param name="sent_bytes">
            Pointer to an uint32_t that will be filled
            with the number of bytes actually sent.
            </param>
            <returns>
            IDEVICE_E_SUCCESS if ok, otherwise an error code.
            </returns>
        </member>
        <member name="M:iMobileDevice.iDevice.IiDeviceApi.idevice_connection_receive_timeout(iMobileDevice.iDevice.iDeviceConnectionHandle,System.Byte[],System.UInt32,System.UInt32@,System.UInt32)">
            <summary>
            Receive data from a device via the given connection.
            This function will return after the given timeout even if no data has been
            received.
            </summary>
            <param name="connection">
            The connection to receive data from.
            </param>
            <param name="data">
            Buffer that will be filled with the received data.
            This buffer has to be large enough to hold len bytes.
            </param>
            <param name="len">
            Buffer size or number of bytes to receive.
            </param>
            <param name="recv_bytes">
            Number of bytes actually received.
            </param>
            <param name="timeout">
            Timeout in milliseconds after which this function should
            return even if no data has been received.
            </param>
            <returns>
            IDEVICE_E_SUCCESS if ok, otherwise an error code.
            </returns>
        </member>
        <member name="M:iMobileDevice.iDevice.IiDeviceApi.idevice_connection_receive(iMobileDevice.iDevice.iDeviceConnectionHandle,System.Byte[],System.UInt32,System.UInt32@)">
            <summary>
            Receive data from a device via the given connection.
            This function is like idevice_connection_receive_timeout, but with a
            predefined reasonable timeout.
            </summary>
            <param name="connection">
            The connection to receive data from.
            </param>
            <param name="data">
            Buffer that will be filled with the received data.
            This buffer has to be large enough to hold len bytes.
            </param>
            <param name="len">
            Buffer size or number of bytes to receive.
            </param>
            <param name="recv_bytes">
            Number of bytes actually received.
            </param>
            <returns>
            IDEVICE_E_SUCCESS if ok, otherwise an error code.
            </returns>
        </member>
        <member name="M:iMobileDevice.iDevice.IiDeviceApi.idevice_connection_enable_ssl(iMobileDevice.iDevice.iDeviceConnectionHandle)">
            <summary>
            Enables SSL for the given connection.
            </summary>
            <param name="connection">
            The connection to enable SSL for.
            </param>
            <returns>
            IDEVICE_E_SUCCESS on success, IDEVICE_E_INVALID_ARG when connection
            is NULL or connection->ssl_data is non-NULL, or IDEVICE_E_SSL_ERROR when
            SSL initialization, setup, or handshake fails.
            </returns>
        </member>
        <member name="M:iMobileDevice.iDevice.IiDeviceApi.idevice_connection_disable_ssl(iMobileDevice.iDevice.iDeviceConnectionHandle)">
            <summary>
            Disable SSL for the given connection.
            </summary>
            <param name="connection">
            The connection to disable SSL for.
            </param>
            <returns>
            IDEVICE_E_SUCCESS on success, IDEVICE_E_INVALID_ARG when connection
            is NULL. This function also returns IDEVICE_E_SUCCESS when SSL is not
            enabled and does no further error checking on cleanup.
            </returns>
        </member>
        <member name="M:iMobileDevice.iDevice.IiDeviceApi.idevice_connection_disable_bypass_ssl(iMobileDevice.iDevice.iDeviceConnectionHandle,System.Char)">
            <summary>
            Disable bypass SSL for the given connection without sending out terminate messages.
            </summary>
            <param name="connection">
            The connection to disable SSL for.
            </param>
            <param name="sslBypass">
            if true ssl connection will not be terminated but just cleaned up, allowing
            plain text data going on underlying connection
            </param>
            <returns>
            IDEVICE_E_SUCCESS on success, IDEVICE_E_INVALID_ARG when connection
            is NULL. This function also returns IDEVICE_E_SUCCESS when SSL is not
            enabled and does no further error checking on cleanup.
            </returns>
        </member>
        <member name="M:iMobileDevice.iDevice.IiDeviceApi.idevice_connection_get_fd(iMobileDevice.iDevice.iDeviceConnectionHandle,System.Int32@)">
            <summary>
            Get the underlying file descriptor for a connection
            </summary>
            <param name="connection">
            The connection to get fd of
            </param>
            <param name="fd">
            Pointer to an int where the fd is stored
            </param>
            <returns>
            IDEVICE_E_SUCCESS if ok, otherwise an error code.
            </returns>
        </member>
        <member name="M:iMobileDevice.iDevice.IiDeviceApi.idevice_get_handle(iMobileDevice.iDevice.iDeviceHandle,System.UInt32@)">
            <summary>
            Gets the handle or (usbmux device id) of the device.
            </summary>
        </member>
        <member name="M:iMobileDevice.iDevice.IiDeviceApi.idevice_get_udid(iMobileDevice.iDevice.iDeviceHandle,System.String@)">
            <summary>
            Gets the unique id for the device.
            </summary>
        </member>
        <member name="M:iMobileDevice.iDevice.IiDeviceApi.idevice_set_socket_type(System.Int32)">
            <summary>
            Sets the socket type (Unix socket or TCP socket) libimobiledevice should use when connecting
            to usbmuxd.
            </summary>
            <param name="value">
            IDEVICE_SOCKET_TYPE_UNIX or IDEVICE_SOCKET_TYPE_TCP
            </param>
            <returns>
            0 on success or negative on error
            </returns>
        </member>
        <member name="M:iMobileDevice.iDevice.IiDeviceApi.idevice_get_socket_type(System.Int32@)">
            <summary>
            Gets the socket type (Unix socket or TCP socket) libimobiledevice should use when connecting
            to usbmuxd.
            </summary>
            <param name="value">
            A pointer to an integer which will reveive the current socket type
            </param>
            <returns>
            0 on success or negative on error
            </returns>
        </member>
        <member name="M:iMobileDevice.iDevice.IiDeviceApi.idevice_set_tcp_endpoint(System.String,System.UInt16)">
            <summary>
            Sets the TCP endpoint to which libimobiledevice will connect if the socket type is set to
            SOCKET_TYPE_TCP
            </summary>
            <param name="host">
            The hostname or IP address to which to connect
            </param>
            <param name="port">
            The port to which to connect.
            </param>
            <returns>
            0 on success or negative on error
            </returns>
        </member>
        <member name="M:iMobileDevice.iDevice.IiDeviceApi.idevice_get_tcp_endpoint(System.String@,System.UInt16@)">
            <summary>
            Gets the TCP endpoint to which libimobiledevice will connect if the socket type is set to
            SOCKET_TYPE_TCP
            </summary>
            <param name="host">
            A pointer which will be set to the hostname or IP address to which to connect.
            The caller must free this string.
            </param>
            <param name="port">
            The port to which to connect
            </param>
            <returns>
            0 on success or negative on error
            </returns>
        </member>
        <member name="P:iMobileDevice.InstallationProxy.IInstallationProxyApi.Parent">
            <summary>
            Gets or sets the <see cref="!:ILibiMobileDeviceApi"/> which owns this <see cref="N:iMobileDevice.InstallationProxy"/>.
            </summary>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.IInstallationProxyApi.instproxy_client_new(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Lockdown.LockdownServiceDescriptorHandle,iMobileDevice.InstallationProxy.InstallationProxyClientHandle@)">
            <summary>
            Connects to the installation_proxy 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">
            Pointer that will be set to a newly allocated
            instproxy_client_t upon successful return.
            </param>
            <returns>
            INSTPROXY_E_SUCCESS on success, or an INSTPROXY_E_* error value
            when an error occurred.
            </returns>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.IInstallationProxyApi.instproxy_client_start_service(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.InstallationProxy.InstallationProxyClientHandle@,System.String)">
            <summary>
            Starts a new installation_proxy 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
            instproxy_client_t upon successful return. Must be freed using
            instproxy_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>
            INSTPROXY_E_SUCCESS on success, or an INSTPROXY_E_* error
            code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.IInstallationProxyApi.instproxy_client_free(System.IntPtr)">
            <summary>
            Disconnects an installation_proxy client from the device and frees up the
            installation_proxy client data.
            </summary>
            <param name="client">
            The installation_proxy client to disconnect and free.
            </param>
            <returns>
            INSTPROXY_E_SUCCESS on success
            or INSTPROXY_E_INVALID_ARG if client is NULL.
            </returns>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.IInstallationProxyApi.instproxy_browse(iMobileDevice.InstallationProxy.InstallationProxyClientHandle,iMobileDevice.Plist.PlistHandle,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            List installed applications. This function runs synchronously.
            </summary>
            <param name="client">
            The connected installation_proxy client
            </param>
            <param name="client_options">
            The client options to use, as PLIST_DICT, or NULL.
            Valid client options include:
            "ApplicationType" -> "System"
            "ApplicationType" -> "User"
            "ApplicationType" -> "Internal"
            "ApplicationType" -> "Any"
            </param>
            <param name="result">
            Pointer that will be set to a plist that will hold an array
            of PLIST_DICT holding information about the applications found.
            </param>
            <returns>
            INSTPROXY_E_SUCCESS on success or an INSTPROXY_E_* error value if
            an error occurred.
            </returns>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.IInstallationProxyApi.instproxy_browse_with_callback(iMobileDevice.InstallationProxy.InstallationProxyClientHandle,iMobileDevice.Plist.PlistHandle,iMobileDevice.InstallationProxy.InstallationProxyStatusCallBack,System.IntPtr)">
            <summary>
            List pages of installed applications in a callback.
            </summary>
            <param name="client">
            The connected installation_proxy client
            </param>
            <param name="client_options">
            The client options to use, as PLIST_DICT, or NULL.
            Valid client options include:
            "ApplicationType" -> "System"
            "ApplicationType" -> "User"
            "ApplicationType" -> "Internal"
            "ApplicationType" -> "Any"
            </param>
            <param name="status_cb">
            Callback function to process each page of application
            information. Passing a callback is required.
            </param>
            <param name="user_data">
            Callback data passed to status_cb.
            </param>
            <returns>
            INSTPROXY_E_SUCCESS on success or an INSTPROXY_E_* error value if
            an error occurred.
            </returns>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.IInstallationProxyApi.instproxy_lookup(iMobileDevice.InstallationProxy.InstallationProxyClientHandle,System.Collections.ObjectModel.ReadOnlyCollection{System.String},iMobileDevice.Plist.PlistHandle,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Lookup information about specific applications from the device.
            </summary>
            <param name="client">
            The connected installation_proxy client
            </param>
            <param name="appids">
            An array of bundle identifiers that MUST have a terminating
            NULL entry or NULL to lookup all.
            </param>
            <param name="client_options">
            The client options to use, as PLIST_DICT, or NULL.
            Currently there are no known client options, so pass NULL here.
            </param>
            <param name="result">
            Pointer that will be set to a plist containing a PLIST_DICT
            holding requested information about the application or NULL on errors.
            </param>
            <returns>
            INSTPROXY_E_SUCCESS on success or an INSTPROXY_E_* error value if
            an error occurred.
            </returns>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.IInstallationProxyApi.instproxy_install(iMobileDevice.InstallationProxy.InstallationProxyClientHandle,System.String,iMobileDevice.Plist.PlistHandle,iMobileDevice.InstallationProxy.InstallationProxyStatusCallBack,System.IntPtr)">
            <summary>
            Install an application on the device.
            </summary>
            <param name="client">
            The connected installation_proxy client
            </param>
            <param name="pkg_path">
            Path of the installation package (inside the AFC jail)
            </param>
            <param name="client_options">
            The client options to use, as PLIST_DICT, or NULL.
            Valid options include:
            "iTunesMetadata" -> PLIST_DATA
            "ApplicationSINF" -> PLIST_DATA
            "PackageType" -> "Developer"
            If PackageType -> Developer is specified, then pkg_path points to
            an .app directory instead of an install package.
            </param>
            <param name="status_cb">
            Callback function for progress and status information. If
            NULL is passed, this function will run synchronously.
            </param>
            <param name="user_data">
            Callback data passed to status_cb.
            </param>
            <returns>
            INSTPROXY_E_SUCCESS on success or an INSTPROXY_E_* error value if
            an error occurred.
            </returns>
            <remarks>
            If a callback function is given (async mode), this function returns
            INSTPROXY_E_SUCCESS immediately if the status updater thread has been
            created successfully; any error occuring during the command has to be
            handled inside the specified callback function.
            </remarks>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.IInstallationProxyApi.instproxy_upgrade(iMobileDevice.InstallationProxy.InstallationProxyClientHandle,System.String,iMobileDevice.Plist.PlistHandle,iMobileDevice.InstallationProxy.InstallationProxyStatusCallBack,System.IntPtr)">
            <summary>
            Upgrade an application on the device. This function is nearly the same as
            instproxy_install; the difference is that the installation progress on the
            device is faster if the application is already installed.
            </summary>
            <param name="client">
            The connected installation_proxy client
            </param>
            <param name="pkg_path">
            Path of the installation package (inside the AFC jail)
            </param>
            <param name="client_options">
            The client options to use, as PLIST_DICT, or NULL.
            Valid options include:
            "iTunesMetadata" -> PLIST_DATA
            "ApplicationSINF" -> PLIST_DATA
            "PackageType" -> "Developer"
            If PackageType -> Developer is specified, then pkg_path points to
            an .app directory instead of an install package.
            </param>
            <param name="status_cb">
            Callback function for progress and status information. If
            NULL is passed, this function will run synchronously.
            </param>
            <param name="user_data">
            Callback data passed to status_cb.
            </param>
            <returns>
            INSTPROXY_E_SUCCESS on success or an INSTPROXY_E_* error value if
            an error occurred.
            </returns>
            <remarks>
            If a callback function is given (async mode), this function returns
            INSTPROXY_E_SUCCESS immediately if the status updater thread has been
            created successfully; any error occuring during the command has to be
            handled inside the specified callback function.
            </remarks>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.IInstallationProxyApi.instproxy_uninstall(iMobileDevice.InstallationProxy.InstallationProxyClientHandle,System.String,iMobileDevice.Plist.PlistHandle,iMobileDevice.InstallationProxy.InstallationProxyStatusCallBack,System.IntPtr)">
            <summary>
            Uninstall an application from the device.
            </summary>
            <param name="client">
            The connected installation proxy client
            </param>
            <param name="appid">
            ApplicationIdentifier of the app to uninstall
            </param>
            <param name="client_options">
            The client options to use, as PLIST_DICT, or NULL.
            Currently there are no known client options, so pass NULL here.
            </param>
            <param name="status_cb">
            Callback function for progress and status information. If
            NULL is passed, this function will run synchronously.
            </param>
            <param name="user_data">
            Callback data passed to status_cb.
            </param>
            <returns>
            INSTPROXY_E_SUCCESS on success or an INSTPROXY_E_* error value if
            an error occurred.
            </returns>
            <remarks>
            If a callback function is given (async mode), this function returns
            INSTPROXY_E_SUCCESS immediately if the status updater thread has been
            created successfully; any error occuring during the command has to be
            handled inside the specified callback function.
            </remarks>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.IInstallationProxyApi.instproxy_lookup_archives(iMobileDevice.InstallationProxy.InstallationProxyClientHandle,iMobileDevice.Plist.PlistHandle,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            List archived applications. This function runs synchronously.
            </summary>
            <param name="client">
            The connected installation_proxy client
            </param>
            <param name="client_options">
            The client options to use, as PLIST_DICT, or NULL.
            Currently there are no known client options, so pass NULL here.
            </param>
            <param name="result">
            Pointer that will be set to a plist containing a PLIST_DICT
            holding information about the archived applications found.
            </param>
            <returns>
            INSTPROXY_E_SUCCESS on success or an INSTPROXY_E_* error value if
            an error occurred.
            </returns>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.IInstallationProxyApi.instproxy_archive(iMobileDevice.InstallationProxy.InstallationProxyClientHandle,System.String,iMobileDevice.Plist.PlistHandle,iMobileDevice.InstallationProxy.InstallationProxyStatusCallBack,System.IntPtr)">
            <summary>
            Archive an application on the device.
            This function tells the device to make an archive of the specified
            application. This results in the device creating a ZIP archive in the
            'ApplicationArchives' directory and uninstalling the application.
            </summary>
            <param name="client">
            The connected installation proxy client
            </param>
            <param name="appid">
            ApplicationIdentifier of the app to archive.
            </param>
            <param name="client_options">
            The client options to use, as PLIST_DICT, or NULL.
            Valid options include:
            "SkipUninstall" -> Boolean
            "ArchiveType" -> "ApplicationOnly"
            </param>
            <param name="status_cb">
            Callback function for progress and status information. If
            NULL is passed, this function will run synchronously.
            </param>
            <param name="user_data">
            Callback data passed to status_cb.
            </param>
            <returns>
            INSTPROXY_E_SUCCESS on success or an INSTPROXY_E_* error value if
            an error occurred.
            </returns>
            <remarks>
            If a callback function is given (async mode), this function returns
            INSTPROXY_E_SUCCESS immediately if the status updater thread has been
            created successfully; any error occuring during the command has to be
            handled inside the specified callback function.
            </remarks>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.IInstallationProxyApi.instproxy_restore(iMobileDevice.InstallationProxy.InstallationProxyClientHandle,System.String,iMobileDevice.Plist.PlistHandle,iMobileDevice.InstallationProxy.InstallationProxyStatusCallBack,System.IntPtr)">
            <summary>
            Restore a previously archived application on the device.
            This function is the counterpart to instproxy_archive.
            </summary>
            <param name="client">
            The connected installation proxy client
            </param>
            <param name="appid">
            ApplicationIdentifier of the app to restore.
            </param>
            <param name="client_options">
            The client options to use, as PLIST_DICT, or NULL.
            Valid options include:
            "ArchiveType" -> "DocumentsOnly"
            </param>
            <param name="status_cb">
            Callback function for progress and status information. If
            NULL is passed, this function will run synchronously.
            </param>
            <param name="user_data">
            Callback data passed to status_cb.
            </param>
            <returns>
            INSTPROXY_E_SUCCESS on success or an INSTPROXY_E_* error value if
            an error occurred.
            </returns>
            <remarks>
            If a callback function is given (async mode), this function returns
            INSTPROXY_E_SUCCESS immediately if the status updater thread has been
            created successfully; any error occuring during the command has to be
            handled inside the specified callback function.
            </remarks>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.IInstallationProxyApi.instproxy_remove_archive(iMobileDevice.InstallationProxy.InstallationProxyClientHandle,System.String,iMobileDevice.Plist.PlistHandle,iMobileDevice.InstallationProxy.InstallationProxyStatusCallBack,System.IntPtr)">
            <summary>
            Removes a previously archived application from the device.
            This function removes the ZIP archive from the 'ApplicationArchives'
            directory.
            </summary>
            <param name="client">
            The connected installation proxy client
            </param>
            <param name="appid">
            ApplicationIdentifier of the archived app to remove.
            </param>
            <param name="client_options">
            The client options to use, as PLIST_DICT, or NULL.
            Currently there are no known client options, so passing NULL is fine.
            </param>
            <param name="status_cb">
            Callback function for progress and status information. If
            NULL is passed, this function will run synchronously.
            </param>
            <param name="user_data">
            Callback data passed to status_cb.
            </param>
            <returns>
            INSTPROXY_E_SUCCESS on success or an INSTPROXY_E_* error value if
            an error occurred.
            </returns>
            <remarks>
            If a callback function is given (async mode), this function returns
            INSTPROXY_E_SUCCESS immediately if the status updater thread has been
            created successfully; any error occuring during the command has to be
            handled inside the specified callback function.
            </remarks>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.IInstallationProxyApi.instproxy_check_capabilities_match(iMobileDevice.InstallationProxy.InstallationProxyClientHandle,System.String@,iMobileDevice.Plist.PlistHandle,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Checks a device for certain capabilities.
            </summary>
            <param name="client">
            The connected installation_proxy client
            </param>
            <param name="capabilities">
            An array of char* with capability names that MUST have a
            terminating NULL entry.
            </param>
            <param name="client_options">
            The client options to use, as PLIST_DICT, or NULL.
            Currently there are no known client options, so pass NULL here.
            </param>
            <param name="result">
            Pointer that will be set to a plist containing a PLIST_DICT
            holding information if the capabilities matched or NULL on errors.
            </param>
            <returns>
            INSTPROXY_E_SUCCESS on success or an INSTPROXY_E_* error value if
            an error occurred.
            </returns>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.IInstallationProxyApi.instproxy_command_get_name(iMobileDevice.Plist.PlistHandle,System.String@)">
            <summary>
            Gets the name from a command dictionary.
            </summary>
            <param name="command">
            The dictionary describing the command.
            </param>
            <param name="name">
            Pointer to store the name of the command.
            </param>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.IInstallationProxyApi.instproxy_status_get_name(iMobileDevice.Plist.PlistHandle,System.String@)">
            <summary>
            Gets the name of a status.
            </summary>
            <param name="status">
            The dictionary status response to use.
            </param>
            <param name="name">
            Pointer to store the name of the status.
            </param>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.IInstallationProxyApi.instproxy_status_get_error(iMobileDevice.Plist.PlistHandle,System.String@,System.String@,System.UInt64@)">
            <summary>
            Gets error name, code and description from a response if available.
            </summary>
            <param name="status">
            The dictionary status response to use.
            </param>
            <param name="name">
            Pointer to store the name of an error.
            </param>
            <param name="description">
            Pointer to store error description text if available.
            The caller is reponsible for freeing the allocated buffer after use.
            If NULL is passed no description will be returned.
            </param>
            <param name="code">
            Pointer to store the returned error code if available.
            If NULL is passed no error code will be returned.
            </param>
            <returns>
            INSTPROXY_E_SUCCESS if no error is found or an INSTPROXY_E_* error
            value matching the error that ẃas found in the status.
            </returns>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.IInstallationProxyApi.instproxy_status_get_current_list(iMobileDevice.Plist.PlistHandle,System.UInt64@,System.UInt64@,System.UInt64@,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Gets total and current item information from a browse response if available.
            </summary>
            <param name="status">
            The dictionary status response to use.
            </param>
            <param name="total">
            Pointer to store the total number of items.
            </param>
            <param name="current_index">
            Pointer to store the current index of all browsed items.
            </param>
            <param name="current_amount">
            Pointer to store the amount of items in the
            current list.
            </param>
            <param name="list">
            Pointer to store a newly allocated plist with items.
            The caller is reponsible for freeing the list after use.
            If NULL is passed no list will be returned. If NULL is returned no
            list was found in the status.
            </param>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.IInstallationProxyApi.instproxy_status_get_percent_complete(iMobileDevice.Plist.PlistHandle,System.Int32@)">
            <summary>
            Gets progress in percentage from a status if available.
            </summary>
            <param name="status">
            The dictionary status response to use.
            </param>
            <param name="name">
            Pointer to store the progress in percent (0-100) or -1 if not
            progress was found in the status.
            </param>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.IInstallationProxyApi.instproxy_client_options_new">
            <summary>
            Creates a new client_options plist.
            </summary>
            <returns>
            A new plist_t of type PLIST_DICT.
            </returns>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.IInstallationProxyApi.instproxy_client_options_add(iMobileDevice.Plist.PlistHandle)">
            <summary>
            Adds one or more new key:value pairs to the given client_options.
            </summary>
            <param name="client_options">
            The client options to modify.
            </param>
            <param name="......">
            KEY, VALUE, [KEY, VALUE], NULL
            </param>
            <remarks>
            The keys and values passed are expected to be strings, except for the
            keys "ApplicationSINF", "iTunesMetadata", "ReturnAttributes" which are
            expecting a plist_t node as value and "SkipUninstall" expects int.
            </remarks>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.IInstallationProxyApi.instproxy_client_options_set_return_attributes(iMobileDevice.Plist.PlistHandle)">
            <summary>
            Adds attributes to the given client_options to filter browse results.
            </summary>
            <param name="client_options">
            The client options to modify.
            </param>
            <param name="......">
            VALUE, VALUE, [VALUE], NULL
            </param>
            <remarks>
            The values passed are expected to be strings.
            </remarks>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.IInstallationProxyApi.instproxy_client_options_free(iMobileDevice.Plist.PlistHandle)">
            <summary>
            Frees client_options plist.
            </summary>
            <param name="client_options">
            The client options plist to free. Does nothing if NULL
            is passed.
            </param>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.IInstallationProxyApi.instproxy_client_get_path_for_bundle_identifier(iMobileDevice.InstallationProxy.InstallationProxyClientHandle,System.String,System.String@)">
            <summary>
            Queries the device for the path of an application.
            </summary>
            <param name="client">
            The connected installation proxy client.
            </param>
            <param name="appid">
            ApplicationIdentifier of app to retrieve the path for.
            </param>
            <param name="path">
            Pointer to store the device path for the application
            which is set to NULL if it could not be determined.
            </param>
            <returns>
            INSTPROXY_E_SUCCESS on success, INSTPROXY_E_OP_FAILED if
            the path could not be determined or an INSTPROXY_E_* error
            value if an error occurred.
            </returns>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.IInstallationProxyApi.instproxy_client_options_add(iMobileDevice.Plist.PlistHandle,System.String,System.String,System.Byte)">
            <!-- Failed to insert some or all of included XML --><include file="IInstallationProxyApi.xml" path="/IInstallationProxyApi/instproxy_client_options_add/*" />
        </member>
        <member name="F:iMobileDevice.InstallationProxy.InstallationProxyApi.parent">
            <summary>
            Backing field for the <see cref="P:iMobileDevice.InstallationProxy.InstallationProxyApi.Parent"/> property
            </summary>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.InstallationProxyApi.#ctor(iMobileDevice.ILibiMobileDevice)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.InstallationProxy.InstallationProxyApi"/> class
            </summary>
            <param name="parent">
            The <see cref="!:ILibiMobileDeviceApi"/> which owns this <see cref="N:iMobileDevice.InstallationProxy"/>.
            </param>
        </member>
        <member name="P:iMobileDevice.InstallationProxy.InstallationProxyApi.Parent">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.InstallationProxyApi.instproxy_client_new(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Lockdown.LockdownServiceDescriptorHandle,iMobileDevice.InstallationProxy.InstallationProxyClientHandle@)">
            <summary>
            Connects to the installation_proxy 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">
            Pointer that will be set to a newly allocated
            instproxy_client_t upon successful return.
            </param>
            <returns>
            INSTPROXY_E_SUCCESS on success, or an INSTPROXY_E_* error value
            when an error occurred.
            </returns>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.InstallationProxyApi.instproxy_client_start_service(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.InstallationProxy.InstallationProxyClientHandle@,System.String)">
            <summary>
            Starts a new installation_proxy 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
            instproxy_client_t upon successful return. Must be freed using
            instproxy_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>
            INSTPROXY_E_SUCCESS on success, or an INSTPROXY_E_* error
            code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.InstallationProxyApi.instproxy_client_free(System.IntPtr)">
            <summary>
            Disconnects an installation_proxy client from the device and frees up the
            installation_proxy client data.
            </summary>
            <param name="client">
            The installation_proxy client to disconnect and free.
            </param>
            <returns>
            INSTPROXY_E_SUCCESS on success
            or INSTPROXY_E_INVALID_ARG if client is NULL.
            </returns>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.InstallationProxyApi.instproxy_browse(iMobileDevice.InstallationProxy.InstallationProxyClientHandle,iMobileDevice.Plist.PlistHandle,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            List installed applications. This function runs synchronously.
            </summary>
            <param name="client">
            The connected installation_proxy client
            </param>
            <param name="client_options">
            The client options to use, as PLIST_DICT, or NULL.
            Valid client options include:
            "ApplicationType" -> "System"
            "ApplicationType" -> "User"
            "ApplicationType" -> "Internal"
            "ApplicationType" -> "Any"
            </param>
            <param name="result">
            Pointer that will be set to a plist that will hold an array
            of PLIST_DICT holding information about the applications found.
            </param>
            <returns>
            INSTPROXY_E_SUCCESS on success or an INSTPROXY_E_* error value if
            an error occurred.
            </returns>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.InstallationProxyApi.instproxy_browse_with_callback(iMobileDevice.InstallationProxy.InstallationProxyClientHandle,iMobileDevice.Plist.PlistHandle,iMobileDevice.InstallationProxy.InstallationProxyStatusCallBack,System.IntPtr)">
            <summary>
            List pages of installed applications in a callback.
            </summary>
            <param name="client">
            The connected installation_proxy client
            </param>
            <param name="client_options">
            The client options to use, as PLIST_DICT, or NULL.
            Valid client options include:
            "ApplicationType" -> "System"
            "ApplicationType" -> "User"
            "ApplicationType" -> "Internal"
            "ApplicationType" -> "Any"
            </param>
            <param name="status_cb">
            Callback function to process each page of application
            information. Passing a callback is required.
            </param>
            <param name="user_data">
            Callback data passed to status_cb.
            </param>
            <returns>
            INSTPROXY_E_SUCCESS on success or an INSTPROXY_E_* error value if
            an error occurred.
            </returns>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.InstallationProxyApi.instproxy_lookup(iMobileDevice.InstallationProxy.InstallationProxyClientHandle,System.Collections.ObjectModel.ReadOnlyCollection{System.String},iMobileDevice.Plist.PlistHandle,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Lookup information about specific applications from the device.
            </summary>
            <param name="client">
            The connected installation_proxy client
            </param>
            <param name="appids">
            An array of bundle identifiers that MUST have a terminating
            NULL entry or NULL to lookup all.
            </param>
            <param name="client_options">
            The client options to use, as PLIST_DICT, or NULL.
            Currently there are no known client options, so pass NULL here.
            </param>
            <param name="result">
            Pointer that will be set to a plist containing a PLIST_DICT
            holding requested information about the application or NULL on errors.
            </param>
            <returns>
            INSTPROXY_E_SUCCESS on success or an INSTPROXY_E_* error value if
            an error occurred.
            </returns>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.InstallationProxyApi.instproxy_install(iMobileDevice.InstallationProxy.InstallationProxyClientHandle,System.String,iMobileDevice.Plist.PlistHandle,iMobileDevice.InstallationProxy.InstallationProxyStatusCallBack,System.IntPtr)">
            <summary>
            Install an application on the device.
            </summary>
            <param name="client">
            The connected installation_proxy client
            </param>
            <param name="pkg_path">
            Path of the installation package (inside the AFC jail)
            </param>
            <param name="client_options">
            The client options to use, as PLIST_DICT, or NULL.
            Valid options include:
            "iTunesMetadata" -> PLIST_DATA
            "ApplicationSINF" -> PLIST_DATA
            "PackageType" -> "Developer"
            If PackageType -> Developer is specified, then pkg_path points to
            an .app directory instead of an install package.
            </param>
            <param name="status_cb">
            Callback function for progress and status information. If
            NULL is passed, this function will run synchronously.
            </param>
            <param name="user_data">
            Callback data passed to status_cb.
            </param>
            <returns>
            INSTPROXY_E_SUCCESS on success or an INSTPROXY_E_* error value if
            an error occurred.
            </returns>
            <remarks>
            If a callback function is given (async mode), this function returns
            INSTPROXY_E_SUCCESS immediately if the status updater thread has been
            created successfully; any error occuring during the command has to be
            handled inside the specified callback function.
            </remarks>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.InstallationProxyApi.instproxy_upgrade(iMobileDevice.InstallationProxy.InstallationProxyClientHandle,System.String,iMobileDevice.Plist.PlistHandle,iMobileDevice.InstallationProxy.InstallationProxyStatusCallBack,System.IntPtr)">
            <summary>
            Upgrade an application on the device. This function is nearly the same as
            instproxy_install; the difference is that the installation progress on the
            device is faster if the application is already installed.
            </summary>
            <param name="client">
            The connected installation_proxy client
            </param>
            <param name="pkg_path">
            Path of the installation package (inside the AFC jail)
            </param>
            <param name="client_options">
            The client options to use, as PLIST_DICT, or NULL.
            Valid options include:
            "iTunesMetadata" -> PLIST_DATA
            "ApplicationSINF" -> PLIST_DATA
            "PackageType" -> "Developer"
            If PackageType -> Developer is specified, then pkg_path points to
            an .app directory instead of an install package.
            </param>
            <param name="status_cb">
            Callback function for progress and status information. If
            NULL is passed, this function will run synchronously.
            </param>
            <param name="user_data">
            Callback data passed to status_cb.
            </param>
            <returns>
            INSTPROXY_E_SUCCESS on success or an INSTPROXY_E_* error value if
            an error occurred.
            </returns>
            <remarks>
            If a callback function is given (async mode), this function returns
            INSTPROXY_E_SUCCESS immediately if the status updater thread has been
            created successfully; any error occuring during the command has to be
            handled inside the specified callback function.
            </remarks>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.InstallationProxyApi.instproxy_uninstall(iMobileDevice.InstallationProxy.InstallationProxyClientHandle,System.String,iMobileDevice.Plist.PlistHandle,iMobileDevice.InstallationProxy.InstallationProxyStatusCallBack,System.IntPtr)">
            <summary>
            Uninstall an application from the device.
            </summary>
            <param name="client">
            The connected installation proxy client
            </param>
            <param name="appid">
            ApplicationIdentifier of the app to uninstall
            </param>
            <param name="client_options">
            The client options to use, as PLIST_DICT, or NULL.
            Currently there are no known client options, so pass NULL here.
            </param>
            <param name="status_cb">
            Callback function for progress and status information. If
            NULL is passed, this function will run synchronously.
            </param>
            <param name="user_data">
            Callback data passed to status_cb.
            </param>
            <returns>
            INSTPROXY_E_SUCCESS on success or an INSTPROXY_E_* error value if
            an error occurred.
            </returns>
            <remarks>
            If a callback function is given (async mode), this function returns
            INSTPROXY_E_SUCCESS immediately if the status updater thread has been
            created successfully; any error occuring during the command has to be
            handled inside the specified callback function.
            </remarks>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.InstallationProxyApi.instproxy_lookup_archives(iMobileDevice.InstallationProxy.InstallationProxyClientHandle,iMobileDevice.Plist.PlistHandle,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            List archived applications. This function runs synchronously.
            </summary>
            <param name="client">
            The connected installation_proxy client
            </param>
            <param name="client_options">
            The client options to use, as PLIST_DICT, or NULL.
            Currently there are no known client options, so pass NULL here.
            </param>
            <param name="result">
            Pointer that will be set to a plist containing a PLIST_DICT
            holding information about the archived applications found.
            </param>
            <returns>
            INSTPROXY_E_SUCCESS on success or an INSTPROXY_E_* error value if
            an error occurred.
            </returns>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.InstallationProxyApi.instproxy_archive(iMobileDevice.InstallationProxy.InstallationProxyClientHandle,System.String,iMobileDevice.Plist.PlistHandle,iMobileDevice.InstallationProxy.InstallationProxyStatusCallBack,System.IntPtr)">
            <summary>
            Archive an application on the device.
            This function tells the device to make an archive of the specified
            application. This results in the device creating a ZIP archive in the
            'ApplicationArchives' directory and uninstalling the application.
            </summary>
            <param name="client">
            The connected installation proxy client
            </param>
            <param name="appid">
            ApplicationIdentifier of the app to archive.
            </param>
            <param name="client_options">
            The client options to use, as PLIST_DICT, or NULL.
            Valid options include:
            "SkipUninstall" -> Boolean
            "ArchiveType" -> "ApplicationOnly"
            </param>
            <param name="status_cb">
            Callback function for progress and status information. If
            NULL is passed, this function will run synchronously.
            </param>
            <param name="user_data">
            Callback data passed to status_cb.
            </param>
            <returns>
            INSTPROXY_E_SUCCESS on success or an INSTPROXY_E_* error value if
            an error occurred.
            </returns>
            <remarks>
            If a callback function is given (async mode), this function returns
            INSTPROXY_E_SUCCESS immediately if the status updater thread has been
            created successfully; any error occuring during the command has to be
            handled inside the specified callback function.
            </remarks>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.InstallationProxyApi.instproxy_restore(iMobileDevice.InstallationProxy.InstallationProxyClientHandle,System.String,iMobileDevice.Plist.PlistHandle,iMobileDevice.InstallationProxy.InstallationProxyStatusCallBack,System.IntPtr)">
            <summary>
            Restore a previously archived application on the device.
            This function is the counterpart to instproxy_archive.
            </summary>
            <param name="client">
            The connected installation proxy client
            </param>
            <param name="appid">
            ApplicationIdentifier of the app to restore.
            </param>
            <param name="client_options">
            The client options to use, as PLIST_DICT, or NULL.
            Valid options include:
            "ArchiveType" -> "DocumentsOnly"
            </param>
            <param name="status_cb">
            Callback function for progress and status information. If
            NULL is passed, this function will run synchronously.
            </param>
            <param name="user_data">
            Callback data passed to status_cb.
            </param>
            <returns>
            INSTPROXY_E_SUCCESS on success or an INSTPROXY_E_* error value if
            an error occurred.
            </returns>
            <remarks>
            If a callback function is given (async mode), this function returns
            INSTPROXY_E_SUCCESS immediately if the status updater thread has been
            created successfully; any error occuring during the command has to be
            handled inside the specified callback function.
            </remarks>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.InstallationProxyApi.instproxy_remove_archive(iMobileDevice.InstallationProxy.InstallationProxyClientHandle,System.String,iMobileDevice.Plist.PlistHandle,iMobileDevice.InstallationProxy.InstallationProxyStatusCallBack,System.IntPtr)">
            <summary>
            Removes a previously archived application from the device.
            This function removes the ZIP archive from the 'ApplicationArchives'
            directory.
            </summary>
            <param name="client">
            The connected installation proxy client
            </param>
            <param name="appid">
            ApplicationIdentifier of the archived app to remove.
            </param>
            <param name="client_options">
            The client options to use, as PLIST_DICT, or NULL.
            Currently there are no known client options, so passing NULL is fine.
            </param>
            <param name="status_cb">
            Callback function for progress and status information. If
            NULL is passed, this function will run synchronously.
            </param>
            <param name="user_data">
            Callback data passed to status_cb.
            </param>
            <returns>
            INSTPROXY_E_SUCCESS on success or an INSTPROXY_E_* error value if
            an error occurred.
            </returns>
            <remarks>
            If a callback function is given (async mode), this function returns
            INSTPROXY_E_SUCCESS immediately if the status updater thread has been
            created successfully; any error occuring during the command has to be
            handled inside the specified callback function.
            </remarks>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.InstallationProxyApi.instproxy_check_capabilities_match(iMobileDevice.InstallationProxy.InstallationProxyClientHandle,System.String@,iMobileDevice.Plist.PlistHandle,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Checks a device for certain capabilities.
            </summary>
            <param name="client">
            The connected installation_proxy client
            </param>
            <param name="capabilities">
            An array of char* with capability names that MUST have a
            terminating NULL entry.
            </param>
            <param name="client_options">
            The client options to use, as PLIST_DICT, or NULL.
            Currently there are no known client options, so pass NULL here.
            </param>
            <param name="result">
            Pointer that will be set to a plist containing a PLIST_DICT
            holding information if the capabilities matched or NULL on errors.
            </param>
            <returns>
            INSTPROXY_E_SUCCESS on success or an INSTPROXY_E_* error value if
            an error occurred.
            </returns>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.InstallationProxyApi.instproxy_command_get_name(iMobileDevice.Plist.PlistHandle,System.String@)">
            <summary>
            Gets the name from a command dictionary.
            </summary>
            <param name="command">
            The dictionary describing the command.
            </param>
            <param name="name">
            Pointer to store the name of the command.
            </param>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.InstallationProxyApi.instproxy_status_get_name(iMobileDevice.Plist.PlistHandle,System.String@)">
            <summary>
            Gets the name of a status.
            </summary>
            <param name="status">
            The dictionary status response to use.
            </param>
            <param name="name">
            Pointer to store the name of the status.
            </param>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.InstallationProxyApi.instproxy_status_get_error(iMobileDevice.Plist.PlistHandle,System.String@,System.String@,System.UInt64@)">
            <summary>
            Gets error name, code and description from a response if available.
            </summary>
            <param name="status">
            The dictionary status response to use.
            </param>
            <param name="name">
            Pointer to store the name of an error.
            </param>
            <param name="description">
            Pointer to store error description text if available.
            The caller is reponsible for freeing the allocated buffer after use.
            If NULL is passed no description will be returned.
            </param>
            <param name="code">
            Pointer to store the returned error code if available.
            If NULL is passed no error code will be returned.
            </param>
            <returns>
            INSTPROXY_E_SUCCESS if no error is found or an INSTPROXY_E_* error
            value matching the error that ẃas found in the status.
            </returns>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.InstallationProxyApi.instproxy_status_get_current_list(iMobileDevice.Plist.PlistHandle,System.UInt64@,System.UInt64@,System.UInt64@,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Gets total and current item information from a browse response if available.
            </summary>
            <param name="status">
            The dictionary status response to use.
            </param>
            <param name="total">
            Pointer to store the total number of items.
            </param>
            <param name="current_index">
            Pointer to store the current index of all browsed items.
            </param>
            <param name="current_amount">
            Pointer to store the amount of items in the
            current list.
            </param>
            <param name="list">
            Pointer to store a newly allocated plist with items.
            The caller is reponsible for freeing the list after use.
            If NULL is passed no list will be returned. If NULL is returned no
            list was found in the status.
            </param>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.InstallationProxyApi.instproxy_status_get_percent_complete(iMobileDevice.Plist.PlistHandle,System.Int32@)">
            <summary>
            Gets progress in percentage from a status if available.
            </summary>
            <param name="status">
            The dictionary status response to use.
            </param>
            <param name="name">
            Pointer to store the progress in percent (0-100) or -1 if not
            progress was found in the status.
            </param>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.InstallationProxyApi.instproxy_client_options_new">
            <summary>
            Creates a new client_options plist.
            </summary>
            <returns>
            A new plist_t of type PLIST_DICT.
            </returns>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.InstallationProxyApi.instproxy_client_options_add(iMobileDevice.Plist.PlistHandle)">
            <summary>
            Adds one or more new key:value pairs to the given client_options.
            </summary>
            <param name="client_options">
            The client options to modify.
            </param>
            <param name="......">
            KEY, VALUE, [KEY, VALUE], NULL
            </param>
            <remarks>
            The keys and values passed are expected to be strings, except for the
            keys "ApplicationSINF", "iTunesMetadata", "ReturnAttributes" which are
            expecting a plist_t node as value and "SkipUninstall" expects int.
            </remarks>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.InstallationProxyApi.instproxy_client_options_set_return_attributes(iMobileDevice.Plist.PlistHandle)">
            <summary>
            Adds attributes to the given client_options to filter browse results.
            </summary>
            <param name="client_options">
            The client options to modify.
            </param>
            <param name="......">
            VALUE, VALUE, [VALUE], NULL
            </param>
            <remarks>
            The values passed are expected to be strings.
            </remarks>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.InstallationProxyApi.instproxy_client_options_free(iMobileDevice.Plist.PlistHandle)">
            <summary>
            Frees client_options plist.
            </summary>
            <param name="client_options">
            The client options plist to free. Does nothing if NULL
            is passed.
            </param>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.InstallationProxyApi.instproxy_client_get_path_for_bundle_identifier(iMobileDevice.InstallationProxy.InstallationProxyClientHandle,System.String,System.String@)">
            <summary>
            Queries the device for the path of an application.
            </summary>
            <param name="client">
            The connected installation proxy client.
            </param>
            <param name="appid">
            ApplicationIdentifier of app to retrieve the path for.
            </param>
            <param name="path">
            Pointer to store the device path for the application
            which is set to NULL if it could not be determined.
            </param>
            <returns>
            INSTPROXY_E_SUCCESS on success, INSTPROXY_E_OP_FAILED if
            the path could not be determined or an INSTPROXY_E_* error
            value if an error occurred.
            </returns>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.InstallationProxyApi.instproxy_client_options_add(iMobileDevice.Plist.PlistHandle,System.String,System.String,System.Byte)">
            <!-- Failed to insert some or all of included XML --><include file="IInstallationProxyApi.xml" path="/IInstallationProxyApi/instproxy_client_options_add/*" />
        </member>
        <member name="T:iMobileDevice.InstallationProxy.InstallationProxyClientHandle">
            <summary>
            Represents a wrapper class for InstallationProxy handles.
            </summary>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.InstallationProxyClientHandle.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.InstallationProxy.InstallationProxyClientHandle"/> class.
            </summary>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.InstallationProxyClientHandle.#ctor(System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.InstallationProxy.InstallationProxyClientHandle"/> class, specifying whether the handle is to be reliably released.
            </summary>
            <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>
        </member>
        <member name="P:iMobileDevice.InstallationProxy.InstallationProxyClientHandle.Api">
            <summary>
            Gets or sets the API to use
            </summary>
        </member>
        <member name="P:iMobileDevice.InstallationProxy.InstallationProxyClientHandle.Zero">
            <summary>
            Gets a value which represents a pointer or handle that has been initialized to zero.
            </summary>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.InstallationProxyClientHandle.ReleaseHandle">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.InstallationProxyClientHandle.DangerousCreate(System.IntPtr,System.Boolean)">
            <summary>
            Creates a new <see cref="T:iMobileDevice.InstallationProxy.InstallationProxyClientHandle"/> from a <see cref="T:System.IntPtr"/>.
            </summary>
            <param name="unsafeHandle">
            The underlying <see cref="T:System.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>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.InstallationProxyClientHandle.DangerousCreate(System.IntPtr)">
            <summary>
            Creates a new <see cref="T:iMobileDevice.InstallationProxy.InstallationProxyClientHandle"/> from a <see cref="T:System.IntPtr"/>.
            </summary>
            <param name="unsafeHandle">
            The underlying <see cref="T:System.IntPtr"/>
            </param>
            <returns>
            </returns>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.InstallationProxyClientHandle.ToString">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.InstallationProxyClientHandle.Equals(System.Object)">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.InstallationProxyClientHandle.GetHashCode">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.InstallationProxyClientHandle.op_Equality(iMobileDevice.InstallationProxy.InstallationProxyClientHandle,iMobileDevice.InstallationProxy.InstallationProxyClientHandle)">
            <summary>
            Determines whether two specified instances of <see cref="T:iMobileDevice.InstallationProxy.InstallationProxyClientHandle"/> are equal.
            </summary>
            <param name="value1">
            The first pointer or handle to compare.
            </param>
            <param name="value2">
            The second pointer or handle to compare.
            </param>
            <returns>
            <see langword="true"/> if <paramref name="value1"/> equals <paramref name="value2"/>; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.InstallationProxyClientHandle.op_Inequality(iMobileDevice.InstallationProxy.InstallationProxyClientHandle,iMobileDevice.InstallationProxy.InstallationProxyClientHandle)">
            <summary>
            Determines whether two specified instances of <see cref="T:iMobileDevice.InstallationProxy.InstallationProxyClientHandle"/> are not equal.
            </summary>
            <param name="value1">
            The first pointer or handle to compare.
            </param>
            <param name="value2">
            The second pointer or handle to compare.
            </param>
            <returns>
            <see langword="true"/> if <paramref name="value1"/> does not equal <paramref name="value2"/>; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="T:iMobileDevice.InstallationProxy.InstallationProxyError">
            <summary>
            Error Codes 
            </summary>
        </member>
        <member name="T:iMobileDevice.InstallationProxy.InstallationProxyException">
            Represents an exception that occurred when interacting with the InstallationProxy API.
        </member>
        <member name="F:iMobileDevice.InstallationProxy.InstallationProxyException.errorCode">
            <summary>
            Backing field for the <see cref="P:iMobileDevice.InstallationProxy.InstallationProxyException.ErrorCode"/> property.
            </summary>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.InstallationProxyException.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.InstallationProxy.InstallationProxyException"/> class.
            </summary>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.InstallationProxyException.#ctor(iMobileDevice.InstallationProxy.InstallationProxyError)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.InstallationProxy.InstallationProxyException"/> class with a specified error code.
            </summary>
            <param name="error">
            The error code of the error that occurred.
            </param>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.InstallationProxyException.#ctor(iMobileDevice.InstallationProxy.InstallationProxyError,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.InstallationProxy.InstallationProxyException"/> class with a specified error code and error message.
            </summary>
            <param name="error">
            The error code of the error that occurred.
            </param>
            <param name="message">
            A message which describes the error.
            </param>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.InstallationProxyException.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.InstallationProxy.InstallationProxyException"/> class with a specified error message.
            </summary>
            <param name="message">
            The message that describes the error.
            </param>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.InstallationProxyException.#ctor(System.String,System.Exception)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.InstallationProxy.InstallationProxyException"/> class with a specified error message and a reference to the inner exception that is the cause of this exception.
            </summary>
            <param name="message">
            The error message that explains the reason for the exception.
            </param>
            <param name="inner">
            The exception that is the cause of the current exception, or <see langword="null"/> if no inner exception is specified.
            </param>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.InstallationProxyException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.InstallationProxy.InstallationProxyException"/> class with serialized data.
            </summary>
            <param name="info">
            The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds the serialized object data about the exception being thrown.
            </param>
            <param name="context">
            The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that contains contextual information about the source or destination.
            </param>
        </member>
        <member name="P:iMobileDevice.InstallationProxy.InstallationProxyException.ErrorCode">
            <summary>
            Gets the error code that represents the error.
            </summary>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.InstallationProxyNativeMethods.instproxy_client_new(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Lockdown.LockdownServiceDescriptorHandle,iMobileDevice.InstallationProxy.InstallationProxyClientHandle@)">
            <summary>
            Connects to the installation_proxy 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">
            Pointer that will be set to a newly allocated
            instproxy_client_t upon successful return.
            </param>
            <returns>
            INSTPROXY_E_SUCCESS on success, or an INSTPROXY_E_* error value
            when an error occurred.
            </returns>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.InstallationProxyNativeMethods.instproxy_client_start_service(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.InstallationProxy.InstallationProxyClientHandle@,System.String)">
            <summary>
            Starts a new installation_proxy 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
            instproxy_client_t upon successful return. Must be freed using
            instproxy_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>
            INSTPROXY_E_SUCCESS on success, or an INSTPROXY_E_* error
            code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.InstallationProxyNativeMethods.instproxy_client_free(System.IntPtr)">
            <summary>
            Disconnects an installation_proxy client from the device and frees up the
            installation_proxy client data.
            </summary>
            <param name="client">
            The installation_proxy client to disconnect and free.
            </param>
            <returns>
            INSTPROXY_E_SUCCESS on success
            or INSTPROXY_E_INVALID_ARG if client is NULL.
            </returns>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.InstallationProxyNativeMethods.instproxy_browse(iMobileDevice.InstallationProxy.InstallationProxyClientHandle,iMobileDevice.Plist.PlistHandle,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            List installed applications. This function runs synchronously.
            </summary>
            <param name="client">
            The connected installation_proxy client
            </param>
            <param name="client_options">
            The client options to use, as PLIST_DICT, or NULL.
            Valid client options include:
            "ApplicationType" -> "System"
            "ApplicationType" -> "User"
            "ApplicationType" -> "Internal"
            "ApplicationType" -> "Any"
            </param>
            <param name="result">
            Pointer that will be set to a plist that will hold an array
            of PLIST_DICT holding information about the applications found.
            </param>
            <returns>
            INSTPROXY_E_SUCCESS on success or an INSTPROXY_E_* error value if
            an error occurred.
            </returns>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.InstallationProxyNativeMethods.instproxy_browse_with_callback(iMobileDevice.InstallationProxy.InstallationProxyClientHandle,iMobileDevice.Plist.PlistHandle,iMobileDevice.InstallationProxy.InstallationProxyStatusCallBack,System.IntPtr)">
            <summary>
            List pages of installed applications in a callback.
            </summary>
            <param name="client">
            The connected installation_proxy client
            </param>
            <param name="client_options">
            The client options to use, as PLIST_DICT, or NULL.
            Valid client options include:
            "ApplicationType" -> "System"
            "ApplicationType" -> "User"
            "ApplicationType" -> "Internal"
            "ApplicationType" -> "Any"
            </param>
            <param name="status_cb">
            Callback function to process each page of application
            information. Passing a callback is required.
            </param>
            <param name="user_data">
            Callback data passed to status_cb.
            </param>
            <returns>
            INSTPROXY_E_SUCCESS on success or an INSTPROXY_E_* error value if
            an error occurred.
            </returns>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.InstallationProxyNativeMethods.instproxy_lookup(iMobileDevice.InstallationProxy.InstallationProxyClientHandle,System.IntPtr,iMobileDevice.Plist.PlistHandle,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Lookup information about specific applications from the device.
            </summary>
            <param name="client">
            The connected installation_proxy client
            </param>
            <param name="appids">
            An array of bundle identifiers that MUST have a terminating
            NULL entry or NULL to lookup all.
            </param>
            <param name="client_options">
            The client options to use, as PLIST_DICT, or NULL.
            Currently there are no known client options, so pass NULL here.
            </param>
            <param name="result">
            Pointer that will be set to a plist containing a PLIST_DICT
            holding requested information about the application or NULL on errors.
            </param>
            <returns>
            INSTPROXY_E_SUCCESS on success or an INSTPROXY_E_* error value if
            an error occurred.
            </returns>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.InstallationProxyNativeMethods.instproxy_install(iMobileDevice.InstallationProxy.InstallationProxyClientHandle,System.String,iMobileDevice.Plist.PlistHandle,iMobileDevice.InstallationProxy.InstallationProxyStatusCallBack,System.IntPtr)">
            <summary>
            Install an application on the device.
            </summary>
            <param name="client">
            The connected installation_proxy client
            </param>
            <param name="pkg_path">
            Path of the installation package (inside the AFC jail)
            </param>
            <param name="client_options">
            The client options to use, as PLIST_DICT, or NULL.
            Valid options include:
            "iTunesMetadata" -> PLIST_DATA
            "ApplicationSINF" -> PLIST_DATA
            "PackageType" -> "Developer"
            If PackageType -> Developer is specified, then pkg_path points to
            an .app directory instead of an install package.
            </param>
            <param name="status_cb">
            Callback function for progress and status information. If
            NULL is passed, this function will run synchronously.
            </param>
            <param name="user_data">
            Callback data passed to status_cb.
            </param>
            <returns>
            INSTPROXY_E_SUCCESS on success or an INSTPROXY_E_* error value if
            an error occurred.
            </returns>
            <remarks>
            If a callback function is given (async mode), this function returns
            INSTPROXY_E_SUCCESS immediately if the status updater thread has been
            created successfully; any error occuring during the command has to be
            handled inside the specified callback function.
            </remarks>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.InstallationProxyNativeMethods.instproxy_upgrade(iMobileDevice.InstallationProxy.InstallationProxyClientHandle,System.String,iMobileDevice.Plist.PlistHandle,iMobileDevice.InstallationProxy.InstallationProxyStatusCallBack,System.IntPtr)">
            <summary>
            Upgrade an application on the device. This function is nearly the same as
            instproxy_install; the difference is that the installation progress on the
            device is faster if the application is already installed.
            </summary>
            <param name="client">
            The connected installation_proxy client
            </param>
            <param name="pkg_path">
            Path of the installation package (inside the AFC jail)
            </param>
            <param name="client_options">
            The client options to use, as PLIST_DICT, or NULL.
            Valid options include:
            "iTunesMetadata" -> PLIST_DATA
            "ApplicationSINF" -> PLIST_DATA
            "PackageType" -> "Developer"
            If PackageType -> Developer is specified, then pkg_path points to
            an .app directory instead of an install package.
            </param>
            <param name="status_cb">
            Callback function for progress and status information. If
            NULL is passed, this function will run synchronously.
            </param>
            <param name="user_data">
            Callback data passed to status_cb.
            </param>
            <returns>
            INSTPROXY_E_SUCCESS on success or an INSTPROXY_E_* error value if
            an error occurred.
            </returns>
            <remarks>
            If a callback function is given (async mode), this function returns
            INSTPROXY_E_SUCCESS immediately if the status updater thread has been
            created successfully; any error occuring during the command has to be
            handled inside the specified callback function.
            </remarks>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.InstallationProxyNativeMethods.instproxy_uninstall(iMobileDevice.InstallationProxy.InstallationProxyClientHandle,System.String,iMobileDevice.Plist.PlistHandle,iMobileDevice.InstallationProxy.InstallationProxyStatusCallBack,System.IntPtr)">
            <summary>
            Uninstall an application from the device.
            </summary>
            <param name="client">
            The connected installation proxy client
            </param>
            <param name="appid">
            ApplicationIdentifier of the app to uninstall
            </param>
            <param name="client_options">
            The client options to use, as PLIST_DICT, or NULL.
            Currently there are no known client options, so pass NULL here.
            </param>
            <param name="status_cb">
            Callback function for progress and status information. If
            NULL is passed, this function will run synchronously.
            </param>
            <param name="user_data">
            Callback data passed to status_cb.
            </param>
            <returns>
            INSTPROXY_E_SUCCESS on success or an INSTPROXY_E_* error value if
            an error occurred.
            </returns>
            <remarks>
            If a callback function is given (async mode), this function returns
            INSTPROXY_E_SUCCESS immediately if the status updater thread has been
            created successfully; any error occuring during the command has to be
            handled inside the specified callback function.
            </remarks>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.InstallationProxyNativeMethods.instproxy_lookup_archives(iMobileDevice.InstallationProxy.InstallationProxyClientHandle,iMobileDevice.Plist.PlistHandle,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            List archived applications. This function runs synchronously.
            </summary>
            <param name="client">
            The connected installation_proxy client
            </param>
            <param name="client_options">
            The client options to use, as PLIST_DICT, or NULL.
            Currently there are no known client options, so pass NULL here.
            </param>
            <param name="result">
            Pointer that will be set to a plist containing a PLIST_DICT
            holding information about the archived applications found.
            </param>
            <returns>
            INSTPROXY_E_SUCCESS on success or an INSTPROXY_E_* error value if
            an error occurred.
            </returns>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.InstallationProxyNativeMethods.instproxy_archive(iMobileDevice.InstallationProxy.InstallationProxyClientHandle,System.String,iMobileDevice.Plist.PlistHandle,iMobileDevice.InstallationProxy.InstallationProxyStatusCallBack,System.IntPtr)">
            <summary>
            Archive an application on the device.
            This function tells the device to make an archive of the specified
            application. This results in the device creating a ZIP archive in the
            'ApplicationArchives' directory and uninstalling the application.
            </summary>
            <param name="client">
            The connected installation proxy client
            </param>
            <param name="appid">
            ApplicationIdentifier of the app to archive.
            </param>
            <param name="client_options">
            The client options to use, as PLIST_DICT, or NULL.
            Valid options include:
            "SkipUninstall" -> Boolean
            "ArchiveType" -> "ApplicationOnly"
            </param>
            <param name="status_cb">
            Callback function for progress and status information. If
            NULL is passed, this function will run synchronously.
            </param>
            <param name="user_data">
            Callback data passed to status_cb.
            </param>
            <returns>
            INSTPROXY_E_SUCCESS on success or an INSTPROXY_E_* error value if
            an error occurred.
            </returns>
            <remarks>
            If a callback function is given (async mode), this function returns
            INSTPROXY_E_SUCCESS immediately if the status updater thread has been
            created successfully; any error occuring during the command has to be
            handled inside the specified callback function.
            </remarks>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.InstallationProxyNativeMethods.instproxy_restore(iMobileDevice.InstallationProxy.InstallationProxyClientHandle,System.String,iMobileDevice.Plist.PlistHandle,iMobileDevice.InstallationProxy.InstallationProxyStatusCallBack,System.IntPtr)">
            <summary>
            Restore a previously archived application on the device.
            This function is the counterpart to instproxy_archive.
            </summary>
            <param name="client">
            The connected installation proxy client
            </param>
            <param name="appid">
            ApplicationIdentifier of the app to restore.
            </param>
            <param name="client_options">
            The client options to use, as PLIST_DICT, or NULL.
            Valid options include:
            "ArchiveType" -> "DocumentsOnly"
            </param>
            <param name="status_cb">
            Callback function for progress and status information. If
            NULL is passed, this function will run synchronously.
            </param>
            <param name="user_data">
            Callback data passed to status_cb.
            </param>
            <returns>
            INSTPROXY_E_SUCCESS on success or an INSTPROXY_E_* error value if
            an error occurred.
            </returns>
            <remarks>
            If a callback function is given (async mode), this function returns
            INSTPROXY_E_SUCCESS immediately if the status updater thread has been
            created successfully; any error occuring during the command has to be
            handled inside the specified callback function.
            </remarks>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.InstallationProxyNativeMethods.instproxy_remove_archive(iMobileDevice.InstallationProxy.InstallationProxyClientHandle,System.String,iMobileDevice.Plist.PlistHandle,iMobileDevice.InstallationProxy.InstallationProxyStatusCallBack,System.IntPtr)">
            <summary>
            Removes a previously archived application from the device.
            This function removes the ZIP archive from the 'ApplicationArchives'
            directory.
            </summary>
            <param name="client">
            The connected installation proxy client
            </param>
            <param name="appid">
            ApplicationIdentifier of the archived app to remove.
            </param>
            <param name="client_options">
            The client options to use, as PLIST_DICT, or NULL.
            Currently there are no known client options, so passing NULL is fine.
            </param>
            <param name="status_cb">
            Callback function for progress and status information. If
            NULL is passed, this function will run synchronously.
            </param>
            <param name="user_data">
            Callback data passed to status_cb.
            </param>
            <returns>
            INSTPROXY_E_SUCCESS on success or an INSTPROXY_E_* error value if
            an error occurred.
            </returns>
            <remarks>
            If a callback function is given (async mode), this function returns
            INSTPROXY_E_SUCCESS immediately if the status updater thread has been
            created successfully; any error occuring during the command has to be
            handled inside the specified callback function.
            </remarks>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.InstallationProxyNativeMethods.instproxy_check_capabilities_match(iMobileDevice.InstallationProxy.InstallationProxyClientHandle,System.IntPtr@,iMobileDevice.Plist.PlistHandle,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Checks a device for certain capabilities.
            </summary>
            <param name="client">
            The connected installation_proxy client
            </param>
            <param name="capabilities">
            An array of char* with capability names that MUST have a
            terminating NULL entry.
            </param>
            <param name="client_options">
            The client options to use, as PLIST_DICT, or NULL.
            Currently there are no known client options, so pass NULL here.
            </param>
            <param name="result">
            Pointer that will be set to a plist containing a PLIST_DICT
            holding information if the capabilities matched or NULL on errors.
            </param>
            <returns>
            INSTPROXY_E_SUCCESS on success or an INSTPROXY_E_* error value if
            an error occurred.
            </returns>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.InstallationProxyNativeMethods.instproxy_command_get_name(iMobileDevice.Plist.PlistHandle,System.IntPtr@)">
            <summary>
            Gets the name from a command dictionary.
            </summary>
            <param name="command">
            The dictionary describing the command.
            </param>
            <param name="name">
            Pointer to store the name of the command.
            </param>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.InstallationProxyNativeMethods.instproxy_status_get_name(iMobileDevice.Plist.PlistHandle,System.IntPtr@)">
            <summary>
            Gets the name of a status.
            </summary>
            <param name="status">
            The dictionary status response to use.
            </param>
            <param name="name">
            Pointer to store the name of the status.
            </param>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.InstallationProxyNativeMethods.instproxy_status_get_error(iMobileDevice.Plist.PlistHandle,System.IntPtr@,System.IntPtr@,System.UInt64@)">
            <summary>
            Gets error name, code and description from a response if available.
            </summary>
            <param name="status">
            The dictionary status response to use.
            </param>
            <param name="name">
            Pointer to store the name of an error.
            </param>
            <param name="description">
            Pointer to store error description text if available.
            The caller is reponsible for freeing the allocated buffer after use.
            If NULL is passed no description will be returned.
            </param>
            <param name="code">
            Pointer to store the returned error code if available.
            If NULL is passed no error code will be returned.
            </param>
            <returns>
            INSTPROXY_E_SUCCESS if no error is found or an INSTPROXY_E_* error
            value matching the error that ẃas found in the status.
            </returns>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.InstallationProxyNativeMethods.instproxy_status_get_current_list(iMobileDevice.Plist.PlistHandle,System.UInt64@,System.UInt64@,System.UInt64@,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Gets total and current item information from a browse response if available.
            </summary>
            <param name="status">
            The dictionary status response to use.
            </param>
            <param name="total">
            Pointer to store the total number of items.
            </param>
            <param name="current_index">
            Pointer to store the current index of all browsed items.
            </param>
            <param name="current_amount">
            Pointer to store the amount of items in the
            current list.
            </param>
            <param name="list">
            Pointer to store a newly allocated plist with items.
            The caller is reponsible for freeing the list after use.
            If NULL is passed no list will be returned. If NULL is returned no
            list was found in the status.
            </param>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.InstallationProxyNativeMethods.instproxy_status_get_percent_complete(iMobileDevice.Plist.PlistHandle,System.Int32@)">
            <summary>
            Gets progress in percentage from a status if available.
            </summary>
            <param name="status">
            The dictionary status response to use.
            </param>
            <param name="name">
            Pointer to store the progress in percent (0-100) or -1 if not
            progress was found in the status.
            </param>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.InstallationProxyNativeMethods.instproxy_client_options_new">
            <summary>
            Creates a new client_options plist.
            </summary>
            <returns>
            A new plist_t of type PLIST_DICT.
            </returns>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.InstallationProxyNativeMethods.instproxy_client_options_add(iMobileDevice.Plist.PlistHandle)">
            <summary>
            Adds one or more new key:value pairs to the given client_options.
            </summary>
            <param name="client_options">
            The client options to modify.
            </param>
            <param name="......">
            KEY, VALUE, [KEY, VALUE], NULL
            </param>
            <remarks>
            The keys and values passed are expected to be strings, except for the
            keys "ApplicationSINF", "iTunesMetadata", "ReturnAttributes" which are
            expecting a plist_t node as value and "SkipUninstall" expects int.
            </remarks>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.InstallationProxyNativeMethods.instproxy_client_options_set_return_attributes(iMobileDevice.Plist.PlistHandle)">
            <summary>
            Adds attributes to the given client_options to filter browse results.
            </summary>
            <param name="client_options">
            The client options to modify.
            </param>
            <param name="......">
            VALUE, VALUE, [VALUE], NULL
            </param>
            <remarks>
            The values passed are expected to be strings.
            </remarks>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.InstallationProxyNativeMethods.instproxy_client_options_free(iMobileDevice.Plist.PlistHandle)">
            <summary>
            Frees client_options plist.
            </summary>
            <param name="client_options">
            The client options plist to free. Does nothing if NULL
            is passed.
            </param>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.InstallationProxyNativeMethods.instproxy_client_get_path_for_bundle_identifier(iMobileDevice.InstallationProxy.InstallationProxyClientHandle,System.String,System.IntPtr@)">
            <summary>
            Queries the device for the path of an application.
            </summary>
            <param name="client">
            The connected installation proxy client.
            </param>
            <param name="appid">
            ApplicationIdentifier of app to retrieve the path for.
            </param>
            <param name="path">
            Pointer to store the device path for the application
            which is set to NULL if it could not be determined.
            </param>
            <returns>
            INSTPROXY_E_SUCCESS on success, INSTPROXY_E_OP_FAILED if
            the path could not be determined or an INSTPROXY_E_* error
            value if an error occurred.
            </returns>
        </member>
        <member name="M:iMobileDevice.InstallationProxy.InstallationProxyNativeMethods.instproxy_client_options_add(iMobileDevice.Plist.PlistHandle,System.String,System.String,System.Byte)">
            <!-- Failed to insert some or all of included XML --><include file="IInstallationProxyApi.xml" path="/IInstallationProxyApi/instproxy_client_options_add/*" />
        </member>
        <member name="T:iMobileDevice.Lockdown.LockdownServiceDescriptorHandle">
            <summary>
            Represents a wrapper class for Lockdown handles.
            </summary>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownServiceDescriptorHandle.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Lockdown.LockdownServiceDescriptorHandle"/> class.
            </summary>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownServiceDescriptorHandle.#ctor(System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Lockdown.LockdownServiceDescriptorHandle"/> class, specifying whether the handle is to be reliably released.
            </summary>
            <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>
        </member>
        <member name="P:iMobileDevice.Lockdown.LockdownServiceDescriptorHandle.Api">
            <summary>
            Gets or sets the API to use
            </summary>
        </member>
        <member name="P:iMobileDevice.Lockdown.LockdownServiceDescriptorHandle.Zero">
            <summary>
            Gets a value which represents a pointer or handle that has been initialized to zero.
            </summary>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownServiceDescriptorHandle.ReleaseHandle">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownServiceDescriptorHandle.DangerousCreate(System.IntPtr,System.Boolean)">
            <summary>
            Creates a new <see cref="T:iMobileDevice.Lockdown.LockdownServiceDescriptorHandle"/> from a <see cref="T:System.IntPtr"/>.
            </summary>
            <param name="unsafeHandle">
            The underlying <see cref="T:System.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>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownServiceDescriptorHandle.DangerousCreate(System.IntPtr)">
            <summary>
            Creates a new <see cref="T:iMobileDevice.Lockdown.LockdownServiceDescriptorHandle"/> from a <see cref="T:System.IntPtr"/>.
            </summary>
            <param name="unsafeHandle">
            The underlying <see cref="T:System.IntPtr"/>
            </param>
            <returns>
            </returns>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownServiceDescriptorHandle.ToString">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownServiceDescriptorHandle.Equals(System.Object)">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownServiceDescriptorHandle.GetHashCode">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownServiceDescriptorHandle.op_Equality(iMobileDevice.Lockdown.LockdownServiceDescriptorHandle,iMobileDevice.Lockdown.LockdownServiceDescriptorHandle)">
            <summary>
            Determines whether two specified instances of <see cref="T:iMobileDevice.Lockdown.LockdownServiceDescriptorHandle"/> are equal.
            </summary>
            <param name="value1">
            The first pointer or handle to compare.
            </param>
            <param name="value2">
            The second pointer or handle to compare.
            </param>
            <returns>
            <see langword="true"/> if <paramref name="value1"/> equals <paramref name="value2"/>; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownServiceDescriptorHandle.op_Inequality(iMobileDevice.Lockdown.LockdownServiceDescriptorHandle,iMobileDevice.Lockdown.LockdownServiceDescriptorHandle)">
            <summary>
            Determines whether two specified instances of <see cref="T:iMobileDevice.Lockdown.LockdownServiceDescriptorHandle"/> are not equal.
            </summary>
            <param name="value1">
            The first pointer or handle to compare.
            </param>
            <param name="value2">
            The second pointer or handle to compare.
            </param>
            <returns>
            <see langword="true"/> if <paramref name="value1"/> does not equal <paramref name="value2"/>; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="P:iMobileDevice.Lockdown.ILockdownApi.Parent">
            <summary>
            Gets or sets the <see cref="!:ILibiMobileDeviceApi"/> which owns this <see cref="N:iMobileDevice.Lockdown"/>.
            </summary>
        </member>
        <member name="M:iMobileDevice.Lockdown.ILockdownApi.lockdownd_client_new(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Lockdown.LockdownClientHandle@,System.String)">
            <summary>
            Creates a new lockdownd client for the device.
            </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.
            </param>
            <returns>
            LOCKDOWN_E_SUCCESS on success, LOCKDOWN_E_INVALID_ARG when client is NULL
            </returns>
            <remarks>
            This function does not pair with the device or start a session. This
            has to be done manually by the caller after the client is created.
            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>
        </member>
        <member name="M:iMobileDevice.Lockdown.ILockdownApi.lockdownd_client_new_with_handshake(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Lockdown.LockdownClientHandle@,System.String)">
            <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>
        </member>
        <member name="M:iMobileDevice.Lockdown.ILockdownApi.lockdownd_client_free(System.IntPtr)">
            <summary>
            Closes the lockdownd client session if one is running and frees up the
            lockdownd_client struct.
            </summary>
            <param name="client">
            The lockdown client
            </param>
            <returns>
            LOCKDOWN_E_SUCCESS on success, LOCKDOWN_E_INVALID_ARG when client is NULL
            </returns>
        </member>
        <member name="M:iMobileDevice.Lockdown.ILockdownApi.lockdownd_query_type(iMobileDevice.Lockdown.LockdownClientHandle,System.String@)">
            <summary>
            Query the type of the service daemon. Depending on whether the device is
            queried in normal mode or restore mode, different types will be returned.
            </summary>
            <param name="client">
            The lockdownd client
            </param>
            <param name="type">
            The type returned by the service daemon. Pass NULL to ignore.
            </param>
            <returns>
            LOCKDOWN_E_SUCCESS on success, LOCKDOWN_E_INVALID_ARG when client is NULL
            </returns>
        </member>
        <member name="M:iMobileDevice.Lockdown.ILockdownApi.lockdownd_get_value(iMobileDevice.Lockdown.LockdownClientHandle,System.String,System.String,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Retrieves a preferences plist using an optional domain and/or key name.
            </summary>
            <param name="client">
            An initialized lockdownd client.
            </param>
            <param name="domain">
            The domain to query on or NULL for global domain
            </param>
            <param name="key">
            The key name to request or NULL to query for all keys
            </param>
            <param name="value">
            A plist node representing the result value node
            </param>
            <returns>
            LOCKDOWN_E_SUCCESS on success, LOCKDOWN_E_INVALID_ARG when client is NULL
            </returns>
        </member>
        <member name="M:iMobileDevice.Lockdown.ILockdownApi.lockdownd_set_value(iMobileDevice.Lockdown.LockdownClientHandle,System.String,System.String,iMobileDevice.Plist.PlistHandle)">
            <summary>
            Sets a preferences value using a plist and optional by domain and/or key name.
            </summary>
            <param name="client">
            an initialized lockdownd client.
            </param>
            <param name="domain">
            the domain to query on or NULL for global domain
            </param>
            <param name="key">
            the key name to set the value or NULL to set a value dict plist
            </param>
            <param name="value">
            a plist node of any node type representing the value to set
            </param>
            <returns>
            LOCKDOWN_E_SUCCESS on success, LOCKDOWN_E_INVALID_ARG when client or
            value is NULL
            </returns>
        </member>
        <member name="M:iMobileDevice.Lockdown.ILockdownApi.lockdownd_remove_value(iMobileDevice.Lockdown.LockdownClientHandle,System.String,System.String)">
            <summary>
            Removes a preference node by domain and/or key name.
            </summary>
            <param name="client">
            An initialized lockdownd client.
            </param>
            <param name="domain">
            The domain to query on or NULL for global domain
            </param>
            <param name="key">
            The key name to remove or NULL remove all keys for the current domain
            </param>
            <returns>
            LOCKDOWN_E_SUCCESS on success, LOCKDOWN_E_INVALID_ARG when client is NULL
            </returns>
            <remarks>
            : Use with caution as this could remove vital information on the device
            </remarks>
        </member>
        <member name="M:iMobileDevice.Lockdown.ILockdownApi.lockdownd_start_service(iMobileDevice.Lockdown.LockdownClientHandle,System.String,iMobileDevice.Lockdown.LockdownServiceDescriptorHandle@)">
            <summary>
            Requests to start a service and retrieve it's port on success.
            </summary>
            <param name="client">
            The lockdownd client
            </param>
            <param name="identifier">
            The identifier of the service to start
            </param>
            <param name="service">
            The service descriptor on success or NULL on failure
            </param>
            <returns>
            LOCKDOWN_E_SUCCESS on success, LOCKDOWN_E_INVALID_ARG if a parameter
            is NULL, LOCKDOWN_E_INVALID_SERVICE if the requested service is not known
            by the device, LOCKDOWN_E_START_SERVICE_FAILED if the service could not be
            started by the device
            </returns>
        </member>
        <member name="M:iMobileDevice.Lockdown.ILockdownApi.lockdownd_start_service_with_escrow_bag(iMobileDevice.Lockdown.LockdownClientHandle,System.String,iMobileDevice.Lockdown.LockdownServiceDescriptorHandle@)">
            <summary>
            Requests to start a service and retrieve it's port on success.
            Sends the escrow bag from the device's pair record.
            </summary>
            <param name="client">
            The lockdownd client
            </param>
            <param name="identifier">
            The identifier of the service to start
            </param>
            <param name="service">
            The service descriptor on success or NULL on failure
            </param>
            <returns>
            LOCKDOWN_E_SUCCESS on success, LOCKDOWN_E_INVALID_ARG if a parameter
            is NULL, LOCKDOWN_E_INVALID_SERVICE if the requested service is not known
            by the device, LOCKDOWN_E_START_SERVICE_FAILED if the service could not because
            started by the device, LOCKDOWN_E_INVALID_CONF if the host id or escrow bag are
            missing from the device record.
            </returns>
        </member>
        <member name="M:iMobileDevice.Lockdown.ILockdownApi.lockdownd_start_session(iMobileDevice.Lockdown.LockdownClientHandle,System.String,System.String@,System.Int32@)">
            <summary>
            Opens a session with lockdownd and switches to SSL mode if device wants it.
            </summary>
            <param name="client">
            The lockdownd client
            </param>
            <param name="host_id">
            The HostID of the computer
            </param>
            <param name="session_id">
            The new session_id of the created session
            </param>
            <param name="ssl_enabled">
            Whether SSL communication is used in the session
            </param>
            <returns>
            LOCKDOWN_E_SUCCESS on success, LOCKDOWN_E_INVALID_ARG when a client
            or host_id is NULL, LOCKDOWN_E_PLIST_ERROR if the response plist had errors,
            LOCKDOWN_E_INVALID_HOST_ID if the device does not know the supplied HostID,
            LOCKDOWN_E_SSL_ERROR if enabling SSL communication failed
            </returns>
        </member>
        <member name="M:iMobileDevice.Lockdown.ILockdownApi.lockdownd_stop_session(iMobileDevice.Lockdown.LockdownClientHandle,System.String)">
            <summary>
            Closes the lockdownd session by sending the StopSession request.
            </summary>
            <param name="client">
            The lockdown client
            </param>
            <param name="session_id">
            The id of a running session
            </param>
            <returns>
            LOCKDOWN_E_SUCCESS on success, LOCKDOWN_E_INVALID_ARG when client is NULL
            </returns>
        </member>
        <member name="M:iMobileDevice.Lockdown.ILockdownApi.lockdownd_send(iMobileDevice.Lockdown.LockdownClientHandle,iMobileDevice.Plist.PlistHandle)">
            <summary>
            Sends a plist to lockdownd.
            </summary>
            <param name="client">
            The lockdownd client
            </param>
            <param name="plist">
            The plist to send
            </param>
            <returns>
            LOCKDOWN_E_SUCCESS on success, LOCKDOWN_E_INVALID_ARG when client or
            plist is NULL
            </returns>
            <remarks>
            This function is low-level and should only be used if you need to send
            a new type of message.
            </remarks>
        </member>
        <member name="M:iMobileDevice.Lockdown.ILockdownApi.lockdownd_receive(iMobileDevice.Lockdown.LockdownClientHandle,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Receives a plist from lockdownd.
            </summary>
            <param name="client">
            The lockdownd client
            </param>
            <param name="plist">
            The plist to store the received data
            </param>
            <returns>
            LOCKDOWN_E_SUCCESS on success, LOCKDOWN_E_INVALID_ARG when client or
            plist is NULL
            </returns>
        </member>
        <member name="M:iMobileDevice.Lockdown.ILockdownApi.lockdownd_pair(iMobileDevice.Lockdown.LockdownClientHandle,iMobileDevice.Lockdown.LockdownPairRecordHandle)">
            <summary>
            Pairs the device using the supplied pair record.
            </summary>
            <param name="client">
            The lockdown client
            </param>
            <param name="pair_record">
            The pair record to use for pairing. If NULL is passed, then
            the pair records from the current machine are used. New records will be
            generated automatically when pairing is done for the first time.
            </param>
            <returns>
            LOCKDOWN_E_SUCCESS on success, LOCKDOWN_E_INVALID_ARG when client is NULL,
            LOCKDOWN_E_PLIST_ERROR if the pair_record certificates are wrong,
            LOCKDOWN_E_PAIRING_FAILED if the pairing failed,
            LOCKDOWN_E_PASSWORD_PROTECTED if the device is password protected,
            LOCKDOWN_E_INVALID_HOST_ID if the device does not know the caller's host id
            </returns>
        </member>
        <member name="M:iMobileDevice.Lockdown.ILockdownApi.lockdownd_pair_with_options(iMobileDevice.Lockdown.LockdownClientHandle,iMobileDevice.Lockdown.LockdownPairRecordHandle,iMobileDevice.Plist.PlistHandle,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Pairs the device using the supplied pair record and passing the given options.
            </summary>
            <param name="client">
            The lockdown client
            </param>
            <param name="pair_record">
            The pair record to use for pairing. If NULL is passed, then
            the pair records from the current machine are used. New records will be
            generated automatically when pairing is done for the first time.
            </param>
            <param name="options">
            The pairing options to pass. Can be NULL for no options.
            </param>
            <param name="response">
            If non-NULL a pointer to lockdownd's response dictionary is returned.
            The caller is responsible to free the response dictionary with plist_free().
            </param>
            <returns>
            LOCKDOWN_E_SUCCESS on success, LOCKDOWN_E_INVALID_ARG when client is NULL,
            LOCKDOWN_E_PLIST_ERROR if the pair_record certificates are wrong,
            LOCKDOWN_E_PAIRING_FAILED if the pairing failed,
            LOCKDOWN_E_PASSWORD_PROTECTED if the device is password protected,
            LOCKDOWN_E_INVALID_HOST_ID if the device does not know the caller's host id
            </returns>
        </member>
        <member name="M:iMobileDevice.Lockdown.ILockdownApi.lockdownd_validate_pair(iMobileDevice.Lockdown.LockdownClientHandle,iMobileDevice.Lockdown.LockdownPairRecordHandle)">
            <summary>
            Validates if the device is paired with the given HostID. If successful the
            specified host will become trusted host of the device indicated by the
            lockdownd preference named TrustedHostAttached. Otherwise the host must be
            paired using lockdownd_pair() first.
            </summary>
            <param name="client">
            The lockdown client
            </param>
            <param name="pair_record">
            The pair record to validate pairing with. If NULL is
            passed, then the pair record is read from the internal pairing record
            management.
            </param>
            <returns>
            LOCKDOWN_E_SUCCESS on success, LOCKDOWN_E_INVALID_ARG when client is NULL,
            LOCKDOWN_E_PLIST_ERROR if the pair_record certificates are wrong,
            LOCKDOWN_E_PAIRING_FAILED if the pairing failed,
            LOCKDOWN_E_PASSWORD_PROTECTED if the device is password protected,
            LOCKDOWN_E_INVALID_HOST_ID if the device does not know the caller's host id
            </returns>
        </member>
        <member name="M:iMobileDevice.Lockdown.ILockdownApi.lockdownd_unpair(iMobileDevice.Lockdown.LockdownClientHandle,iMobileDevice.Lockdown.LockdownPairRecordHandle)">
            <summary>
            Unpairs the device with the given HostID and removes the pairing records
            from the device and host if the internal pairing record management is used.
            </summary>
            <param name="client">
            The lockdown client
            </param>
            <param name="pair_record">
            The pair record to use for unpair. If NULL is passed, then
            the pair records from the current machine are used.
            </param>
            <returns>
            LOCKDOWN_E_SUCCESS on success, LOCKDOWN_E_INVALID_ARG when client is NULL,
            LOCKDOWN_E_PLIST_ERROR if the pair_record certificates are wrong,
            LOCKDOWN_E_PAIRING_FAILED if the pairing failed,
            LOCKDOWN_E_PASSWORD_PROTECTED if the device is password protected,
            LOCKDOWN_E_INVALID_HOST_ID if the device does not know the caller's host id
            </returns>
        </member>
        <member name="M:iMobileDevice.Lockdown.ILockdownApi.lockdownd_activate(iMobileDevice.Lockdown.LockdownClientHandle,iMobileDevice.Plist.PlistHandle)">
            <summary>
            Activates the device. Only works within an open session.
            The ActivationRecord plist dictionary must be obtained using the
            activation protocol requesting from Apple's https webservice.
            </summary>
            <param name="client">
            The lockdown client
            </param>
            <param name="activation_record">
            The activation record plist dictionary
            </param>
            <returns>
            LOCKDOWN_E_SUCCESS on success, LOCKDOWN_E_INVALID_ARG when client or
            activation_record is NULL, LOCKDOWN_E_NO_RUNNING_SESSION if no session is
            open, LOCKDOWN_E_PLIST_ERROR if the received plist is broken,
            LOCKDOWN_E_ACTIVATION_FAILED if the activation failed,
            LOCKDOWN_E_INVALID_ACTIVATION_RECORD if the device reports that the
            activation_record is invalid
            </returns>
        </member>
        <member name="M:iMobileDevice.Lockdown.ILockdownApi.lockdownd_deactivate(iMobileDevice.Lockdown.LockdownClientHandle)">
            <summary>
            Deactivates the device, returning it to the locked “Activate with iTunes”
            screen.
            </summary>
            <param name="client">
            The lockdown client
            </param>
            <returns>
            LOCKDOWN_E_SUCCESS on success, LOCKDOWN_E_INVALID_ARG when client is NULL,
            LOCKDOWN_E_NO_RUNNING_SESSION if no session is open,
            LOCKDOWN_E_PLIST_ERROR if the received plist is broken
            </returns>
        </member>
        <member name="M:iMobileDevice.Lockdown.ILockdownApi.lockdownd_enter_recovery(iMobileDevice.Lockdown.LockdownClientHandle)">
            <summary>
            Tells the device to immediately enter recovery mode.
            </summary>
            <param name="client">
            The lockdown client
            </param>
            <returns>
            LOCKDOWN_E_SUCCESS on success, LOCKDOWN_E_INVALID_ARG when client is NULL
            </returns>
        </member>
        <member name="M:iMobileDevice.Lockdown.ILockdownApi.lockdownd_goodbye(iMobileDevice.Lockdown.LockdownClientHandle)">
            <summary>
            Sends the Goodbye request to lockdownd signaling the end of communication.
            </summary>
            <param name="client">
            The lockdown client
            </param>
            <returns>
            LOCKDOWN_E_SUCCESS on success, LOCKDOWN_E_INVALID_ARG when client
            is NULL, LOCKDOWN_E_PLIST_ERROR if the device did not acknowledge the
            request
            </returns>
        </member>
        <member name="M:iMobileDevice.Lockdown.ILockdownApi.lockdownd_client_set_label(iMobileDevice.Lockdown.LockdownClientHandle,System.String)">
            <summary>
            Sets the label to send for requests to lockdownd.
            </summary>
            <param name="client">
            The lockdown client
            </param>
            <param name="label">
            The label to set or NULL to disable sending a label
            </param>
        </member>
        <member name="M:iMobileDevice.Lockdown.ILockdownApi.lockdownd_get_device_udid(iMobileDevice.Lockdown.LockdownClientHandle,System.String@)">
            <summary>
            Returns the unique id of the device from lockdownd.
            </summary>
            <param name="client">
            An initialized lockdownd client.
            </param>
            <param name="udid">
            Holds the unique id of the device. The caller is responsible
            for freeing the memory.
            </param>
            <returns>
            LOCKDOWN_E_SUCCESS on success
            </returns>
        </member>
        <member name="M:iMobileDevice.Lockdown.ILockdownApi.lockdownd_get_device_name(iMobileDevice.Lockdown.LockdownClientHandle,System.String@)">
            <summary>
            Retrieves the name of the device from lockdownd set by the user.
            </summary>
            <param name="client">
            An initialized lockdownd client.
            </param>
            <param name="device_name">
            Holds the name of the device. The caller is
            responsible for freeing the memory.
            </param>
            <returns>
            LOCKDOWN_E_SUCCESS on success
            </returns>
        </member>
        <member name="M:iMobileDevice.Lockdown.ILockdownApi.lockdownd_get_sync_data_classes(iMobileDevice.Lockdown.LockdownClientHandle,System.Collections.ObjectModel.ReadOnlyCollection{System.String}@,System.Int32@)">
            <summary>
            Calculates and returns the data classes the device supports from lockdownd.
            </summary>
            <param name="client">
            An initialized lockdownd client.
            </param>
            <param name="classes">
            A pointer to store an array of class names. The caller is responsible
            for freeing the memory which can be done using mobilesync_data_classes_free().
            </param>
            <param name="count">
            The number of items in the classes array.
            </param>
            <returns>
            LOCKDOWN_E_SUCCESS on success,
            LOCKDOWN_E_INVALID_ARG when client is NULL,
            LOCKDOWN_E_NO_RUNNING_SESSION if no session is open,
            LOCKDOWN_E_PLIST_ERROR if the received plist is broken
            </returns>
        </member>
        <member name="M:iMobileDevice.Lockdown.ILockdownApi.lockdownd_data_classes_free(System.IntPtr)">
            <summary>
            Frees memory of an allocated array of data classes as returned by lockdownd_get_sync_data_classes()
            </summary>
            <param name="classes">
            An array of class names to free.
            </param>
            <returns>
            LOCKDOWN_E_SUCCESS on success
            </returns>
        </member>
        <member name="M:iMobileDevice.Lockdown.ILockdownApi.lockdownd_service_descriptor_free(System.IntPtr)">
            <summary>
            Frees memory of a service descriptor as returned by lockdownd_start_service()
            </summary>
            <param name="service">
            A service descriptor instance to free.
            </param>
            <returns>
            LOCKDOWN_E_SUCCESS on success
            </returns>
        </member>
        <member name="M:iMobileDevice.Lockdown.ILockdownApi.lockdownd_strerror(iMobileDevice.Lockdown.LockdownError)">
            <summary>
            Gets a readable error string for a given lockdown error code.
            </summary>
            <param name="err">
            A lockdownd error code
            </param>
        </member>
        <member name="F:iMobileDevice.Lockdown.LockdownApi.parent">
            <summary>
            Backing field for the <see cref="P:iMobileDevice.Lockdown.LockdownApi.Parent"/> property
            </summary>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownApi.#ctor(iMobileDevice.ILibiMobileDevice)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Lockdown.LockdownApi"/> class
            </summary>
            <param name="parent">
            The <see cref="!:ILibiMobileDeviceApi"/> which owns this <see cref="N:iMobileDevice.Lockdown"/>.
            </param>
        </member>
        <member name="P:iMobileDevice.Lockdown.LockdownApi.Parent">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownApi.lockdownd_client_new(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Lockdown.LockdownClientHandle@,System.String)">
            <summary>
            Creates a new lockdownd client for the device.
            </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.
            </param>
            <returns>
            LOCKDOWN_E_SUCCESS on success, LOCKDOWN_E_INVALID_ARG when client is NULL
            </returns>
            <remarks>
            This function does not pair with the device or start a session. This
            has to be done manually by the caller after the client is created.
            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>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownApi.lockdownd_client_new_with_handshake(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Lockdown.LockdownClientHandle@,System.String)">
            <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>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownApi.lockdownd_client_free(System.IntPtr)">
            <summary>
            Closes the lockdownd client session if one is running and frees up the
            lockdownd_client struct.
            </summary>
            <param name="client">
            The lockdown client
            </param>
            <returns>
            LOCKDOWN_E_SUCCESS on success, LOCKDOWN_E_INVALID_ARG when client is NULL
            </returns>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownApi.lockdownd_query_type(iMobileDevice.Lockdown.LockdownClientHandle,System.String@)">
            <summary>
            Query the type of the service daemon. Depending on whether the device is
            queried in normal mode or restore mode, different types will be returned.
            </summary>
            <param name="client">
            The lockdownd client
            </param>
            <param name="type">
            The type returned by the service daemon. Pass NULL to ignore.
            </param>
            <returns>
            LOCKDOWN_E_SUCCESS on success, LOCKDOWN_E_INVALID_ARG when client is NULL
            </returns>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownApi.lockdownd_get_value(iMobileDevice.Lockdown.LockdownClientHandle,System.String,System.String,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Retrieves a preferences plist using an optional domain and/or key name.
            </summary>
            <param name="client">
            An initialized lockdownd client.
            </param>
            <param name="domain">
            The domain to query on or NULL for global domain
            </param>
            <param name="key">
            The key name to request or NULL to query for all keys
            </param>
            <param name="value">
            A plist node representing the result value node
            </param>
            <returns>
            LOCKDOWN_E_SUCCESS on success, LOCKDOWN_E_INVALID_ARG when client is NULL
            </returns>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownApi.lockdownd_set_value(iMobileDevice.Lockdown.LockdownClientHandle,System.String,System.String,iMobileDevice.Plist.PlistHandle)">
            <summary>
            Sets a preferences value using a plist and optional by domain and/or key name.
            </summary>
            <param name="client">
            an initialized lockdownd client.
            </param>
            <param name="domain">
            the domain to query on or NULL for global domain
            </param>
            <param name="key">
            the key name to set the value or NULL to set a value dict plist
            </param>
            <param name="value">
            a plist node of any node type representing the value to set
            </param>
            <returns>
            LOCKDOWN_E_SUCCESS on success, LOCKDOWN_E_INVALID_ARG when client or
            value is NULL
            </returns>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownApi.lockdownd_remove_value(iMobileDevice.Lockdown.LockdownClientHandle,System.String,System.String)">
            <summary>
            Removes a preference node by domain and/or key name.
            </summary>
            <param name="client">
            An initialized lockdownd client.
            </param>
            <param name="domain">
            The domain to query on or NULL for global domain
            </param>
            <param name="key">
            The key name to remove or NULL remove all keys for the current domain
            </param>
            <returns>
            LOCKDOWN_E_SUCCESS on success, LOCKDOWN_E_INVALID_ARG when client is NULL
            </returns>
            <remarks>
            : Use with caution as this could remove vital information on the device
            </remarks>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownApi.lockdownd_start_service(iMobileDevice.Lockdown.LockdownClientHandle,System.String,iMobileDevice.Lockdown.LockdownServiceDescriptorHandle@)">
            <summary>
            Requests to start a service and retrieve it's port on success.
            </summary>
            <param name="client">
            The lockdownd client
            </param>
            <param name="identifier">
            The identifier of the service to start
            </param>
            <param name="service">
            The service descriptor on success or NULL on failure
            </param>
            <returns>
            LOCKDOWN_E_SUCCESS on success, LOCKDOWN_E_INVALID_ARG if a parameter
            is NULL, LOCKDOWN_E_INVALID_SERVICE if the requested service is not known
            by the device, LOCKDOWN_E_START_SERVICE_FAILED if the service could not be
            started by the device
            </returns>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownApi.lockdownd_start_service_with_escrow_bag(iMobileDevice.Lockdown.LockdownClientHandle,System.String,iMobileDevice.Lockdown.LockdownServiceDescriptorHandle@)">
            <summary>
            Requests to start a service and retrieve it's port on success.
            Sends the escrow bag from the device's pair record.
            </summary>
            <param name="client">
            The lockdownd client
            </param>
            <param name="identifier">
            The identifier of the service to start
            </param>
            <param name="service">
            The service descriptor on success or NULL on failure
            </param>
            <returns>
            LOCKDOWN_E_SUCCESS on success, LOCKDOWN_E_INVALID_ARG if a parameter
            is NULL, LOCKDOWN_E_INVALID_SERVICE if the requested service is not known
            by the device, LOCKDOWN_E_START_SERVICE_FAILED if the service could not because
            started by the device, LOCKDOWN_E_INVALID_CONF if the host id or escrow bag are
            missing from the device record.
            </returns>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownApi.lockdownd_start_session(iMobileDevice.Lockdown.LockdownClientHandle,System.String,System.String@,System.Int32@)">
            <summary>
            Opens a session with lockdownd and switches to SSL mode if device wants it.
            </summary>
            <param name="client">
            The lockdownd client
            </param>
            <param name="host_id">
            The HostID of the computer
            </param>
            <param name="session_id">
            The new session_id of the created session
            </param>
            <param name="ssl_enabled">
            Whether SSL communication is used in the session
            </param>
            <returns>
            LOCKDOWN_E_SUCCESS on success, LOCKDOWN_E_INVALID_ARG when a client
            or host_id is NULL, LOCKDOWN_E_PLIST_ERROR if the response plist had errors,
            LOCKDOWN_E_INVALID_HOST_ID if the device does not know the supplied HostID,
            LOCKDOWN_E_SSL_ERROR if enabling SSL communication failed
            </returns>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownApi.lockdownd_stop_session(iMobileDevice.Lockdown.LockdownClientHandle,System.String)">
            <summary>
            Closes the lockdownd session by sending the StopSession request.
            </summary>
            <param name="client">
            The lockdown client
            </param>
            <param name="session_id">
            The id of a running session
            </param>
            <returns>
            LOCKDOWN_E_SUCCESS on success, LOCKDOWN_E_INVALID_ARG when client is NULL
            </returns>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownApi.lockdownd_send(iMobileDevice.Lockdown.LockdownClientHandle,iMobileDevice.Plist.PlistHandle)">
            <summary>
            Sends a plist to lockdownd.
            </summary>
            <param name="client">
            The lockdownd client
            </param>
            <param name="plist">
            The plist to send
            </param>
            <returns>
            LOCKDOWN_E_SUCCESS on success, LOCKDOWN_E_INVALID_ARG when client or
            plist is NULL
            </returns>
            <remarks>
            This function is low-level and should only be used if you need to send
            a new type of message.
            </remarks>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownApi.lockdownd_receive(iMobileDevice.Lockdown.LockdownClientHandle,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Receives a plist from lockdownd.
            </summary>
            <param name="client">
            The lockdownd client
            </param>
            <param name="plist">
            The plist to store the received data
            </param>
            <returns>
            LOCKDOWN_E_SUCCESS on success, LOCKDOWN_E_INVALID_ARG when client or
            plist is NULL
            </returns>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownApi.lockdownd_pair(iMobileDevice.Lockdown.LockdownClientHandle,iMobileDevice.Lockdown.LockdownPairRecordHandle)">
            <summary>
            Pairs the device using the supplied pair record.
            </summary>
            <param name="client">
            The lockdown client
            </param>
            <param name="pair_record">
            The pair record to use for pairing. If NULL is passed, then
            the pair records from the current machine are used. New records will be
            generated automatically when pairing is done for the first time.
            </param>
            <returns>
            LOCKDOWN_E_SUCCESS on success, LOCKDOWN_E_INVALID_ARG when client is NULL,
            LOCKDOWN_E_PLIST_ERROR if the pair_record certificates are wrong,
            LOCKDOWN_E_PAIRING_FAILED if the pairing failed,
            LOCKDOWN_E_PASSWORD_PROTECTED if the device is password protected,
            LOCKDOWN_E_INVALID_HOST_ID if the device does not know the caller's host id
            </returns>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownApi.lockdownd_pair_with_options(iMobileDevice.Lockdown.LockdownClientHandle,iMobileDevice.Lockdown.LockdownPairRecordHandle,iMobileDevice.Plist.PlistHandle,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Pairs the device using the supplied pair record and passing the given options.
            </summary>
            <param name="client">
            The lockdown client
            </param>
            <param name="pair_record">
            The pair record to use for pairing. If NULL is passed, then
            the pair records from the current machine are used. New records will be
            generated automatically when pairing is done for the first time.
            </param>
            <param name="options">
            The pairing options to pass. Can be NULL for no options.
            </param>
            <param name="response">
            If non-NULL a pointer to lockdownd's response dictionary is returned.
            The caller is responsible to free the response dictionary with plist_free().
            </param>
            <returns>
            LOCKDOWN_E_SUCCESS on success, LOCKDOWN_E_INVALID_ARG when client is NULL,
            LOCKDOWN_E_PLIST_ERROR if the pair_record certificates are wrong,
            LOCKDOWN_E_PAIRING_FAILED if the pairing failed,
            LOCKDOWN_E_PASSWORD_PROTECTED if the device is password protected,
            LOCKDOWN_E_INVALID_HOST_ID if the device does not know the caller's host id
            </returns>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownApi.lockdownd_validate_pair(iMobileDevice.Lockdown.LockdownClientHandle,iMobileDevice.Lockdown.LockdownPairRecordHandle)">
            <summary>
            Validates if the device is paired with the given HostID. If successful the
            specified host will become trusted host of the device indicated by the
            lockdownd preference named TrustedHostAttached. Otherwise the host must be
            paired using lockdownd_pair() first.
            </summary>
            <param name="client">
            The lockdown client
            </param>
            <param name="pair_record">
            The pair record to validate pairing with. If NULL is
            passed, then the pair record is read from the internal pairing record
            management.
            </param>
            <returns>
            LOCKDOWN_E_SUCCESS on success, LOCKDOWN_E_INVALID_ARG when client is NULL,
            LOCKDOWN_E_PLIST_ERROR if the pair_record certificates are wrong,
            LOCKDOWN_E_PAIRING_FAILED if the pairing failed,
            LOCKDOWN_E_PASSWORD_PROTECTED if the device is password protected,
            LOCKDOWN_E_INVALID_HOST_ID if the device does not know the caller's host id
            </returns>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownApi.lockdownd_unpair(iMobileDevice.Lockdown.LockdownClientHandle,iMobileDevice.Lockdown.LockdownPairRecordHandle)">
            <summary>
            Unpairs the device with the given HostID and removes the pairing records
            from the device and host if the internal pairing record management is used.
            </summary>
            <param name="client">
            The lockdown client
            </param>
            <param name="pair_record">
            The pair record to use for unpair. If NULL is passed, then
            the pair records from the current machine are used.
            </param>
            <returns>
            LOCKDOWN_E_SUCCESS on success, LOCKDOWN_E_INVALID_ARG when client is NULL,
            LOCKDOWN_E_PLIST_ERROR if the pair_record certificates are wrong,
            LOCKDOWN_E_PAIRING_FAILED if the pairing failed,
            LOCKDOWN_E_PASSWORD_PROTECTED if the device is password protected,
            LOCKDOWN_E_INVALID_HOST_ID if the device does not know the caller's host id
            </returns>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownApi.lockdownd_activate(iMobileDevice.Lockdown.LockdownClientHandle,iMobileDevice.Plist.PlistHandle)">
            <summary>
            Activates the device. Only works within an open session.
            The ActivationRecord plist dictionary must be obtained using the
            activation protocol requesting from Apple's https webservice.
            </summary>
            <param name="client">
            The lockdown client
            </param>
            <param name="activation_record">
            The activation record plist dictionary
            </param>
            <returns>
            LOCKDOWN_E_SUCCESS on success, LOCKDOWN_E_INVALID_ARG when client or
            activation_record is NULL, LOCKDOWN_E_NO_RUNNING_SESSION if no session is
            open, LOCKDOWN_E_PLIST_ERROR if the received plist is broken,
            LOCKDOWN_E_ACTIVATION_FAILED if the activation failed,
            LOCKDOWN_E_INVALID_ACTIVATION_RECORD if the device reports that the
            activation_record is invalid
            </returns>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownApi.lockdownd_deactivate(iMobileDevice.Lockdown.LockdownClientHandle)">
            <summary>
            Deactivates the device, returning it to the locked “Activate with iTunes”
            screen.
            </summary>
            <param name="client">
            The lockdown client
            </param>
            <returns>
            LOCKDOWN_E_SUCCESS on success, LOCKDOWN_E_INVALID_ARG when client is NULL,
            LOCKDOWN_E_NO_RUNNING_SESSION if no session is open,
            LOCKDOWN_E_PLIST_ERROR if the received plist is broken
            </returns>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownApi.lockdownd_enter_recovery(iMobileDevice.Lockdown.LockdownClientHandle)">
            <summary>
            Tells the device to immediately enter recovery mode.
            </summary>
            <param name="client">
            The lockdown client
            </param>
            <returns>
            LOCKDOWN_E_SUCCESS on success, LOCKDOWN_E_INVALID_ARG when client is NULL
            </returns>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownApi.lockdownd_goodbye(iMobileDevice.Lockdown.LockdownClientHandle)">
            <summary>
            Sends the Goodbye request to lockdownd signaling the end of communication.
            </summary>
            <param name="client">
            The lockdown client
            </param>
            <returns>
            LOCKDOWN_E_SUCCESS on success, LOCKDOWN_E_INVALID_ARG when client
            is NULL, LOCKDOWN_E_PLIST_ERROR if the device did not acknowledge the
            request
            </returns>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownApi.lockdownd_client_set_label(iMobileDevice.Lockdown.LockdownClientHandle,System.String)">
            <summary>
            Sets the label to send for requests to lockdownd.
            </summary>
            <param name="client">
            The lockdown client
            </param>
            <param name="label">
            The label to set or NULL to disable sending a label
            </param>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownApi.lockdownd_get_device_udid(iMobileDevice.Lockdown.LockdownClientHandle,System.String@)">
            <summary>
            Returns the unique id of the device from lockdownd.
            </summary>
            <param name="client">
            An initialized lockdownd client.
            </param>
            <param name="udid">
            Holds the unique id of the device. The caller is responsible
            for freeing the memory.
            </param>
            <returns>
            LOCKDOWN_E_SUCCESS on success
            </returns>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownApi.lockdownd_get_device_name(iMobileDevice.Lockdown.LockdownClientHandle,System.String@)">
            <summary>
            Retrieves the name of the device from lockdownd set by the user.
            </summary>
            <param name="client">
            An initialized lockdownd client.
            </param>
            <param name="device_name">
            Holds the name of the device. The caller is
            responsible for freeing the memory.
            </param>
            <returns>
            LOCKDOWN_E_SUCCESS on success
            </returns>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownApi.lockdownd_get_sync_data_classes(iMobileDevice.Lockdown.LockdownClientHandle,System.Collections.ObjectModel.ReadOnlyCollection{System.String}@,System.Int32@)">
            <summary>
            Calculates and returns the data classes the device supports from lockdownd.
            </summary>
            <param name="client">
            An initialized lockdownd client.
            </param>
            <param name="classes">
            A pointer to store an array of class names. The caller is responsible
            for freeing the memory which can be done using mobilesync_data_classes_free().
            </param>
            <param name="count">
            The number of items in the classes array.
            </param>
            <returns>
            LOCKDOWN_E_SUCCESS on success,
            LOCKDOWN_E_INVALID_ARG when client is NULL,
            LOCKDOWN_E_NO_RUNNING_SESSION if no session is open,
            LOCKDOWN_E_PLIST_ERROR if the received plist is broken
            </returns>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownApi.lockdownd_data_classes_free(System.IntPtr)">
            <summary>
            Frees memory of an allocated array of data classes as returned by lockdownd_get_sync_data_classes()
            </summary>
            <param name="classes">
            An array of class names to free.
            </param>
            <returns>
            LOCKDOWN_E_SUCCESS on success
            </returns>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownApi.lockdownd_service_descriptor_free(System.IntPtr)">
            <summary>
            Frees memory of a service descriptor as returned by lockdownd_start_service()
            </summary>
            <param name="service">
            A service descriptor instance to free.
            </param>
            <returns>
            LOCKDOWN_E_SUCCESS on success
            </returns>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownApi.lockdownd_strerror(iMobileDevice.Lockdown.LockdownError)">
            <summary>
            Gets a readable error string for a given lockdown error code.
            </summary>
            <param name="err">
            A lockdownd error code
            </param>
        </member>
        <member name="T:iMobileDevice.Lockdown.LockdownClientHandle">
            <summary>
            Represents a wrapper class for Lockdown handles.
            </summary>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownClientHandle.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Lockdown.LockdownClientHandle"/> class.
            </summary>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownClientHandle.#ctor(System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Lockdown.LockdownClientHandle"/> class, specifying whether the handle is to be reliably released.
            </summary>
            <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>
        </member>
        <member name="P:iMobileDevice.Lockdown.LockdownClientHandle.Api">
            <summary>
            Gets or sets the API to use
            </summary>
        </member>
        <member name="P:iMobileDevice.Lockdown.LockdownClientHandle.Zero">
            <summary>
            Gets a value which represents a pointer or handle that has been initialized to zero.
            </summary>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownClientHandle.ReleaseHandle">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownClientHandle.DangerousCreate(System.IntPtr,System.Boolean)">
            <summary>
            Creates a new <see cref="T:iMobileDevice.Lockdown.LockdownClientHandle"/> from a <see cref="T:System.IntPtr"/>.
            </summary>
            <param name="unsafeHandle">
            The underlying <see cref="T:System.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>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownClientHandle.DangerousCreate(System.IntPtr)">
            <summary>
            Creates a new <see cref="T:iMobileDevice.Lockdown.LockdownClientHandle"/> from a <see cref="T:System.IntPtr"/>.
            </summary>
            <param name="unsafeHandle">
            The underlying <see cref="T:System.IntPtr"/>
            </param>
            <returns>
            </returns>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownClientHandle.ToString">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownClientHandle.Equals(System.Object)">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownClientHandle.GetHashCode">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownClientHandle.op_Equality(iMobileDevice.Lockdown.LockdownClientHandle,iMobileDevice.Lockdown.LockdownClientHandle)">
            <summary>
            Determines whether two specified instances of <see cref="T:iMobileDevice.Lockdown.LockdownClientHandle"/> are equal.
            </summary>
            <param name="value1">
            The first pointer or handle to compare.
            </param>
            <param name="value2">
            The second pointer or handle to compare.
            </param>
            <returns>
            <see langword="true"/> if <paramref name="value1"/> equals <paramref name="value2"/>; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownClientHandle.op_Inequality(iMobileDevice.Lockdown.LockdownClientHandle,iMobileDevice.Lockdown.LockdownClientHandle)">
            <summary>
            Determines whether two specified instances of <see cref="T:iMobileDevice.Lockdown.LockdownClientHandle"/> are not equal.
            </summary>
            <param name="value1">
            The first pointer or handle to compare.
            </param>
            <param name="value2">
            The second pointer or handle to compare.
            </param>
            <returns>
            <see langword="true"/> if <paramref name="value1"/> does not equal <paramref name="value2"/>; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="T:iMobileDevice.Lockdown.LockdownError">
            <summary>
            Error Codes 
            </summary>
        </member>
        <member name="T:iMobileDevice.Lockdown.LockdownException">
            Represents an exception that occurred when interacting with the Lockdown API.
        </member>
        <member name="F:iMobileDevice.Lockdown.LockdownException.errorCode">
            <summary>
            Backing field for the <see cref="P:iMobileDevice.Lockdown.LockdownException.ErrorCode"/> property.
            </summary>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownException.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Lockdown.LockdownException"/> class.
            </summary>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownException.#ctor(iMobileDevice.Lockdown.LockdownError)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Lockdown.LockdownException"/> class with a specified error code.
            </summary>
            <param name="error">
            The error code of the error that occurred.
            </param>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownException.#ctor(iMobileDevice.Lockdown.LockdownError,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Lockdown.LockdownException"/> class with a specified error code and error message.
            </summary>
            <param name="error">
            The error code of the error that occurred.
            </param>
            <param name="message">
            A message which describes the error.
            </param>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownException.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Lockdown.LockdownException"/> class with a specified error message.
            </summary>
            <param name="message">
            The message that describes the error.
            </param>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownException.#ctor(System.String,System.Exception)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Lockdown.LockdownException"/> class with a specified error message and a reference to the inner exception that is the cause of this exception.
            </summary>
            <param name="message">
            The error message that explains the reason for the exception.
            </param>
            <param name="inner">
            The exception that is the cause of the current exception, or <see langword="null"/> if no inner exception is specified.
            </param>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Lockdown.LockdownException"/> class with serialized data.
            </summary>
            <param name="info">
            The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds the serialized object data about the exception being thrown.
            </param>
            <param name="context">
            The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that contains contextual information about the source or destination.
            </param>
        </member>
        <member name="P:iMobileDevice.Lockdown.LockdownException.ErrorCode">
            <summary>
            Gets the error code that represents the error.
            </summary>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownNativeMethods.lockdownd_client_new(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Lockdown.LockdownClientHandle@,System.String)">
            <summary>
            Creates a new lockdownd client for the device.
            </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.
            </param>
            <returns>
            LOCKDOWN_E_SUCCESS on success, LOCKDOWN_E_INVALID_ARG when client is NULL
            </returns>
            <remarks>
            This function does not pair with the device or start a session. This
            has to be done manually by the caller after the client is created.
            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>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownNativeMethods.lockdownd_client_new_with_handshake(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Lockdown.LockdownClientHandle@,System.String)">
            <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>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownNativeMethods.lockdownd_client_free(System.IntPtr)">
            <summary>
            Closes the lockdownd client session if one is running and frees up the
            lockdownd_client struct.
            </summary>
            <param name="client">
            The lockdown client
            </param>
            <returns>
            LOCKDOWN_E_SUCCESS on success, LOCKDOWN_E_INVALID_ARG when client is NULL
            </returns>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownNativeMethods.lockdownd_query_type(iMobileDevice.Lockdown.LockdownClientHandle,System.IntPtr@)">
            <summary>
            Query the type of the service daemon. Depending on whether the device is
            queried in normal mode or restore mode, different types will be returned.
            </summary>
            <param name="client">
            The lockdownd client
            </param>
            <param name="type">
            The type returned by the service daemon. Pass NULL to ignore.
            </param>
            <returns>
            LOCKDOWN_E_SUCCESS on success, LOCKDOWN_E_INVALID_ARG when client is NULL
            </returns>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownNativeMethods.lockdownd_get_value(iMobileDevice.Lockdown.LockdownClientHandle,System.String,System.String,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Retrieves a preferences plist using an optional domain and/or key name.
            </summary>
            <param name="client">
            An initialized lockdownd client.
            </param>
            <param name="domain">
            The domain to query on or NULL for global domain
            </param>
            <param name="key">
            The key name to request or NULL to query for all keys
            </param>
            <param name="value">
            A plist node representing the result value node
            </param>
            <returns>
            LOCKDOWN_E_SUCCESS on success, LOCKDOWN_E_INVALID_ARG when client is NULL
            </returns>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownNativeMethods.lockdownd_set_value(iMobileDevice.Lockdown.LockdownClientHandle,System.String,System.String,iMobileDevice.Plist.PlistHandle)">
            <summary>
            Sets a preferences value using a plist and optional by domain and/or key name.
            </summary>
            <param name="client">
            an initialized lockdownd client.
            </param>
            <param name="domain">
            the domain to query on or NULL for global domain
            </param>
            <param name="key">
            the key name to set the value or NULL to set a value dict plist
            </param>
            <param name="value">
            a plist node of any node type representing the value to set
            </param>
            <returns>
            LOCKDOWN_E_SUCCESS on success, LOCKDOWN_E_INVALID_ARG when client or
            value is NULL
            </returns>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownNativeMethods.lockdownd_remove_value(iMobileDevice.Lockdown.LockdownClientHandle,System.String,System.String)">
            <summary>
            Removes a preference node by domain and/or key name.
            </summary>
            <param name="client">
            An initialized lockdownd client.
            </param>
            <param name="domain">
            The domain to query on or NULL for global domain
            </param>
            <param name="key">
            The key name to remove or NULL remove all keys for the current domain
            </param>
            <returns>
            LOCKDOWN_E_SUCCESS on success, LOCKDOWN_E_INVALID_ARG when client is NULL
            </returns>
            <remarks>
            : Use with caution as this could remove vital information on the device
            </remarks>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownNativeMethods.lockdownd_start_service(iMobileDevice.Lockdown.LockdownClientHandle,System.String,iMobileDevice.Lockdown.LockdownServiceDescriptorHandle@)">
            <summary>
            Requests to start a service and retrieve it's port on success.
            </summary>
            <param name="client">
            The lockdownd client
            </param>
            <param name="identifier">
            The identifier of the service to start
            </param>
            <param name="service">
            The service descriptor on success or NULL on failure
            </param>
            <returns>
            LOCKDOWN_E_SUCCESS on success, LOCKDOWN_E_INVALID_ARG if a parameter
            is NULL, LOCKDOWN_E_INVALID_SERVICE if the requested service is not known
            by the device, LOCKDOWN_E_START_SERVICE_FAILED if the service could not be
            started by the device
            </returns>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownNativeMethods.lockdownd_start_service_with_escrow_bag(iMobileDevice.Lockdown.LockdownClientHandle,System.String,iMobileDevice.Lockdown.LockdownServiceDescriptorHandle@)">
            <summary>
            Requests to start a service and retrieve it's port on success.
            Sends the escrow bag from the device's pair record.
            </summary>
            <param name="client">
            The lockdownd client
            </param>
            <param name="identifier">
            The identifier of the service to start
            </param>
            <param name="service">
            The service descriptor on success or NULL on failure
            </param>
            <returns>
            LOCKDOWN_E_SUCCESS on success, LOCKDOWN_E_INVALID_ARG if a parameter
            is NULL, LOCKDOWN_E_INVALID_SERVICE if the requested service is not known
            by the device, LOCKDOWN_E_START_SERVICE_FAILED if the service could not because
            started by the device, LOCKDOWN_E_INVALID_CONF if the host id or escrow bag are
            missing from the device record.
            </returns>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownNativeMethods.lockdownd_start_session(iMobileDevice.Lockdown.LockdownClientHandle,System.String,System.IntPtr@,System.Int32@)">
            <summary>
            Opens a session with lockdownd and switches to SSL mode if device wants it.
            </summary>
            <param name="client">
            The lockdownd client
            </param>
            <param name="host_id">
            The HostID of the computer
            </param>
            <param name="session_id">
            The new session_id of the created session
            </param>
            <param name="ssl_enabled">
            Whether SSL communication is used in the session
            </param>
            <returns>
            LOCKDOWN_E_SUCCESS on success, LOCKDOWN_E_INVALID_ARG when a client
            or host_id is NULL, LOCKDOWN_E_PLIST_ERROR if the response plist had errors,
            LOCKDOWN_E_INVALID_HOST_ID if the device does not know the supplied HostID,
            LOCKDOWN_E_SSL_ERROR if enabling SSL communication failed
            </returns>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownNativeMethods.lockdownd_stop_session(iMobileDevice.Lockdown.LockdownClientHandle,System.String)">
            <summary>
            Closes the lockdownd session by sending the StopSession request.
            </summary>
            <param name="client">
            The lockdown client
            </param>
            <param name="session_id">
            The id of a running session
            </param>
            <returns>
            LOCKDOWN_E_SUCCESS on success, LOCKDOWN_E_INVALID_ARG when client is NULL
            </returns>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownNativeMethods.lockdownd_send(iMobileDevice.Lockdown.LockdownClientHandle,iMobileDevice.Plist.PlistHandle)">
            <summary>
            Sends a plist to lockdownd.
            </summary>
            <param name="client">
            The lockdownd client
            </param>
            <param name="plist">
            The plist to send
            </param>
            <returns>
            LOCKDOWN_E_SUCCESS on success, LOCKDOWN_E_INVALID_ARG when client or
            plist is NULL
            </returns>
            <remarks>
            This function is low-level and should only be used if you need to send
            a new type of message.
            </remarks>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownNativeMethods.lockdownd_receive(iMobileDevice.Lockdown.LockdownClientHandle,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Receives a plist from lockdownd.
            </summary>
            <param name="client">
            The lockdownd client
            </param>
            <param name="plist">
            The plist to store the received data
            </param>
            <returns>
            LOCKDOWN_E_SUCCESS on success, LOCKDOWN_E_INVALID_ARG when client or
            plist is NULL
            </returns>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownNativeMethods.lockdownd_pair(iMobileDevice.Lockdown.LockdownClientHandle,iMobileDevice.Lockdown.LockdownPairRecordHandle)">
            <summary>
            Pairs the device using the supplied pair record.
            </summary>
            <param name="client">
            The lockdown client
            </param>
            <param name="pair_record">
            The pair record to use for pairing. If NULL is passed, then
            the pair records from the current machine are used. New records will be
            generated automatically when pairing is done for the first time.
            </param>
            <returns>
            LOCKDOWN_E_SUCCESS on success, LOCKDOWN_E_INVALID_ARG when client is NULL,
            LOCKDOWN_E_PLIST_ERROR if the pair_record certificates are wrong,
            LOCKDOWN_E_PAIRING_FAILED if the pairing failed,
            LOCKDOWN_E_PASSWORD_PROTECTED if the device is password protected,
            LOCKDOWN_E_INVALID_HOST_ID if the device does not know the caller's host id
            </returns>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownNativeMethods.lockdownd_pair_with_options(iMobileDevice.Lockdown.LockdownClientHandle,iMobileDevice.Lockdown.LockdownPairRecordHandle,iMobileDevice.Plist.PlistHandle,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Pairs the device using the supplied pair record and passing the given options.
            </summary>
            <param name="client">
            The lockdown client
            </param>
            <param name="pair_record">
            The pair record to use for pairing. If NULL is passed, then
            the pair records from the current machine are used. New records will be
            generated automatically when pairing is done for the first time.
            </param>
            <param name="options">
            The pairing options to pass. Can be NULL for no options.
            </param>
            <param name="response">
            If non-NULL a pointer to lockdownd's response dictionary is returned.
            The caller is responsible to free the response dictionary with plist_free().
            </param>
            <returns>
            LOCKDOWN_E_SUCCESS on success, LOCKDOWN_E_INVALID_ARG when client is NULL,
            LOCKDOWN_E_PLIST_ERROR if the pair_record certificates are wrong,
            LOCKDOWN_E_PAIRING_FAILED if the pairing failed,
            LOCKDOWN_E_PASSWORD_PROTECTED if the device is password protected,
            LOCKDOWN_E_INVALID_HOST_ID if the device does not know the caller's host id
            </returns>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownNativeMethods.lockdownd_validate_pair(iMobileDevice.Lockdown.LockdownClientHandle,iMobileDevice.Lockdown.LockdownPairRecordHandle)">
            <summary>
            Validates if the device is paired with the given HostID. If successful the
            specified host will become trusted host of the device indicated by the
            lockdownd preference named TrustedHostAttached. Otherwise the host must be
            paired using lockdownd_pair() first.
            </summary>
            <param name="client">
            The lockdown client
            </param>
            <param name="pair_record">
            The pair record to validate pairing with. If NULL is
            passed, then the pair record is read from the internal pairing record
            management.
            </param>
            <returns>
            LOCKDOWN_E_SUCCESS on success, LOCKDOWN_E_INVALID_ARG when client is NULL,
            LOCKDOWN_E_PLIST_ERROR if the pair_record certificates are wrong,
            LOCKDOWN_E_PAIRING_FAILED if the pairing failed,
            LOCKDOWN_E_PASSWORD_PROTECTED if the device is password protected,
            LOCKDOWN_E_INVALID_HOST_ID if the device does not know the caller's host id
            </returns>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownNativeMethods.lockdownd_unpair(iMobileDevice.Lockdown.LockdownClientHandle,iMobileDevice.Lockdown.LockdownPairRecordHandle)">
            <summary>
            Unpairs the device with the given HostID and removes the pairing records
            from the device and host if the internal pairing record management is used.
            </summary>
            <param name="client">
            The lockdown client
            </param>
            <param name="pair_record">
            The pair record to use for unpair. If NULL is passed, then
            the pair records from the current machine are used.
            </param>
            <returns>
            LOCKDOWN_E_SUCCESS on success, LOCKDOWN_E_INVALID_ARG when client is NULL,
            LOCKDOWN_E_PLIST_ERROR if the pair_record certificates are wrong,
            LOCKDOWN_E_PAIRING_FAILED if the pairing failed,
            LOCKDOWN_E_PASSWORD_PROTECTED if the device is password protected,
            LOCKDOWN_E_INVALID_HOST_ID if the device does not know the caller's host id
            </returns>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownNativeMethods.lockdownd_activate(iMobileDevice.Lockdown.LockdownClientHandle,iMobileDevice.Plist.PlistHandle)">
            <summary>
            Activates the device. Only works within an open session.
            The ActivationRecord plist dictionary must be obtained using the
            activation protocol requesting from Apple's https webservice.
            </summary>
            <param name="client">
            The lockdown client
            </param>
            <param name="activation_record">
            The activation record plist dictionary
            </param>
            <returns>
            LOCKDOWN_E_SUCCESS on success, LOCKDOWN_E_INVALID_ARG when client or
            activation_record is NULL, LOCKDOWN_E_NO_RUNNING_SESSION if no session is
            open, LOCKDOWN_E_PLIST_ERROR if the received plist is broken,
            LOCKDOWN_E_ACTIVATION_FAILED if the activation failed,
            LOCKDOWN_E_INVALID_ACTIVATION_RECORD if the device reports that the
            activation_record is invalid
            </returns>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownNativeMethods.lockdownd_deactivate(iMobileDevice.Lockdown.LockdownClientHandle)">
            <summary>
            Deactivates the device, returning it to the locked “Activate with iTunes”
            screen.
            </summary>
            <param name="client">
            The lockdown client
            </param>
            <returns>
            LOCKDOWN_E_SUCCESS on success, LOCKDOWN_E_INVALID_ARG when client is NULL,
            LOCKDOWN_E_NO_RUNNING_SESSION if no session is open,
            LOCKDOWN_E_PLIST_ERROR if the received plist is broken
            </returns>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownNativeMethods.lockdownd_enter_recovery(iMobileDevice.Lockdown.LockdownClientHandle)">
            <summary>
            Tells the device to immediately enter recovery mode.
            </summary>
            <param name="client">
            The lockdown client
            </param>
            <returns>
            LOCKDOWN_E_SUCCESS on success, LOCKDOWN_E_INVALID_ARG when client is NULL
            </returns>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownNativeMethods.lockdownd_goodbye(iMobileDevice.Lockdown.LockdownClientHandle)">
            <summary>
            Sends the Goodbye request to lockdownd signaling the end of communication.
            </summary>
            <param name="client">
            The lockdown client
            </param>
            <returns>
            LOCKDOWN_E_SUCCESS on success, LOCKDOWN_E_INVALID_ARG when client
            is NULL, LOCKDOWN_E_PLIST_ERROR if the device did not acknowledge the
            request
            </returns>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownNativeMethods.lockdownd_client_set_label(iMobileDevice.Lockdown.LockdownClientHandle,System.String)">
            <summary>
            Sets the label to send for requests to lockdownd.
            </summary>
            <param name="client">
            The lockdown client
            </param>
            <param name="label">
            The label to set or NULL to disable sending a label
            </param>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownNativeMethods.lockdownd_get_device_udid(iMobileDevice.Lockdown.LockdownClientHandle,System.IntPtr@)">
            <summary>
            Returns the unique id of the device from lockdownd.
            </summary>
            <param name="client">
            An initialized lockdownd client.
            </param>
            <param name="udid">
            Holds the unique id of the device. The caller is responsible
            for freeing the memory.
            </param>
            <returns>
            LOCKDOWN_E_SUCCESS on success
            </returns>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownNativeMethods.lockdownd_get_device_name(iMobileDevice.Lockdown.LockdownClientHandle,System.IntPtr@)">
            <summary>
            Retrieves the name of the device from lockdownd set by the user.
            </summary>
            <param name="client">
            An initialized lockdownd client.
            </param>
            <param name="device_name">
            Holds the name of the device. The caller is
            responsible for freeing the memory.
            </param>
            <returns>
            LOCKDOWN_E_SUCCESS on success
            </returns>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownNativeMethods.lockdownd_get_sync_data_classes(iMobileDevice.Lockdown.LockdownClientHandle,System.IntPtr@,System.Int32@)">
            <summary>
            Calculates and returns the data classes the device supports from lockdownd.
            </summary>
            <param name="client">
            An initialized lockdownd client.
            </param>
            <param name="classes">
            A pointer to store an array of class names. The caller is responsible
            for freeing the memory which can be done using mobilesync_data_classes_free().
            </param>
            <param name="count">
            The number of items in the classes array.
            </param>
            <returns>
            LOCKDOWN_E_SUCCESS on success,
            LOCKDOWN_E_INVALID_ARG when client is NULL,
            LOCKDOWN_E_NO_RUNNING_SESSION if no session is open,
            LOCKDOWN_E_PLIST_ERROR if the received plist is broken
            </returns>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownNativeMethods.lockdownd_data_classes_free(System.IntPtr)">
            <summary>
            Frees memory of an allocated array of data classes as returned by lockdownd_get_sync_data_classes()
            </summary>
            <param name="classes">
            An array of class names to free.
            </param>
            <returns>
            LOCKDOWN_E_SUCCESS on success
            </returns>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownNativeMethods.lockdownd_service_descriptor_free(System.IntPtr)">
            <summary>
            Frees memory of a service descriptor as returned by lockdownd_start_service()
            </summary>
            <param name="service">
            A service descriptor instance to free.
            </param>
            <returns>
            LOCKDOWN_E_SUCCESS on success
            </returns>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownNativeMethods.lockdownd_strerror(iMobileDevice.Lockdown.LockdownError)">
            <summary>
            Gets a readable error string for a given lockdown error code.
            </summary>
            <param name="err">
            A lockdownd error code
            </param>
        </member>
        <member name="T:iMobileDevice.Lockdown.LockdownPairRecordHandle">
            <summary>
            Represents a wrapper class for Lockdown handles.
            </summary>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownPairRecordHandle.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Lockdown.LockdownPairRecordHandle"/> class.
            </summary>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownPairRecordHandle.#ctor(System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Lockdown.LockdownPairRecordHandle"/> class, specifying whether the handle is to be reliably released.
            </summary>
            <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>
        </member>
        <member name="P:iMobileDevice.Lockdown.LockdownPairRecordHandle.Api">
            <summary>
            Gets or sets the API to use
            </summary>
        </member>
        <member name="P:iMobileDevice.Lockdown.LockdownPairRecordHandle.Zero">
            <summary>
            Gets a value which represents a pointer or handle that has been initialized to zero.
            </summary>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownPairRecordHandle.ReleaseHandle">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownPairRecordHandle.DangerousCreate(System.IntPtr,System.Boolean)">
            <summary>
            Creates a new <see cref="T:iMobileDevice.Lockdown.LockdownPairRecordHandle"/> from a <see cref="T:System.IntPtr"/>.
            </summary>
            <param name="unsafeHandle">
            The underlying <see cref="T:System.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>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownPairRecordHandle.DangerousCreate(System.IntPtr)">
            <summary>
            Creates a new <see cref="T:iMobileDevice.Lockdown.LockdownPairRecordHandle"/> from a <see cref="T:System.IntPtr"/>.
            </summary>
            <param name="unsafeHandle">
            The underlying <see cref="T:System.IntPtr"/>
            </param>
            <returns>
            </returns>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownPairRecordHandle.ToString">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownPairRecordHandle.Equals(System.Object)">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownPairRecordHandle.GetHashCode">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownPairRecordHandle.op_Equality(iMobileDevice.Lockdown.LockdownPairRecordHandle,iMobileDevice.Lockdown.LockdownPairRecordHandle)">
            <summary>
            Determines whether two specified instances of <see cref="T:iMobileDevice.Lockdown.LockdownPairRecordHandle"/> are equal.
            </summary>
            <param name="value1">
            The first pointer or handle to compare.
            </param>
            <param name="value2">
            The second pointer or handle to compare.
            </param>
            <returns>
            <see langword="true"/> if <paramref name="value1"/> equals <paramref name="value2"/>; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="M:iMobileDevice.Lockdown.LockdownPairRecordHandle.op_Inequality(iMobileDevice.Lockdown.LockdownPairRecordHandle,iMobileDevice.Lockdown.LockdownPairRecordHandle)">
            <summary>
            Determines whether two specified instances of <see cref="T:iMobileDevice.Lockdown.LockdownPairRecordHandle"/> are not equal.
            </summary>
            <param name="value1">
            The first pointer or handle to compare.
            </param>
            <param name="value2">
            The second pointer or handle to compare.
            </param>
            <returns>
            <see langword="true"/> if <paramref name="value1"/> does not equal <paramref name="value2"/>; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="P:iMobileDevice.Misagent.IMisagentApi.Parent">
            <summary>
            Gets or sets the <see cref="!:ILibiMobileDeviceApi"/> which owns this <see cref="N:iMobileDevice.Misagent"/>.
            </summary>
        </member>
        <member name="M:iMobileDevice.Misagent.IMisagentApi.misagent_client_new(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Lockdown.LockdownServiceDescriptorHandle,iMobileDevice.Misagent.MisagentClientHandle@)">
            <summary>
            Connects to the misagent 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">
            Pointer that will point to a newly allocated
            misagent_client_t upon successful return.
            </param>
            <returns>
            MISAGENT_E_SUCCESS on success, MISAGENT_E_INVALID_ARG when
            client is NULL, or an MISAGENT_E_* error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Misagent.IMisagentApi.misagent_client_start_service(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Misagent.MisagentClientHandle@,System.String)">
            <summary>
            Starts a new misagent 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
            misagent_client_t upon successful return. Must be freed using
            misagent_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>
            MISAGENT_E_SUCCESS on success, or an MISAGENT_E_* error
            code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Misagent.IMisagentApi.misagent_client_free(System.IntPtr)">
            <summary>
            Disconnects an misagent client from the device and frees up the
            misagent client data.
            </summary>
            <param name="client">
            The misagent client to disconnect and free.
            </param>
            <returns>
            MISAGENT_E_SUCCESS on success, MISAGENT_E_INVALID_ARG when
            client is NULL, or an MISAGENT_E_* error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Misagent.IMisagentApi.misagent_install(iMobileDevice.Misagent.MisagentClientHandle,iMobileDevice.Plist.PlistHandle)">
            <summary>
            Installs the given provisioning profile. Only works with valid profiles.
            </summary>
            <param name="client">
            The connected misagent to use for installation
            </param>
            <param name="profile">
            The valid provisioning profile to install. This has to be
            passed as a PLIST_DATA, otherwise the function will fail.
            </param>
            <returns>
            MISAGENT_E_SUCCESS on success, MISAGENT_E_INVALID_ARG when
            client is invalid, or an MISAGENT_E_* error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Misagent.IMisagentApi.misagent_copy(iMobileDevice.Misagent.MisagentClientHandle,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Retrieves all installed provisioning profiles (iOS 9.2.1 or below).
            </summary>
            <param name="client">
            The connected misagent to use.
            </param>
            <param name="profiles">
            Pointer to a plist_t that will be set to a PLIST_ARRAY
            if the function is successful.
            </param>
            <returns>
            MISAGENT_E_SUCCESS on success, MISAGENT_E_INVALID_ARG when
            client is invalid, or an MISAGENT_E_* error code otherwise.
            </returns>
            <remarks>
            This API call only works with iOS 9.2.1 or below.
            For newer iOS versions use misagent_copy_all() instead.
            If no provisioning profiles are installed on the device, this function
            still returns MISAGENT_E_SUCCESS and profiles will just point to an
            empty array.
            </remarks>
        </member>
        <member name="M:iMobileDevice.Misagent.IMisagentApi.misagent_copy_all(iMobileDevice.Misagent.MisagentClientHandle,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Retrieves all installed provisioning profiles (iOS 9.3 or higher).
            </summary>
            <param name="client">
            The connected misagent to use.
            </param>
            <param name="profiles">
            Pointer to a plist_t that will be set to a PLIST_ARRAY
            if the function is successful.
            </param>
            <returns>
            MISAGENT_E_SUCCESS on success, MISAGENT_E_INVALID_ARG when
            client is invalid, or an MISAGENT_E_* error code otherwise.
            </returns>
            <remarks>
            This API call only works with iOS 9.3 or higher.
            For older iOS versions use misagent_copy() instead.
            If no provisioning profiles are installed on the device, this function
            still returns MISAGENT_E_SUCCESS and profiles will just point to an
            empty array.
            </remarks>
        </member>
        <member name="M:iMobileDevice.Misagent.IMisagentApi.misagent_remove(iMobileDevice.Misagent.MisagentClientHandle,System.String)">
            <summary>
            Removes a given provisioning profile.
            </summary>
            <param name="client">
            The connected misagent to use.
            </param>
            <param name="profileID">
            Identifier of the provisioning profile to remove.
            This is a UUID that can be obtained from the provisioning profile data.
            </param>
            <returns>
            MISAGENT_E_SUCCESS on success, MISAGENT_E_INVALID_ARG when
            client is invalid, or an MISAGENT_E_* error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Misagent.IMisagentApi.misagent_get_status_code(iMobileDevice.Misagent.MisagentClientHandle)">
            <summary>
            Retrieves the status code from the last operation.
            </summary>
            <param name="client">
            The misagent to use.
            </param>
            <returns>
            -1 if client is invalid, or the status code from the last operation
            </returns>
        </member>
        <member name="F:iMobileDevice.Misagent.MisagentApi.parent">
            <summary>
            Backing field for the <see cref="P:iMobileDevice.Misagent.MisagentApi.Parent"/> property
            </summary>
        </member>
        <member name="M:iMobileDevice.Misagent.MisagentApi.#ctor(iMobileDevice.ILibiMobileDevice)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Misagent.MisagentApi"/> class
            </summary>
            <param name="parent">
            The <see cref="!:ILibiMobileDeviceApi"/> which owns this <see cref="N:iMobileDevice.Misagent"/>.
            </param>
        </member>
        <member name="P:iMobileDevice.Misagent.MisagentApi.Parent">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.Misagent.MisagentApi.misagent_client_new(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Lockdown.LockdownServiceDescriptorHandle,iMobileDevice.Misagent.MisagentClientHandle@)">
            <summary>
            Connects to the misagent 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">
            Pointer that will point to a newly allocated
            misagent_client_t upon successful return.
            </param>
            <returns>
            MISAGENT_E_SUCCESS on success, MISAGENT_E_INVALID_ARG when
            client is NULL, or an MISAGENT_E_* error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Misagent.MisagentApi.misagent_client_start_service(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Misagent.MisagentClientHandle@,System.String)">
            <summary>
            Starts a new misagent 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
            misagent_client_t upon successful return. Must be freed using
            misagent_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>
            MISAGENT_E_SUCCESS on success, or an MISAGENT_E_* error
            code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Misagent.MisagentApi.misagent_client_free(System.IntPtr)">
            <summary>
            Disconnects an misagent client from the device and frees up the
            misagent client data.
            </summary>
            <param name="client">
            The misagent client to disconnect and free.
            </param>
            <returns>
            MISAGENT_E_SUCCESS on success, MISAGENT_E_INVALID_ARG when
            client is NULL, or an MISAGENT_E_* error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Misagent.MisagentApi.misagent_install(iMobileDevice.Misagent.MisagentClientHandle,iMobileDevice.Plist.PlistHandle)">
            <summary>
            Installs the given provisioning profile. Only works with valid profiles.
            </summary>
            <param name="client">
            The connected misagent to use for installation
            </param>
            <param name="profile">
            The valid provisioning profile to install. This has to be
            passed as a PLIST_DATA, otherwise the function will fail.
            </param>
            <returns>
            MISAGENT_E_SUCCESS on success, MISAGENT_E_INVALID_ARG when
            client is invalid, or an MISAGENT_E_* error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Misagent.MisagentApi.misagent_copy(iMobileDevice.Misagent.MisagentClientHandle,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Retrieves all installed provisioning profiles (iOS 9.2.1 or below).
            </summary>
            <param name="client">
            The connected misagent to use.
            </param>
            <param name="profiles">
            Pointer to a plist_t that will be set to a PLIST_ARRAY
            if the function is successful.
            </param>
            <returns>
            MISAGENT_E_SUCCESS on success, MISAGENT_E_INVALID_ARG when
            client is invalid, or an MISAGENT_E_* error code otherwise.
            </returns>
            <remarks>
            This API call only works with iOS 9.2.1 or below.
            For newer iOS versions use misagent_copy_all() instead.
            If no provisioning profiles are installed on the device, this function
            still returns MISAGENT_E_SUCCESS and profiles will just point to an
            empty array.
            </remarks>
        </member>
        <member name="M:iMobileDevice.Misagent.MisagentApi.misagent_copy_all(iMobileDevice.Misagent.MisagentClientHandle,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Retrieves all installed provisioning profiles (iOS 9.3 or higher).
            </summary>
            <param name="client">
            The connected misagent to use.
            </param>
            <param name="profiles">
            Pointer to a plist_t that will be set to a PLIST_ARRAY
            if the function is successful.
            </param>
            <returns>
            MISAGENT_E_SUCCESS on success, MISAGENT_E_INVALID_ARG when
            client is invalid, or an MISAGENT_E_* error code otherwise.
            </returns>
            <remarks>
            This API call only works with iOS 9.3 or higher.
            For older iOS versions use misagent_copy() instead.
            If no provisioning profiles are installed on the device, this function
            still returns MISAGENT_E_SUCCESS and profiles will just point to an
            empty array.
            </remarks>
        </member>
        <member name="M:iMobileDevice.Misagent.MisagentApi.misagent_remove(iMobileDevice.Misagent.MisagentClientHandle,System.String)">
            <summary>
            Removes a given provisioning profile.
            </summary>
            <param name="client">
            The connected misagent to use.
            </param>
            <param name="profileID">
            Identifier of the provisioning profile to remove.
            This is a UUID that can be obtained from the provisioning profile data.
            </param>
            <returns>
            MISAGENT_E_SUCCESS on success, MISAGENT_E_INVALID_ARG when
            client is invalid, or an MISAGENT_E_* error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Misagent.MisagentApi.misagent_get_status_code(iMobileDevice.Misagent.MisagentClientHandle)">
            <summary>
            Retrieves the status code from the last operation.
            </summary>
            <param name="client">
            The misagent to use.
            </param>
            <returns>
            -1 if client is invalid, or the status code from the last operation
            </returns>
        </member>
        <member name="T:iMobileDevice.Misagent.MisagentClientHandle">
            <summary>
            Represents a wrapper class for Misagent handles.
            </summary>
        </member>
        <member name="M:iMobileDevice.Misagent.MisagentClientHandle.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Misagent.MisagentClientHandle"/> class.
            </summary>
        </member>
        <member name="M:iMobileDevice.Misagent.MisagentClientHandle.#ctor(System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Misagent.MisagentClientHandle"/> class, specifying whether the handle is to be reliably released.
            </summary>
            <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>
        </member>
        <member name="P:iMobileDevice.Misagent.MisagentClientHandle.Api">
            <summary>
            Gets or sets the API to use
            </summary>
        </member>
        <member name="P:iMobileDevice.Misagent.MisagentClientHandle.Zero">
            <summary>
            Gets a value which represents a pointer or handle that has been initialized to zero.
            </summary>
        </member>
        <member name="M:iMobileDevice.Misagent.MisagentClientHandle.ReleaseHandle">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.Misagent.MisagentClientHandle.DangerousCreate(System.IntPtr,System.Boolean)">
            <summary>
            Creates a new <see cref="T:iMobileDevice.Misagent.MisagentClientHandle"/> from a <see cref="T:System.IntPtr"/>.
            </summary>
            <param name="unsafeHandle">
            The underlying <see cref="T:System.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>
        </member>
        <member name="M:iMobileDevice.Misagent.MisagentClientHandle.DangerousCreate(System.IntPtr)">
            <summary>
            Creates a new <see cref="T:iMobileDevice.Misagent.MisagentClientHandle"/> from a <see cref="T:System.IntPtr"/>.
            </summary>
            <param name="unsafeHandle">
            The underlying <see cref="T:System.IntPtr"/>
            </param>
            <returns>
            </returns>
        </member>
        <member name="M:iMobileDevice.Misagent.MisagentClientHandle.ToString">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.Misagent.MisagentClientHandle.Equals(System.Object)">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.Misagent.MisagentClientHandle.GetHashCode">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.Misagent.MisagentClientHandle.op_Equality(iMobileDevice.Misagent.MisagentClientHandle,iMobileDevice.Misagent.MisagentClientHandle)">
            <summary>
            Determines whether two specified instances of <see cref="T:iMobileDevice.Misagent.MisagentClientHandle"/> are equal.
            </summary>
            <param name="value1">
            The first pointer or handle to compare.
            </param>
            <param name="value2">
            The second pointer or handle to compare.
            </param>
            <returns>
            <see langword="true"/> if <paramref name="value1"/> equals <paramref name="value2"/>; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="M:iMobileDevice.Misagent.MisagentClientHandle.op_Inequality(iMobileDevice.Misagent.MisagentClientHandle,iMobileDevice.Misagent.MisagentClientHandle)">
            <summary>
            Determines whether two specified instances of <see cref="T:iMobileDevice.Misagent.MisagentClientHandle"/> are not equal.
            </summary>
            <param name="value1">
            The first pointer or handle to compare.
            </param>
            <param name="value2">
            The second pointer or handle to compare.
            </param>
            <returns>
            <see langword="true"/> if <paramref name="value1"/> does not equal <paramref name="value2"/>; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="T:iMobileDevice.Misagent.MisagentError">
            <summary>
            Error Codes 
            </summary>
        </member>
        <member name="T:iMobileDevice.Misagent.MisagentException">
            Represents an exception that occurred when interacting with the Misagent API.
        </member>
        <member name="F:iMobileDevice.Misagent.MisagentException.errorCode">
            <summary>
            Backing field for the <see cref="P:iMobileDevice.Misagent.MisagentException.ErrorCode"/> property.
            </summary>
        </member>
        <member name="M:iMobileDevice.Misagent.MisagentException.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Misagent.MisagentException"/> class.
            </summary>
        </member>
        <member name="M:iMobileDevice.Misagent.MisagentException.#ctor(iMobileDevice.Misagent.MisagentError)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Misagent.MisagentException"/> class with a specified error code.
            </summary>
            <param name="error">
            The error code of the error that occurred.
            </param>
        </member>
        <member name="M:iMobileDevice.Misagent.MisagentException.#ctor(iMobileDevice.Misagent.MisagentError,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Misagent.MisagentException"/> class with a specified error code and error message.
            </summary>
            <param name="error">
            The error code of the error that occurred.
            </param>
            <param name="message">
            A message which describes the error.
            </param>
        </member>
        <member name="M:iMobileDevice.Misagent.MisagentException.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Misagent.MisagentException"/> class with a specified error message.
            </summary>
            <param name="message">
            The message that describes the error.
            </param>
        </member>
        <member name="M:iMobileDevice.Misagent.MisagentException.#ctor(System.String,System.Exception)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Misagent.MisagentException"/> class with a specified error message and a reference to the inner exception that is the cause of this exception.
            </summary>
            <param name="message">
            The error message that explains the reason for the exception.
            </param>
            <param name="inner">
            The exception that is the cause of the current exception, or <see langword="null"/> if no inner exception is specified.
            </param>
        </member>
        <member name="M:iMobileDevice.Misagent.MisagentException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Misagent.MisagentException"/> class with serialized data.
            </summary>
            <param name="info">
            The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds the serialized object data about the exception being thrown.
            </param>
            <param name="context">
            The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that contains contextual information about the source or destination.
            </param>
        </member>
        <member name="P:iMobileDevice.Misagent.MisagentException.ErrorCode">
            <summary>
            Gets the error code that represents the error.
            </summary>
        </member>
        <member name="M:iMobileDevice.Misagent.MisagentNativeMethods.misagent_client_new(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Lockdown.LockdownServiceDescriptorHandle,iMobileDevice.Misagent.MisagentClientHandle@)">
            <summary>
            Connects to the misagent 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">
            Pointer that will point to a newly allocated
            misagent_client_t upon successful return.
            </param>
            <returns>
            MISAGENT_E_SUCCESS on success, MISAGENT_E_INVALID_ARG when
            client is NULL, or an MISAGENT_E_* error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Misagent.MisagentNativeMethods.misagent_client_start_service(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Misagent.MisagentClientHandle@,System.String)">
            <summary>
            Starts a new misagent 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
            misagent_client_t upon successful return. Must be freed using
            misagent_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>
            MISAGENT_E_SUCCESS on success, or an MISAGENT_E_* error
            code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Misagent.MisagentNativeMethods.misagent_client_free(System.IntPtr)">
            <summary>
            Disconnects an misagent client from the device and frees up the
            misagent client data.
            </summary>
            <param name="client">
            The misagent client to disconnect and free.
            </param>
            <returns>
            MISAGENT_E_SUCCESS on success, MISAGENT_E_INVALID_ARG when
            client is NULL, or an MISAGENT_E_* error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Misagent.MisagentNativeMethods.misagent_install(iMobileDevice.Misagent.MisagentClientHandle,iMobileDevice.Plist.PlistHandle)">
            <summary>
            Installs the given provisioning profile. Only works with valid profiles.
            </summary>
            <param name="client">
            The connected misagent to use for installation
            </param>
            <param name="profile">
            The valid provisioning profile to install. This has to be
            passed as a PLIST_DATA, otherwise the function will fail.
            </param>
            <returns>
            MISAGENT_E_SUCCESS on success, MISAGENT_E_INVALID_ARG when
            client is invalid, or an MISAGENT_E_* error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Misagent.MisagentNativeMethods.misagent_copy(iMobileDevice.Misagent.MisagentClientHandle,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Retrieves all installed provisioning profiles (iOS 9.2.1 or below).
            </summary>
            <param name="client">
            The connected misagent to use.
            </param>
            <param name="profiles">
            Pointer to a plist_t that will be set to a PLIST_ARRAY
            if the function is successful.
            </param>
            <returns>
            MISAGENT_E_SUCCESS on success, MISAGENT_E_INVALID_ARG when
            client is invalid, or an MISAGENT_E_* error code otherwise.
            </returns>
            <remarks>
            This API call only works with iOS 9.2.1 or below.
            For newer iOS versions use misagent_copy_all() instead.
            If no provisioning profiles are installed on the device, this function
            still returns MISAGENT_E_SUCCESS and profiles will just point to an
            empty array.
            </remarks>
        </member>
        <member name="M:iMobileDevice.Misagent.MisagentNativeMethods.misagent_copy_all(iMobileDevice.Misagent.MisagentClientHandle,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Retrieves all installed provisioning profiles (iOS 9.3 or higher).
            </summary>
            <param name="client">
            The connected misagent to use.
            </param>
            <param name="profiles">
            Pointer to a plist_t that will be set to a PLIST_ARRAY
            if the function is successful.
            </param>
            <returns>
            MISAGENT_E_SUCCESS on success, MISAGENT_E_INVALID_ARG when
            client is invalid, or an MISAGENT_E_* error code otherwise.
            </returns>
            <remarks>
            This API call only works with iOS 9.3 or higher.
            For older iOS versions use misagent_copy() instead.
            If no provisioning profiles are installed on the device, this function
            still returns MISAGENT_E_SUCCESS and profiles will just point to an
            empty array.
            </remarks>
        </member>
        <member name="M:iMobileDevice.Misagent.MisagentNativeMethods.misagent_remove(iMobileDevice.Misagent.MisagentClientHandle,System.String)">
            <summary>
            Removes a given provisioning profile.
            </summary>
            <param name="client">
            The connected misagent to use.
            </param>
            <param name="profileID">
            Identifier of the provisioning profile to remove.
            This is a UUID that can be obtained from the provisioning profile data.
            </param>
            <returns>
            MISAGENT_E_SUCCESS on success, MISAGENT_E_INVALID_ARG when
            client is invalid, or an MISAGENT_E_* error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Misagent.MisagentNativeMethods.misagent_get_status_code(iMobileDevice.Misagent.MisagentClientHandle)">
            <summary>
            Retrieves the status code from the last operation.
            </summary>
            <param name="client">
            The misagent to use.
            </param>
            <returns>
            -1 if client is invalid, or the status code from the last operation
            </returns>
        </member>
        <member name="P:iMobileDevice.Mobileactivation.IMobileactivationApi.Parent">
            <summary>
            Gets or sets the <see cref="!:ILibiMobileDeviceApi"/> which owns this <see cref="N:iMobileDevice.Mobileactivation"/>.
            </summary>
        </member>
        <member name="M:iMobileDevice.Mobileactivation.IMobileactivationApi.mobileactivation_client_new(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Lockdown.LockdownServiceDescriptorHandle,iMobileDevice.Mobileactivation.MobileactivationClientHandle@)">
            <summary>
            Connects to the mobileactivation 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
            mobileactivation_client_t upon successful return.
            </param>
            <returns>
            MOBILEACTIVATION_E_SUCCESS on success,
            MOBILEACTIVATION_E_INVALID_ARG when one of the parameters is invalid,
            or MOBILEACTIVATION_E_MUX_ERROR when the connection failed.
            </returns>
        </member>
        <member name="M:iMobileDevice.Mobileactivation.IMobileactivationApi.mobileactivation_client_start_service(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Mobileactivation.MobileactivationClientHandle@,System.String)">
            <summary>
            Starts a new mobileactivation 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
            mobileactivation_client_t upon successful return. Must be freed using
            mobileactivation_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>
            MOBILEACTIVATION_E_SUCCESS on success, or an MOBILEACTIVATION_E_*
            error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Mobileactivation.IMobileactivationApi.mobileactivation_client_free(System.IntPtr)">
            <summary>
            Disconnects a mobileactivation client from the device and frees up the
            mobileactivation client data.
            </summary>
            <param name="client">
            The mobileactivation client to disconnect and free.
            </param>
            <returns>
            MOBILEACTIVATION_E_SUCCESS on success,
            MOBILEACTIVATION_E_INVALID_ARG when one of client or client->parent
            is invalid, or MOBILEACTIVATION_E_UNKNOWN_ERROR when the was an
            error freeing the parent property_list_service client.
            </returns>
        </member>
        <member name="M:iMobileDevice.Mobileactivation.IMobileactivationApi.mobileactivation_get_activation_state(iMobileDevice.Mobileactivation.MobileactivationClientHandle,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Retrieves the device's activation state.
            </summary>
            <param name="client">
            The mobileactivation client.
            </param>
            <param name="state">
            Pointer to a plist_t variable that will be set to the
            activation state reported by the mobileactivation service. The
            consumer is responsible for freeing the returned object using
            plist_free().
            </param>
            <returns>
            MOBILEACTIVATION_E_SUCCESS on success, or an MOBILEACTIVATION_E_*
            error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Mobileactivation.IMobileactivationApi.mobileactivation_create_activation_session_info(iMobileDevice.Mobileactivation.MobileactivationClientHandle,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Retrieves a session blob required for 'drmHandshake' via albert.apple.com.
            </summary>
            <param name="client">
            The mobileactivation client
            </param>
            <param name="blob">
            Pointer to a plist_t variable that will be set to the
            session blob created by the mobielactivation service. The
            consumer is responsible for freeing the returned object using
            plist_free().
            </param>
            <returns>
            MOBILEACTIVATION_E_SUCCESS on success, or an MOBILEACTIVATION_E_*
            error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Mobileactivation.IMobileactivationApi.mobileactivation_create_activation_info(iMobileDevice.Mobileactivation.MobileactivationClientHandle,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Retrieves the activation info required for device activation.
            </summary>
            <param name="client">
            The mobileactivation client
            </param>
            <param name="info">
            Pointer to a plist_t variable that will be set to the
            activation info created by the mobileactivation service. The
            consumer is responsible for freeing the returned object using
            plist_free().
            </param>
            <returns>
            MOBILEACTIVATION_E_SUCCESS on success, or an MOBILEACTIVATION_E_*
            error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Mobileactivation.IMobileactivationApi.mobileactivation_create_activation_info_with_session(iMobileDevice.Mobileactivation.MobileactivationClientHandle,iMobileDevice.Plist.PlistHandle,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Retrieves the activation info required for device activation in 'session'
            mode. This function expects a handshake result retrieved from
            https://albert.apple.com/deviceservies/drmHandshake  with a blob
            provided by mobileactivation_create_activation_session_info().
            </summary>
            <param name="client">
            The mobileactivation client
            </param>
            <param name="handshake_response">
            The handshake response returned from drmHandshake
            </param>
            <param name="info">
            Pointer to a plist_t variable that will be set to the
            activation info created by the mobileactivation service. The
            consumer is responsible for freeing the returned object using
            plist_free().
            </param>
            <returns>
            MOBILEACTIVATION_E_SUCCESS on success, or an MOBILEACTIVATION_E_*
            error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Mobileactivation.IMobileactivationApi.mobileactivation_activate(iMobileDevice.Mobileactivation.MobileactivationClientHandle,iMobileDevice.Plist.PlistHandle)">
            <summary>
            Activates the device with the given activation record.
            The activation record plist dictionary must be obtained using the
            activation protocol requesting from Apple's https webservice.
            </summary>
            <param name="client">
            The mobileactivation client
            </param>
            <param name="activation_record">
            The activation record plist dictionary
            </param>
            <returns>
            MOBILEACTIVATION_E_SUCCESS on success, or an MOBILEACTIVATION_E_*
            error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Mobileactivation.IMobileactivationApi.mobileactivation_activate_with_session(iMobileDevice.Mobileactivation.MobileactivationClientHandle,iMobileDevice.Plist.PlistHandle,iMobileDevice.Plist.PlistHandle)">
            <summary>
            Activates the device with the given activation record in 'session' mode.
            The activation record plist must be obtained using the
            activation protocol requesting from Apple's https webservice.
            </summary>
            <param name="client">
            The mobileactivation client
            </param>
            <param name="activation_record">
            The activation record in plist format
            </param>
            <param name="headers">
            A plist dictionary with the activation response headers
            as returned from Apple's https webservice with the activation record
            </param>
            <returns>
            MOBILEACTIVATION_E_SUCCESS on success, or an MOBILEACTIVATION_E_*
            error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Mobileactivation.IMobileactivationApi.mobileactivation_deactivate(iMobileDevice.Mobileactivation.MobileactivationClientHandle)">
            <summary>
            Deactivates the device.
            </summary>
            <param name="client">
            The mobileactivation client
            </param>
        </member>
        <member name="F:iMobileDevice.Mobileactivation.MobileactivationApi.parent">
            <summary>
            Backing field for the <see cref="P:iMobileDevice.Mobileactivation.MobileactivationApi.Parent"/> property
            </summary>
        </member>
        <member name="M:iMobileDevice.Mobileactivation.MobileactivationApi.#ctor(iMobileDevice.ILibiMobileDevice)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Mobileactivation.MobileactivationApi"/> class
            </summary>
            <param name="parent">
            The <see cref="!:ILibiMobileDeviceApi"/> which owns this <see cref="N:iMobileDevice.Mobileactivation"/>.
            </param>
        </member>
        <member name="P:iMobileDevice.Mobileactivation.MobileactivationApi.Parent">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.Mobileactivation.MobileactivationApi.mobileactivation_client_new(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Lockdown.LockdownServiceDescriptorHandle,iMobileDevice.Mobileactivation.MobileactivationClientHandle@)">
            <summary>
            Connects to the mobileactivation 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
            mobileactivation_client_t upon successful return.
            </param>
            <returns>
            MOBILEACTIVATION_E_SUCCESS on success,
            MOBILEACTIVATION_E_INVALID_ARG when one of the parameters is invalid,
            or MOBILEACTIVATION_E_MUX_ERROR when the connection failed.
            </returns>
        </member>
        <member name="M:iMobileDevice.Mobileactivation.MobileactivationApi.mobileactivation_client_start_service(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Mobileactivation.MobileactivationClientHandle@,System.String)">
            <summary>
            Starts a new mobileactivation 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
            mobileactivation_client_t upon successful return. Must be freed using
            mobileactivation_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>
            MOBILEACTIVATION_E_SUCCESS on success, or an MOBILEACTIVATION_E_*
            error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Mobileactivation.MobileactivationApi.mobileactivation_client_free(System.IntPtr)">
            <summary>
            Disconnects a mobileactivation client from the device and frees up the
            mobileactivation client data.
            </summary>
            <param name="client">
            The mobileactivation client to disconnect and free.
            </param>
            <returns>
            MOBILEACTIVATION_E_SUCCESS on success,
            MOBILEACTIVATION_E_INVALID_ARG when one of client or client->parent
            is invalid, or MOBILEACTIVATION_E_UNKNOWN_ERROR when the was an
            error freeing the parent property_list_service client.
            </returns>
        </member>
        <member name="M:iMobileDevice.Mobileactivation.MobileactivationApi.mobileactivation_get_activation_state(iMobileDevice.Mobileactivation.MobileactivationClientHandle,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Retrieves the device's activation state.
            </summary>
            <param name="client">
            The mobileactivation client.
            </param>
            <param name="state">
            Pointer to a plist_t variable that will be set to the
            activation state reported by the mobileactivation service. The
            consumer is responsible for freeing the returned object using
            plist_free().
            </param>
            <returns>
            MOBILEACTIVATION_E_SUCCESS on success, or an MOBILEACTIVATION_E_*
            error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Mobileactivation.MobileactivationApi.mobileactivation_create_activation_session_info(iMobileDevice.Mobileactivation.MobileactivationClientHandle,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Retrieves a session blob required for 'drmHandshake' via albert.apple.com.
            </summary>
            <param name="client">
            The mobileactivation client
            </param>
            <param name="blob">
            Pointer to a plist_t variable that will be set to the
            session blob created by the mobielactivation service. The
            consumer is responsible for freeing the returned object using
            plist_free().
            </param>
            <returns>
            MOBILEACTIVATION_E_SUCCESS on success, or an MOBILEACTIVATION_E_*
            error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Mobileactivation.MobileactivationApi.mobileactivation_create_activation_info(iMobileDevice.Mobileactivation.MobileactivationClientHandle,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Retrieves the activation info required for device activation.
            </summary>
            <param name="client">
            The mobileactivation client
            </param>
            <param name="info">
            Pointer to a plist_t variable that will be set to the
            activation info created by the mobileactivation service. The
            consumer is responsible for freeing the returned object using
            plist_free().
            </param>
            <returns>
            MOBILEACTIVATION_E_SUCCESS on success, or an MOBILEACTIVATION_E_*
            error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Mobileactivation.MobileactivationApi.mobileactivation_create_activation_info_with_session(iMobileDevice.Mobileactivation.MobileactivationClientHandle,iMobileDevice.Plist.PlistHandle,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Retrieves the activation info required for device activation in 'session'
            mode. This function expects a handshake result retrieved from
            https://albert.apple.com/deviceservies/drmHandshake  with a blob
            provided by mobileactivation_create_activation_session_info().
            </summary>
            <param name="client">
            The mobileactivation client
            </param>
            <param name="handshake_response">
            The handshake response returned from drmHandshake
            </param>
            <param name="info">
            Pointer to a plist_t variable that will be set to the
            activation info created by the mobileactivation service. The
            consumer is responsible for freeing the returned object using
            plist_free().
            </param>
            <returns>
            MOBILEACTIVATION_E_SUCCESS on success, or an MOBILEACTIVATION_E_*
            error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Mobileactivation.MobileactivationApi.mobileactivation_activate(iMobileDevice.Mobileactivation.MobileactivationClientHandle,iMobileDevice.Plist.PlistHandle)">
            <summary>
            Activates the device with the given activation record.
            The activation record plist dictionary must be obtained using the
            activation protocol requesting from Apple's https webservice.
            </summary>
            <param name="client">
            The mobileactivation client
            </param>
            <param name="activation_record">
            The activation record plist dictionary
            </param>
            <returns>
            MOBILEACTIVATION_E_SUCCESS on success, or an MOBILEACTIVATION_E_*
            error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Mobileactivation.MobileactivationApi.mobileactivation_activate_with_session(iMobileDevice.Mobileactivation.MobileactivationClientHandle,iMobileDevice.Plist.PlistHandle,iMobileDevice.Plist.PlistHandle)">
            <summary>
            Activates the device with the given activation record in 'session' mode.
            The activation record plist must be obtained using the
            activation protocol requesting from Apple's https webservice.
            </summary>
            <param name="client">
            The mobileactivation client
            </param>
            <param name="activation_record">
            The activation record in plist format
            </param>
            <param name="headers">
            A plist dictionary with the activation response headers
            as returned from Apple's https webservice with the activation record
            </param>
            <returns>
            MOBILEACTIVATION_E_SUCCESS on success, or an MOBILEACTIVATION_E_*
            error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Mobileactivation.MobileactivationApi.mobileactivation_deactivate(iMobileDevice.Mobileactivation.MobileactivationClientHandle)">
            <summary>
            Deactivates the device.
            </summary>
            <param name="client">
            The mobileactivation client
            </param>
        </member>
        <member name="T:iMobileDevice.Mobileactivation.MobileactivationClientHandle">
            <summary>
            Represents a wrapper class for Mobileactivation handles.
            </summary>
        </member>
        <member name="M:iMobileDevice.Mobileactivation.MobileactivationClientHandle.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Mobileactivation.MobileactivationClientHandle"/> class.
            </summary>
        </member>
        <member name="M:iMobileDevice.Mobileactivation.MobileactivationClientHandle.#ctor(System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Mobileactivation.MobileactivationClientHandle"/> class, specifying whether the handle is to be reliably released.
            </summary>
            <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>
        </member>
        <member name="P:iMobileDevice.Mobileactivation.MobileactivationClientHandle.Api">
            <summary>
            Gets or sets the API to use
            </summary>
        </member>
        <member name="P:iMobileDevice.Mobileactivation.MobileactivationClientHandle.Zero">
            <summary>
            Gets a value which represents a pointer or handle that has been initialized to zero.
            </summary>
        </member>
        <member name="M:iMobileDevice.Mobileactivation.MobileactivationClientHandle.ReleaseHandle">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.Mobileactivation.MobileactivationClientHandle.DangerousCreate(System.IntPtr,System.Boolean)">
            <summary>
            Creates a new <see cref="T:iMobileDevice.Mobileactivation.MobileactivationClientHandle"/> from a <see cref="T:System.IntPtr"/>.
            </summary>
            <param name="unsafeHandle">
            The underlying <see cref="T:System.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>
        </member>
        <member name="M:iMobileDevice.Mobileactivation.MobileactivationClientHandle.DangerousCreate(System.IntPtr)">
            <summary>
            Creates a new <see cref="T:iMobileDevice.Mobileactivation.MobileactivationClientHandle"/> from a <see cref="T:System.IntPtr"/>.
            </summary>
            <param name="unsafeHandle">
            The underlying <see cref="T:System.IntPtr"/>
            </param>
            <returns>
            </returns>
        </member>
        <member name="M:iMobileDevice.Mobileactivation.MobileactivationClientHandle.ToString">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.Mobileactivation.MobileactivationClientHandle.Equals(System.Object)">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.Mobileactivation.MobileactivationClientHandle.GetHashCode">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.Mobileactivation.MobileactivationClientHandle.op_Equality(iMobileDevice.Mobileactivation.MobileactivationClientHandle,iMobileDevice.Mobileactivation.MobileactivationClientHandle)">
            <summary>
            Determines whether two specified instances of <see cref="T:iMobileDevice.Mobileactivation.MobileactivationClientHandle"/> are equal.
            </summary>
            <param name="value1">
            The first pointer or handle to compare.
            </param>
            <param name="value2">
            The second pointer or handle to compare.
            </param>
            <returns>
            <see langword="true"/> if <paramref name="value1"/> equals <paramref name="value2"/>; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="M:iMobileDevice.Mobileactivation.MobileactivationClientHandle.op_Inequality(iMobileDevice.Mobileactivation.MobileactivationClientHandle,iMobileDevice.Mobileactivation.MobileactivationClientHandle)">
            <summary>
            Determines whether two specified instances of <see cref="T:iMobileDevice.Mobileactivation.MobileactivationClientHandle"/> are not equal.
            </summary>
            <param name="value1">
            The first pointer or handle to compare.
            </param>
            <param name="value2">
            The second pointer or handle to compare.
            </param>
            <returns>
            <see langword="true"/> if <paramref name="value1"/> does not equal <paramref name="value2"/>; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="T:iMobileDevice.Mobileactivation.MobileactivationError">
            <summary>
            Error Codes 
            </summary>
        </member>
        <member name="T:iMobileDevice.Mobileactivation.MobileactivationException">
            Represents an exception that occurred when interacting with the Mobileactivation API.
        </member>
        <member name="F:iMobileDevice.Mobileactivation.MobileactivationException.errorCode">
            <summary>
            Backing field for the <see cref="P:iMobileDevice.Mobileactivation.MobileactivationException.ErrorCode"/> property.
            </summary>
        </member>
        <member name="M:iMobileDevice.Mobileactivation.MobileactivationException.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Mobileactivation.MobileactivationException"/> class.
            </summary>
        </member>
        <member name="M:iMobileDevice.Mobileactivation.MobileactivationException.#ctor(iMobileDevice.Mobileactivation.MobileactivationError)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Mobileactivation.MobileactivationException"/> class with a specified error code.
            </summary>
            <param name="error">
            The error code of the error that occurred.
            </param>
        </member>
        <member name="M:iMobileDevice.Mobileactivation.MobileactivationException.#ctor(iMobileDevice.Mobileactivation.MobileactivationError,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Mobileactivation.MobileactivationException"/> class with a specified error code and error message.
            </summary>
            <param name="error">
            The error code of the error that occurred.
            </param>
            <param name="message">
            A message which describes the error.
            </param>
        </member>
        <member name="M:iMobileDevice.Mobileactivation.MobileactivationException.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Mobileactivation.MobileactivationException"/> class with a specified error message.
            </summary>
            <param name="message">
            The message that describes the error.
            </param>
        </member>
        <member name="M:iMobileDevice.Mobileactivation.MobileactivationException.#ctor(System.String,System.Exception)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Mobileactivation.MobileactivationException"/> class with a specified error message and a reference to the inner exception that is the cause of this exception.
            </summary>
            <param name="message">
            The error message that explains the reason for the exception.
            </param>
            <param name="inner">
            The exception that is the cause of the current exception, or <see langword="null"/> if no inner exception is specified.
            </param>
        </member>
        <member name="M:iMobileDevice.Mobileactivation.MobileactivationException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Mobileactivation.MobileactivationException"/> class with serialized data.
            </summary>
            <param name="info">
            The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds the serialized object data about the exception being thrown.
            </param>
            <param name="context">
            The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that contains contextual information about the source or destination.
            </param>
        </member>
        <member name="P:iMobileDevice.Mobileactivation.MobileactivationException.ErrorCode">
            <summary>
            Gets the error code that represents the error.
            </summary>
        </member>
        <member name="M:iMobileDevice.Mobileactivation.MobileactivationNativeMethods.mobileactivation_client_new(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Lockdown.LockdownServiceDescriptorHandle,iMobileDevice.Mobileactivation.MobileactivationClientHandle@)">
            <summary>
            Connects to the mobileactivation 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
            mobileactivation_client_t upon successful return.
            </param>
            <returns>
            MOBILEACTIVATION_E_SUCCESS on success,
            MOBILEACTIVATION_E_INVALID_ARG when one of the parameters is invalid,
            or MOBILEACTIVATION_E_MUX_ERROR when the connection failed.
            </returns>
        </member>
        <member name="M:iMobileDevice.Mobileactivation.MobileactivationNativeMethods.mobileactivation_client_start_service(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Mobileactivation.MobileactivationClientHandle@,System.String)">
            <summary>
            Starts a new mobileactivation 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
            mobileactivation_client_t upon successful return. Must be freed using
            mobileactivation_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>
            MOBILEACTIVATION_E_SUCCESS on success, or an MOBILEACTIVATION_E_*
            error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Mobileactivation.MobileactivationNativeMethods.mobileactivation_client_free(System.IntPtr)">
            <summary>
            Disconnects a mobileactivation client from the device and frees up the
            mobileactivation client data.
            </summary>
            <param name="client">
            The mobileactivation client to disconnect and free.
            </param>
            <returns>
            MOBILEACTIVATION_E_SUCCESS on success,
            MOBILEACTIVATION_E_INVALID_ARG when one of client or client->parent
            is invalid, or MOBILEACTIVATION_E_UNKNOWN_ERROR when the was an
            error freeing the parent property_list_service client.
            </returns>
        </member>
        <member name="M:iMobileDevice.Mobileactivation.MobileactivationNativeMethods.mobileactivation_get_activation_state(iMobileDevice.Mobileactivation.MobileactivationClientHandle,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Retrieves the device's activation state.
            </summary>
            <param name="client">
            The mobileactivation client.
            </param>
            <param name="state">
            Pointer to a plist_t variable that will be set to the
            activation state reported by the mobileactivation service. The
            consumer is responsible for freeing the returned object using
            plist_free().
            </param>
            <returns>
            MOBILEACTIVATION_E_SUCCESS on success, or an MOBILEACTIVATION_E_*
            error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Mobileactivation.MobileactivationNativeMethods.mobileactivation_create_activation_session_info(iMobileDevice.Mobileactivation.MobileactivationClientHandle,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Retrieves a session blob required for 'drmHandshake' via albert.apple.com.
            </summary>
            <param name="client">
            The mobileactivation client
            </param>
            <param name="blob">
            Pointer to a plist_t variable that will be set to the
            session blob created by the mobielactivation service. The
            consumer is responsible for freeing the returned object using
            plist_free().
            </param>
            <returns>
            MOBILEACTIVATION_E_SUCCESS on success, or an MOBILEACTIVATION_E_*
            error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Mobileactivation.MobileactivationNativeMethods.mobileactivation_create_activation_info(iMobileDevice.Mobileactivation.MobileactivationClientHandle,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Retrieves the activation info required for device activation.
            </summary>
            <param name="client">
            The mobileactivation client
            </param>
            <param name="info">
            Pointer to a plist_t variable that will be set to the
            activation info created by the mobileactivation service. The
            consumer is responsible for freeing the returned object using
            plist_free().
            </param>
            <returns>
            MOBILEACTIVATION_E_SUCCESS on success, or an MOBILEACTIVATION_E_*
            error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Mobileactivation.MobileactivationNativeMethods.mobileactivation_create_activation_info_with_session(iMobileDevice.Mobileactivation.MobileactivationClientHandle,iMobileDevice.Plist.PlistHandle,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Retrieves the activation info required for device activation in 'session'
            mode. This function expects a handshake result retrieved from
            https://albert.apple.com/deviceservies/drmHandshake  with a blob
            provided by mobileactivation_create_activation_session_info().
            </summary>
            <param name="client">
            The mobileactivation client
            </param>
            <param name="handshake_response">
            The handshake response returned from drmHandshake
            </param>
            <param name="info">
            Pointer to a plist_t variable that will be set to the
            activation info created by the mobileactivation service. The
            consumer is responsible for freeing the returned object using
            plist_free().
            </param>
            <returns>
            MOBILEACTIVATION_E_SUCCESS on success, or an MOBILEACTIVATION_E_*
            error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Mobileactivation.MobileactivationNativeMethods.mobileactivation_activate(iMobileDevice.Mobileactivation.MobileactivationClientHandle,iMobileDevice.Plist.PlistHandle)">
            <summary>
            Activates the device with the given activation record.
            The activation record plist dictionary must be obtained using the
            activation protocol requesting from Apple's https webservice.
            </summary>
            <param name="client">
            The mobileactivation client
            </param>
            <param name="activation_record">
            The activation record plist dictionary
            </param>
            <returns>
            MOBILEACTIVATION_E_SUCCESS on success, or an MOBILEACTIVATION_E_*
            error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Mobileactivation.MobileactivationNativeMethods.mobileactivation_activate_with_session(iMobileDevice.Mobileactivation.MobileactivationClientHandle,iMobileDevice.Plist.PlistHandle,iMobileDevice.Plist.PlistHandle)">
            <summary>
            Activates the device with the given activation record in 'session' mode.
            The activation record plist must be obtained using the
            activation protocol requesting from Apple's https webservice.
            </summary>
            <param name="client">
            The mobileactivation client
            </param>
            <param name="activation_record">
            The activation record in plist format
            </param>
            <param name="headers">
            A plist dictionary with the activation response headers
            as returned from Apple's https webservice with the activation record
            </param>
            <returns>
            MOBILEACTIVATION_E_SUCCESS on success, or an MOBILEACTIVATION_E_*
            error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Mobileactivation.MobileactivationNativeMethods.mobileactivation_deactivate(iMobileDevice.Mobileactivation.MobileactivationClientHandle)">
            <summary>
            Deactivates the device.
            </summary>
            <param name="client">
            The mobileactivation client
            </param>
        </member>
        <member name="P:iMobileDevice.MobileBackup2.IMobileBackup2Api.Parent">
            <summary>
            Gets or sets the <see cref="!:ILibiMobileDeviceApi"/> which owns this <see cref="N:iMobileDevice.MobileBackup2"/>.
            </summary>
        </member>
        <member name="M:iMobileDevice.MobileBackup2.IMobileBackup2Api.mobilebackup2_client_new(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Lockdown.LockdownServiceDescriptorHandle,iMobileDevice.MobileBackup2.MobileBackup2ClientHandle@)">
            <summary>
            Connects to the mobilebackup2 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">
            Pointer that will be set to a newly allocated
            mobilebackup2_client_t upon successful return.
            </param>
            <returns>
            MOBILEBACKUP2_E_SUCCESS on success, MOBILEBACKUP2_E_INVALID ARG
            if one or more parameter is invalid, or MOBILEBACKUP2_E_BAD_VERSION
            if the mobilebackup2 version on the device is newer.
            </returns>
        </member>
        <member name="M:iMobileDevice.MobileBackup2.IMobileBackup2Api.mobilebackup2_client_start_service(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.MobileBackup2.MobileBackup2ClientHandle@,System.String)">
            <summary>
            Starts a new mobilebackup2 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
            mobilebackup2_client_t upon successful return. Must be freed using
            mobilebackup2_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>
            MOBILEBACKUP2_E_SUCCESS on success, or an MOBILEBACKUP2_E_* error
            code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.MobileBackup2.IMobileBackup2Api.mobilebackup2_client_free(System.IntPtr)">
            <summary>
            Disconnects a mobilebackup2 client from the device and frees up the
            mobilebackup2 client data.
            </summary>
            <param name="client">
            The mobilebackup2 client to disconnect and free.
            </param>
            <returns>
            MOBILEBACKUP2_E_SUCCESS on success, or MOBILEBACKUP2_E_INVALID_ARG
            if client is NULL.
            </returns>
        </member>
        <member name="M:iMobileDevice.MobileBackup2.IMobileBackup2Api.mobilebackup2_send_message(iMobileDevice.MobileBackup2.MobileBackup2ClientHandle,System.String,iMobileDevice.Plist.PlistHandle)">
            <summary>
            Sends a backup message plist.
            </summary>
            <param name="client">
            The connected MobileBackup client to use.
            </param>
            <param name="message">
            The message to send. This will be inserted into the request
            plist as value for MessageName. If this parameter is NULL,
            the plist passed in the options parameter will be sent directly.
            </param>
            <param name="options">
            Additional options as PLIST_DICT to add to the request.
            The MessageName key with the value passed in the message parameter
            will be inserted into this plist before sending it. This parameter
            can be NULL if message is not NULL.
            </param>
        </member>
        <member name="M:iMobileDevice.MobileBackup2.IMobileBackup2Api.mobilebackup2_receive_message(iMobileDevice.MobileBackup2.MobileBackup2ClientHandle,iMobileDevice.Plist.PlistHandle@,System.String@)">
            <summary>
            Receives a DL* message plist from the device.
            This function is a wrapper around device_link_service_receive_message.
            </summary>
            <param name="client">
            The connected MobileBackup client to use.
            </param>
            <param name="msg_plist">
            Pointer to a plist that will be set to the contents of the
            message plist upon successful return.
            </param>
            <param name="dlmessage">
            A pointer that will be set to a newly allocated char*
            containing the DL* string from the given plist. It is up to the caller
            to free the allocated memory. If this parameter is NULL
            it will be ignored.
            </param>
            <returns>
            MOBILEBACKUP2_E_SUCCESS if a DL* message was received,
            MOBILEBACKUP2_E_INVALID_ARG if client or message is invalid,
            MOBILEBACKUP2_E_PLIST_ERROR if the received plist is invalid
            or is not a DL* message plist, or MOBILEBACKUP2_E_MUX_ERROR if
            receiving from the device failed.
            </returns>
        </member>
        <member name="M:iMobileDevice.MobileBackup2.IMobileBackup2Api.mobilebackup2_send_raw(iMobileDevice.MobileBackup2.MobileBackup2ClientHandle,System.Byte[],System.UInt32,System.UInt32@)">
            <summary>
            Send binary data to the device.
            </summary>
            <param name="client">
            The MobileBackup client to send to.
            </param>
            <param name="data">
            Pointer to the data to send
            </param>
            <param name="length">
            Number of bytes to send
            </param>
            <param name="bytes">
            Number of bytes actually sent
            </param>
            <returns>
            MOBILEBACKUP2_E_SUCCESS if any data was successfully sent,
            MOBILEBACKUP2_E_INVALID_ARG if one of the parameters is invalid,
            or MOBILEBACKUP2_E_MUX_ERROR if sending of the data failed.
            </returns>
            <remarks>
            This function returns MOBILEBACKUP2_E_SUCCESS even if less than the
            requested length has been sent. The fourth parameter is required and
            must be checked to ensure if the whole data has been sent.
            </remarks>
        </member>
        <member name="M:iMobileDevice.MobileBackup2.IMobileBackup2Api.mobilebackup2_receive_raw(iMobileDevice.MobileBackup2.MobileBackup2ClientHandle,System.Byte[],System.UInt32,System.UInt32@)">
            <summary>
            Receive binary from the device.
            </summary>
            <param name="client">
            The MobileBackup client to receive from.
            </param>
            <param name="data">
            Pointer to a buffer that will be filled with the received data.
            </param>
            <param name="length">
            Number of bytes to receive. The data buffer needs to be large
            enough to store this amount of data.
            </param>
            <param name="bytes">
            Number of bytes actually received.
            </param>
            <returns>
            MOBILEBACKUP2_E_SUCCESS if any or no data was received,
            MOBILEBACKUP2_E_INVALID_ARG if one of the parameters is invalid,
            or MOBILEBACKUP2_E_MUX_ERROR if receiving the data failed.
            </returns>
            <remarks>
            This function returns MOBILEBACKUP2_E_SUCCESS even if no data
            has been received (unless a communication error occurred).
            The fourth parameter is required and must be checked to know how
            many bytes were actually received.
            </remarks>
        </member>
        <member name="M:iMobileDevice.MobileBackup2.IMobileBackup2Api.mobilebackup2_version_exchange(iMobileDevice.MobileBackup2.MobileBackup2ClientHandle,System.IntPtr,System.SByte,System.Double@)">
            <summary>
            Performs the mobilebackup2 protocol version exchange.
            </summary>
            <param name="client">
            The MobileBackup client to use.
            </param>
            <param name="local_versions">
            An array of supported versions to send to the remote.
            </param>
            <param name="count">
            The number of items in local_versions.
            </param>
            <param name="remote_version">
            Holds the protocol version of the remote on success.
            </param>
            <returns>
            MOBILEBACKUP2_E_SUCCESS on success, or a MOBILEBACKUP2_E_* error
            code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.MobileBackup2.IMobileBackup2Api.mobilebackup2_send_request(iMobileDevice.MobileBackup2.MobileBackup2ClientHandle,System.String,System.String,System.String,iMobileDevice.Plist.PlistHandle)">
            <summary>
            Send a request to the connected mobilebackup2 service.
            </summary>
            <param name="request">
            The request to send to the backup service.
            Currently, this is one of "Backup", "Restore", "Info", or "List".
            </param>
            <param name="target_identifier">
            UDID of the target device.
            </param>
            <param name="source_identifier">
            UDID of backup data?
            </param>
            <param name="options">
            Additional options in a plist of type PLIST_DICT.
            </param>
            <returns>
            MOBILEBACKUP2_E_SUCCESS if the request was successfully sent,
            or a MOBILEBACKUP2_E_* error value otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.MobileBackup2.IMobileBackup2Api.mobilebackup2_send_status_response(iMobileDevice.MobileBackup2.MobileBackup2ClientHandle,System.Int32,System.String,iMobileDevice.Plist.PlistHandle)">
            <summary>
            Sends a DLMessageStatusResponse to the device.
            </summary>
            <param name="client">
            The MobileBackup client to use.
            </param>
            <param name="status_code">
            The status code to send.
            </param>
            <param name="status1">
            A status message to send. Can be NULL if not required.
            </param>
            <param name="status2">
            An additional status plist to attach to the response.
            Can be NULL if not required.
            </param>
            <returns>
            MOBILEBACKUP2_E_SUCCESS on success, MOBILEBACKUP2_E_INVALID_ARG
            if client is invalid, or another MOBILEBACKUP2_E_* otherwise.
            </returns>
        </member>
        <member name="F:iMobileDevice.MobileBackup2.MobileBackup2Api.parent">
            <summary>
            Backing field for the <see cref="P:iMobileDevice.MobileBackup2.MobileBackup2Api.Parent"/> property
            </summary>
        </member>
        <member name="M:iMobileDevice.MobileBackup2.MobileBackup2Api.#ctor(iMobileDevice.ILibiMobileDevice)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.MobileBackup2.MobileBackup2Api"/> class
            </summary>
            <param name="parent">
            The <see cref="!:ILibiMobileDeviceApi"/> which owns this <see cref="N:iMobileDevice.MobileBackup2"/>.
            </param>
        </member>
        <member name="P:iMobileDevice.MobileBackup2.MobileBackup2Api.Parent">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.MobileBackup2.MobileBackup2Api.mobilebackup2_client_new(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Lockdown.LockdownServiceDescriptorHandle,iMobileDevice.MobileBackup2.MobileBackup2ClientHandle@)">
            <summary>
            Connects to the mobilebackup2 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">
            Pointer that will be set to a newly allocated
            mobilebackup2_client_t upon successful return.
            </param>
            <returns>
            MOBILEBACKUP2_E_SUCCESS on success, MOBILEBACKUP2_E_INVALID ARG
            if one or more parameter is invalid, or MOBILEBACKUP2_E_BAD_VERSION
            if the mobilebackup2 version on the device is newer.
            </returns>
        </member>
        <member name="M:iMobileDevice.MobileBackup2.MobileBackup2Api.mobilebackup2_client_start_service(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.MobileBackup2.MobileBackup2ClientHandle@,System.String)">
            <summary>
            Starts a new mobilebackup2 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
            mobilebackup2_client_t upon successful return. Must be freed using
            mobilebackup2_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>
            MOBILEBACKUP2_E_SUCCESS on success, or an MOBILEBACKUP2_E_* error
            code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.MobileBackup2.MobileBackup2Api.mobilebackup2_client_free(System.IntPtr)">
            <summary>
            Disconnects a mobilebackup2 client from the device and frees up the
            mobilebackup2 client data.
            </summary>
            <param name="client">
            The mobilebackup2 client to disconnect and free.
            </param>
            <returns>
            MOBILEBACKUP2_E_SUCCESS on success, or MOBILEBACKUP2_E_INVALID_ARG
            if client is NULL.
            </returns>
        </member>
        <member name="M:iMobileDevice.MobileBackup2.MobileBackup2Api.mobilebackup2_send_message(iMobileDevice.MobileBackup2.MobileBackup2ClientHandle,System.String,iMobileDevice.Plist.PlistHandle)">
            <summary>
            Sends a backup message plist.
            </summary>
            <param name="client">
            The connected MobileBackup client to use.
            </param>
            <param name="message">
            The message to send. This will be inserted into the request
            plist as value for MessageName. If this parameter is NULL,
            the plist passed in the options parameter will be sent directly.
            </param>
            <param name="options">
            Additional options as PLIST_DICT to add to the request.
            The MessageName key with the value passed in the message parameter
            will be inserted into this plist before sending it. This parameter
            can be NULL if message is not NULL.
            </param>
        </member>
        <member name="M:iMobileDevice.MobileBackup2.MobileBackup2Api.mobilebackup2_receive_message(iMobileDevice.MobileBackup2.MobileBackup2ClientHandle,iMobileDevice.Plist.PlistHandle@,System.String@)">
            <summary>
            Receives a DL* message plist from the device.
            This function is a wrapper around device_link_service_receive_message.
            </summary>
            <param name="client">
            The connected MobileBackup client to use.
            </param>
            <param name="msg_plist">
            Pointer to a plist that will be set to the contents of the
            message plist upon successful return.
            </param>
            <param name="dlmessage">
            A pointer that will be set to a newly allocated char*
            containing the DL* string from the given plist. It is up to the caller
            to free the allocated memory. If this parameter is NULL
            it will be ignored.
            </param>
            <returns>
            MOBILEBACKUP2_E_SUCCESS if a DL* message was received,
            MOBILEBACKUP2_E_INVALID_ARG if client or message is invalid,
            MOBILEBACKUP2_E_PLIST_ERROR if the received plist is invalid
            or is not a DL* message plist, or MOBILEBACKUP2_E_MUX_ERROR if
            receiving from the device failed.
            </returns>
        </member>
        <member name="M:iMobileDevice.MobileBackup2.MobileBackup2Api.mobilebackup2_send_raw(iMobileDevice.MobileBackup2.MobileBackup2ClientHandle,System.Byte[],System.UInt32,System.UInt32@)">
            <summary>
            Send binary data to the device.
            </summary>
            <param name="client">
            The MobileBackup client to send to.
            </param>
            <param name="data">
            Pointer to the data to send
            </param>
            <param name="length">
            Number of bytes to send
            </param>
            <param name="bytes">
            Number of bytes actually sent
            </param>
            <returns>
            MOBILEBACKUP2_E_SUCCESS if any data was successfully sent,
            MOBILEBACKUP2_E_INVALID_ARG if one of the parameters is invalid,
            or MOBILEBACKUP2_E_MUX_ERROR if sending of the data failed.
            </returns>
            <remarks>
            This function returns MOBILEBACKUP2_E_SUCCESS even if less than the
            requested length has been sent. The fourth parameter is required and
            must be checked to ensure if the whole data has been sent.
            </remarks>
        </member>
        <member name="M:iMobileDevice.MobileBackup2.MobileBackup2Api.mobilebackup2_receive_raw(iMobileDevice.MobileBackup2.MobileBackup2ClientHandle,System.Byte[],System.UInt32,System.UInt32@)">
            <summary>
            Receive binary from the device.
            </summary>
            <param name="client">
            The MobileBackup client to receive from.
            </param>
            <param name="data">
            Pointer to a buffer that will be filled with the received data.
            </param>
            <param name="length">
            Number of bytes to receive. The data buffer needs to be large
            enough to store this amount of data.
            </param>
            <param name="bytes">
            Number of bytes actually received.
            </param>
            <returns>
            MOBILEBACKUP2_E_SUCCESS if any or no data was received,
            MOBILEBACKUP2_E_INVALID_ARG if one of the parameters is invalid,
            or MOBILEBACKUP2_E_MUX_ERROR if receiving the data failed.
            </returns>
            <remarks>
            This function returns MOBILEBACKUP2_E_SUCCESS even if no data
            has been received (unless a communication error occurred).
            The fourth parameter is required and must be checked to know how
            many bytes were actually received.
            </remarks>
        </member>
        <member name="M:iMobileDevice.MobileBackup2.MobileBackup2Api.mobilebackup2_version_exchange(iMobileDevice.MobileBackup2.MobileBackup2ClientHandle,System.IntPtr,System.SByte,System.Double@)">
            <summary>
            Performs the mobilebackup2 protocol version exchange.
            </summary>
            <param name="client">
            The MobileBackup client to use.
            </param>
            <param name="local_versions">
            An array of supported versions to send to the remote.
            </param>
            <param name="count">
            The number of items in local_versions.
            </param>
            <param name="remote_version">
            Holds the protocol version of the remote on success.
            </param>
            <returns>
            MOBILEBACKUP2_E_SUCCESS on success, or a MOBILEBACKUP2_E_* error
            code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.MobileBackup2.MobileBackup2Api.mobilebackup2_send_request(iMobileDevice.MobileBackup2.MobileBackup2ClientHandle,System.String,System.String,System.String,iMobileDevice.Plist.PlistHandle)">
            <summary>
            Send a request to the connected mobilebackup2 service.
            </summary>
            <param name="request">
            The request to send to the backup service.
            Currently, this is one of "Backup", "Restore", "Info", or "List".
            </param>
            <param name="target_identifier">
            UDID of the target device.
            </param>
            <param name="source_identifier">
            UDID of backup data?
            </param>
            <param name="options">
            Additional options in a plist of type PLIST_DICT.
            </param>
            <returns>
            MOBILEBACKUP2_E_SUCCESS if the request was successfully sent,
            or a MOBILEBACKUP2_E_* error value otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.MobileBackup2.MobileBackup2Api.mobilebackup2_send_status_response(iMobileDevice.MobileBackup2.MobileBackup2ClientHandle,System.Int32,System.String,iMobileDevice.Plist.PlistHandle)">
            <summary>
            Sends a DLMessageStatusResponse to the device.
            </summary>
            <param name="client">
            The MobileBackup client to use.
            </param>
            <param name="status_code">
            The status code to send.
            </param>
            <param name="status1">
            A status message to send. Can be NULL if not required.
            </param>
            <param name="status2">
            An additional status plist to attach to the response.
            Can be NULL if not required.
            </param>
            <returns>
            MOBILEBACKUP2_E_SUCCESS on success, MOBILEBACKUP2_E_INVALID_ARG
            if client is invalid, or another MOBILEBACKUP2_E_* otherwise.
            </returns>
        </member>
        <member name="T:iMobileDevice.MobileBackup2.MobileBackup2ClientHandle">
            <summary>
            Represents a wrapper class for MobileBackup2 handles.
            </summary>
        </member>
        <member name="M:iMobileDevice.MobileBackup2.MobileBackup2ClientHandle.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.MobileBackup2.MobileBackup2ClientHandle"/> class.
            </summary>
        </member>
        <member name="M:iMobileDevice.MobileBackup2.MobileBackup2ClientHandle.#ctor(System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.MobileBackup2.MobileBackup2ClientHandle"/> class, specifying whether the handle is to be reliably released.
            </summary>
            <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>
        </member>
        <member name="P:iMobileDevice.MobileBackup2.MobileBackup2ClientHandle.Api">
            <summary>
            Gets or sets the API to use
            </summary>
        </member>
        <member name="P:iMobileDevice.MobileBackup2.MobileBackup2ClientHandle.Zero">
            <summary>
            Gets a value which represents a pointer or handle that has been initialized to zero.
            </summary>
        </member>
        <member name="M:iMobileDevice.MobileBackup2.MobileBackup2ClientHandle.ReleaseHandle">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.MobileBackup2.MobileBackup2ClientHandle.DangerousCreate(System.IntPtr,System.Boolean)">
            <summary>
            Creates a new <see cref="T:iMobileDevice.MobileBackup2.MobileBackup2ClientHandle"/> from a <see cref="T:System.IntPtr"/>.
            </summary>
            <param name="unsafeHandle">
            The underlying <see cref="T:System.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>
        </member>
        <member name="M:iMobileDevice.MobileBackup2.MobileBackup2ClientHandle.DangerousCreate(System.IntPtr)">
            <summary>
            Creates a new <see cref="T:iMobileDevice.MobileBackup2.MobileBackup2ClientHandle"/> from a <see cref="T:System.IntPtr"/>.
            </summary>
            <param name="unsafeHandle">
            The underlying <see cref="T:System.IntPtr"/>
            </param>
            <returns>
            </returns>
        </member>
        <member name="M:iMobileDevice.MobileBackup2.MobileBackup2ClientHandle.ToString">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.MobileBackup2.MobileBackup2ClientHandle.Equals(System.Object)">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.MobileBackup2.MobileBackup2ClientHandle.GetHashCode">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.MobileBackup2.MobileBackup2ClientHandle.op_Equality(iMobileDevice.MobileBackup2.MobileBackup2ClientHandle,iMobileDevice.MobileBackup2.MobileBackup2ClientHandle)">
            <summary>
            Determines whether two specified instances of <see cref="T:iMobileDevice.MobileBackup2.MobileBackup2ClientHandle"/> are equal.
            </summary>
            <param name="value1">
            The first pointer or handle to compare.
            </param>
            <param name="value2">
            The second pointer or handle to compare.
            </param>
            <returns>
            <see langword="true"/> if <paramref name="value1"/> equals <paramref name="value2"/>; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="M:iMobileDevice.MobileBackup2.MobileBackup2ClientHandle.op_Inequality(iMobileDevice.MobileBackup2.MobileBackup2ClientHandle,iMobileDevice.MobileBackup2.MobileBackup2ClientHandle)">
            <summary>
            Determines whether two specified instances of <see cref="T:iMobileDevice.MobileBackup2.MobileBackup2ClientHandle"/> are not equal.
            </summary>
            <param name="value1">
            The first pointer or handle to compare.
            </param>
            <param name="value2">
            The second pointer or handle to compare.
            </param>
            <returns>
            <see langword="true"/> if <paramref name="value1"/> does not equal <paramref name="value2"/>; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="T:iMobileDevice.MobileBackup2.MobileBackup2Error">
            <summary>
            Error Codes 
            </summary>
        </member>
        <member name="T:iMobileDevice.MobileBackup2.MobileBackup2Exception">
            Represents an exception that occurred when interacting with the MobileBackup2 API.
        </member>
        <member name="F:iMobileDevice.MobileBackup2.MobileBackup2Exception.errorCode">
            <summary>
            Backing field for the <see cref="P:iMobileDevice.MobileBackup2.MobileBackup2Exception.ErrorCode"/> property.
            </summary>
        </member>
        <member name="M:iMobileDevice.MobileBackup2.MobileBackup2Exception.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.MobileBackup2.MobileBackup2Exception"/> class.
            </summary>
        </member>
        <member name="M:iMobileDevice.MobileBackup2.MobileBackup2Exception.#ctor(iMobileDevice.MobileBackup2.MobileBackup2Error)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.MobileBackup2.MobileBackup2Exception"/> class with a specified error code.
            </summary>
            <param name="error">
            The error code of the error that occurred.
            </param>
        </member>
        <member name="M:iMobileDevice.MobileBackup2.MobileBackup2Exception.#ctor(iMobileDevice.MobileBackup2.MobileBackup2Error,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.MobileBackup2.MobileBackup2Exception"/> class with a specified error code and error message.
            </summary>
            <param name="error">
            The error code of the error that occurred.
            </param>
            <param name="message">
            A message which describes the error.
            </param>
        </member>
        <member name="M:iMobileDevice.MobileBackup2.MobileBackup2Exception.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.MobileBackup2.MobileBackup2Exception"/> class with a specified error message.
            </summary>
            <param name="message">
            The message that describes the error.
            </param>
        </member>
        <member name="M:iMobileDevice.MobileBackup2.MobileBackup2Exception.#ctor(System.String,System.Exception)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.MobileBackup2.MobileBackup2Exception"/> class with a specified error message and a reference to the inner exception that is the cause of this exception.
            </summary>
            <param name="message">
            The error message that explains the reason for the exception.
            </param>
            <param name="inner">
            The exception that is the cause of the current exception, or <see langword="null"/> if no inner exception is specified.
            </param>
        </member>
        <member name="M:iMobileDevice.MobileBackup2.MobileBackup2Exception.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.MobileBackup2.MobileBackup2Exception"/> class with serialized data.
            </summary>
            <param name="info">
            The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds the serialized object data about the exception being thrown.
            </param>
            <param name="context">
            The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that contains contextual information about the source or destination.
            </param>
        </member>
        <member name="P:iMobileDevice.MobileBackup2.MobileBackup2Exception.ErrorCode">
            <summary>
            Gets the error code that represents the error.
            </summary>
        </member>
        <member name="M:iMobileDevice.MobileBackup2.MobileBackup2NativeMethods.mobilebackup2_client_new(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Lockdown.LockdownServiceDescriptorHandle,iMobileDevice.MobileBackup2.MobileBackup2ClientHandle@)">
            <summary>
            Connects to the mobilebackup2 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">
            Pointer that will be set to a newly allocated
            mobilebackup2_client_t upon successful return.
            </param>
            <returns>
            MOBILEBACKUP2_E_SUCCESS on success, MOBILEBACKUP2_E_INVALID ARG
            if one or more parameter is invalid, or MOBILEBACKUP2_E_BAD_VERSION
            if the mobilebackup2 version on the device is newer.
            </returns>
        </member>
        <member name="M:iMobileDevice.MobileBackup2.MobileBackup2NativeMethods.mobilebackup2_client_start_service(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.MobileBackup2.MobileBackup2ClientHandle@,System.String)">
            <summary>
            Starts a new mobilebackup2 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
            mobilebackup2_client_t upon successful return. Must be freed using
            mobilebackup2_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>
            MOBILEBACKUP2_E_SUCCESS on success, or an MOBILEBACKUP2_E_* error
            code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.MobileBackup2.MobileBackup2NativeMethods.mobilebackup2_client_free(System.IntPtr)">
            <summary>
            Disconnects a mobilebackup2 client from the device and frees up the
            mobilebackup2 client data.
            </summary>
            <param name="client">
            The mobilebackup2 client to disconnect and free.
            </param>
            <returns>
            MOBILEBACKUP2_E_SUCCESS on success, or MOBILEBACKUP2_E_INVALID_ARG
            if client is NULL.
            </returns>
        </member>
        <member name="M:iMobileDevice.MobileBackup2.MobileBackup2NativeMethods.mobilebackup2_send_message(iMobileDevice.MobileBackup2.MobileBackup2ClientHandle,System.String,iMobileDevice.Plist.PlistHandle)">
            <summary>
            Sends a backup message plist.
            </summary>
            <param name="client">
            The connected MobileBackup client to use.
            </param>
            <param name="message">
            The message to send. This will be inserted into the request
            plist as value for MessageName. If this parameter is NULL,
            the plist passed in the options parameter will be sent directly.
            </param>
            <param name="options">
            Additional options as PLIST_DICT to add to the request.
            The MessageName key with the value passed in the message parameter
            will be inserted into this plist before sending it. This parameter
            can be NULL if message is not NULL.
            </param>
        </member>
        <member name="M:iMobileDevice.MobileBackup2.MobileBackup2NativeMethods.mobilebackup2_receive_message(iMobileDevice.MobileBackup2.MobileBackup2ClientHandle,iMobileDevice.Plist.PlistHandle@,System.IntPtr@)">
            <summary>
            Receives a DL* message plist from the device.
            This function is a wrapper around device_link_service_receive_message.
            </summary>
            <param name="client">
            The connected MobileBackup client to use.
            </param>
            <param name="msg_plist">
            Pointer to a plist that will be set to the contents of the
            message plist upon successful return.
            </param>
            <param name="dlmessage">
            A pointer that will be set to a newly allocated char*
            containing the DL* string from the given plist. It is up to the caller
            to free the allocated memory. If this parameter is NULL
            it will be ignored.
            </param>
            <returns>
            MOBILEBACKUP2_E_SUCCESS if a DL* message was received,
            MOBILEBACKUP2_E_INVALID_ARG if client or message is invalid,
            MOBILEBACKUP2_E_PLIST_ERROR if the received plist is invalid
            or is not a DL* message plist, or MOBILEBACKUP2_E_MUX_ERROR if
            receiving from the device failed.
            </returns>
        </member>
        <member name="M:iMobileDevice.MobileBackup2.MobileBackup2NativeMethods.mobilebackup2_send_raw(iMobileDevice.MobileBackup2.MobileBackup2ClientHandle,System.Byte[],System.UInt32,System.UInt32@)">
            <summary>
            Send binary data to the device.
            </summary>
            <param name="client">
            The MobileBackup client to send to.
            </param>
            <param name="data">
            Pointer to the data to send
            </param>
            <param name="length">
            Number of bytes to send
            </param>
            <param name="bytes">
            Number of bytes actually sent
            </param>
            <returns>
            MOBILEBACKUP2_E_SUCCESS if any data was successfully sent,
            MOBILEBACKUP2_E_INVALID_ARG if one of the parameters is invalid,
            or MOBILEBACKUP2_E_MUX_ERROR if sending of the data failed.
            </returns>
            <remarks>
            This function returns MOBILEBACKUP2_E_SUCCESS even if less than the
            requested length has been sent. The fourth parameter is required and
            must be checked to ensure if the whole data has been sent.
            </remarks>
        </member>
        <member name="M:iMobileDevice.MobileBackup2.MobileBackup2NativeMethods.mobilebackup2_receive_raw(iMobileDevice.MobileBackup2.MobileBackup2ClientHandle,System.Byte[],System.UInt32,System.UInt32@)">
            <summary>
            Receive binary from the device.
            </summary>
            <param name="client">
            The MobileBackup client to receive from.
            </param>
            <param name="data">
            Pointer to a buffer that will be filled with the received data.
            </param>
            <param name="length">
            Number of bytes to receive. The data buffer needs to be large
            enough to store this amount of data.
            </param>
            <param name="bytes">
            Number of bytes actually received.
            </param>
            <returns>
            MOBILEBACKUP2_E_SUCCESS if any or no data was received,
            MOBILEBACKUP2_E_INVALID_ARG if one of the parameters is invalid,
            or MOBILEBACKUP2_E_MUX_ERROR if receiving the data failed.
            </returns>
            <remarks>
            This function returns MOBILEBACKUP2_E_SUCCESS even if no data
            has been received (unless a communication error occurred).
            The fourth parameter is required and must be checked to know how
            many bytes were actually received.
            </remarks>
        </member>
        <member name="M:iMobileDevice.MobileBackup2.MobileBackup2NativeMethods.mobilebackup2_version_exchange(iMobileDevice.MobileBackup2.MobileBackup2ClientHandle,System.IntPtr,System.SByte,System.Double@)">
            <summary>
            Performs the mobilebackup2 protocol version exchange.
            </summary>
            <param name="client">
            The MobileBackup client to use.
            </param>
            <param name="local_versions">
            An array of supported versions to send to the remote.
            </param>
            <param name="count">
            The number of items in local_versions.
            </param>
            <param name="remote_version">
            Holds the protocol version of the remote on success.
            </param>
            <returns>
            MOBILEBACKUP2_E_SUCCESS on success, or a MOBILEBACKUP2_E_* error
            code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.MobileBackup2.MobileBackup2NativeMethods.mobilebackup2_send_request(iMobileDevice.MobileBackup2.MobileBackup2ClientHandle,System.String,System.String,System.String,iMobileDevice.Plist.PlistHandle)">
            <summary>
            Send a request to the connected mobilebackup2 service.
            </summary>
            <param name="request">
            The request to send to the backup service.
            Currently, this is one of "Backup", "Restore", "Info", or "List".
            </param>
            <param name="target_identifier">
            UDID of the target device.
            </param>
            <param name="source_identifier">
            UDID of backup data?
            </param>
            <param name="options">
            Additional options in a plist of type PLIST_DICT.
            </param>
            <returns>
            MOBILEBACKUP2_E_SUCCESS if the request was successfully sent,
            or a MOBILEBACKUP2_E_* error value otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.MobileBackup2.MobileBackup2NativeMethods.mobilebackup2_send_status_response(iMobileDevice.MobileBackup2.MobileBackup2ClientHandle,System.Int32,System.String,iMobileDevice.Plist.PlistHandle)">
            <summary>
            Sends a DLMessageStatusResponse to the device.
            </summary>
            <param name="client">
            The MobileBackup client to use.
            </param>
            <param name="status_code">
            The status code to send.
            </param>
            <param name="status1">
            A status message to send. Can be NULL if not required.
            </param>
            <param name="status2">
            An additional status plist to attach to the response.
            Can be NULL if not required.
            </param>
            <returns>
            MOBILEBACKUP2_E_SUCCESS on success, MOBILEBACKUP2_E_INVALID_ARG
            if client is invalid, or another MOBILEBACKUP2_E_* otherwise.
            </returns>
        </member>
        <member name="P:iMobileDevice.MobileBackup.IMobileBackupApi.Parent">
            <summary>
            Gets or sets the <see cref="!:ILibiMobileDeviceApi"/> which owns this <see cref="N:iMobileDevice.MobileBackup"/>.
            </summary>
        </member>
        <member name="M:iMobileDevice.MobileBackup.IMobileBackupApi.mobilebackup_client_new(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Lockdown.LockdownServiceDescriptorHandle,iMobileDevice.MobileBackup.MobileBackupClientHandle@)">
            <summary>
            Connects to the mobilebackup 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">
            Pointer that will be set to a newly allocated
            mobilebackup_client_t upon successful return.
            </param>
            <returns>
            MOBILEBACKUP_E_SUCCESS on success, MOBILEBACKUP_E_INVALID ARG if one
            or more parameters are invalid, or DEVICE_LINK_SERVICE_E_BAD_VERSION if
            the mobilebackup version on the device is newer.
            </returns>
        </member>
        <member name="M:iMobileDevice.MobileBackup.IMobileBackupApi.mobilebackup_client_start_service(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.MobileBackup.MobileBackupClientHandle@,System.String)">
            <summary>
            Starts a new mobilebackup 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
            mobilebackup_client_t upon successful return. Must be freed using
            mobilebackup_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>
            MOBILEBACKUP_E_SUCCESS on success, or an MOBILEBACKUP_E_* error
            code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.MobileBackup.IMobileBackupApi.mobilebackup_client_free(System.IntPtr)">
            <summary>
            Disconnects a mobilebackup client from the device and frees up the
            mobilebackup client data.
            </summary>
            <param name="client">
            The mobilebackup client to disconnect and free.
            </param>
            <returns>
            MOBILEBACKUP_E_SUCCESS on success, or MOBILEBACKUP_E_INVALID_ARG
            if client is NULL.
            </returns>
        </member>
        <member name="M:iMobileDevice.MobileBackup.IMobileBackupApi.mobilebackup_receive(iMobileDevice.MobileBackup.MobileBackupClientHandle,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Polls the device for mobilebackup data.
            </summary>
            <param name="client">
            The mobilebackup client
            </param>
            <param name="plist">
            A pointer to the location where the plist should be stored
            </param>
            <returns>
            an error code
            </returns>
        </member>
        <member name="M:iMobileDevice.MobileBackup.IMobileBackupApi.mobilebackup_send(iMobileDevice.MobileBackup.MobileBackupClientHandle,iMobileDevice.Plist.PlistHandle)">
            <summary>
            Sends mobilebackup data to the device
            </summary>
            <param name="client">
            The mobilebackup client
            </param>
            <param name="plist">
            The location of the plist to send
            </param>
            <returns>
            an error code
            </returns>
            <remarks>
            This function is low-level and should only be used if you need to send
            a new type of message.
            </remarks>
        </member>
        <member name="M:iMobileDevice.MobileBackup.IMobileBackupApi.mobilebackup_request_backup(iMobileDevice.MobileBackup.MobileBackupClientHandle,iMobileDevice.Plist.PlistHandle,System.String,System.String)">
            <summary>
            Request a backup from the connected device.
            </summary>
            <param name="client">
            The connected MobileBackup client to use.
            </param>
            <param name="backup_manifest">
            The backup manifest, a plist_t of type PLIST_DICT
            containing the backup state of the last backup. For a first-time backup
            set this parameter to NULL.
            </param>
            <param name="base_path">
            The base path on the device to use for the backup
            operation, usually "/".
            </param>
            <param name="proto_version">
            A string denoting the version of the backup protocol
            to use. Latest known version is "1.6"
            </param>
            <returns>
            MOBILEBACKUP_E_SUCCESS on success, MOBILEBACKUP_E_INVALID_ARG if
            one of the parameters is invalid, MOBILEBACKUP_E_PLIST_ERROR if
            backup_manifest is not of type PLIST_DICT, MOBILEBACKUP_E_MUX_ERROR
            if a communication error occurs, MOBILEBACKUP_E_REPLY_NOT_OK
            </returns>
        </member>
        <member name="M:iMobileDevice.MobileBackup.IMobileBackupApi.mobilebackup_send_backup_file_received(iMobileDevice.MobileBackup.MobileBackupClientHandle)">
            <summary>
            Sends a confirmation to the device that a backup file has been received.
            </summary>
            <param name="client">
            The connected MobileBackup client to use.
            </param>
            <returns>
            MOBILEBACKUP_E_SUCCESS on success, MOBILEBACKUP_E_INVALID_ARG if
            client is invalid, or MOBILEBACKUP_E_MUX_ERROR if a communication error
            occurs.
            </returns>
        </member>
        <member name="M:iMobileDevice.MobileBackup.IMobileBackupApi.mobilebackup_request_restore(iMobileDevice.MobileBackup.MobileBackupClientHandle,iMobileDevice.Plist.PlistHandle,iMobileDevice.MobileBackup.MobileBackupFlags,System.String)">
            <summary>
            Request that a backup should be restored to the connected device.
            </summary>
            <param name="client">
            The connected MobileBackup client to use.
            </param>
            <param name="backup_manifest">
            The backup manifest, a plist_t of type PLIST_DICT
            containing the backup state to be restored.
            </param>
            <param name="flags">
            Flags to send with the request. Currently this is a combination
            of the following mobilebackup_flags_t:
            MB_RESTORE_NOTIFY_SPRINGBOARD - let SpringBoard show a 'Restore' screen
            MB_RESTORE_PRESERVE_SETTINGS - do not overwrite any settings
            MB_RESTORE_PRESERVE_CAMERA_ROLL - preserve the photos of the camera roll
            </param>
            <param name="proto_version">
            A string denoting the version of the backup protocol
            to use. Latest known version is "1.6". Ideally this value should be
            extracted from the given manifest plist.
            </param>
            <returns>
            MOBILEBACKUP_E_SUCCESS on success, MOBILEBACKUP_E_INVALID_ARG if
            one of the parameters is invalid, MOBILEBACKUP_E_PLIST_ERROR if
            backup_manifest is not of type PLIST_DICT, MOBILEBACKUP_E_MUX_ERROR
            if a communication error occurs, or MOBILEBACKUP_E_REPLY_NOT_OK
            if the device did not accept the request.
            </returns>
        </member>
        <member name="M:iMobileDevice.MobileBackup.IMobileBackupApi.mobilebackup_receive_restore_file_received(iMobileDevice.MobileBackup.MobileBackupClientHandle,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Receive a confirmation from the device that it successfully received
            a restore file.
            </summary>
            <param name="client">
            The connected MobileBackup client to use.
            </param>
            <param name="result">
            Pointer to a plist_t that will be set to the received plist
            for further processing. The caller has to free it using plist_free().
            Note that it will be set to NULL if the operation itself fails due to
            a communication or plist error.
            If this parameter is NULL, it will be ignored.
            </param>
            <returns>
            MOBILEBACKUP_E_SUCCESS on success, MOBILEBACKUP_E_INVALID_ARG if
            client is invalid, MOBILEBACKUP_E_REPLY_NOT_OK if the expected
            'BackupMessageRestoreFileReceived' message could not be received,
            MOBILEBACKUP_E_PLIST_ERROR if the received message is not a valid backup
            message plist, or MOBILEBACKUP_E_MUX_ERROR if a communication error
            occurs.
            </returns>
        </member>
        <member name="M:iMobileDevice.MobileBackup.IMobileBackupApi.mobilebackup_receive_restore_application_received(iMobileDevice.MobileBackup.MobileBackupClientHandle,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Receive a confirmation from the device that it successfully received
            application data file.
            </summary>
            <param name="client">
            The connected MobileBackup client to use.
            </param>
            <param name="result">
            Pointer to a plist_t that will be set to the received plist
            for further processing. The caller has to free it using plist_free().
            Note that it will be set to NULL if the operation itself fails due to
            a communication or plist error.
            If this parameter is NULL, it will be ignored.
            </param>
            <returns>
            MOBILEBACKUP_E_SUCCESS on success, MOBILEBACKUP_E_INVALID_ARG if
            client is invalid, MOBILEBACKUP_E_REPLY_NOT_OK if the expected
            'BackupMessageRestoreApplicationReceived' message could not be received,
            MOBILEBACKUP_E_PLIST_ERROR if the received message is not a valid backup
            message plist, or MOBILEBACKUP_E_MUX_ERROR if a communication error
            occurs.
            </returns>
        </member>
        <member name="M:iMobileDevice.MobileBackup.IMobileBackupApi.mobilebackup_send_restore_complete(iMobileDevice.MobileBackup.MobileBackupClientHandle)">
            <summary>
            Tells the device that the restore process is complete and waits for the
            device to close the connection. After that, the device should reboot.
            </summary>
            <param name="client">
            The connected MobileBackup client to use.
            </param>
            <returns>
            MOBILEBACKUP_E_SUCCESS on success, MOBILEBACKUP_E_INVALID_ARG if
            client is invalid, MOBILEBACKUP_E_PLIST_ERROR if the received disconnect
            message plist is invalid, or MOBILEBACKUP_E_MUX_ERROR if a communication
            error occurs.
            </returns>
        </member>
        <member name="M:iMobileDevice.MobileBackup.IMobileBackupApi.mobilebackup_send_error(iMobileDevice.MobileBackup.MobileBackupClientHandle,System.String)">
            <summary>
            Sends a backup error message to the device.
            </summary>
            <param name="client">
            The connected MobileBackup client to use.
            </param>
            <param name="reason">
            A string describing the reason for the error message.
            </param>
            <returns>
            MOBILEBACKUP_E_SUCCESS on success, MOBILEBACKUP_E_INVALID_ARG if
            one of the parameters is invalid, or MOBILEBACKUP_E_MUX_ERROR if a
            communication error occurs.
            </returns>
        </member>
        <member name="F:iMobileDevice.MobileBackup.MobileBackupApi.parent">
            <summary>
            Backing field for the <see cref="P:iMobileDevice.MobileBackup.MobileBackupApi.Parent"/> property
            </summary>
        </member>
        <member name="M:iMobileDevice.MobileBackup.MobileBackupApi.#ctor(iMobileDevice.ILibiMobileDevice)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.MobileBackup.MobileBackupApi"/> class
            </summary>
            <param name="parent">
            The <see cref="!:ILibiMobileDeviceApi"/> which owns this <see cref="N:iMobileDevice.MobileBackup"/>.
            </param>
        </member>
        <member name="P:iMobileDevice.MobileBackup.MobileBackupApi.Parent">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.MobileBackup.MobileBackupApi.mobilebackup_client_new(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Lockdown.LockdownServiceDescriptorHandle,iMobileDevice.MobileBackup.MobileBackupClientHandle@)">
            <summary>
            Connects to the mobilebackup 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">
            Pointer that will be set to a newly allocated
            mobilebackup_client_t upon successful return.
            </param>
            <returns>
            MOBILEBACKUP_E_SUCCESS on success, MOBILEBACKUP_E_INVALID ARG if one
            or more parameters are invalid, or DEVICE_LINK_SERVICE_E_BAD_VERSION if
            the mobilebackup version on the device is newer.
            </returns>
        </member>
        <member name="M:iMobileDevice.MobileBackup.MobileBackupApi.mobilebackup_client_start_service(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.MobileBackup.MobileBackupClientHandle@,System.String)">
            <summary>
            Starts a new mobilebackup 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
            mobilebackup_client_t upon successful return. Must be freed using
            mobilebackup_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>
            MOBILEBACKUP_E_SUCCESS on success, or an MOBILEBACKUP_E_* error
            code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.MobileBackup.MobileBackupApi.mobilebackup_client_free(System.IntPtr)">
            <summary>
            Disconnects a mobilebackup client from the device and frees up the
            mobilebackup client data.
            </summary>
            <param name="client">
            The mobilebackup client to disconnect and free.
            </param>
            <returns>
            MOBILEBACKUP_E_SUCCESS on success, or MOBILEBACKUP_E_INVALID_ARG
            if client is NULL.
            </returns>
        </member>
        <member name="M:iMobileDevice.MobileBackup.MobileBackupApi.mobilebackup_receive(iMobileDevice.MobileBackup.MobileBackupClientHandle,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Polls the device for mobilebackup data.
            </summary>
            <param name="client">
            The mobilebackup client
            </param>
            <param name="plist">
            A pointer to the location where the plist should be stored
            </param>
            <returns>
            an error code
            </returns>
        </member>
        <member name="M:iMobileDevice.MobileBackup.MobileBackupApi.mobilebackup_send(iMobileDevice.MobileBackup.MobileBackupClientHandle,iMobileDevice.Plist.PlistHandle)">
            <summary>
            Sends mobilebackup data to the device
            </summary>
            <param name="client">
            The mobilebackup client
            </param>
            <param name="plist">
            The location of the plist to send
            </param>
            <returns>
            an error code
            </returns>
            <remarks>
            This function is low-level and should only be used if you need to send
            a new type of message.
            </remarks>
        </member>
        <member name="M:iMobileDevice.MobileBackup.MobileBackupApi.mobilebackup_request_backup(iMobileDevice.MobileBackup.MobileBackupClientHandle,iMobileDevice.Plist.PlistHandle,System.String,System.String)">
            <summary>
            Request a backup from the connected device.
            </summary>
            <param name="client">
            The connected MobileBackup client to use.
            </param>
            <param name="backup_manifest">
            The backup manifest, a plist_t of type PLIST_DICT
            containing the backup state of the last backup. For a first-time backup
            set this parameter to NULL.
            </param>
            <param name="base_path">
            The base path on the device to use for the backup
            operation, usually "/".
            </param>
            <param name="proto_version">
            A string denoting the version of the backup protocol
            to use. Latest known version is "1.6"
            </param>
            <returns>
            MOBILEBACKUP_E_SUCCESS on success, MOBILEBACKUP_E_INVALID_ARG if
            one of the parameters is invalid, MOBILEBACKUP_E_PLIST_ERROR if
            backup_manifest is not of type PLIST_DICT, MOBILEBACKUP_E_MUX_ERROR
            if a communication error occurs, MOBILEBACKUP_E_REPLY_NOT_OK
            </returns>
        </member>
        <member name="M:iMobileDevice.MobileBackup.MobileBackupApi.mobilebackup_send_backup_file_received(iMobileDevice.MobileBackup.MobileBackupClientHandle)">
            <summary>
            Sends a confirmation to the device that a backup file has been received.
            </summary>
            <param name="client">
            The connected MobileBackup client to use.
            </param>
            <returns>
            MOBILEBACKUP_E_SUCCESS on success, MOBILEBACKUP_E_INVALID_ARG if
            client is invalid, or MOBILEBACKUP_E_MUX_ERROR if a communication error
            occurs.
            </returns>
        </member>
        <member name="M:iMobileDevice.MobileBackup.MobileBackupApi.mobilebackup_request_restore(iMobileDevice.MobileBackup.MobileBackupClientHandle,iMobileDevice.Plist.PlistHandle,iMobileDevice.MobileBackup.MobileBackupFlags,System.String)">
            <summary>
            Request that a backup should be restored to the connected device.
            </summary>
            <param name="client">
            The connected MobileBackup client to use.
            </param>
            <param name="backup_manifest">
            The backup manifest, a plist_t of type PLIST_DICT
            containing the backup state to be restored.
            </param>
            <param name="flags">
            Flags to send with the request. Currently this is a combination
            of the following mobilebackup_flags_t:
            MB_RESTORE_NOTIFY_SPRINGBOARD - let SpringBoard show a 'Restore' screen
            MB_RESTORE_PRESERVE_SETTINGS - do not overwrite any settings
            MB_RESTORE_PRESERVE_CAMERA_ROLL - preserve the photos of the camera roll
            </param>
            <param name="proto_version">
            A string denoting the version of the backup protocol
            to use. Latest known version is "1.6". Ideally this value should be
            extracted from the given manifest plist.
            </param>
            <returns>
            MOBILEBACKUP_E_SUCCESS on success, MOBILEBACKUP_E_INVALID_ARG if
            one of the parameters is invalid, MOBILEBACKUP_E_PLIST_ERROR if
            backup_manifest is not of type PLIST_DICT, MOBILEBACKUP_E_MUX_ERROR
            if a communication error occurs, or MOBILEBACKUP_E_REPLY_NOT_OK
            if the device did not accept the request.
            </returns>
        </member>
        <member name="M:iMobileDevice.MobileBackup.MobileBackupApi.mobilebackup_receive_restore_file_received(iMobileDevice.MobileBackup.MobileBackupClientHandle,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Receive a confirmation from the device that it successfully received
            a restore file.
            </summary>
            <param name="client">
            The connected MobileBackup client to use.
            </param>
            <param name="result">
            Pointer to a plist_t that will be set to the received plist
            for further processing. The caller has to free it using plist_free().
            Note that it will be set to NULL if the operation itself fails due to
            a communication or plist error.
            If this parameter is NULL, it will be ignored.
            </param>
            <returns>
            MOBILEBACKUP_E_SUCCESS on success, MOBILEBACKUP_E_INVALID_ARG if
            client is invalid, MOBILEBACKUP_E_REPLY_NOT_OK if the expected
            'BackupMessageRestoreFileReceived' message could not be received,
            MOBILEBACKUP_E_PLIST_ERROR if the received message is not a valid backup
            message plist, or MOBILEBACKUP_E_MUX_ERROR if a communication error
            occurs.
            </returns>
        </member>
        <member name="M:iMobileDevice.MobileBackup.MobileBackupApi.mobilebackup_receive_restore_application_received(iMobileDevice.MobileBackup.MobileBackupClientHandle,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Receive a confirmation from the device that it successfully received
            application data file.
            </summary>
            <param name="client">
            The connected MobileBackup client to use.
            </param>
            <param name="result">
            Pointer to a plist_t that will be set to the received plist
            for further processing. The caller has to free it using plist_free().
            Note that it will be set to NULL if the operation itself fails due to
            a communication or plist error.
            If this parameter is NULL, it will be ignored.
            </param>
            <returns>
            MOBILEBACKUP_E_SUCCESS on success, MOBILEBACKUP_E_INVALID_ARG if
            client is invalid, MOBILEBACKUP_E_REPLY_NOT_OK if the expected
            'BackupMessageRestoreApplicationReceived' message could not be received,
            MOBILEBACKUP_E_PLIST_ERROR if the received message is not a valid backup
            message plist, or MOBILEBACKUP_E_MUX_ERROR if a communication error
            occurs.
            </returns>
        </member>
        <member name="M:iMobileDevice.MobileBackup.MobileBackupApi.mobilebackup_send_restore_complete(iMobileDevice.MobileBackup.MobileBackupClientHandle)">
            <summary>
            Tells the device that the restore process is complete and waits for the
            device to close the connection. After that, the device should reboot.
            </summary>
            <param name="client">
            The connected MobileBackup client to use.
            </param>
            <returns>
            MOBILEBACKUP_E_SUCCESS on success, MOBILEBACKUP_E_INVALID_ARG if
            client is invalid, MOBILEBACKUP_E_PLIST_ERROR if the received disconnect
            message plist is invalid, or MOBILEBACKUP_E_MUX_ERROR if a communication
            error occurs.
            </returns>
        </member>
        <member name="M:iMobileDevice.MobileBackup.MobileBackupApi.mobilebackup_send_error(iMobileDevice.MobileBackup.MobileBackupClientHandle,System.String)">
            <summary>
            Sends a backup error message to the device.
            </summary>
            <param name="client">
            The connected MobileBackup client to use.
            </param>
            <param name="reason">
            A string describing the reason for the error message.
            </param>
            <returns>
            MOBILEBACKUP_E_SUCCESS on success, MOBILEBACKUP_E_INVALID_ARG if
            one of the parameters is invalid, or MOBILEBACKUP_E_MUX_ERROR if a
            communication error occurs.
            </returns>
        </member>
        <member name="T:iMobileDevice.MobileBackup.MobileBackupClientHandle">
            <summary>
            Represents a wrapper class for MobileBackup handles.
            </summary>
        </member>
        <member name="M:iMobileDevice.MobileBackup.MobileBackupClientHandle.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.MobileBackup.MobileBackupClientHandle"/> class.
            </summary>
        </member>
        <member name="M:iMobileDevice.MobileBackup.MobileBackupClientHandle.#ctor(System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.MobileBackup.MobileBackupClientHandle"/> class, specifying whether the handle is to be reliably released.
            </summary>
            <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>
        </member>
        <member name="P:iMobileDevice.MobileBackup.MobileBackupClientHandle.Api">
            <summary>
            Gets or sets the API to use
            </summary>
        </member>
        <member name="P:iMobileDevice.MobileBackup.MobileBackupClientHandle.Zero">
            <summary>
            Gets a value which represents a pointer or handle that has been initialized to zero.
            </summary>
        </member>
        <member name="M:iMobileDevice.MobileBackup.MobileBackupClientHandle.ReleaseHandle">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.MobileBackup.MobileBackupClientHandle.DangerousCreate(System.IntPtr,System.Boolean)">
            <summary>
            Creates a new <see cref="T:iMobileDevice.MobileBackup.MobileBackupClientHandle"/> from a <see cref="T:System.IntPtr"/>.
            </summary>
            <param name="unsafeHandle">
            The underlying <see cref="T:System.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>
        </member>
        <member name="M:iMobileDevice.MobileBackup.MobileBackupClientHandle.DangerousCreate(System.IntPtr)">
            <summary>
            Creates a new <see cref="T:iMobileDevice.MobileBackup.MobileBackupClientHandle"/> from a <see cref="T:System.IntPtr"/>.
            </summary>
            <param name="unsafeHandle">
            The underlying <see cref="T:System.IntPtr"/>
            </param>
            <returns>
            </returns>
        </member>
        <member name="M:iMobileDevice.MobileBackup.MobileBackupClientHandle.ToString">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.MobileBackup.MobileBackupClientHandle.Equals(System.Object)">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.MobileBackup.MobileBackupClientHandle.GetHashCode">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.MobileBackup.MobileBackupClientHandle.op_Equality(iMobileDevice.MobileBackup.MobileBackupClientHandle,iMobileDevice.MobileBackup.MobileBackupClientHandle)">
            <summary>
            Determines whether two specified instances of <see cref="T:iMobileDevice.MobileBackup.MobileBackupClientHandle"/> are equal.
            </summary>
            <param name="value1">
            The first pointer or handle to compare.
            </param>
            <param name="value2">
            The second pointer or handle to compare.
            </param>
            <returns>
            <see langword="true"/> if <paramref name="value1"/> equals <paramref name="value2"/>; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="M:iMobileDevice.MobileBackup.MobileBackupClientHandle.op_Inequality(iMobileDevice.MobileBackup.MobileBackupClientHandle,iMobileDevice.MobileBackup.MobileBackupClientHandle)">
            <summary>
            Determines whether two specified instances of <see cref="T:iMobileDevice.MobileBackup.MobileBackupClientHandle"/> are not equal.
            </summary>
            <param name="value1">
            The first pointer or handle to compare.
            </param>
            <param name="value2">
            The second pointer or handle to compare.
            </param>
            <returns>
            <see langword="true"/> if <paramref name="value1"/> does not equal <paramref name="value2"/>; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="T:iMobileDevice.MobileBackup.MobileBackupError">
            <summary>
            Error Codes 
            </summary>
        </member>
        <member name="T:iMobileDevice.MobileBackup.MobileBackupException">
            Represents an exception that occurred when interacting with the MobileBackup API.
        </member>
        <member name="F:iMobileDevice.MobileBackup.MobileBackupException.errorCode">
            <summary>
            Backing field for the <see cref="P:iMobileDevice.MobileBackup.MobileBackupException.ErrorCode"/> property.
            </summary>
        </member>
        <member name="M:iMobileDevice.MobileBackup.MobileBackupException.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.MobileBackup.MobileBackupException"/> class.
            </summary>
        </member>
        <member name="M:iMobileDevice.MobileBackup.MobileBackupException.#ctor(iMobileDevice.MobileBackup.MobileBackupError)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.MobileBackup.MobileBackupException"/> class with a specified error code.
            </summary>
            <param name="error">
            The error code of the error that occurred.
            </param>
        </member>
        <member name="M:iMobileDevice.MobileBackup.MobileBackupException.#ctor(iMobileDevice.MobileBackup.MobileBackupError,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.MobileBackup.MobileBackupException"/> class with a specified error code and error message.
            </summary>
            <param name="error">
            The error code of the error that occurred.
            </param>
            <param name="message">
            A message which describes the error.
            </param>
        </member>
        <member name="M:iMobileDevice.MobileBackup.MobileBackupException.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.MobileBackup.MobileBackupException"/> class with a specified error message.
            </summary>
            <param name="message">
            The message that describes the error.
            </param>
        </member>
        <member name="M:iMobileDevice.MobileBackup.MobileBackupException.#ctor(System.String,System.Exception)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.MobileBackup.MobileBackupException"/> class with a specified error message and a reference to the inner exception that is the cause of this exception.
            </summary>
            <param name="message">
            The error message that explains the reason for the exception.
            </param>
            <param name="inner">
            The exception that is the cause of the current exception, or <see langword="null"/> if no inner exception is specified.
            </param>
        </member>
        <member name="M:iMobileDevice.MobileBackup.MobileBackupException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.MobileBackup.MobileBackupException"/> class with serialized data.
            </summary>
            <param name="info">
            The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds the serialized object data about the exception being thrown.
            </param>
            <param name="context">
            The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that contains contextual information about the source or destination.
            </param>
        </member>
        <member name="P:iMobileDevice.MobileBackup.MobileBackupException.ErrorCode">
            <summary>
            Gets the error code that represents the error.
            </summary>
        </member>
        <member name="M:iMobileDevice.MobileBackup.MobileBackupNativeMethods.mobilebackup_client_new(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Lockdown.LockdownServiceDescriptorHandle,iMobileDevice.MobileBackup.MobileBackupClientHandle@)">
            <summary>
            Connects to the mobilebackup 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">
            Pointer that will be set to a newly allocated
            mobilebackup_client_t upon successful return.
            </param>
            <returns>
            MOBILEBACKUP_E_SUCCESS on success, MOBILEBACKUP_E_INVALID ARG if one
            or more parameters are invalid, or DEVICE_LINK_SERVICE_E_BAD_VERSION if
            the mobilebackup version on the device is newer.
            </returns>
        </member>
        <member name="M:iMobileDevice.MobileBackup.MobileBackupNativeMethods.mobilebackup_client_start_service(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.MobileBackup.MobileBackupClientHandle@,System.String)">
            <summary>
            Starts a new mobilebackup 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
            mobilebackup_client_t upon successful return. Must be freed using
            mobilebackup_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>
            MOBILEBACKUP_E_SUCCESS on success, or an MOBILEBACKUP_E_* error
            code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.MobileBackup.MobileBackupNativeMethods.mobilebackup_client_free(System.IntPtr)">
            <summary>
            Disconnects a mobilebackup client from the device and frees up the
            mobilebackup client data.
            </summary>
            <param name="client">
            The mobilebackup client to disconnect and free.
            </param>
            <returns>
            MOBILEBACKUP_E_SUCCESS on success, or MOBILEBACKUP_E_INVALID_ARG
            if client is NULL.
            </returns>
        </member>
        <member name="M:iMobileDevice.MobileBackup.MobileBackupNativeMethods.mobilebackup_receive(iMobileDevice.MobileBackup.MobileBackupClientHandle,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Polls the device for mobilebackup data.
            </summary>
            <param name="client">
            The mobilebackup client
            </param>
            <param name="plist">
            A pointer to the location where the plist should be stored
            </param>
            <returns>
            an error code
            </returns>
        </member>
        <member name="M:iMobileDevice.MobileBackup.MobileBackupNativeMethods.mobilebackup_send(iMobileDevice.MobileBackup.MobileBackupClientHandle,iMobileDevice.Plist.PlistHandle)">
            <summary>
            Sends mobilebackup data to the device
            </summary>
            <param name="client">
            The mobilebackup client
            </param>
            <param name="plist">
            The location of the plist to send
            </param>
            <returns>
            an error code
            </returns>
            <remarks>
            This function is low-level and should only be used if you need to send
            a new type of message.
            </remarks>
        </member>
        <member name="M:iMobileDevice.MobileBackup.MobileBackupNativeMethods.mobilebackup_request_backup(iMobileDevice.MobileBackup.MobileBackupClientHandle,iMobileDevice.Plist.PlistHandle,System.String,System.String)">
            <summary>
            Request a backup from the connected device.
            </summary>
            <param name="client">
            The connected MobileBackup client to use.
            </param>
            <param name="backup_manifest">
            The backup manifest, a plist_t of type PLIST_DICT
            containing the backup state of the last backup. For a first-time backup
            set this parameter to NULL.
            </param>
            <param name="base_path">
            The base path on the device to use for the backup
            operation, usually "/".
            </param>
            <param name="proto_version">
            A string denoting the version of the backup protocol
            to use. Latest known version is "1.6"
            </param>
            <returns>
            MOBILEBACKUP_E_SUCCESS on success, MOBILEBACKUP_E_INVALID_ARG if
            one of the parameters is invalid, MOBILEBACKUP_E_PLIST_ERROR if
            backup_manifest is not of type PLIST_DICT, MOBILEBACKUP_E_MUX_ERROR
            if a communication error occurs, MOBILEBACKUP_E_REPLY_NOT_OK
            </returns>
        </member>
        <member name="M:iMobileDevice.MobileBackup.MobileBackupNativeMethods.mobilebackup_send_backup_file_received(iMobileDevice.MobileBackup.MobileBackupClientHandle)">
            <summary>
            Sends a confirmation to the device that a backup file has been received.
            </summary>
            <param name="client">
            The connected MobileBackup client to use.
            </param>
            <returns>
            MOBILEBACKUP_E_SUCCESS on success, MOBILEBACKUP_E_INVALID_ARG if
            client is invalid, or MOBILEBACKUP_E_MUX_ERROR if a communication error
            occurs.
            </returns>
        </member>
        <member name="M:iMobileDevice.MobileBackup.MobileBackupNativeMethods.mobilebackup_request_restore(iMobileDevice.MobileBackup.MobileBackupClientHandle,iMobileDevice.Plist.PlistHandle,iMobileDevice.MobileBackup.MobileBackupFlags,System.String)">
            <summary>
            Request that a backup should be restored to the connected device.
            </summary>
            <param name="client">
            The connected MobileBackup client to use.
            </param>
            <param name="backup_manifest">
            The backup manifest, a plist_t of type PLIST_DICT
            containing the backup state to be restored.
            </param>
            <param name="flags">
            Flags to send with the request. Currently this is a combination
            of the following mobilebackup_flags_t:
            MB_RESTORE_NOTIFY_SPRINGBOARD - let SpringBoard show a 'Restore' screen
            MB_RESTORE_PRESERVE_SETTINGS - do not overwrite any settings
            MB_RESTORE_PRESERVE_CAMERA_ROLL - preserve the photos of the camera roll
            </param>
            <param name="proto_version">
            A string denoting the version of the backup protocol
            to use. Latest known version is "1.6". Ideally this value should be
            extracted from the given manifest plist.
            </param>
            <returns>
            MOBILEBACKUP_E_SUCCESS on success, MOBILEBACKUP_E_INVALID_ARG if
            one of the parameters is invalid, MOBILEBACKUP_E_PLIST_ERROR if
            backup_manifest is not of type PLIST_DICT, MOBILEBACKUP_E_MUX_ERROR
            if a communication error occurs, or MOBILEBACKUP_E_REPLY_NOT_OK
            if the device did not accept the request.
            </returns>
        </member>
        <member name="M:iMobileDevice.MobileBackup.MobileBackupNativeMethods.mobilebackup_receive_restore_file_received(iMobileDevice.MobileBackup.MobileBackupClientHandle,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Receive a confirmation from the device that it successfully received
            a restore file.
            </summary>
            <param name="client">
            The connected MobileBackup client to use.
            </param>
            <param name="result">
            Pointer to a plist_t that will be set to the received plist
            for further processing. The caller has to free it using plist_free().
            Note that it will be set to NULL if the operation itself fails due to
            a communication or plist error.
            If this parameter is NULL, it will be ignored.
            </param>
            <returns>
            MOBILEBACKUP_E_SUCCESS on success, MOBILEBACKUP_E_INVALID_ARG if
            client is invalid, MOBILEBACKUP_E_REPLY_NOT_OK if the expected
            'BackupMessageRestoreFileReceived' message could not be received,
            MOBILEBACKUP_E_PLIST_ERROR if the received message is not a valid backup
            message plist, or MOBILEBACKUP_E_MUX_ERROR if a communication error
            occurs.
            </returns>
        </member>
        <member name="M:iMobileDevice.MobileBackup.MobileBackupNativeMethods.mobilebackup_receive_restore_application_received(iMobileDevice.MobileBackup.MobileBackupClientHandle,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Receive a confirmation from the device that it successfully received
            application data file.
            </summary>
            <param name="client">
            The connected MobileBackup client to use.
            </param>
            <param name="result">
            Pointer to a plist_t that will be set to the received plist
            for further processing. The caller has to free it using plist_free().
            Note that it will be set to NULL if the operation itself fails due to
            a communication or plist error.
            If this parameter is NULL, it will be ignored.
            </param>
            <returns>
            MOBILEBACKUP_E_SUCCESS on success, MOBILEBACKUP_E_INVALID_ARG if
            client is invalid, MOBILEBACKUP_E_REPLY_NOT_OK if the expected
            'BackupMessageRestoreApplicationReceived' message could not be received,
            MOBILEBACKUP_E_PLIST_ERROR if the received message is not a valid backup
            message plist, or MOBILEBACKUP_E_MUX_ERROR if a communication error
            occurs.
            </returns>
        </member>
        <member name="M:iMobileDevice.MobileBackup.MobileBackupNativeMethods.mobilebackup_send_restore_complete(iMobileDevice.MobileBackup.MobileBackupClientHandle)">
            <summary>
            Tells the device that the restore process is complete and waits for the
            device to close the connection. After that, the device should reboot.
            </summary>
            <param name="client">
            The connected MobileBackup client to use.
            </param>
            <returns>
            MOBILEBACKUP_E_SUCCESS on success, MOBILEBACKUP_E_INVALID_ARG if
            client is invalid, MOBILEBACKUP_E_PLIST_ERROR if the received disconnect
            message plist is invalid, or MOBILEBACKUP_E_MUX_ERROR if a communication
            error occurs.
            </returns>
        </member>
        <member name="M:iMobileDevice.MobileBackup.MobileBackupNativeMethods.mobilebackup_send_error(iMobileDevice.MobileBackup.MobileBackupClientHandle,System.String)">
            <summary>
            Sends a backup error message to the device.
            </summary>
            <param name="client">
            The connected MobileBackup client to use.
            </param>
            <param name="reason">
            A string describing the reason for the error message.
            </param>
            <returns>
            MOBILEBACKUP_E_SUCCESS on success, MOBILEBACKUP_E_INVALID_ARG if
            one of the parameters is invalid, or MOBILEBACKUP_E_MUX_ERROR if a
            communication error occurs.
            </returns>
        </member>
        <member name="P:iMobileDevice.MobileImageMounter.IMobileImageMounterApi.Parent">
            <summary>
            Gets or sets the <see cref="!:ILibiMobileDeviceApi"/> which owns this <see cref="N:iMobileDevice.MobileImageMounter"/>.
            </summary>
        </member>
        <member name="M:iMobileDevice.MobileImageMounter.IMobileImageMounterApi.mobile_image_mounter_new(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Lockdown.LockdownServiceDescriptorHandle,iMobileDevice.MobileImageMounter.MobileImageMounterClientHandle@)">
            <summary>
            Connects to the mobile_image_mounter 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">
            Pointer that will be set to a newly allocated
            mobile_image_mounter_client_t upon successful return.
            </param>
            <returns>
            MOBILE_IMAGE_MOUNTER_E_SUCCESS on success,
            MOBILE_IMAGE_MOUNTER_E_INVALID_ARG if device is NULL,
            or MOBILE_IMAGE_MOUNTER_E_CONN_FAILED if the connection to the
            device could not be established.
            </returns>
        </member>
        <member name="M:iMobileDevice.MobileImageMounter.IMobileImageMounterApi.mobile_image_mounter_start_service(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.MobileImageMounter.MobileImageMounterClientHandle@,System.String)">
            <summary>
            Starts a new mobile_image_mounter 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
            mobile_image_mounter_t upon successful return. Must be freed using
            mobile_image_mounter_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>
            MOBILE_IMAGE_MOUNTER_E_SUCCESS on success, or an MOBILE_IMAGE_MOUNTER_E_* error
            code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.MobileImageMounter.IMobileImageMounterApi.mobile_image_mounter_free(System.IntPtr)">
            <summary>
            Disconnects a mobile_image_mounter client from the device and frees up the
            mobile_image_mounter client data.
            </summary>
            <param name="client">
            The mobile_image_mounter client to disconnect and free.
            </param>
            <returns>
            MOBILE_IMAGE_MOUNTER_E_SUCCESS on success,
            or MOBILE_IMAGE_MOUNTER_E_INVALID_ARG if client is NULL.
            </returns>
        </member>
        <member name="M:iMobileDevice.MobileImageMounter.IMobileImageMounterApi.mobile_image_mounter_lookup_image(iMobileDevice.MobileImageMounter.MobileImageMounterClientHandle,System.String,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Tells if the image of ImageType is already mounted.
            </summary>
            <param name="client">
            The client use
            </param>
            <param name="image_type">
            The type of the image to look up
            </param>
            <param name="result">
            Pointer to a plist that will receive the result of the
            operation.
            </param>
            <returns>
            MOBILE_IMAGE_MOUNTER_E_SUCCESS on success, or an error code on error
            </returns>
            <remarks>
            This function may return MOBILE_IMAGE_MOUNTER_E_SUCCESS even if the
            operation has failed. Check the resulting plist for further information.
            </remarks>
        </member>
        <member name="M:iMobileDevice.MobileImageMounter.IMobileImageMounterApi.mobile_image_mounter_upload_image(iMobileDevice.MobileImageMounter.MobileImageMounterClientHandle,System.String,System.UInt32,System.Byte[],System.UInt16,iMobileDevice.MobileImageMounter.MobileImageMounterUploadCallBack,System.IntPtr)">
            <summary>
            Uploads an image with an optional signature to the device.
            </summary>
            <param name="client">
            The connected mobile_image_mounter client.
            </param>
            <param name="image_type">
            Type of image that is being uploaded.
            </param>
            <param name="image_size">
            Total size of the image.
            </param>
            <param name="signature">
            Buffer with a signature of the image being uploaded. If
            NULL, no signature will be used.
            </param>
            <param name="signature_size">
            Total size of the image signature buffer. If 0, no
            signature will be used.
            </param>
            <param name="upload_cb">
            Callback function that gets the data chunks for uploading
            the image.
            </param>
            <param name="userdata">
            User defined data for the upload callback function.
            </param>
            <returns>
            MOBILE_IMAGE_MOUNTER_E_SUCCESS on succes, or a
            MOBILE_IMAGE_MOUNTER_E_* error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.MobileImageMounter.IMobileImageMounterApi.mobile_image_mounter_mount_image(iMobileDevice.MobileImageMounter.MobileImageMounterClientHandle,System.String,System.Byte[],System.UInt16,System.String,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Mounts an image on the device.
            </summary>
            <param name="client">
            The connected mobile_image_mounter client.
            </param>
            <param name="image_path">
            The absolute path of the image to mount. The image must
            be present before calling this function.
            </param>
            <param name="signature">
            Pointer to a buffer holding the images' signature
            </param>
            <param name="signature_size">
            Length of the signature image_signature points to
            </param>
            <param name="image_type">
            Type of image to mount
            </param>
            <param name="result">
            Pointer to a plist that will receive the result of the
            operation.
            </param>
            <returns>
            MOBILE_IMAGE_MOUNTER_E_SUCCESS on success,
            MOBILE_IMAGE_MOUNTER_E_INVALID_ARG if on ore more parameters are
            invalid, or another error code otherwise.
            </returns>
            <remarks>
            This function may return MOBILE_IMAGE_MOUNTER_E_SUCCESS even if the
            operation has failed. Check the resulting plist for further information.
            Note that there is no unmounting function. The mount persists until the
            device is rebooted.
            </remarks>
        </member>
        <member name="M:iMobileDevice.MobileImageMounter.IMobileImageMounterApi.mobile_image_mounter_hangup(iMobileDevice.MobileImageMounter.MobileImageMounterClientHandle)">
            <summary>
            Hangs up the connection to the mobile_image_mounter service.
            This functions has to be called before freeing up a mobile_image_mounter
            instance. If not, errors appear in the device's syslog.
            </summary>
            <param name="client">
            The client to hang up
            </param>
            <returns>
            MOBILE_IMAGE_MOUNTER_E_SUCCESS on success,
            MOBILE_IMAGE_MOUNTER_E_INVALID_ARG if client is invalid,
            or another error code otherwise.
            </returns>
        </member>
        <member name="F:iMobileDevice.MobileImageMounter.MobileImageMounterApi.parent">
            <summary>
            Backing field for the <see cref="P:iMobileDevice.MobileImageMounter.MobileImageMounterApi.Parent"/> property
            </summary>
        </member>
        <member name="M:iMobileDevice.MobileImageMounter.MobileImageMounterApi.#ctor(iMobileDevice.ILibiMobileDevice)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.MobileImageMounter.MobileImageMounterApi"/> class
            </summary>
            <param name="parent">
            The <see cref="!:ILibiMobileDeviceApi"/> which owns this <see cref="N:iMobileDevice.MobileImageMounter"/>.
            </param>
        </member>
        <member name="P:iMobileDevice.MobileImageMounter.MobileImageMounterApi.Parent">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.MobileImageMounter.MobileImageMounterApi.mobile_image_mounter_new(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Lockdown.LockdownServiceDescriptorHandle,iMobileDevice.MobileImageMounter.MobileImageMounterClientHandle@)">
            <summary>
            Connects to the mobile_image_mounter 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">
            Pointer that will be set to a newly allocated
            mobile_image_mounter_client_t upon successful return.
            </param>
            <returns>
            MOBILE_IMAGE_MOUNTER_E_SUCCESS on success,
            MOBILE_IMAGE_MOUNTER_E_INVALID_ARG if device is NULL,
            or MOBILE_IMAGE_MOUNTER_E_CONN_FAILED if the connection to the
            device could not be established.
            </returns>
        </member>
        <member name="M:iMobileDevice.MobileImageMounter.MobileImageMounterApi.mobile_image_mounter_start_service(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.MobileImageMounter.MobileImageMounterClientHandle@,System.String)">
            <summary>
            Starts a new mobile_image_mounter 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
            mobile_image_mounter_t upon successful return. Must be freed using
            mobile_image_mounter_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>
            MOBILE_IMAGE_MOUNTER_E_SUCCESS on success, or an MOBILE_IMAGE_MOUNTER_E_* error
            code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.MobileImageMounter.MobileImageMounterApi.mobile_image_mounter_free(System.IntPtr)">
            <summary>
            Disconnects a mobile_image_mounter client from the device and frees up the
            mobile_image_mounter client data.
            </summary>
            <param name="client">
            The mobile_image_mounter client to disconnect and free.
            </param>
            <returns>
            MOBILE_IMAGE_MOUNTER_E_SUCCESS on success,
            or MOBILE_IMAGE_MOUNTER_E_INVALID_ARG if client is NULL.
            </returns>
        </member>
        <member name="M:iMobileDevice.MobileImageMounter.MobileImageMounterApi.mobile_image_mounter_lookup_image(iMobileDevice.MobileImageMounter.MobileImageMounterClientHandle,System.String,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Tells if the image of ImageType is already mounted.
            </summary>
            <param name="client">
            The client use
            </param>
            <param name="image_type">
            The type of the image to look up
            </param>
            <param name="result">
            Pointer to a plist that will receive the result of the
            operation.
            </param>
            <returns>
            MOBILE_IMAGE_MOUNTER_E_SUCCESS on success, or an error code on error
            </returns>
            <remarks>
            This function may return MOBILE_IMAGE_MOUNTER_E_SUCCESS even if the
            operation has failed. Check the resulting plist for further information.
            </remarks>
        </member>
        <member name="M:iMobileDevice.MobileImageMounter.MobileImageMounterApi.mobile_image_mounter_upload_image(iMobileDevice.MobileImageMounter.MobileImageMounterClientHandle,System.String,System.UInt32,System.Byte[],System.UInt16,iMobileDevice.MobileImageMounter.MobileImageMounterUploadCallBack,System.IntPtr)">
            <summary>
            Uploads an image with an optional signature to the device.
            </summary>
            <param name="client">
            The connected mobile_image_mounter client.
            </param>
            <param name="image_type">
            Type of image that is being uploaded.
            </param>
            <param name="image_size">
            Total size of the image.
            </param>
            <param name="signature">
            Buffer with a signature of the image being uploaded. If
            NULL, no signature will be used.
            </param>
            <param name="signature_size">
            Total size of the image signature buffer. If 0, no
            signature will be used.
            </param>
            <param name="upload_cb">
            Callback function that gets the data chunks for uploading
            the image.
            </param>
            <param name="userdata">
            User defined data for the upload callback function.
            </param>
            <returns>
            MOBILE_IMAGE_MOUNTER_E_SUCCESS on succes, or a
            MOBILE_IMAGE_MOUNTER_E_* error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.MobileImageMounter.MobileImageMounterApi.mobile_image_mounter_mount_image(iMobileDevice.MobileImageMounter.MobileImageMounterClientHandle,System.String,System.Byte[],System.UInt16,System.String,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Mounts an image on the device.
            </summary>
            <param name="client">
            The connected mobile_image_mounter client.
            </param>
            <param name="image_path">
            The absolute path of the image to mount. The image must
            be present before calling this function.
            </param>
            <param name="signature">
            Pointer to a buffer holding the images' signature
            </param>
            <param name="signature_size">
            Length of the signature image_signature points to
            </param>
            <param name="image_type">
            Type of image to mount
            </param>
            <param name="result">
            Pointer to a plist that will receive the result of the
            operation.
            </param>
            <returns>
            MOBILE_IMAGE_MOUNTER_E_SUCCESS on success,
            MOBILE_IMAGE_MOUNTER_E_INVALID_ARG if on ore more parameters are
            invalid, or another error code otherwise.
            </returns>
            <remarks>
            This function may return MOBILE_IMAGE_MOUNTER_E_SUCCESS even if the
            operation has failed. Check the resulting plist for further information.
            Note that there is no unmounting function. The mount persists until the
            device is rebooted.
            </remarks>
        </member>
        <member name="M:iMobileDevice.MobileImageMounter.MobileImageMounterApi.mobile_image_mounter_hangup(iMobileDevice.MobileImageMounter.MobileImageMounterClientHandle)">
            <summary>
            Hangs up the connection to the mobile_image_mounter service.
            This functions has to be called before freeing up a mobile_image_mounter
            instance. If not, errors appear in the device's syslog.
            </summary>
            <param name="client">
            The client to hang up
            </param>
            <returns>
            MOBILE_IMAGE_MOUNTER_E_SUCCESS on success,
            MOBILE_IMAGE_MOUNTER_E_INVALID_ARG if client is invalid,
            or another error code otherwise.
            </returns>
        </member>
        <member name="T:iMobileDevice.MobileImageMounter.MobileImageMounterClientHandle">
            <summary>
            Represents a wrapper class for MobileImageMounter handles.
            </summary>
        </member>
        <member name="M:iMobileDevice.MobileImageMounter.MobileImageMounterClientHandle.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.MobileImageMounter.MobileImageMounterClientHandle"/> class.
            </summary>
        </member>
        <member name="M:iMobileDevice.MobileImageMounter.MobileImageMounterClientHandle.#ctor(System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.MobileImageMounter.MobileImageMounterClientHandle"/> class, specifying whether the handle is to be reliably released.
            </summary>
            <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>
        </member>
        <member name="P:iMobileDevice.MobileImageMounter.MobileImageMounterClientHandle.Api">
            <summary>
            Gets or sets the API to use
            </summary>
        </member>
        <member name="P:iMobileDevice.MobileImageMounter.MobileImageMounterClientHandle.Zero">
            <summary>
            Gets a value which represents a pointer or handle that has been initialized to zero.
            </summary>
        </member>
        <member name="M:iMobileDevice.MobileImageMounter.MobileImageMounterClientHandle.ReleaseHandle">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.MobileImageMounter.MobileImageMounterClientHandle.DangerousCreate(System.IntPtr,System.Boolean)">
            <summary>
            Creates a new <see cref="T:iMobileDevice.MobileImageMounter.MobileImageMounterClientHandle"/> from a <see cref="T:System.IntPtr"/>.
            </summary>
            <param name="unsafeHandle">
            The underlying <see cref="T:System.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>
        </member>
        <member name="M:iMobileDevice.MobileImageMounter.MobileImageMounterClientHandle.DangerousCreate(System.IntPtr)">
            <summary>
            Creates a new <see cref="T:iMobileDevice.MobileImageMounter.MobileImageMounterClientHandle"/> from a <see cref="T:System.IntPtr"/>.
            </summary>
            <param name="unsafeHandle">
            The underlying <see cref="T:System.IntPtr"/>
            </param>
            <returns>
            </returns>
        </member>
        <member name="M:iMobileDevice.MobileImageMounter.MobileImageMounterClientHandle.ToString">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.MobileImageMounter.MobileImageMounterClientHandle.Equals(System.Object)">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.MobileImageMounter.MobileImageMounterClientHandle.GetHashCode">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.MobileImageMounter.MobileImageMounterClientHandle.op_Equality(iMobileDevice.MobileImageMounter.MobileImageMounterClientHandle,iMobileDevice.MobileImageMounter.MobileImageMounterClientHandle)">
            <summary>
            Determines whether two specified instances of <see cref="T:iMobileDevice.MobileImageMounter.MobileImageMounterClientHandle"/> are equal.
            </summary>
            <param name="value1">
            The first pointer or handle to compare.
            </param>
            <param name="value2">
            The second pointer or handle to compare.
            </param>
            <returns>
            <see langword="true"/> if <paramref name="value1"/> equals <paramref name="value2"/>; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="M:iMobileDevice.MobileImageMounter.MobileImageMounterClientHandle.op_Inequality(iMobileDevice.MobileImageMounter.MobileImageMounterClientHandle,iMobileDevice.MobileImageMounter.MobileImageMounterClientHandle)">
            <summary>
            Determines whether two specified instances of <see cref="T:iMobileDevice.MobileImageMounter.MobileImageMounterClientHandle"/> are not equal.
            </summary>
            <param name="value1">
            The first pointer or handle to compare.
            </param>
            <param name="value2">
            The second pointer or handle to compare.
            </param>
            <returns>
            <see langword="true"/> if <paramref name="value1"/> does not equal <paramref name="value2"/>; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="T:iMobileDevice.MobileImageMounter.MobileImageMounterError">
            <summary>
            Error Codes 
            </summary>
        </member>
        <member name="T:iMobileDevice.MobileImageMounter.MobileImageMounterException">
            Represents an exception that occurred when interacting with the MobileImageMounter API.
        </member>
        <member name="F:iMobileDevice.MobileImageMounter.MobileImageMounterException.errorCode">
            <summary>
            Backing field for the <see cref="P:iMobileDevice.MobileImageMounter.MobileImageMounterException.ErrorCode"/> property.
            </summary>
        </member>
        <member name="M:iMobileDevice.MobileImageMounter.MobileImageMounterException.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.MobileImageMounter.MobileImageMounterException"/> class.
            </summary>
        </member>
        <member name="M:iMobileDevice.MobileImageMounter.MobileImageMounterException.#ctor(iMobileDevice.MobileImageMounter.MobileImageMounterError)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.MobileImageMounter.MobileImageMounterException"/> class with a specified error code.
            </summary>
            <param name="error">
            The error code of the error that occurred.
            </param>
        </member>
        <member name="M:iMobileDevice.MobileImageMounter.MobileImageMounterException.#ctor(iMobileDevice.MobileImageMounter.MobileImageMounterError,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.MobileImageMounter.MobileImageMounterException"/> class with a specified error code and error message.
            </summary>
            <param name="error">
            The error code of the error that occurred.
            </param>
            <param name="message">
            A message which describes the error.
            </param>
        </member>
        <member name="M:iMobileDevice.MobileImageMounter.MobileImageMounterException.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.MobileImageMounter.MobileImageMounterException"/> class with a specified error message.
            </summary>
            <param name="message">
            The message that describes the error.
            </param>
        </member>
        <member name="M:iMobileDevice.MobileImageMounter.MobileImageMounterException.#ctor(System.String,System.Exception)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.MobileImageMounter.MobileImageMounterException"/> class with a specified error message and a reference to the inner exception that is the cause of this exception.
            </summary>
            <param name="message">
            The error message that explains the reason for the exception.
            </param>
            <param name="inner">
            The exception that is the cause of the current exception, or <see langword="null"/> if no inner exception is specified.
            </param>
        </member>
        <member name="M:iMobileDevice.MobileImageMounter.MobileImageMounterException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.MobileImageMounter.MobileImageMounterException"/> class with serialized data.
            </summary>
            <param name="info">
            The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds the serialized object data about the exception being thrown.
            </param>
            <param name="context">
            The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that contains contextual information about the source or destination.
            </param>
        </member>
        <member name="P:iMobileDevice.MobileImageMounter.MobileImageMounterException.ErrorCode">
            <summary>
            Gets the error code that represents the error.
            </summary>
        </member>
        <member name="M:iMobileDevice.MobileImageMounter.MobileImageMounterNativeMethods.mobile_image_mounter_new(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Lockdown.LockdownServiceDescriptorHandle,iMobileDevice.MobileImageMounter.MobileImageMounterClientHandle@)">
            <summary>
            Connects to the mobile_image_mounter 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">
            Pointer that will be set to a newly allocated
            mobile_image_mounter_client_t upon successful return.
            </param>
            <returns>
            MOBILE_IMAGE_MOUNTER_E_SUCCESS on success,
            MOBILE_IMAGE_MOUNTER_E_INVALID_ARG if device is NULL,
            or MOBILE_IMAGE_MOUNTER_E_CONN_FAILED if the connection to the
            device could not be established.
            </returns>
        </member>
        <member name="M:iMobileDevice.MobileImageMounter.MobileImageMounterNativeMethods.mobile_image_mounter_start_service(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.MobileImageMounter.MobileImageMounterClientHandle@,System.String)">
            <summary>
            Starts a new mobile_image_mounter 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
            mobile_image_mounter_t upon successful return. Must be freed using
            mobile_image_mounter_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>
            MOBILE_IMAGE_MOUNTER_E_SUCCESS on success, or an MOBILE_IMAGE_MOUNTER_E_* error
            code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.MobileImageMounter.MobileImageMounterNativeMethods.mobile_image_mounter_free(System.IntPtr)">
            <summary>
            Disconnects a mobile_image_mounter client from the device and frees up the
            mobile_image_mounter client data.
            </summary>
            <param name="client">
            The mobile_image_mounter client to disconnect and free.
            </param>
            <returns>
            MOBILE_IMAGE_MOUNTER_E_SUCCESS on success,
            or MOBILE_IMAGE_MOUNTER_E_INVALID_ARG if client is NULL.
            </returns>
        </member>
        <member name="M:iMobileDevice.MobileImageMounter.MobileImageMounterNativeMethods.mobile_image_mounter_lookup_image(iMobileDevice.MobileImageMounter.MobileImageMounterClientHandle,System.String,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Tells if the image of ImageType is already mounted.
            </summary>
            <param name="client">
            The client use
            </param>
            <param name="image_type">
            The type of the image to look up
            </param>
            <param name="result">
            Pointer to a plist that will receive the result of the
            operation.
            </param>
            <returns>
            MOBILE_IMAGE_MOUNTER_E_SUCCESS on success, or an error code on error
            </returns>
            <remarks>
            This function may return MOBILE_IMAGE_MOUNTER_E_SUCCESS even if the
            operation has failed. Check the resulting plist for further information.
            </remarks>
        </member>
        <member name="M:iMobileDevice.MobileImageMounter.MobileImageMounterNativeMethods.mobile_image_mounter_upload_image(iMobileDevice.MobileImageMounter.MobileImageMounterClientHandle,System.String,System.UInt32,System.Byte[],System.UInt16,iMobileDevice.MobileImageMounter.MobileImageMounterUploadCallBack,System.IntPtr)">
            <summary>
            Uploads an image with an optional signature to the device.
            </summary>
            <param name="client">
            The connected mobile_image_mounter client.
            </param>
            <param name="image_type">
            Type of image that is being uploaded.
            </param>
            <param name="image_size">
            Total size of the image.
            </param>
            <param name="signature">
            Buffer with a signature of the image being uploaded. If
            NULL, no signature will be used.
            </param>
            <param name="signature_size">
            Total size of the image signature buffer. If 0, no
            signature will be used.
            </param>
            <param name="upload_cb">
            Callback function that gets the data chunks for uploading
            the image.
            </param>
            <param name="userdata">
            User defined data for the upload callback function.
            </param>
            <returns>
            MOBILE_IMAGE_MOUNTER_E_SUCCESS on succes, or a
            MOBILE_IMAGE_MOUNTER_E_* error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.MobileImageMounter.MobileImageMounterNativeMethods.mobile_image_mounter_mount_image(iMobileDevice.MobileImageMounter.MobileImageMounterClientHandle,System.String,System.Byte[],System.UInt16,System.String,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Mounts an image on the device.
            </summary>
            <param name="client">
            The connected mobile_image_mounter client.
            </param>
            <param name="image_path">
            The absolute path of the image to mount. The image must
            be present before calling this function.
            </param>
            <param name="signature">
            Pointer to a buffer holding the images' signature
            </param>
            <param name="signature_size">
            Length of the signature image_signature points to
            </param>
            <param name="image_type">
            Type of image to mount
            </param>
            <param name="result">
            Pointer to a plist that will receive the result of the
            operation.
            </param>
            <returns>
            MOBILE_IMAGE_MOUNTER_E_SUCCESS on success,
            MOBILE_IMAGE_MOUNTER_E_INVALID_ARG if on ore more parameters are
            invalid, or another error code otherwise.
            </returns>
            <remarks>
            This function may return MOBILE_IMAGE_MOUNTER_E_SUCCESS even if the
            operation has failed. Check the resulting plist for further information.
            Note that there is no unmounting function. The mount persists until the
            device is rebooted.
            </remarks>
        </member>
        <member name="M:iMobileDevice.MobileImageMounter.MobileImageMounterNativeMethods.mobile_image_mounter_hangup(iMobileDevice.MobileImageMounter.MobileImageMounterClientHandle)">
            <summary>
            Hangs up the connection to the mobile_image_mounter service.
            This functions has to be called before freeing up a mobile_image_mounter
            instance. If not, errors appear in the device's syslog.
            </summary>
            <param name="client">
            The client to hang up
            </param>
            <returns>
            MOBILE_IMAGE_MOUNTER_E_SUCCESS on success,
            MOBILE_IMAGE_MOUNTER_E_INVALID_ARG if client is invalid,
            or another error code otherwise.
            </returns>
        </member>
        <member name="P:iMobileDevice.MobileSync.IMobileSyncApi.Parent">
            <summary>
            Gets or sets the <see cref="!:ILibiMobileDeviceApi"/> which owns this <see cref="N:iMobileDevice.MobileSync"/>.
            </summary>
        </member>
        <member name="M:iMobileDevice.MobileSync.IMobileSyncApi.mobilesync_client_new(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Lockdown.LockdownServiceDescriptorHandle,iMobileDevice.MobileSync.MobileSyncClientHandle@)">
            <summary>
            Connects to the mobilesync service on the specified device.
            MOBILESYNC_E_SUCCESS on success
            MOBILESYNC_E_INVALID_ARG if one or more parameters are invalid
            DEVICE_LINK_SERVICE_E_BAD_VERSION if the mobilesync version on
            the device is newer.
            </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">
            Pointer that will be set to a newly allocated
            #mobilesync_client_t upon successful return.
            </param>
        </member>
        <member name="M:iMobileDevice.MobileSync.IMobileSyncApi.mobilesync_client_start_service(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.MobileSync.MobileSyncClientHandle@,System.String)">
            <summary>
            Starts a new mobilesync 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
            mobilesync_client_t upon successful return. Must be freed using
            mobilesync_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>
            MOBILESYNC_E_SUCCESS on success, or an MOBILESYNC_E_* error
            code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.MobileSync.IMobileSyncApi.mobilesync_client_free(System.IntPtr)">
            <summary>
            Disconnects a mobilesync client from the device and frees up the
            mobilesync client data.
            MOBILESYNC_E_SUCCESS on success
            MOBILESYNC_E_INVALID_ARG if
            is NULL.
            </summary>
            <param name="client">
            The mobilesync client to disconnect and free.
            </param>
        </member>
        <member name="M:iMobileDevice.MobileSync.IMobileSyncApi.mobilesync_receive(iMobileDevice.MobileSync.MobileSyncClientHandle,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Polls the device for mobilesync data.
            </summary>
            <param name="client">
            The mobilesync client
            </param>
            <param name="plist">
            A pointer to the location where the plist should be stored
            </param>
            <returns>
            an error code
            </returns>
        </member>
        <member name="M:iMobileDevice.MobileSync.IMobileSyncApi.mobilesync_send(iMobileDevice.MobileSync.MobileSyncClientHandle,iMobileDevice.Plist.PlistHandle)">
            <summary>
            Sends mobilesync data to the device
            </summary>
            <param name="client">
            The mobilesync client
            </param>
            <param name="plist">
            The location of the plist to send
            </param>
            <returns>
            an error code
            </returns>
            <remarks>
            This function is low-level and should only be used if you need to send
            a new type of message.
            </remarks>
        </member>
        <member name="M:iMobileDevice.MobileSync.IMobileSyncApi.mobilesync_start(iMobileDevice.MobileSync.MobileSyncClientHandle,System.Byte[],iMobileDevice.MobileSync.MobileSyncAnchorsHandle,System.UInt64,iMobileDevice.MobileSync.MobileSyncSyncType@,System.UInt64@,System.String@)">
            <summary>
            Requests starting synchronization of a data class with the device
            MOBILESYNC_E_SUCCESS on success
            MOBILESYNC_E_INVALID_ARG if one of the parameters is invalid
            MOBILESYNC_E_PLIST_ERROR if the received plist is not of valid form
            MOBILESYNC_E_SYNC_REFUSED if the device refused to sync
            MOBILESYNC_E_CANCELLED if the device explicitly cancelled the
            sync request
            </summary>
            <param name="client">
            The mobilesync client
            </param>
            <param name="data_class">
            The data class identifier to sync
            </param>
            <param name="anchors">
            The anchors required to exchange with the device. The anchors
            allow the device to tell if the synchronization information on the computer
            and device are consistent to determine what sync type is required.
            </param>
            <param name="computer_data_class_version">
            The version of the data class storage on the computer
            </param>
            <param name="sync_type">
            A pointer to store the sync type reported by the device_anchor
            </param>
            <param name="device_data_class_version">
            The version of the data class storage on the device
            </param>
            <param name="error_description">
            A pointer to store an error message if reported by the device
            </param>
        </member>
        <member name="M:iMobileDevice.MobileSync.IMobileSyncApi.mobilesync_cancel(iMobileDevice.MobileSync.MobileSyncClientHandle,System.String)">
            <summary>
            Cancels a running synchronization session with a device at any time.
            MOBILESYNC_E_SUCCESS on success
            MOBILESYNC_E_INVALID_ARG if one of the parameters is invalid
            </summary>
            <param name="client">
            The mobilesync client
            </param>
            <param name="reason">
            The reason to supply to the device for cancelling
            </param>
        </member>
        <member name="M:iMobileDevice.MobileSync.IMobileSyncApi.mobilesync_finish(iMobileDevice.MobileSync.MobileSyncClientHandle)">
            <summary>
            Finish a synchronization session of a data class on the device.
            A session must have previously been started using mobilesync_start().
            MOBILESYNC_E_SUCCESS on success
            MOBILESYNC_E_INVALID_ARG if one of the parameters is invalid
            MOBILESYNC_E_PLIST_ERROR if the received plist is not of valid
            form
            </summary>
            <param name="client">
            The mobilesync client
            </param>
        </member>
        <member name="M:iMobileDevice.MobileSync.IMobileSyncApi.mobilesync_get_all_records_from_device(iMobileDevice.MobileSync.MobileSyncClientHandle)">
            <summary>
            Requests to receive all records of the currently set data class from the device.
            The actually changes are retrieved using mobilesync_receive_changes() after this
            request has been successful.
            MOBILESYNC_E_SUCCESS on success
            MOBILESYNC_E_INVALID_ARG if one of the parameters is invalid
            </summary>
            <param name="client">
            The mobilesync client
            </param>
        </member>
        <member name="M:iMobileDevice.MobileSync.IMobileSyncApi.mobilesync_get_changes_from_device(iMobileDevice.MobileSync.MobileSyncClientHandle)">
            <summary>
            Requests to receive only changed records of the currently set data class from the device.
            The actually changes are retrieved using mobilesync_receive_changes() after this
            request has been successful.
            MOBILESYNC_E_SUCCESS on success
            MOBILESYNC_E_INVALID_ARG if one of the parameters is invalid
            </summary>
            <param name="client">
            The mobilesync client
            </param>
        </member>
        <member name="M:iMobileDevice.MobileSync.IMobileSyncApi.mobilesync_clear_all_records_on_device(iMobileDevice.MobileSync.MobileSyncClientHandle)">
            <summary>
            Requests the device to delete all records of the current data class
            MOBILESYNC_E_SUCCESS on success
            MOBILESYNC_E_INVALID_ARG if one of the parameters is invalid
            MOBILESYNC_E_PLIST_ERROR if the received plist is not of valid form
            </summary>
            <param name="client">
            The mobilesync client
            </param>
            <remarks>
            The operation must be called after starting synchronization.
            </remarks>
        </member>
        <member name="M:iMobileDevice.MobileSync.IMobileSyncApi.mobilesync_receive_changes(iMobileDevice.MobileSync.MobileSyncClientHandle,iMobileDevice.Plist.PlistHandle@,System.Char@,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Receives changed entitites of the currently set data class from the device
            MOBILESYNC_E_SUCCESS on success
            MOBILESYNC_E_INVALID_ARG if one of the parameters is invalid
            MOBILESYNC_E_CANCELLED if the device explicitly cancelled the
            session
            </summary>
            <param name="client">
            The mobilesync client
            </param>
            <param name="entities">
            A pointer to store the changed entity records as a PLIST_DICT
            </param>
            <param name="is_last_record">
            A pointer to store a flag indicating if this submission is the last one
            </param>
            <param name="actions">
            A pointer to additional flags the device is sending or NULL to ignore
            </param>
        </member>
        <member name="M:iMobileDevice.MobileSync.IMobileSyncApi.mobilesync_acknowledge_changes_from_device(iMobileDevice.MobileSync.MobileSyncClientHandle)">
            <summary>
            Acknowledges to the device that the changes have been merged on the computer
            MOBILESYNC_E_SUCCESS on success
            MOBILESYNC_E_INVALID_ARG if one of the parameters is invalid
            </summary>
            <param name="client">
            The mobilesync client
            </param>
        </member>
        <member name="M:iMobileDevice.MobileSync.IMobileSyncApi.mobilesync_ready_to_send_changes_from_computer(iMobileDevice.MobileSync.MobileSyncClientHandle)">
            <summary>
            Verifies if the device is ready to receive changes from the computer.
            This call changes the synchronization direction so that mobilesync_send_changes()
            can be used to send changes to the device.
            MOBILESYNC_E_SUCCESS on success
            MOBILESYNC_E_INVALID_ARG if one of the parameters is invalid
            MOBILESYNC_E_PLIST_ERROR if the received plist is not of valid form
            MOBILESYNC_E_WRONG_DIRECTION if the current sync direction does
            not permit this call
            MOBILESYNC_E_CANCELLED if the device explicitly cancelled the
            session
            MOBILESYNC_E_NOT_READY if the device is not ready to start
            receiving any changes
            </summary>
            <param name="client">
            The mobilesync client
            </param>
        </member>
        <member name="M:iMobileDevice.MobileSync.IMobileSyncApi.mobilesync_send_changes(iMobileDevice.MobileSync.MobileSyncClientHandle,iMobileDevice.Plist.PlistHandle,System.Char,iMobileDevice.Plist.PlistHandle)">
            <summary>
            Sends changed entities of the currently set data class to the device
            MOBILESYNC_E_SUCCESS on success
            MOBILESYNC_E_INVALID_ARG if one of the parameters is invalid,
            MOBILESYNC_E_WRONG_DIRECTION if the current sync direction does
            not permit this call
            </summary>
            <param name="client">
            The mobilesync client
            </param>
            <param name="entities">
            The changed entity records as a PLIST_DICT
            </param>
            <param name="is_last_record">
            A flag indicating if this submission is the last one
            </param>
            <param name="actions">
            Additional actions for the device created with mobilesync_actions_new()
            or NULL if no actions should be passed
            </param>
        </member>
        <member name="M:iMobileDevice.MobileSync.IMobileSyncApi.mobilesync_remap_identifiers(iMobileDevice.MobileSync.MobileSyncClientHandle,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Receives any remapped identifiers reported after the device merged submitted changes.
            MOBILESYNC_E_SUCCESS on success
            MOBILESYNC_E_INVALID_ARG if one of the parameters is invalid
            MOBILESYNC_E_PLIST_ERROR if the received plist is not of valid
            form
            MOBILESYNC_E_WRONG_DIRECTION if the current sync direction does
            not permit this call
            MOBILESYNC_E_CANCELLED if the device explicitly cancelled the
            session
            </summary>
            <param name="client">
            The mobilesync client
            </param>
            <param name="mapping">
            A pointer to an array plist containing a dict of identifier remappings
            </param>
        </member>
        <member name="M:iMobileDevice.MobileSync.IMobileSyncApi.mobilesync_anchors_new(System.String,System.String,iMobileDevice.MobileSync.MobileSyncAnchorsHandle@)">
            <summary>
            Allocates memory for a new anchors struct initialized with the passed anchors.
            MOBILESYNC_E_SUCCESS on success
            </summary>
            <param name="device_anchor">
            An anchor the device reported the last time or NULL
            if none is known yet which for instance is true on first synchronization.
            </param>
            <param name="computer_anchor">
            An arbitrary string to use as anchor for the computer.
            </param>
            <param name="client">
            Pointer that will be set to a newly allocated
            #mobilesync_anchors_t struct. Must be freed using mobilesync_anchors_free().
            </param>
        </member>
        <member name="M:iMobileDevice.MobileSync.IMobileSyncApi.mobilesync_anchors_free(System.IntPtr)">
            <summary>
            Free memory used by anchors.
            MOBILESYNC_E_SUCCESS on success
            </summary>
            <param name="anchors">
            The anchors to free.
            </param>
        </member>
        <member name="M:iMobileDevice.MobileSync.IMobileSyncApi.mobilesync_actions_new">
            <summary>
            Create a new actions plist to use in mobilesync_send_changes().
            </summary>
            <returns>
            A new plist_t of type PLIST_DICT.
            </returns>
        </member>
        <member name="M:iMobileDevice.MobileSync.IMobileSyncApi.mobilesync_actions_add(iMobileDevice.Plist.PlistHandle)">
            <summary>
            Add one or more new key:value pairs to the given actions plist.
            </summary>
            <param name="actions">
            The actions to modify.
            </param>
            <param name="......">
            KEY, VALUE, [KEY, VALUE], NULL
            </param>
            <remarks>
            The known keys so far are "SyncDeviceLinkEntityNamesKey" which expects
            an array of entity names, followed by a count paramter as well as
            "SyncDeviceLinkAllRecordsOfPulledEntityTypeSentKey" which expects an
            integer to use as a boolean value indicating that the device should
            link submitted changes and report remapped identifiers.
            </remarks>
        </member>
        <member name="M:iMobileDevice.MobileSync.IMobileSyncApi.mobilesync_actions_free(iMobileDevice.Plist.PlistHandle)">
            <summary>
            Free actions plist.
            </summary>
            <param name="actions">
            The actions plist to free. Does nothing if NULL is passed.
            </param>
        </member>
        <member name="T:iMobileDevice.MobileSync.MobileSyncAnchorsHandle">
            <summary>
            Represents a wrapper class for MobileSync handles.
            </summary>
        </member>
        <member name="M:iMobileDevice.MobileSync.MobileSyncAnchorsHandle.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.MobileSync.MobileSyncAnchorsHandle"/> class.
            </summary>
        </member>
        <member name="M:iMobileDevice.MobileSync.MobileSyncAnchorsHandle.#ctor(System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.MobileSync.MobileSyncAnchorsHandle"/> class, specifying whether the handle is to be reliably released.
            </summary>
            <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>
        </member>
        <member name="P:iMobileDevice.MobileSync.MobileSyncAnchorsHandle.Api">
            <summary>
            Gets or sets the API to use
            </summary>
        </member>
        <member name="P:iMobileDevice.MobileSync.MobileSyncAnchorsHandle.Zero">
            <summary>
            Gets a value which represents a pointer or handle that has been initialized to zero.
            </summary>
        </member>
        <member name="M:iMobileDevice.MobileSync.MobileSyncAnchorsHandle.ReleaseHandle">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.MobileSync.MobileSyncAnchorsHandle.DangerousCreate(System.IntPtr,System.Boolean)">
            <summary>
            Creates a new <see cref="T:iMobileDevice.MobileSync.MobileSyncAnchorsHandle"/> from a <see cref="T:System.IntPtr"/>.
            </summary>
            <param name="unsafeHandle">
            The underlying <see cref="T:System.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>
        </member>
        <member name="M:iMobileDevice.MobileSync.MobileSyncAnchorsHandle.DangerousCreate(System.IntPtr)">
            <summary>
            Creates a new <see cref="T:iMobileDevice.MobileSync.MobileSyncAnchorsHandle"/> from a <see cref="T:System.IntPtr"/>.
            </summary>
            <param name="unsafeHandle">
            The underlying <see cref="T:System.IntPtr"/>
            </param>
            <returns>
            </returns>
        </member>
        <member name="M:iMobileDevice.MobileSync.MobileSyncAnchorsHandle.ToString">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.MobileSync.MobileSyncAnchorsHandle.Equals(System.Object)">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.MobileSync.MobileSyncAnchorsHandle.GetHashCode">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.MobileSync.MobileSyncAnchorsHandle.op_Equality(iMobileDevice.MobileSync.MobileSyncAnchorsHandle,iMobileDevice.MobileSync.MobileSyncAnchorsHandle)">
            <summary>
            Determines whether two specified instances of <see cref="T:iMobileDevice.MobileSync.MobileSyncAnchorsHandle"/> are equal.
            </summary>
            <param name="value1">
            The first pointer or handle to compare.
            </param>
            <param name="value2">
            The second pointer or handle to compare.
            </param>
            <returns>
            <see langword="true"/> if <paramref name="value1"/> equals <paramref name="value2"/>; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="M:iMobileDevice.MobileSync.MobileSyncAnchorsHandle.op_Inequality(iMobileDevice.MobileSync.MobileSyncAnchorsHandle,iMobileDevice.MobileSync.MobileSyncAnchorsHandle)">
            <summary>
            Determines whether two specified instances of <see cref="T:iMobileDevice.MobileSync.MobileSyncAnchorsHandle"/> are not equal.
            </summary>
            <param name="value1">
            The first pointer or handle to compare.
            </param>
            <param name="value2">
            The second pointer or handle to compare.
            </param>
            <returns>
            <see langword="true"/> if <paramref name="value1"/> does not equal <paramref name="value2"/>; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="F:iMobileDevice.MobileSync.MobileSyncApi.parent">
            <summary>
            Backing field for the <see cref="P:iMobileDevice.MobileSync.MobileSyncApi.Parent"/> property
            </summary>
        </member>
        <member name="M:iMobileDevice.MobileSync.MobileSyncApi.#ctor(iMobileDevice.ILibiMobileDevice)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.MobileSync.MobileSyncApi"/> class
            </summary>
            <param name="parent">
            The <see cref="!:ILibiMobileDeviceApi"/> which owns this <see cref="N:iMobileDevice.MobileSync"/>.
            </param>
        </member>
        <member name="P:iMobileDevice.MobileSync.MobileSyncApi.Parent">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.MobileSync.MobileSyncApi.mobilesync_client_new(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Lockdown.LockdownServiceDescriptorHandle,iMobileDevice.MobileSync.MobileSyncClientHandle@)">
            <summary>
            Connects to the mobilesync service on the specified device.
            MOBILESYNC_E_SUCCESS on success
            MOBILESYNC_E_INVALID_ARG if one or more parameters are invalid
            DEVICE_LINK_SERVICE_E_BAD_VERSION if the mobilesync version on
            the device is newer.
            </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">
            Pointer that will be set to a newly allocated
            #mobilesync_client_t upon successful return.
            </param>
        </member>
        <member name="M:iMobileDevice.MobileSync.MobileSyncApi.mobilesync_client_start_service(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.MobileSync.MobileSyncClientHandle@,System.String)">
            <summary>
            Starts a new mobilesync 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
            mobilesync_client_t upon successful return. Must be freed using
            mobilesync_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>
            MOBILESYNC_E_SUCCESS on success, or an MOBILESYNC_E_* error
            code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.MobileSync.MobileSyncApi.mobilesync_client_free(System.IntPtr)">
            <summary>
            Disconnects a mobilesync client from the device and frees up the
            mobilesync client data.
            MOBILESYNC_E_SUCCESS on success
            MOBILESYNC_E_INVALID_ARG if
            is NULL.
            </summary>
            <param name="client">
            The mobilesync client to disconnect and free.
            </param>
        </member>
        <member name="M:iMobileDevice.MobileSync.MobileSyncApi.mobilesync_receive(iMobileDevice.MobileSync.MobileSyncClientHandle,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Polls the device for mobilesync data.
            </summary>
            <param name="client">
            The mobilesync client
            </param>
            <param name="plist">
            A pointer to the location where the plist should be stored
            </param>
            <returns>
            an error code
            </returns>
        </member>
        <member name="M:iMobileDevice.MobileSync.MobileSyncApi.mobilesync_send(iMobileDevice.MobileSync.MobileSyncClientHandle,iMobileDevice.Plist.PlistHandle)">
            <summary>
            Sends mobilesync data to the device
            </summary>
            <param name="client">
            The mobilesync client
            </param>
            <param name="plist">
            The location of the plist to send
            </param>
            <returns>
            an error code
            </returns>
            <remarks>
            This function is low-level and should only be used if you need to send
            a new type of message.
            </remarks>
        </member>
        <member name="M:iMobileDevice.MobileSync.MobileSyncApi.mobilesync_start(iMobileDevice.MobileSync.MobileSyncClientHandle,System.Byte[],iMobileDevice.MobileSync.MobileSyncAnchorsHandle,System.UInt64,iMobileDevice.MobileSync.MobileSyncSyncType@,System.UInt64@,System.String@)">
            <summary>
            Requests starting synchronization of a data class with the device
            MOBILESYNC_E_SUCCESS on success
            MOBILESYNC_E_INVALID_ARG if one of the parameters is invalid
            MOBILESYNC_E_PLIST_ERROR if the received plist is not of valid form
            MOBILESYNC_E_SYNC_REFUSED if the device refused to sync
            MOBILESYNC_E_CANCELLED if the device explicitly cancelled the
            sync request
            </summary>
            <param name="client">
            The mobilesync client
            </param>
            <param name="data_class">
            The data class identifier to sync
            </param>
            <param name="anchors">
            The anchors required to exchange with the device. The anchors
            allow the device to tell if the synchronization information on the computer
            and device are consistent to determine what sync type is required.
            </param>
            <param name="computer_data_class_version">
            The version of the data class storage on the computer
            </param>
            <param name="sync_type">
            A pointer to store the sync type reported by the device_anchor
            </param>
            <param name="device_data_class_version">
            The version of the data class storage on the device
            </param>
            <param name="error_description">
            A pointer to store an error message if reported by the device
            </param>
        </member>
        <member name="M:iMobileDevice.MobileSync.MobileSyncApi.mobilesync_cancel(iMobileDevice.MobileSync.MobileSyncClientHandle,System.String)">
            <summary>
            Cancels a running synchronization session with a device at any time.
            MOBILESYNC_E_SUCCESS on success
            MOBILESYNC_E_INVALID_ARG if one of the parameters is invalid
            </summary>
            <param name="client">
            The mobilesync client
            </param>
            <param name="reason">
            The reason to supply to the device for cancelling
            </param>
        </member>
        <member name="M:iMobileDevice.MobileSync.MobileSyncApi.mobilesync_finish(iMobileDevice.MobileSync.MobileSyncClientHandle)">
            <summary>
            Finish a synchronization session of a data class on the device.
            A session must have previously been started using mobilesync_start().
            MOBILESYNC_E_SUCCESS on success
            MOBILESYNC_E_INVALID_ARG if one of the parameters is invalid
            MOBILESYNC_E_PLIST_ERROR if the received plist is not of valid
            form
            </summary>
            <param name="client">
            The mobilesync client
            </param>
        </member>
        <member name="M:iMobileDevice.MobileSync.MobileSyncApi.mobilesync_get_all_records_from_device(iMobileDevice.MobileSync.MobileSyncClientHandle)">
            <summary>
            Requests to receive all records of the currently set data class from the device.
            The actually changes are retrieved using mobilesync_receive_changes() after this
            request has been successful.
            MOBILESYNC_E_SUCCESS on success
            MOBILESYNC_E_INVALID_ARG if one of the parameters is invalid
            </summary>
            <param name="client">
            The mobilesync client
            </param>
        </member>
        <member name="M:iMobileDevice.MobileSync.MobileSyncApi.mobilesync_get_changes_from_device(iMobileDevice.MobileSync.MobileSyncClientHandle)">
            <summary>
            Requests to receive only changed records of the currently set data class from the device.
            The actually changes are retrieved using mobilesync_receive_changes() after this
            request has been successful.
            MOBILESYNC_E_SUCCESS on success
            MOBILESYNC_E_INVALID_ARG if one of the parameters is invalid
            </summary>
            <param name="client">
            The mobilesync client
            </param>
        </member>
        <member name="M:iMobileDevice.MobileSync.MobileSyncApi.mobilesync_clear_all_records_on_device(iMobileDevice.MobileSync.MobileSyncClientHandle)">
            <summary>
            Requests the device to delete all records of the current data class
            MOBILESYNC_E_SUCCESS on success
            MOBILESYNC_E_INVALID_ARG if one of the parameters is invalid
            MOBILESYNC_E_PLIST_ERROR if the received plist is not of valid form
            </summary>
            <param name="client">
            The mobilesync client
            </param>
            <remarks>
            The operation must be called after starting synchronization.
            </remarks>
        </member>
        <member name="M:iMobileDevice.MobileSync.MobileSyncApi.mobilesync_receive_changes(iMobileDevice.MobileSync.MobileSyncClientHandle,iMobileDevice.Plist.PlistHandle@,System.Char@,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Receives changed entitites of the currently set data class from the device
            MOBILESYNC_E_SUCCESS on success
            MOBILESYNC_E_INVALID_ARG if one of the parameters is invalid
            MOBILESYNC_E_CANCELLED if the device explicitly cancelled the
            session
            </summary>
            <param name="client">
            The mobilesync client
            </param>
            <param name="entities">
            A pointer to store the changed entity records as a PLIST_DICT
            </param>
            <param name="is_last_record">
            A pointer to store a flag indicating if this submission is the last one
            </param>
            <param name="actions">
            A pointer to additional flags the device is sending or NULL to ignore
            </param>
        </member>
        <member name="M:iMobileDevice.MobileSync.MobileSyncApi.mobilesync_acknowledge_changes_from_device(iMobileDevice.MobileSync.MobileSyncClientHandle)">
            <summary>
            Acknowledges to the device that the changes have been merged on the computer
            MOBILESYNC_E_SUCCESS on success
            MOBILESYNC_E_INVALID_ARG if one of the parameters is invalid
            </summary>
            <param name="client">
            The mobilesync client
            </param>
        </member>
        <member name="M:iMobileDevice.MobileSync.MobileSyncApi.mobilesync_ready_to_send_changes_from_computer(iMobileDevice.MobileSync.MobileSyncClientHandle)">
            <summary>
            Verifies if the device is ready to receive changes from the computer.
            This call changes the synchronization direction so that mobilesync_send_changes()
            can be used to send changes to the device.
            MOBILESYNC_E_SUCCESS on success
            MOBILESYNC_E_INVALID_ARG if one of the parameters is invalid
            MOBILESYNC_E_PLIST_ERROR if the received plist is not of valid form
            MOBILESYNC_E_WRONG_DIRECTION if the current sync direction does
            not permit this call
            MOBILESYNC_E_CANCELLED if the device explicitly cancelled the
            session
            MOBILESYNC_E_NOT_READY if the device is not ready to start
            receiving any changes
            </summary>
            <param name="client">
            The mobilesync client
            </param>
        </member>
        <member name="M:iMobileDevice.MobileSync.MobileSyncApi.mobilesync_send_changes(iMobileDevice.MobileSync.MobileSyncClientHandle,iMobileDevice.Plist.PlistHandle,System.Char,iMobileDevice.Plist.PlistHandle)">
            <summary>
            Sends changed entities of the currently set data class to the device
            MOBILESYNC_E_SUCCESS on success
            MOBILESYNC_E_INVALID_ARG if one of the parameters is invalid,
            MOBILESYNC_E_WRONG_DIRECTION if the current sync direction does
            not permit this call
            </summary>
            <param name="client">
            The mobilesync client
            </param>
            <param name="entities">
            The changed entity records as a PLIST_DICT
            </param>
            <param name="is_last_record">
            A flag indicating if this submission is the last one
            </param>
            <param name="actions">
            Additional actions for the device created with mobilesync_actions_new()
            or NULL if no actions should be passed
            </param>
        </member>
        <member name="M:iMobileDevice.MobileSync.MobileSyncApi.mobilesync_remap_identifiers(iMobileDevice.MobileSync.MobileSyncClientHandle,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Receives any remapped identifiers reported after the device merged submitted changes.
            MOBILESYNC_E_SUCCESS on success
            MOBILESYNC_E_INVALID_ARG if one of the parameters is invalid
            MOBILESYNC_E_PLIST_ERROR if the received plist is not of valid
            form
            MOBILESYNC_E_WRONG_DIRECTION if the current sync direction does
            not permit this call
            MOBILESYNC_E_CANCELLED if the device explicitly cancelled the
            session
            </summary>
            <param name="client">
            The mobilesync client
            </param>
            <param name="mapping">
            A pointer to an array plist containing a dict of identifier remappings
            </param>
        </member>
        <member name="M:iMobileDevice.MobileSync.MobileSyncApi.mobilesync_anchors_new(System.String,System.String,iMobileDevice.MobileSync.MobileSyncAnchorsHandle@)">
            <summary>
            Allocates memory for a new anchors struct initialized with the passed anchors.
            MOBILESYNC_E_SUCCESS on success
            </summary>
            <param name="device_anchor">
            An anchor the device reported the last time or NULL
            if none is known yet which for instance is true on first synchronization.
            </param>
            <param name="computer_anchor">
            An arbitrary string to use as anchor for the computer.
            </param>
            <param name="client">
            Pointer that will be set to a newly allocated
            #mobilesync_anchors_t struct. Must be freed using mobilesync_anchors_free().
            </param>
        </member>
        <member name="M:iMobileDevice.MobileSync.MobileSyncApi.mobilesync_anchors_free(System.IntPtr)">
            <summary>
            Free memory used by anchors.
            MOBILESYNC_E_SUCCESS on success
            </summary>
            <param name="anchors">
            The anchors to free.
            </param>
        </member>
        <member name="M:iMobileDevice.MobileSync.MobileSyncApi.mobilesync_actions_new">
            <summary>
            Create a new actions plist to use in mobilesync_send_changes().
            </summary>
            <returns>
            A new plist_t of type PLIST_DICT.
            </returns>
        </member>
        <member name="M:iMobileDevice.MobileSync.MobileSyncApi.mobilesync_actions_add(iMobileDevice.Plist.PlistHandle)">
            <summary>
            Add one or more new key:value pairs to the given actions plist.
            </summary>
            <param name="actions">
            The actions to modify.
            </param>
            <param name="......">
            KEY, VALUE, [KEY, VALUE], NULL
            </param>
            <remarks>
            The known keys so far are "SyncDeviceLinkEntityNamesKey" which expects
            an array of entity names, followed by a count paramter as well as
            "SyncDeviceLinkAllRecordsOfPulledEntityTypeSentKey" which expects an
            integer to use as a boolean value indicating that the device should
            link submitted changes and report remapped identifiers.
            </remarks>
        </member>
        <member name="M:iMobileDevice.MobileSync.MobileSyncApi.mobilesync_actions_free(iMobileDevice.Plist.PlistHandle)">
            <summary>
            Free actions plist.
            </summary>
            <param name="actions">
            The actions plist to free. Does nothing if NULL is passed.
            </param>
        </member>
        <member name="T:iMobileDevice.MobileSync.MobileSyncClientHandle">
            <summary>
            Represents a wrapper class for MobileSync handles.
            </summary>
        </member>
        <member name="M:iMobileDevice.MobileSync.MobileSyncClientHandle.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.MobileSync.MobileSyncClientHandle"/> class.
            </summary>
        </member>
        <member name="M:iMobileDevice.MobileSync.MobileSyncClientHandle.#ctor(System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.MobileSync.MobileSyncClientHandle"/> class, specifying whether the handle is to be reliably released.
            </summary>
            <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>
        </member>
        <member name="P:iMobileDevice.MobileSync.MobileSyncClientHandle.Api">
            <summary>
            Gets or sets the API to use
            </summary>
        </member>
        <member name="P:iMobileDevice.MobileSync.MobileSyncClientHandle.Zero">
            <summary>
            Gets a value which represents a pointer or handle that has been initialized to zero.
            </summary>
        </member>
        <member name="M:iMobileDevice.MobileSync.MobileSyncClientHandle.ReleaseHandle">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.MobileSync.MobileSyncClientHandle.DangerousCreate(System.IntPtr,System.Boolean)">
            <summary>
            Creates a new <see cref="T:iMobileDevice.MobileSync.MobileSyncClientHandle"/> from a <see cref="T:System.IntPtr"/>.
            </summary>
            <param name="unsafeHandle">
            The underlying <see cref="T:System.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>
        </member>
        <member name="M:iMobileDevice.MobileSync.MobileSyncClientHandle.DangerousCreate(System.IntPtr)">
            <summary>
            Creates a new <see cref="T:iMobileDevice.MobileSync.MobileSyncClientHandle"/> from a <see cref="T:System.IntPtr"/>.
            </summary>
            <param name="unsafeHandle">
            The underlying <see cref="T:System.IntPtr"/>
            </param>
            <returns>
            </returns>
        </member>
        <member name="M:iMobileDevice.MobileSync.MobileSyncClientHandle.ToString">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.MobileSync.MobileSyncClientHandle.Equals(System.Object)">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.MobileSync.MobileSyncClientHandle.GetHashCode">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.MobileSync.MobileSyncClientHandle.op_Equality(iMobileDevice.MobileSync.MobileSyncClientHandle,iMobileDevice.MobileSync.MobileSyncClientHandle)">
            <summary>
            Determines whether two specified instances of <see cref="T:iMobileDevice.MobileSync.MobileSyncClientHandle"/> are equal.
            </summary>
            <param name="value1">
            The first pointer or handle to compare.
            </param>
            <param name="value2">
            The second pointer or handle to compare.
            </param>
            <returns>
            <see langword="true"/> if <paramref name="value1"/> equals <paramref name="value2"/>; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="M:iMobileDevice.MobileSync.MobileSyncClientHandle.op_Inequality(iMobileDevice.MobileSync.MobileSyncClientHandle,iMobileDevice.MobileSync.MobileSyncClientHandle)">
            <summary>
            Determines whether two specified instances of <see cref="T:iMobileDevice.MobileSync.MobileSyncClientHandle"/> are not equal.
            </summary>
            <param name="value1">
            The first pointer or handle to compare.
            </param>
            <param name="value2">
            The second pointer or handle to compare.
            </param>
            <returns>
            <see langword="true"/> if <paramref name="value1"/> does not equal <paramref name="value2"/>; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="T:iMobileDevice.MobileSync.MobileSyncError">
            <summary>
            Error Codes 
            </summary>
        </member>
        <member name="T:iMobileDevice.MobileSync.MobileSyncException">
            Represents an exception that occurred when interacting with the MobileSync API.
        </member>
        <member name="F:iMobileDevice.MobileSync.MobileSyncException.errorCode">
            <summary>
            Backing field for the <see cref="P:iMobileDevice.MobileSync.MobileSyncException.ErrorCode"/> property.
            </summary>
        </member>
        <member name="M:iMobileDevice.MobileSync.MobileSyncException.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.MobileSync.MobileSyncException"/> class.
            </summary>
        </member>
        <member name="M:iMobileDevice.MobileSync.MobileSyncException.#ctor(iMobileDevice.MobileSync.MobileSyncError)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.MobileSync.MobileSyncException"/> class with a specified error code.
            </summary>
            <param name="error">
            The error code of the error that occurred.
            </param>
        </member>
        <member name="M:iMobileDevice.MobileSync.MobileSyncException.#ctor(iMobileDevice.MobileSync.MobileSyncError,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.MobileSync.MobileSyncException"/> class with a specified error code and error message.
            </summary>
            <param name="error">
            The error code of the error that occurred.
            </param>
            <param name="message">
            A message which describes the error.
            </param>
        </member>
        <member name="M:iMobileDevice.MobileSync.MobileSyncException.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.MobileSync.MobileSyncException"/> class with a specified error message.
            </summary>
            <param name="message">
            The message that describes the error.
            </param>
        </member>
        <member name="M:iMobileDevice.MobileSync.MobileSyncException.#ctor(System.String,System.Exception)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.MobileSync.MobileSyncException"/> class with a specified error message and a reference to the inner exception that is the cause of this exception.
            </summary>
            <param name="message">
            The error message that explains the reason for the exception.
            </param>
            <param name="inner">
            The exception that is the cause of the current exception, or <see langword="null"/> if no inner exception is specified.
            </param>
        </member>
        <member name="M:iMobileDevice.MobileSync.MobileSyncException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.MobileSync.MobileSyncException"/> class with serialized data.
            </summary>
            <param name="info">
            The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds the serialized object data about the exception being thrown.
            </param>
            <param name="context">
            The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that contains contextual information about the source or destination.
            </param>
        </member>
        <member name="P:iMobileDevice.MobileSync.MobileSyncException.ErrorCode">
            <summary>
            Gets the error code that represents the error.
            </summary>
        </member>
        <member name="M:iMobileDevice.MobileSync.MobileSyncNativeMethods.mobilesync_client_new(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Lockdown.LockdownServiceDescriptorHandle,iMobileDevice.MobileSync.MobileSyncClientHandle@)">
            <summary>
            Connects to the mobilesync service on the specified device.
            MOBILESYNC_E_SUCCESS on success
            MOBILESYNC_E_INVALID_ARG if one or more parameters are invalid
            DEVICE_LINK_SERVICE_E_BAD_VERSION if the mobilesync version on
            the device is newer.
            </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">
            Pointer that will be set to a newly allocated
            #mobilesync_client_t upon successful return.
            </param>
        </member>
        <member name="M:iMobileDevice.MobileSync.MobileSyncNativeMethods.mobilesync_client_start_service(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.MobileSync.MobileSyncClientHandle@,System.String)">
            <summary>
            Starts a new mobilesync 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
            mobilesync_client_t upon successful return. Must be freed using
            mobilesync_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>
            MOBILESYNC_E_SUCCESS on success, or an MOBILESYNC_E_* error
            code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.MobileSync.MobileSyncNativeMethods.mobilesync_client_free(System.IntPtr)">
            <summary>
            Disconnects a mobilesync client from the device and frees up the
            mobilesync client data.
            MOBILESYNC_E_SUCCESS on success
            MOBILESYNC_E_INVALID_ARG if
            is NULL.
            </summary>
            <param name="client">
            The mobilesync client to disconnect and free.
            </param>
        </member>
        <member name="M:iMobileDevice.MobileSync.MobileSyncNativeMethods.mobilesync_receive(iMobileDevice.MobileSync.MobileSyncClientHandle,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Polls the device for mobilesync data.
            </summary>
            <param name="client">
            The mobilesync client
            </param>
            <param name="plist">
            A pointer to the location where the plist should be stored
            </param>
            <returns>
            an error code
            </returns>
        </member>
        <member name="M:iMobileDevice.MobileSync.MobileSyncNativeMethods.mobilesync_send(iMobileDevice.MobileSync.MobileSyncClientHandle,iMobileDevice.Plist.PlistHandle)">
            <summary>
            Sends mobilesync data to the device
            </summary>
            <param name="client">
            The mobilesync client
            </param>
            <param name="plist">
            The location of the plist to send
            </param>
            <returns>
            an error code
            </returns>
            <remarks>
            This function is low-level and should only be used if you need to send
            a new type of message.
            </remarks>
        </member>
        <member name="M:iMobileDevice.MobileSync.MobileSyncNativeMethods.mobilesync_start(iMobileDevice.MobileSync.MobileSyncClientHandle,System.Byte[],iMobileDevice.MobileSync.MobileSyncAnchorsHandle,System.UInt64,iMobileDevice.MobileSync.MobileSyncSyncType@,System.UInt64@,System.IntPtr@)">
            <summary>
            Requests starting synchronization of a data class with the device
            MOBILESYNC_E_SUCCESS on success
            MOBILESYNC_E_INVALID_ARG if one of the parameters is invalid
            MOBILESYNC_E_PLIST_ERROR if the received plist is not of valid form
            MOBILESYNC_E_SYNC_REFUSED if the device refused to sync
            MOBILESYNC_E_CANCELLED if the device explicitly cancelled the
            sync request
            </summary>
            <param name="client">
            The mobilesync client
            </param>
            <param name="data_class">
            The data class identifier to sync
            </param>
            <param name="anchors">
            The anchors required to exchange with the device. The anchors
            allow the device to tell if the synchronization information on the computer
            and device are consistent to determine what sync type is required.
            </param>
            <param name="computer_data_class_version">
            The version of the data class storage on the computer
            </param>
            <param name="sync_type">
            A pointer to store the sync type reported by the device_anchor
            </param>
            <param name="device_data_class_version">
            The version of the data class storage on the device
            </param>
            <param name="error_description">
            A pointer to store an error message if reported by the device
            </param>
        </member>
        <member name="M:iMobileDevice.MobileSync.MobileSyncNativeMethods.mobilesync_cancel(iMobileDevice.MobileSync.MobileSyncClientHandle,System.String)">
            <summary>
            Cancels a running synchronization session with a device at any time.
            MOBILESYNC_E_SUCCESS on success
            MOBILESYNC_E_INVALID_ARG if one of the parameters is invalid
            </summary>
            <param name="client">
            The mobilesync client
            </param>
            <param name="reason">
            The reason to supply to the device for cancelling
            </param>
        </member>
        <member name="M:iMobileDevice.MobileSync.MobileSyncNativeMethods.mobilesync_finish(iMobileDevice.MobileSync.MobileSyncClientHandle)">
            <summary>
            Finish a synchronization session of a data class on the device.
            A session must have previously been started using mobilesync_start().
            MOBILESYNC_E_SUCCESS on success
            MOBILESYNC_E_INVALID_ARG if one of the parameters is invalid
            MOBILESYNC_E_PLIST_ERROR if the received plist is not of valid
            form
            </summary>
            <param name="client">
            The mobilesync client
            </param>
        </member>
        <member name="M:iMobileDevice.MobileSync.MobileSyncNativeMethods.mobilesync_get_all_records_from_device(iMobileDevice.MobileSync.MobileSyncClientHandle)">
            <summary>
            Requests to receive all records of the currently set data class from the device.
            The actually changes are retrieved using mobilesync_receive_changes() after this
            request has been successful.
            MOBILESYNC_E_SUCCESS on success
            MOBILESYNC_E_INVALID_ARG if one of the parameters is invalid
            </summary>
            <param name="client">
            The mobilesync client
            </param>
        </member>
        <member name="M:iMobileDevice.MobileSync.MobileSyncNativeMethods.mobilesync_get_changes_from_device(iMobileDevice.MobileSync.MobileSyncClientHandle)">
            <summary>
            Requests to receive only changed records of the currently set data class from the device.
            The actually changes are retrieved using mobilesync_receive_changes() after this
            request has been successful.
            MOBILESYNC_E_SUCCESS on success
            MOBILESYNC_E_INVALID_ARG if one of the parameters is invalid
            </summary>
            <param name="client">
            The mobilesync client
            </param>
        </member>
        <member name="M:iMobileDevice.MobileSync.MobileSyncNativeMethods.mobilesync_clear_all_records_on_device(iMobileDevice.MobileSync.MobileSyncClientHandle)">
            <summary>
            Requests the device to delete all records of the current data class
            MOBILESYNC_E_SUCCESS on success
            MOBILESYNC_E_INVALID_ARG if one of the parameters is invalid
            MOBILESYNC_E_PLIST_ERROR if the received plist is not of valid form
            </summary>
            <param name="client">
            The mobilesync client
            </param>
            <remarks>
            The operation must be called after starting synchronization.
            </remarks>
        </member>
        <member name="M:iMobileDevice.MobileSync.MobileSyncNativeMethods.mobilesync_receive_changes(iMobileDevice.MobileSync.MobileSyncClientHandle,iMobileDevice.Plist.PlistHandle@,System.Char@,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Receives changed entitites of the currently set data class from the device
            MOBILESYNC_E_SUCCESS on success
            MOBILESYNC_E_INVALID_ARG if one of the parameters is invalid
            MOBILESYNC_E_CANCELLED if the device explicitly cancelled the
            session
            </summary>
            <param name="client">
            The mobilesync client
            </param>
            <param name="entities">
            A pointer to store the changed entity records as a PLIST_DICT
            </param>
            <param name="is_last_record">
            A pointer to store a flag indicating if this submission is the last one
            </param>
            <param name="actions">
            A pointer to additional flags the device is sending or NULL to ignore
            </param>
        </member>
        <member name="M:iMobileDevice.MobileSync.MobileSyncNativeMethods.mobilesync_acknowledge_changes_from_device(iMobileDevice.MobileSync.MobileSyncClientHandle)">
            <summary>
            Acknowledges to the device that the changes have been merged on the computer
            MOBILESYNC_E_SUCCESS on success
            MOBILESYNC_E_INVALID_ARG if one of the parameters is invalid
            </summary>
            <param name="client">
            The mobilesync client
            </param>
        </member>
        <member name="M:iMobileDevice.MobileSync.MobileSyncNativeMethods.mobilesync_ready_to_send_changes_from_computer(iMobileDevice.MobileSync.MobileSyncClientHandle)">
            <summary>
            Verifies if the device is ready to receive changes from the computer.
            This call changes the synchronization direction so that mobilesync_send_changes()
            can be used to send changes to the device.
            MOBILESYNC_E_SUCCESS on success
            MOBILESYNC_E_INVALID_ARG if one of the parameters is invalid
            MOBILESYNC_E_PLIST_ERROR if the received plist is not of valid form
            MOBILESYNC_E_WRONG_DIRECTION if the current sync direction does
            not permit this call
            MOBILESYNC_E_CANCELLED if the device explicitly cancelled the
            session
            MOBILESYNC_E_NOT_READY if the device is not ready to start
            receiving any changes
            </summary>
            <param name="client">
            The mobilesync client
            </param>
        </member>
        <member name="M:iMobileDevice.MobileSync.MobileSyncNativeMethods.mobilesync_send_changes(iMobileDevice.MobileSync.MobileSyncClientHandle,iMobileDevice.Plist.PlistHandle,System.Char,iMobileDevice.Plist.PlistHandle)">
            <summary>
            Sends changed entities of the currently set data class to the device
            MOBILESYNC_E_SUCCESS on success
            MOBILESYNC_E_INVALID_ARG if one of the parameters is invalid,
            MOBILESYNC_E_WRONG_DIRECTION if the current sync direction does
            not permit this call
            </summary>
            <param name="client">
            The mobilesync client
            </param>
            <param name="entities">
            The changed entity records as a PLIST_DICT
            </param>
            <param name="is_last_record">
            A flag indicating if this submission is the last one
            </param>
            <param name="actions">
            Additional actions for the device created with mobilesync_actions_new()
            or NULL if no actions should be passed
            </param>
        </member>
        <member name="M:iMobileDevice.MobileSync.MobileSyncNativeMethods.mobilesync_remap_identifiers(iMobileDevice.MobileSync.MobileSyncClientHandle,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Receives any remapped identifiers reported after the device merged submitted changes.
            MOBILESYNC_E_SUCCESS on success
            MOBILESYNC_E_INVALID_ARG if one of the parameters is invalid
            MOBILESYNC_E_PLIST_ERROR if the received plist is not of valid
            form
            MOBILESYNC_E_WRONG_DIRECTION if the current sync direction does
            not permit this call
            MOBILESYNC_E_CANCELLED if the device explicitly cancelled the
            session
            </summary>
            <param name="client">
            The mobilesync client
            </param>
            <param name="mapping">
            A pointer to an array plist containing a dict of identifier remappings
            </param>
        </member>
        <member name="M:iMobileDevice.MobileSync.MobileSyncNativeMethods.mobilesync_anchors_new(System.String,System.String,iMobileDevice.MobileSync.MobileSyncAnchorsHandle@)">
            <summary>
            Allocates memory for a new anchors struct initialized with the passed anchors.
            MOBILESYNC_E_SUCCESS on success
            </summary>
            <param name="device_anchor">
            An anchor the device reported the last time or NULL
            if none is known yet which for instance is true on first synchronization.
            </param>
            <param name="computer_anchor">
            An arbitrary string to use as anchor for the computer.
            </param>
            <param name="client">
            Pointer that will be set to a newly allocated
            #mobilesync_anchors_t struct. Must be freed using mobilesync_anchors_free().
            </param>
        </member>
        <member name="M:iMobileDevice.MobileSync.MobileSyncNativeMethods.mobilesync_anchors_free(System.IntPtr)">
            <summary>
            Free memory used by anchors.
            MOBILESYNC_E_SUCCESS on success
            </summary>
            <param name="anchors">
            The anchors to free.
            </param>
        </member>
        <member name="M:iMobileDevice.MobileSync.MobileSyncNativeMethods.mobilesync_actions_new">
            <summary>
            Create a new actions plist to use in mobilesync_send_changes().
            </summary>
            <returns>
            A new plist_t of type PLIST_DICT.
            </returns>
        </member>
        <member name="M:iMobileDevice.MobileSync.MobileSyncNativeMethods.mobilesync_actions_add(iMobileDevice.Plist.PlistHandle)">
            <summary>
            Add one or more new key:value pairs to the given actions plist.
            </summary>
            <param name="actions">
            The actions to modify.
            </param>
            <param name="......">
            KEY, VALUE, [KEY, VALUE], NULL
            </param>
            <remarks>
            The known keys so far are "SyncDeviceLinkEntityNamesKey" which expects
            an array of entity names, followed by a count paramter as well as
            "SyncDeviceLinkAllRecordsOfPulledEntityTypeSentKey" which expects an
            integer to use as a boolean value indicating that the device should
            link submitted changes and report remapped identifiers.
            </remarks>
        </member>
        <member name="M:iMobileDevice.MobileSync.MobileSyncNativeMethods.mobilesync_actions_free(iMobileDevice.Plist.PlistHandle)">
            <summary>
            Free actions plist.
            </summary>
            <param name="actions">
            The actions plist to free. Does nothing if NULL is passed.
            </param>
        </member>
        <member name="T:iMobileDevice.MobileSync.MobileSyncSyncType">
            <summary>
            The sync type of the current sync session. 
            </summary>
        </member>
        <member name="F:iMobileDevice.MobileSync.MobileSyncSyncType.SyncTypeReset">
            <summary>
            Reset-sync signals that the computer should send all data again. 
            </summary>
        </member>
        <member name="T:iMobileDevice.NativeLibraries">
            <summary>
            Provides access to the native libimobiledevice libraries. Theses are the .dll, .so or .dylib files libimobiledevice-net uses.
            </summary>
        </member>
        <member name="P:iMobileDevice.NativeLibraries.LibraryFound">
            <summary>
            Gets or sets a value indicating whether the native libraries have been found. This value is only relevant on the full .NET Framework;
            it is always set to <see langword="true"/> on .NET Core.
            </summary>
        </member>
        <member name="M:iMobileDevice.NativeLibraries.Load">
            <summary>
            Loads the native libraries.
            </summary>
        </member>
        <member name="M:iMobileDevice.NativeLibraries.Load(System.String)">
            <summary>
            Loads the native libraries.
            </summary>
            <param name="directory">
            The path in which the native libraries are located.
            </param>
        </member>
        <member name="F:iMobileDevice.NativeMethods.Kernel32">
            <summary>
            The name of the <c>kernel32</c> library
            </summary>
        </member>
        <member name="M:iMobileDevice.NativeMethods.LoadLibrary(System.String)">
            <summary>
            Loads the specified module into the address space of the calling process. The specified module may cause other modules to be loaded.
            </summary>
            <param name="dllToLoad">
            <para>
            The name of the module. This can be either a library module (a <c>.dll</c> file) or an executable module (an <c>.exe</c> file).
            The name specified is the file name of the module and is not related to the name stored in the library module itself,
            as specified by the LIBRARY keyword in the module-definition (<c>.def</c>) file.
            </para>
            <para>
            If the string specifies a full path, the function searches only that path for the module.
            </para>
            <para>
            If the string specifies a relative path or a module name without a path, the function uses a standard search strategy
            to find the module; for more information, see the Remarks.
            </para>
            <para>
            If the function cannot find the module, the function fails. When specifying a path, be sure to use backslashes (<c>\</c>),
            not forward slashes (<c>/</c>). For more information about paths, see Naming a File or Directory.
            </para>
            <para>
            If the string specifies a module name without a path and the file name extension is omitted, the function appends the
            default library extension <c>.dll</c> to the module name. To prevent the function from appending <c>.dll</c> to the module name,
            include a trailing point character (<c>.</c>) in the module name string.
            </para>
            </param>
            <returns>
            If the function succeeds, the return value is a handle to the module.
            If the function fails, the return value is <see cref="F:System.IntPtr.Zero"/>. To get extended error information, call
            <see cref="M:System.Runtime.InteropServices.Marshal.GetLastWin32Error"/>.
            </returns>
            <seealso href="http://msdn.microsoft.com/en-us/library/windows/desktop/ms684175(v=vs.85).aspx"/>
        </member>
        <member name="M:iMobileDevice.NativeMethods.dlopen(System.String,iMobileDevice.DlOpenFlags)">
            <summary>
            The function <see cref="M:iMobileDevice.NativeMethods.dlopen(System.String,iMobileDevice.DlOpenFlags)"/> loads the dynamic library file named by the
            null-terminated string filename.
            </summary>
            <param name="filename">
            The path to the file to open.
            </param>
            <param name="flags">
            A value of the <see cref="T:iMobileDevice.DlOpenFlags"/> enumeration specifying how the
            dynamic library file is openend.
            </param>
            <returns>
            Returns an opaque "handle" for the dynamic library.
            </returns>
            <remarks>
            This method works on Linux only.
            </remarks>
            <seealso href="http://linux.die.net/man/3/dlopen"/>
        </member>
        <member name="M:iMobileDevice.NativeMethods.dlerror">
            <summary>
            The function <see cref="M:iMobileDevice.NativeMethods.dlerror"/> returns a human readable string describing the most
            recent error that occurred from <see cref="M:iMobileDevice.NativeMethods.dlopen(System.String,iMobileDevice.DlOpenFlags)"/>, or <see cref="!:dlclose"/> since
            the last call to <see cref="M:iMobileDevice.NativeMethods.dlerror"/>. It returns <see cref="F:System.IntPtr.Zero"/> if no errors
            have occurred since initialization or since it was last called.
            </summary>
            <returns>
            A pointer to a human readable string describing the error, or <see cref="F:System.IntPtr.Zero"/>
            if no error occurred.
            </returns>
            <remarks>
            This method works on Linux only.
            </remarks>
            <seealso href="http://linux.die.net/man/3/dlopen"/>
        </member>
        <member name="P:iMobileDevice.NotificationProxy.INotificationProxyApi.Parent">
            <summary>
            Gets or sets the <see cref="!:ILibiMobileDeviceApi"/> which owns this <see cref="N:iMobileDevice.NotificationProxy"/>.
            </summary>
        </member>
        <member name="M:iMobileDevice.NotificationProxy.INotificationProxyApi.np_client_new(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Lockdown.LockdownServiceDescriptorHandle,iMobileDevice.NotificationProxy.NotificationProxyClientHandle@)">
            <summary>
            Connects to the notification_proxy 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">
            Pointer that will be set to a newly allocated np_client_t
            upon successful return.
            </param>
            <returns>
            NP_E_SUCCESS on success, NP_E_INVALID_ARG when device is NULL,
            or NP_E_CONN_FAILED when the connection to the device could not be
            established.
            </returns>
        </member>
        <member name="M:iMobileDevice.NotificationProxy.INotificationProxyApi.np_client_start_service(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.NotificationProxy.NotificationProxyClientHandle@,System.String)">
            <summary>
            Starts a new notification proxy 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
            np_client_t upon successful return. Must be freed using
            np_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>
            NP_E_SUCCESS on success, or an NP_E_* error
            code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.NotificationProxy.INotificationProxyApi.np_client_free(System.IntPtr)">
            <summary>
            Disconnects a notification_proxy client from the device and frees up the
            notification_proxy client data.
            </summary>
            <param name="client">
            The notification_proxy client to disconnect and free.
            </param>
            <returns>
            NP_E_SUCCESS on success, or NP_E_INVALID_ARG when client is NULL.
            </returns>
        </member>
        <member name="M:iMobileDevice.NotificationProxy.INotificationProxyApi.np_post_notification(iMobileDevice.NotificationProxy.NotificationProxyClientHandle,System.String)">
            <summary>
            Sends a notification to the device's notification_proxy.
            </summary>
            <param name="client">
            The client to send to
            </param>
            <param name="notification">
            The notification message to send
            </param>
            <returns>
            NP_E_SUCCESS on success, or an error returned by np_plist_send
            </returns>
        </member>
        <member name="M:iMobileDevice.NotificationProxy.INotificationProxyApi.np_observe_notification(iMobileDevice.NotificationProxy.NotificationProxyClientHandle,System.String)">
            <summary>
            Tells the device to send a notification on the specified event.
            </summary>
            <param name="client">
            The client to send to
            </param>
            <param name="notification">
            The notifications that should be observed.
            </param>
            <returns>
            NP_E_SUCCESS on success, NP_E_INVALID_ARG when client or
            notification are NULL, or an error returned by np_plist_send.
            </returns>
        </member>
        <member name="M:iMobileDevice.NotificationProxy.INotificationProxyApi.np_observe_notifications(iMobileDevice.NotificationProxy.NotificationProxyClientHandle,System.String@)">
            <summary>
            Tells the device to send a notification on specified events.
            </summary>
            <param name="client">
            The client to send to
            </param>
            <param name="notification_spec">
            Specification of the notifications that should be
            observed. This is expected to be an array of const char* that MUST have a
            terminating NULL entry.
            </param>
            <returns>
            NP_E_SUCCESS on success, NP_E_INVALID_ARG when client is null,
            or an error returned by np_observe_notification.
            </returns>
        </member>
        <member name="M:iMobileDevice.NotificationProxy.INotificationProxyApi.np_set_notify_callback(iMobileDevice.NotificationProxy.NotificationProxyClientHandle,iMobileDevice.NotificationProxy.NotificationProxyNotifyCallBack,System.IntPtr)">
            <summary>
            This function allows an application to define a callback function that will
            be called when a notification has been received.
            It will start a thread that polls for notifications and calls the callback
            function if a notification has been received.
            In case of an error condition when polling for notifications - e.g. device
            disconnect - the thread will call the callback function with an empty
            notification "" and terminate itself.
            </summary>
            <param name="client">
            the NP client
            </param>
            <param name="notify_cb">
            pointer to a callback function or NULL to de-register a
            previously set callback function.
            </param>
            <param name="user_data">
            Pointer that will be passed to the callback function as
            user data. If notify_cb is NULL, this parameter is ignored.
            </param>
            <returns>
            NP_E_SUCCESS when the callback was successfully registered,
            NP_E_INVALID_ARG when client is NULL, or NP_E_UNKNOWN_ERROR when
            the callback thread could no be created.
            </returns>
            <remarks>
            Only one callback function can be registered at the same time;
            any previously set callback function will be removed automatically.
            </remarks>
        </member>
        <member name="F:iMobileDevice.NotificationProxy.NotificationProxyApi.parent">
            <summary>
            Backing field for the <see cref="P:iMobileDevice.NotificationProxy.NotificationProxyApi.Parent"/> property
            </summary>
        </member>
        <member name="M:iMobileDevice.NotificationProxy.NotificationProxyApi.#ctor(iMobileDevice.ILibiMobileDevice)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.NotificationProxy.NotificationProxyApi"/> class
            </summary>
            <param name="parent">
            The <see cref="!:ILibiMobileDeviceApi"/> which owns this <see cref="N:iMobileDevice.NotificationProxy"/>.
            </param>
        </member>
        <member name="P:iMobileDevice.NotificationProxy.NotificationProxyApi.Parent">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.NotificationProxy.NotificationProxyApi.np_client_new(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Lockdown.LockdownServiceDescriptorHandle,iMobileDevice.NotificationProxy.NotificationProxyClientHandle@)">
            <summary>
            Connects to the notification_proxy 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">
            Pointer that will be set to a newly allocated np_client_t
            upon successful return.
            </param>
            <returns>
            NP_E_SUCCESS on success, NP_E_INVALID_ARG when device is NULL,
            or NP_E_CONN_FAILED when the connection to the device could not be
            established.
            </returns>
        </member>
        <member name="M:iMobileDevice.NotificationProxy.NotificationProxyApi.np_client_start_service(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.NotificationProxy.NotificationProxyClientHandle@,System.String)">
            <summary>
            Starts a new notification proxy 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
            np_client_t upon successful return. Must be freed using
            np_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>
            NP_E_SUCCESS on success, or an NP_E_* error
            code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.NotificationProxy.NotificationProxyApi.np_client_free(System.IntPtr)">
            <summary>
            Disconnects a notification_proxy client from the device and frees up the
            notification_proxy client data.
            </summary>
            <param name="client">
            The notification_proxy client to disconnect and free.
            </param>
            <returns>
            NP_E_SUCCESS on success, or NP_E_INVALID_ARG when client is NULL.
            </returns>
        </member>
        <member name="M:iMobileDevice.NotificationProxy.NotificationProxyApi.np_post_notification(iMobileDevice.NotificationProxy.NotificationProxyClientHandle,System.String)">
            <summary>
            Sends a notification to the device's notification_proxy.
            </summary>
            <param name="client">
            The client to send to
            </param>
            <param name="notification">
            The notification message to send
            </param>
            <returns>
            NP_E_SUCCESS on success, or an error returned by np_plist_send
            </returns>
        </member>
        <member name="M:iMobileDevice.NotificationProxy.NotificationProxyApi.np_observe_notification(iMobileDevice.NotificationProxy.NotificationProxyClientHandle,System.String)">
            <summary>
            Tells the device to send a notification on the specified event.
            </summary>
            <param name="client">
            The client to send to
            </param>
            <param name="notification">
            The notifications that should be observed.
            </param>
            <returns>
            NP_E_SUCCESS on success, NP_E_INVALID_ARG when client or
            notification are NULL, or an error returned by np_plist_send.
            </returns>
        </member>
        <member name="M:iMobileDevice.NotificationProxy.NotificationProxyApi.np_observe_notifications(iMobileDevice.NotificationProxy.NotificationProxyClientHandle,System.String@)">
            <summary>
            Tells the device to send a notification on specified events.
            </summary>
            <param name="client">
            The client to send to
            </param>
            <param name="notification_spec">
            Specification of the notifications that should be
            observed. This is expected to be an array of const char* that MUST have a
            terminating NULL entry.
            </param>
            <returns>
            NP_E_SUCCESS on success, NP_E_INVALID_ARG when client is null,
            or an error returned by np_observe_notification.
            </returns>
        </member>
        <member name="M:iMobileDevice.NotificationProxy.NotificationProxyApi.np_set_notify_callback(iMobileDevice.NotificationProxy.NotificationProxyClientHandle,iMobileDevice.NotificationProxy.NotificationProxyNotifyCallBack,System.IntPtr)">
            <summary>
            This function allows an application to define a callback function that will
            be called when a notification has been received.
            It will start a thread that polls for notifications and calls the callback
            function if a notification has been received.
            In case of an error condition when polling for notifications - e.g. device
            disconnect - the thread will call the callback function with an empty
            notification "" and terminate itself.
            </summary>
            <param name="client">
            the NP client
            </param>
            <param name="notify_cb">
            pointer to a callback function or NULL to de-register a
            previously set callback function.
            </param>
            <param name="user_data">
            Pointer that will be passed to the callback function as
            user data. If notify_cb is NULL, this parameter is ignored.
            </param>
            <returns>
            NP_E_SUCCESS when the callback was successfully registered,
            NP_E_INVALID_ARG when client is NULL, or NP_E_UNKNOWN_ERROR when
            the callback thread could no be created.
            </returns>
            <remarks>
            Only one callback function can be registered at the same time;
            any previously set callback function will be removed automatically.
            </remarks>
        </member>
        <member name="T:iMobileDevice.NotificationProxy.NotificationProxyClientHandle">
            <summary>
            Represents a wrapper class for NotificationProxy handles.
            </summary>
        </member>
        <member name="M:iMobileDevice.NotificationProxy.NotificationProxyClientHandle.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.NotificationProxy.NotificationProxyClientHandle"/> class.
            </summary>
        </member>
        <member name="M:iMobileDevice.NotificationProxy.NotificationProxyClientHandle.#ctor(System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.NotificationProxy.NotificationProxyClientHandle"/> class, specifying whether the handle is to be reliably released.
            </summary>
            <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>
        </member>
        <member name="P:iMobileDevice.NotificationProxy.NotificationProxyClientHandle.Api">
            <summary>
            Gets or sets the API to use
            </summary>
        </member>
        <member name="P:iMobileDevice.NotificationProxy.NotificationProxyClientHandle.Zero">
            <summary>
            Gets a value which represents a pointer or handle that has been initialized to zero.
            </summary>
        </member>
        <member name="M:iMobileDevice.NotificationProxy.NotificationProxyClientHandle.ReleaseHandle">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.NotificationProxy.NotificationProxyClientHandle.DangerousCreate(System.IntPtr,System.Boolean)">
            <summary>
            Creates a new <see cref="T:iMobileDevice.NotificationProxy.NotificationProxyClientHandle"/> from a <see cref="T:System.IntPtr"/>.
            </summary>
            <param name="unsafeHandle">
            The underlying <see cref="T:System.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>
        </member>
        <member name="M:iMobileDevice.NotificationProxy.NotificationProxyClientHandle.DangerousCreate(System.IntPtr)">
            <summary>
            Creates a new <see cref="T:iMobileDevice.NotificationProxy.NotificationProxyClientHandle"/> from a <see cref="T:System.IntPtr"/>.
            </summary>
            <param name="unsafeHandle">
            The underlying <see cref="T:System.IntPtr"/>
            </param>
            <returns>
            </returns>
        </member>
        <member name="M:iMobileDevice.NotificationProxy.NotificationProxyClientHandle.ToString">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.NotificationProxy.NotificationProxyClientHandle.Equals(System.Object)">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.NotificationProxy.NotificationProxyClientHandle.GetHashCode">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.NotificationProxy.NotificationProxyClientHandle.op_Equality(iMobileDevice.NotificationProxy.NotificationProxyClientHandle,iMobileDevice.NotificationProxy.NotificationProxyClientHandle)">
            <summary>
            Determines whether two specified instances of <see cref="T:iMobileDevice.NotificationProxy.NotificationProxyClientHandle"/> are equal.
            </summary>
            <param name="value1">
            The first pointer or handle to compare.
            </param>
            <param name="value2">
            The second pointer or handle to compare.
            </param>
            <returns>
            <see langword="true"/> if <paramref name="value1"/> equals <paramref name="value2"/>; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="M:iMobileDevice.NotificationProxy.NotificationProxyClientHandle.op_Inequality(iMobileDevice.NotificationProxy.NotificationProxyClientHandle,iMobileDevice.NotificationProxy.NotificationProxyClientHandle)">
            <summary>
            Determines whether two specified instances of <see cref="T:iMobileDevice.NotificationProxy.NotificationProxyClientHandle"/> are not equal.
            </summary>
            <param name="value1">
            The first pointer or handle to compare.
            </param>
            <param name="value2">
            The second pointer or handle to compare.
            </param>
            <returns>
            <see langword="true"/> if <paramref name="value1"/> does not equal <paramref name="value2"/>; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="T:iMobileDevice.NotificationProxy.NotificationProxyError">
            <summary>
            Error Codes 
            </summary>
        </member>
        <member name="T:iMobileDevice.NotificationProxy.NotificationProxyException">
            Represents an exception that occurred when interacting with the NotificationProxy API.
        </member>
        <member name="F:iMobileDevice.NotificationProxy.NotificationProxyException.errorCode">
            <summary>
            Backing field for the <see cref="P:iMobileDevice.NotificationProxy.NotificationProxyException.ErrorCode"/> property.
            </summary>
        </member>
        <member name="M:iMobileDevice.NotificationProxy.NotificationProxyException.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.NotificationProxy.NotificationProxyException"/> class.
            </summary>
        </member>
        <member name="M:iMobileDevice.NotificationProxy.NotificationProxyException.#ctor(iMobileDevice.NotificationProxy.NotificationProxyError)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.NotificationProxy.NotificationProxyException"/> class with a specified error code.
            </summary>
            <param name="error">
            The error code of the error that occurred.
            </param>
        </member>
        <member name="M:iMobileDevice.NotificationProxy.NotificationProxyException.#ctor(iMobileDevice.NotificationProxy.NotificationProxyError,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.NotificationProxy.NotificationProxyException"/> class with a specified error code and error message.
            </summary>
            <param name="error">
            The error code of the error that occurred.
            </param>
            <param name="message">
            A message which describes the error.
            </param>
        </member>
        <member name="M:iMobileDevice.NotificationProxy.NotificationProxyException.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.NotificationProxy.NotificationProxyException"/> class with a specified error message.
            </summary>
            <param name="message">
            The message that describes the error.
            </param>
        </member>
        <member name="M:iMobileDevice.NotificationProxy.NotificationProxyException.#ctor(System.String,System.Exception)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.NotificationProxy.NotificationProxyException"/> class with a specified error message and a reference to the inner exception that is the cause of this exception.
            </summary>
            <param name="message">
            The error message that explains the reason for the exception.
            </param>
            <param name="inner">
            The exception that is the cause of the current exception, or <see langword="null"/> if no inner exception is specified.
            </param>
        </member>
        <member name="M:iMobileDevice.NotificationProxy.NotificationProxyException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.NotificationProxy.NotificationProxyException"/> class with serialized data.
            </summary>
            <param name="info">
            The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds the serialized object data about the exception being thrown.
            </param>
            <param name="context">
            The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that contains contextual information about the source or destination.
            </param>
        </member>
        <member name="P:iMobileDevice.NotificationProxy.NotificationProxyException.ErrorCode">
            <summary>
            Gets the error code that represents the error.
            </summary>
        </member>
        <member name="M:iMobileDevice.NotificationProxy.NotificationProxyNativeMethods.np_client_new(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Lockdown.LockdownServiceDescriptorHandle,iMobileDevice.NotificationProxy.NotificationProxyClientHandle@)">
            <summary>
            Connects to the notification_proxy 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">
            Pointer that will be set to a newly allocated np_client_t
            upon successful return.
            </param>
            <returns>
            NP_E_SUCCESS on success, NP_E_INVALID_ARG when device is NULL,
            or NP_E_CONN_FAILED when the connection to the device could not be
            established.
            </returns>
        </member>
        <member name="M:iMobileDevice.NotificationProxy.NotificationProxyNativeMethods.np_client_start_service(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.NotificationProxy.NotificationProxyClientHandle@,System.String)">
            <summary>
            Starts a new notification proxy 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
            np_client_t upon successful return. Must be freed using
            np_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>
            NP_E_SUCCESS on success, or an NP_E_* error
            code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.NotificationProxy.NotificationProxyNativeMethods.np_client_free(System.IntPtr)">
            <summary>
            Disconnects a notification_proxy client from the device and frees up the
            notification_proxy client data.
            </summary>
            <param name="client">
            The notification_proxy client to disconnect and free.
            </param>
            <returns>
            NP_E_SUCCESS on success, or NP_E_INVALID_ARG when client is NULL.
            </returns>
        </member>
        <member name="M:iMobileDevice.NotificationProxy.NotificationProxyNativeMethods.np_post_notification(iMobileDevice.NotificationProxy.NotificationProxyClientHandle,System.String)">
            <summary>
            Sends a notification to the device's notification_proxy.
            </summary>
            <param name="client">
            The client to send to
            </param>
            <param name="notification">
            The notification message to send
            </param>
            <returns>
            NP_E_SUCCESS on success, or an error returned by np_plist_send
            </returns>
        </member>
        <member name="M:iMobileDevice.NotificationProxy.NotificationProxyNativeMethods.np_observe_notification(iMobileDevice.NotificationProxy.NotificationProxyClientHandle,System.String)">
            <summary>
            Tells the device to send a notification on the specified event.
            </summary>
            <param name="client">
            The client to send to
            </param>
            <param name="notification">
            The notifications that should be observed.
            </param>
            <returns>
            NP_E_SUCCESS on success, NP_E_INVALID_ARG when client or
            notification are NULL, or an error returned by np_plist_send.
            </returns>
        </member>
        <member name="M:iMobileDevice.NotificationProxy.NotificationProxyNativeMethods.np_observe_notifications(iMobileDevice.NotificationProxy.NotificationProxyClientHandle,System.IntPtr@)">
            <summary>
            Tells the device to send a notification on specified events.
            </summary>
            <param name="client">
            The client to send to
            </param>
            <param name="notification_spec">
            Specification of the notifications that should be
            observed. This is expected to be an array of const char* that MUST have a
            terminating NULL entry.
            </param>
            <returns>
            NP_E_SUCCESS on success, NP_E_INVALID_ARG when client is null,
            or an error returned by np_observe_notification.
            </returns>
        </member>
        <member name="M:iMobileDevice.NotificationProxy.NotificationProxyNativeMethods.np_set_notify_callback(iMobileDevice.NotificationProxy.NotificationProxyClientHandle,iMobileDevice.NotificationProxy.NotificationProxyNotifyCallBack,System.IntPtr)">
            <summary>
            This function allows an application to define a callback function that will
            be called when a notification has been received.
            It will start a thread that polls for notifications and calls the callback
            function if a notification has been received.
            In case of an error condition when polling for notifications - e.g. device
            disconnect - the thread will call the callback function with an empty
            notification "" and terminate itself.
            </summary>
            <param name="client">
            the NP client
            </param>
            <param name="notify_cb">
            pointer to a callback function or NULL to de-register a
            previously set callback function.
            </param>
            <param name="user_data">
            Pointer that will be passed to the callback function as
            user data. If notify_cb is NULL, this parameter is ignored.
            </param>
            <returns>
            NP_E_SUCCESS when the callback was successfully registered,
            NP_E_INVALID_ARG when client is NULL, or NP_E_UNKNOWN_ERROR when
            the callback thread could no be created.
            </returns>
            <remarks>
            Only one callback function can be registered at the same time;
            any previously set callback function will be removed automatically.
            </remarks>
        </member>
        <member name="P:iMobileDevice.Pinvoke.IPinvokeApi.Parent">
            <summary>
            Gets or sets the <see cref="!:ILibiMobileDeviceApi"/> which owns this <see cref="N:iMobileDevice.Pinvoke"/>.
            </summary>
        </member>
        <member name="M:iMobileDevice.Pinvoke.IPinvokeApi.pinvoke_free_string(System.IntPtr)">
            <summary>
            Frees a string that was previously allocated by libimobiledevice.
            </summary>
            <param name="string">
            The string to free.
            </param>
            <returns>
            Always returns PINVOKE_E_SUCCESS.
            </returns>
        </member>
        <member name="M:iMobileDevice.Pinvoke.IPinvokeApi.pinvoke_get_string_length(System.IntPtr,System.UInt64@)">
            <summary>
            Gets the size of a string that was previously allocated by libimobiledevice.
            </summary>
            <param name="string">
            The string of which to get its size.
            </param>
            <param name="length">
            The length of the string, in bytes.
            </param>
            <returns>
            Always returns PINVOKE_E_SUCCESS.
            </returns>
        </member>
        <member name="F:iMobileDevice.Pinvoke.PinvokeApi.parent">
            <summary>
            Backing field for the <see cref="P:iMobileDevice.Pinvoke.PinvokeApi.Parent"/> property
            </summary>
        </member>
        <member name="M:iMobileDevice.Pinvoke.PinvokeApi.#ctor(iMobileDevice.ILibiMobileDevice)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Pinvoke.PinvokeApi"/> class
            </summary>
            <param name="parent">
            The <see cref="!:ILibiMobileDeviceApi"/> which owns this <see cref="N:iMobileDevice.Pinvoke"/>.
            </param>
        </member>
        <member name="P:iMobileDevice.Pinvoke.PinvokeApi.Parent">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.Pinvoke.PinvokeApi.pinvoke_free_string(System.IntPtr)">
            <summary>
            Frees a string that was previously allocated by libimobiledevice.
            </summary>
            <param name="string">
            The string to free.
            </param>
            <returns>
            Always returns PINVOKE_E_SUCCESS.
            </returns>
        </member>
        <member name="M:iMobileDevice.Pinvoke.PinvokeApi.pinvoke_get_string_length(System.IntPtr,System.UInt64@)">
            <summary>
            Gets the size of a string that was previously allocated by libimobiledevice.
            </summary>
            <param name="string">
            The string of which to get its size.
            </param>
            <param name="length">
            The length of the string, in bytes.
            </param>
            <returns>
            Always returns PINVOKE_E_SUCCESS.
            </returns>
        </member>
        <member name="T:iMobileDevice.Pinvoke.PinvokeError">
            <summary>
            Error Codes 
            </summary>
        </member>
        <member name="T:iMobileDevice.Pinvoke.PinvokeException">
            Represents an exception that occurred when interacting with the Pinvoke API.
        </member>
        <member name="F:iMobileDevice.Pinvoke.PinvokeException.errorCode">
            <summary>
            Backing field for the <see cref="P:iMobileDevice.Pinvoke.PinvokeException.ErrorCode"/> property.
            </summary>
        </member>
        <member name="M:iMobileDevice.Pinvoke.PinvokeException.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Pinvoke.PinvokeException"/> class.
            </summary>
        </member>
        <member name="M:iMobileDevice.Pinvoke.PinvokeException.#ctor(iMobileDevice.Pinvoke.PinvokeError)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Pinvoke.PinvokeException"/> class with a specified error code.
            </summary>
            <param name="error">
            The error code of the error that occurred.
            </param>
        </member>
        <member name="M:iMobileDevice.Pinvoke.PinvokeException.#ctor(iMobileDevice.Pinvoke.PinvokeError,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Pinvoke.PinvokeException"/> class with a specified error code and error message.
            </summary>
            <param name="error">
            The error code of the error that occurred.
            </param>
            <param name="message">
            A message which describes the error.
            </param>
        </member>
        <member name="M:iMobileDevice.Pinvoke.PinvokeException.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Pinvoke.PinvokeException"/> class with a specified error message.
            </summary>
            <param name="message">
            The message that describes the error.
            </param>
        </member>
        <member name="M:iMobileDevice.Pinvoke.PinvokeException.#ctor(System.String,System.Exception)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Pinvoke.PinvokeException"/> class with a specified error message and a reference to the inner exception that is the cause of this exception.
            </summary>
            <param name="message">
            The error message that explains the reason for the exception.
            </param>
            <param name="inner">
            The exception that is the cause of the current exception, or <see langword="null"/> if no inner exception is specified.
            </param>
        </member>
        <member name="M:iMobileDevice.Pinvoke.PinvokeException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Pinvoke.PinvokeException"/> class with serialized data.
            </summary>
            <param name="info">
            The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds the serialized object data about the exception being thrown.
            </param>
            <param name="context">
            The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that contains contextual information about the source or destination.
            </param>
        </member>
        <member name="P:iMobileDevice.Pinvoke.PinvokeException.ErrorCode">
            <summary>
            Gets the error code that represents the error.
            </summary>
        </member>
        <member name="M:iMobileDevice.Pinvoke.PinvokeNativeMethods.pinvoke_free_string(System.IntPtr)">
            <summary>
            Frees a string that was previously allocated by libimobiledevice.
            </summary>
            <param name="string">
            The string to free.
            </param>
            <returns>
            Always returns PINVOKE_E_SUCCESS.
            </returns>
        </member>
        <member name="M:iMobileDevice.Pinvoke.PinvokeNativeMethods.pinvoke_get_string_length(System.IntPtr,System.UInt64@)">
            <summary>
            Gets the size of a string that was previously allocated by libimobiledevice.
            </summary>
            <param name="string">
            The string of which to get its size.
            </param>
            <param name="length">
            The length of the string, in bytes.
            </param>
            <returns>
            Always returns PINVOKE_E_SUCCESS.
            </returns>
        </member>
        <member name="P:iMobileDevice.Plist.IPlistApi.Parent">
            <summary>
            Gets or sets the <see cref="!:ILibiMobileDeviceApi"/> which owns this <see cref="N:iMobileDevice.Plist"/>.
            </summary>
        </member>
        <member name="M:iMobileDevice.Plist.IPlistApi.plist_new_dict">
            <summary>
            Create a new root plist_t type #PLIST_DICT
            </summary>
            <returns>
            the created plist
            </returns>
        </member>
        <member name="M:iMobileDevice.Plist.IPlistApi.plist_new_array">
            <summary>
            Create a new root plist_t type #PLIST_ARRAY
            </summary>
            <returns>
            the created plist
            </returns>
        </member>
        <member name="M:iMobileDevice.Plist.IPlistApi.plist_new_string(System.String)">
            <summary>
            Create a new plist_t type #PLIST_STRING
            </summary>
            <param name="val">
            the sting value, encoded in UTF8.
            </param>
            <returns>
            the created item
            </returns>
        </member>
        <member name="M:iMobileDevice.Plist.IPlistApi.plist_new_bool(System.Char)">
            <summary>
            Create a new plist_t type #PLIST_BOOLEAN
            </summary>
            <param name="val">
            the boolean value, 0 is false, other values are true.
            </param>
            <returns>
            the created item
            </returns>
        </member>
        <member name="M:iMobileDevice.Plist.IPlistApi.plist_new_uint(System.UInt64)">
            <summary>
            Create a new plist_t type #PLIST_UINT
            </summary>
            <param name="val">
            the unsigned integer value
            </param>
            <returns>
            the created item
            </returns>
        </member>
        <member name="M:iMobileDevice.Plist.IPlistApi.plist_new_real(System.Double)">
            <summary>
            Create a new plist_t type #PLIST_REAL
            </summary>
            <param name="val">
            the real value
            </param>
            <returns>
            the created item
            </returns>
        </member>
        <member name="M:iMobileDevice.Plist.IPlistApi.plist_new_data(System.String,System.UInt64)">
            <summary>
            Create a new plist_t type #PLIST_DATA
            </summary>
            <param name="val">
            the binary buffer
            </param>
            <param name="length">
            the length of the buffer
            </param>
            <returns>
            the created item
            </returns>
        </member>
        <member name="M:iMobileDevice.Plist.IPlistApi.plist_new_date(System.Int32,System.Int32)">
            <summary>
            Create a new plist_t type #PLIST_DATE
            </summary>
            <param name="sec">
            the number of seconds since 01/01/2001
            </param>
            <param name="usec">
            the number of microseconds
            </param>
            <returns>
            the created item
            </returns>
        </member>
        <member name="M:iMobileDevice.Plist.IPlistApi.plist_new_uid(System.UInt64)">
            <summary>
            Create a new plist_t type #PLIST_UID
            </summary>
            <param name="val">
            the unsigned integer value
            </param>
            <returns>
            the created item
            </returns>
        </member>
        <member name="M:iMobileDevice.Plist.IPlistApi.plist_free(System.IntPtr)">
            <summary>
            Destruct a plist_t node and all its children recursively
            </summary>
            <param name="plist">
            the plist to free
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.IPlistApi.plist_copy(iMobileDevice.Plist.PlistHandle)">
            <summary>
            Return a copy of passed node and it's children
            </summary>
            <param name="node">
            the plist to copy
            </param>
            <returns>
            copied plist
            </returns>
        </member>
        <member name="M:iMobileDevice.Plist.IPlistApi.plist_array_get_size(iMobileDevice.Plist.PlistHandle)">
            <summary>
            Get size of a #PLIST_ARRAY node.
            </summary>
            <param name="node">
            the node of type #PLIST_ARRAY
            </param>
            <returns>
            size of the #PLIST_ARRAY node
            </returns>
        </member>
        <member name="M:iMobileDevice.Plist.IPlistApi.plist_array_get_item(iMobileDevice.Plist.PlistHandle,System.UInt32)">
            <summary>
            Get the nth item in a #PLIST_ARRAY node.
            </summary>
            <param name="node">
            the node of type #PLIST_ARRAY
            </param>
            <param name="n">
            the index of the item to get. Range is [0, array_size[
            </param>
            <returns>
            the nth item or NULL if node is not of type #PLIST_ARRAY
            </returns>
        </member>
        <member name="M:iMobileDevice.Plist.IPlistApi.plist_array_get_item_index(iMobileDevice.Plist.PlistHandle)">
            <summary>
            Get the index of an item. item must be a member of a #PLIST_ARRAY node.
            </summary>
            <param name="node">
            the node
            </param>
            <returns>
            the node index or UINT_MAX if node index can't be determined
            </returns>
        </member>
        <member name="M:iMobileDevice.Plist.IPlistApi.plist_array_set_item(iMobileDevice.Plist.PlistHandle,iMobileDevice.Plist.PlistHandle,System.UInt32)">
            <summary>
            Set the nth item in a #PLIST_ARRAY node.
            The previous item at index n will be freed using #plist_free
            </summary>
            <param name="node">
            the node of type #PLIST_ARRAY
            </param>
            <param name="item">
            the new item at index n. The array is responsible for freeing item when it is no longer needed.
            </param>
            <param name="n">
            the index of the item to get. Range is [0, array_size[. Assert if n is not in range.
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.IPlistApi.plist_array_append_item(iMobileDevice.Plist.PlistHandle,iMobileDevice.Plist.PlistHandle)">
            <summary>
            Append a new item at the end of a #PLIST_ARRAY node.
            </summary>
            <param name="node">
            the node of type #PLIST_ARRAY
            </param>
            <param name="item">
            the new item. The array is responsible for freeing item when it is no longer needed.
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.IPlistApi.plist_array_insert_item(iMobileDevice.Plist.PlistHandle,iMobileDevice.Plist.PlistHandle,System.UInt32)">
            <summary>
            Insert a new item at position n in a #PLIST_ARRAY node.
            </summary>
            <param name="node">
            the node of type #PLIST_ARRAY
            </param>
            <param name="item">
            the new item to insert. The array is responsible for freeing item when it is no longer needed.
            </param>
            <param name="n">
            The position at which the node will be stored. Range is [0, array_size[. Assert if n is not in range.
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.IPlistApi.plist_array_remove_item(iMobileDevice.Plist.PlistHandle,System.UInt32)">
            <summary>
            Remove an existing position in a #PLIST_ARRAY node.
            Removed position will be freed using #plist_free.
            </summary>
            <param name="node">
            the node of type #PLIST_ARRAY
            </param>
            <param name="n">
            The position to remove. Range is [0, array_size[. Assert if n is not in range.
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.IPlistApi.plist_array_item_remove(iMobileDevice.Plist.PlistHandle)">
            <summary>
            Remove a node that is a child node of a #PLIST_ARRAY node.
            node will be freed using #plist_free.
            </summary>
            <param name="node">
            The node to be removed from its #PLIST_ARRAY parent.
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.IPlistApi.plist_array_new_iter(iMobileDevice.Plist.PlistHandle,iMobileDevice.Plist.PlistArrayIterHandle@)">
            <summary>
            Create an iterator of a #PLIST_ARRAY node.
            The allocated iterator should be freed with the standard free function.
            </summary>
            <param name="node">
            The node of type #PLIST_ARRAY
            </param>
            <param name="iter">
            Location to store the iterator for the array.
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.IPlistApi.plist_array_next_item(iMobileDevice.Plist.PlistHandle,iMobileDevice.Plist.PlistArrayIterHandle,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Increment iterator of a #PLIST_ARRAY node.
            </summary>
            <param name="node">
            The node of type #PLIST_ARRAY.
            </param>
            <param name="iter">
            Iterator of the array
            </param>
            <param name="item">
            Location to store the item. The caller must *not* free the
            returned item. Will be set to NULL when no more items are left
            to iterate.
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.IPlistApi.plist_dict_get_size(iMobileDevice.Plist.PlistHandle)">
            <summary>
            Get size of a #PLIST_DICT node.
            </summary>
            <param name="node">
            the node of type #PLIST_DICT
            </param>
            <returns>
            size of the #PLIST_DICT node
            </returns>
        </member>
        <member name="M:iMobileDevice.Plist.IPlistApi.plist_dict_new_iter(iMobileDevice.Plist.PlistHandle,iMobileDevice.Plist.PlistDictIterHandle@)">
            <summary>
            Create an iterator of a #PLIST_DICT node.
            The allocated iterator should be freed with the standard free function.
            </summary>
            <param name="node">
            The node of type #PLIST_DICT.
            </param>
            <param name="iter">
            Location to store the iterator for the dictionary.
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.IPlistApi.plist_dict_next_item(iMobileDevice.Plist.PlistHandle,iMobileDevice.Plist.PlistDictIterHandle,System.String@,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Increment iterator of a #PLIST_DICT node.
            </summary>
            <param name="node">
            The node of type #PLIST_DICT
            </param>
            <param name="iter">
            Iterator of the dictionary
            </param>
            <param name="key">
            Location to store the key, or NULL. The caller is responsible
            for freeing the the returned string.
            </param>
            <param name="val">
            Location to store the value, or NULL. The caller must *not*
            free the returned value. Will be set to NULL when no more
            key/value pairs are left to iterate.
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.IPlistApi.plist_dict_get_item_key(iMobileDevice.Plist.PlistHandle,System.String@)">
            <summary>
            Get key associated key to an item. Item must be member of a dictionary.
            </summary>
            <param name="node">
            the item
            </param>
            <param name="key">
            a location to store the key. The caller is responsible for freeing the returned string.
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.IPlistApi.plist_dict_get_item(iMobileDevice.Plist.PlistHandle,System.String)">
            <summary>
            Get the nth item in a #PLIST_DICT node.
            </summary>
            <param name="node">
            the node of type #PLIST_DICT
            </param>
            <param name="key">
            the identifier of the item to get.
            </param>
            <returns>
            the item or NULL if node is not of type #PLIST_DICT. The caller should not free
            the returned node.
            </returns>
        </member>
        <member name="M:iMobileDevice.Plist.IPlistApi.plist_dict_item_get_key(iMobileDevice.Plist.PlistHandle)">
            <summary>
            Get key node associated to an item. Item must be member of a dictionary.
            </summary>
            <param name="node">
            the item
            </param>
            <returns>
            the key node of the given item, or NULL.
            </returns>
        </member>
        <member name="M:iMobileDevice.Plist.IPlistApi.plist_dict_set_item(iMobileDevice.Plist.PlistHandle,System.String,iMobileDevice.Plist.PlistHandle)">
            <summary>
            Set item identified by key in a #PLIST_DICT node.
            The previous item identified by key will be freed using #plist_free.
            If there is no item for the given key a new item will be inserted.
            </summary>
            <param name="node">
            the node of type #PLIST_DICT
            </param>
            <param name="item">
            the new item associated to key
            </param>
            <param name="key">
            the identifier of the item to set.
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.IPlistApi.plist_dict_insert_item(iMobileDevice.Plist.PlistHandle,System.String,iMobileDevice.Plist.PlistHandle)">
            <summary>
            Insert a new item into a #PLIST_DICT node.
            </summary>
            <param name="node">
            the node of type #PLIST_DICT
            </param>
            <param name="item">
            the new item to insert
            </param>
            <param name="key">
            The identifier of the item to insert.
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.IPlistApi.plist_dict_remove_item(iMobileDevice.Plist.PlistHandle,System.String)">
            <summary>
            Remove an existing position in a #PLIST_DICT node.
            Removed position will be freed using #plist_free
            </summary>
            <param name="node">
            the node of type #PLIST_DICT
            </param>
            <param name="key">
            The identifier of the item to remove. Assert if identifier is not present.
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.IPlistApi.plist_dict_merge(iMobileDevice.Plist.PlistHandle@,iMobileDevice.Plist.PlistHandle)">
            <summary>
            Merge a dictionary into another. This will add all key/value pairs
            from the source dictionary to the target dictionary, overwriting
            any existing key/value pairs that are already present in target.
            </summary>
            <param name="target">
            pointer to an existing node of type #PLIST_DICT
            </param>
            <param name="source">
            node of type #PLIST_DICT that should be merged into target
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.IPlistApi.plist_get_parent(iMobileDevice.Plist.PlistHandle)">
            <summary>
            Get the parent of a node
            </summary>
            <param name="node">
            the parent (NULL if node is root)
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.IPlistApi.plist_get_node_type(iMobileDevice.Plist.PlistHandle)">
            <summary>
            Get the #plist_type of a node.
            </summary>
            <param name="node">
            the node
            </param>
            <returns>
            the type of the node
            </returns>
        </member>
        <member name="M:iMobileDevice.Plist.IPlistApi.plist_get_key_val(iMobileDevice.Plist.PlistHandle,System.String@)">
            <summary>
            Get the value of a #PLIST_KEY node.
            This function does nothing if node is not of type #PLIST_KEY
            </summary>
            <param name="node">
            the node
            </param>
            <param name="val">
            a pointer to a C-string. This function allocates the memory,
            caller is responsible for freeing it.
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.IPlistApi.plist_get_string_val(iMobileDevice.Plist.PlistHandle,System.String@)">
            <summary>
            Get the value of a #PLIST_STRING node.
            This function does nothing if node is not of type #PLIST_STRING
            </summary>
            <param name="node">
            the node
            </param>
            <param name="val">
            a pointer to a C-string. This function allocates the memory,
            caller is responsible for freeing it. Data is UTF-8 encoded.
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.IPlistApi.plist_get_string_ptr(iMobileDevice.Plist.PlistHandle,System.UInt64@)">
            <summary>
            Get a pointer to the buffer of a #PLIST_STRING node.
            </summary>
            <param name="node">
            The node
            </param>
            <param name="length">
            If non-NULL, will be set to the length of the string
            </param>
            <returns>
            Pointer to the NULL-terminated buffer.
            </returns>
            <remarks>
            DO NOT MODIFY the buffer. Mind that the buffer is only available
            until the plist node gets freed. Make a copy if needed.
            </remarks>
        </member>
        <member name="M:iMobileDevice.Plist.IPlistApi.plist_get_bool_val(iMobileDevice.Plist.PlistHandle,System.Char@)">
            <summary>
            Get the value of a #PLIST_BOOLEAN node.
            This function does nothing if node is not of type #PLIST_BOOLEAN
            </summary>
            <param name="node">
            the node
            </param>
            <param name="val">
            a pointer to a uint8_t variable.
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.IPlistApi.plist_get_uint_val(iMobileDevice.Plist.PlistHandle,System.UInt64@)">
            <summary>
            Get the value of a #PLIST_UINT node.
            This function does nothing if node is not of type #PLIST_UINT
            </summary>
            <param name="node">
            the node
            </param>
            <param name="val">
            a pointer to a uint64_t variable.
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.IPlistApi.plist_get_real_val(iMobileDevice.Plist.PlistHandle,System.Double@)">
            <summary>
            Get the value of a #PLIST_REAL node.
            This function does nothing if node is not of type #PLIST_REAL
            </summary>
            <param name="node">
            the node
            </param>
            <param name="val">
            a pointer to a double variable.
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.IPlistApi.plist_get_data_val(iMobileDevice.Plist.PlistHandle,System.String@,System.UInt64@)">
            <summary>
            Get the value of a #PLIST_DATA node.
            This function does nothing if node is not of type #PLIST_DATA
            </summary>
            <param name="node">
            the node
            </param>
            <param name="val">
            a pointer to an unallocated char buffer. This function allocates the memory,
            caller is responsible for freeing it.
            </param>
            <param name="length">
            the length of the buffer
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.IPlistApi.plist_get_data_ptr(iMobileDevice.Plist.PlistHandle,System.UInt64@)">
            <summary>
            Get a pointer to the data buffer of a #PLIST_DATA node.
            </summary>
            <param name="node">
            The node
            </param>
            <param name="length">
            Pointer to a uint64_t that will be set to the length of the buffer
            </param>
            <returns>
            Pointer to the buffer
            </returns>
            <remarks>
            DO NOT MODIFY the buffer. Mind that the buffer is only available
            until the plist node gets freed. Make a copy if needed.
            </remarks>
        </member>
        <member name="M:iMobileDevice.Plist.IPlistApi.plist_get_date_val(iMobileDevice.Plist.PlistHandle,System.Int32@,System.Int32@)">
            <summary>
            Get the value of a #PLIST_DATE node.
            This function does nothing if node is not of type #PLIST_DATE
            </summary>
            <param name="node">
            the node
            </param>
            <param name="sec">
            a pointer to an int32_t variable. Represents the number of seconds since 01/01/2001.
            </param>
            <param name="usec">
            a pointer to an int32_t variable. Represents the number of microseconds
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.IPlistApi.plist_get_uid_val(iMobileDevice.Plist.PlistHandle,System.UInt64@)">
            <summary>
            Get the value of a #PLIST_UID node.
            This function does nothing if node is not of type #PLIST_UID
            </summary>
            <param name="node">
            the node
            </param>
            <param name="val">
            a pointer to a uint64_t variable.
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.IPlistApi.plist_set_key_val(iMobileDevice.Plist.PlistHandle,System.String)">
            <summary>
            Set the value of a node.
            Forces type of node to #PLIST_KEY
            </summary>
            <param name="node">
            the node
            </param>
            <param name="val">
            the key value
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.IPlistApi.plist_set_string_val(iMobileDevice.Plist.PlistHandle,System.String)">
            <summary>
            Set the value of a node.
            Forces type of node to #PLIST_STRING
            </summary>
            <param name="node">
            the node
            </param>
            <param name="val">
            the string value. The string is copied when set and will be
            freed by the node.
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.IPlistApi.plist_set_bool_val(iMobileDevice.Plist.PlistHandle,System.Char)">
            <summary>
            Set the value of a node.
            Forces type of node to #PLIST_BOOLEAN
            </summary>
            <param name="node">
            the node
            </param>
            <param name="val">
            the boolean value
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.IPlistApi.plist_set_uint_val(iMobileDevice.Plist.PlistHandle,System.UInt64)">
            <summary>
            Set the value of a node.
            Forces type of node to #PLIST_UINT
            </summary>
            <param name="node">
            the node
            </param>
            <param name="val">
            the unsigned integer value
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.IPlistApi.plist_set_real_val(iMobileDevice.Plist.PlistHandle,System.Double)">
            <summary>
            Set the value of a node.
            Forces type of node to #PLIST_REAL
            </summary>
            <param name="node">
            the node
            </param>
            <param name="val">
            the real value
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.IPlistApi.plist_set_data_val(iMobileDevice.Plist.PlistHandle,System.String,System.UInt64)">
            <summary>
            Set the value of a node.
            Forces type of node to #PLIST_DATA
            </summary>
            <param name="node">
            the node
            </param>
            <param name="val">
            the binary buffer. The buffer is copied when set and will
            be freed by the node.
            </param>
            <param name="length">
            the length of the buffer
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.IPlistApi.plist_set_date_val(iMobileDevice.Plist.PlistHandle,System.Int32,System.Int32)">
            <summary>
            Set the value of a node.
            Forces type of node to #PLIST_DATE
            </summary>
            <param name="node">
            the node
            </param>
            <param name="sec">
            the number of seconds since 01/01/2001
            </param>
            <param name="usec">
            the number of microseconds
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.IPlistApi.plist_set_uid_val(iMobileDevice.Plist.PlistHandle,System.UInt64)">
            <summary>
            Set the value of a node.
            Forces type of node to #PLIST_UID
            </summary>
            <param name="node">
            the node
            </param>
            <param name="val">
            the unsigned integer value
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.IPlistApi.plist_to_xml(iMobileDevice.Plist.PlistHandle,System.String@,System.UInt32@)">
            <summary>
            Export the #plist_t structure to XML format.
            </summary>
            <param name="plist">
            the root node to export
            </param>
            <param name="plist_xml">
            a pointer to a C-string. This function allocates the memory,
            caller is responsible for freeing it. Data is UTF-8 encoded.
            </param>
            <param name="length">
            a pointer to an uint32_t variable. Represents the length of the allocated buffer.
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.IPlistApi.plist_to_xml_free(System.IntPtr)">
            <summary>
            Frees the memory allocated by plist_to_xml().
            </summary>
            <param name="plist_xml">
            The buffer allocated by plist_to_xml().
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.IPlistApi.plist_to_bin(iMobileDevice.Plist.PlistHandle,System.String@,System.UInt32@)">
            <summary>
            Export the #plist_t structure to binary format.
            </summary>
            <param name="plist">
            the root node to export
            </param>
            <param name="plist_bin">
            a pointer to a char* buffer. This function allocates the memory,
            caller is responsible for freeing it.
            </param>
            <param name="length">
            a pointer to an uint32_t variable. Represents the length of the allocated buffer.
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.IPlistApi.plist_to_bin_free(System.IntPtr)">
            <summary>
            Frees the memory allocated by plist_to_bin().
            </summary>
            <param name="plist_bin">
            The buffer allocated by plist_to_bin().
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.IPlistApi.plist_from_xml(System.String,System.UInt32,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Import the #plist_t structure from XML format.
            </summary>
            <param name="plist_xml">
            a pointer to the xml buffer.
            </param>
            <param name="length">
            length of the buffer to read.
            </param>
            <param name="plist">
            a pointer to the imported plist.
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.IPlistApi.plist_from_bin(System.String,System.UInt32,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Import the #plist_t structure from binary format.
            </summary>
            <param name="plist_bin">
            a pointer to the xml buffer.
            </param>
            <param name="length">
            length of the buffer to read.
            </param>
            <param name="plist">
            a pointer to the imported plist.
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.IPlistApi.plist_from_memory(System.String,System.UInt32,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Import the #plist_t structure from memory data.
            This method will look at the first bytes of plist_data
            to determine if plist_data contains a binary or XML plist.
            </summary>
            <param name="plist_data">
            a pointer to the memory buffer containing plist data.
            </param>
            <param name="length">
            length of the buffer to read.
            </param>
            <param name="plist">
            a pointer to the imported plist.
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.IPlistApi.plist_is_binary(System.String,System.UInt32)">
            <summary>
            Test if in-memory plist data is binary or XML
            This method will look at the first bytes of plist_data
            to determine if plist_data contains a binary or XML plist.
            This method is not validating the whole memory buffer to check if the
            content is truly a plist, it's only using some heuristic on the first few
            bytes of plist_data.
            </summary>
            <param name="plist_data">
            a pointer to the memory buffer containing plist data.
            </param>
            <param name="length">
            length of the buffer to read.
            </param>
            <returns>
            1 if the buffer is a binary plist, 0 otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Plist.IPlistApi.plist_access_path(iMobileDevice.Plist.PlistHandle,System.UInt32)">
            <summary>
            Get a node from its path. Each path element depends on the associated father node type.
            For Dictionaries, var args are casted to const char*, for arrays, var args are caster to uint32_t
            Search is breath first order.
            </summary>
            <param name="plist">
            the node to access result from.
            </param>
            <param name="length">
            length of the path to access
            </param>
            <returns>
            the value to access.
            </returns>
        </member>
        <member name="M:iMobileDevice.Plist.IPlistApi.plist_access_pathv(iMobileDevice.Plist.PlistHandle,System.UInt32,System.IntPtr)">
            <summary>
            Variadic version of #plist_access_path.
            </summary>
            <param name="plist">
            the node to access result from.
            </param>
            <param name="length">
            length of the path to access
            </param>
            <param name="v">
            list of array's index and dic'st key
            </param>
            <returns>
            the value to access.
            </returns>
        </member>
        <member name="M:iMobileDevice.Plist.IPlistApi.plist_compare_node_value(iMobileDevice.Plist.PlistHandle,iMobileDevice.Plist.PlistHandle)">
            <summary>
            Compare two node values
            </summary>
            <param name="node_l">
            left node to compare
            </param>
            <param name="node_r">
            rigth node to compare
            </param>
            <returns>
            TRUE is type and value match, FALSE otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Plist.IPlistApi.plist_bool_val_is_true(iMobileDevice.Plist.PlistHandle)">
            <summary>
            Helper function to check the value of a PLIST_BOOL node.
            </summary>
            <param name="boolnode">
            node of type PLIST_BOOL
            </param>
            <returns>
            1 if the boolean node has a value of TRUE, 0 if FALSE,
            or -1 if the node is not of type PLIST_BOOL
            </returns>
        </member>
        <member name="M:iMobileDevice.Plist.IPlistApi.plist_uint_val_compare(iMobileDevice.Plist.PlistHandle,System.UInt64)">
            <summary>
            Helper function to compare the value of a PLIST_UINT node against
            a given value.
            </summary>
            <param name="uintnode">
            node of type PLIST_UINT
            </param>
            <param name="cmpval">
            value to compare against
            </param>
            <returns>
            0 if the node's value and cmpval are equal,
            1 if the node's value is greater than cmpval,
            or -1 if the node's value is less than cmpval.
            </returns>
        </member>
        <member name="M:iMobileDevice.Plist.IPlistApi.plist_uid_val_compare(iMobileDevice.Plist.PlistHandle,System.UInt64)">
            <summary>
            Helper function to compare the value of a PLIST_UID node against
            a given value.
            </summary>
            <param name="uidnode">
            node of type PLIST_UID
            </param>
            <param name="cmpval">
            value to compare against
            </param>
            <returns>
            0 if the node's value and cmpval are equal,
            1 if the node's value is greater than cmpval,
            or -1 if the node's value is less than cmpval.
            </returns>
        </member>
        <member name="M:iMobileDevice.Plist.IPlistApi.plist_real_val_compare(iMobileDevice.Plist.PlistHandle,System.Double)">
            <summary>
            Helper function to compare the value of a PLIST_REAL node against
            a given value.
            </summary>
            <param name="realnode">
            node of type PLIST_REAL
            </param>
            <param name="cmpval">
            value to compare against
            </param>
            <returns>
            0 if the node's value and cmpval are (almost) equal,
            1 if the node's value is greater than cmpval,
            or -1 if the node's value is less than cmpval.
            </returns>
            <remarks>
            WARNING: Comparing floating point values can give inaccurate
            results because of the nature of floating point values on computer
            systems. While this function is designed to be as accurate as
            possible, please don't rely on it too much.
            </remarks>
        </member>
        <member name="M:iMobileDevice.Plist.IPlistApi.plist_date_val_compare(iMobileDevice.Plist.PlistHandle,System.Int32,System.Int32)">
            <summary>
            Helper function to compare the value of a PLIST_DATE node against
            a given set of seconds and fraction of a second since epoch.
            </summary>
            <param name="datenode">
            node of type PLIST_DATE
            </param>
            <param name="cmpsec">
            number of seconds since epoch to compare against
            </param>
            <param name="cmpusec">
            fraction of a second in microseconds to compare against
            </param>
            <returns>
            0 if the node's date is equal to the supplied values,
            1 if the node's date is greater than the supplied values,
            or -1 if the node's date is less than the supplied values.
            </returns>
        </member>
        <!-- Badly formed XML comment ignored for member "M:iMobileDevice.Plist.IPlistApi.plist_string_val_compare(iMobileDevice.Plist.PlistHandle,System.String)" -->
        <!-- Badly formed XML comment ignored for member "M:iMobileDevice.Plist.IPlistApi.plist_string_val_compare_with_size(iMobileDevice.Plist.PlistHandle,System.String,System.UInt32)" -->
        <member name="M:iMobileDevice.Plist.IPlistApi.plist_string_val_contains(iMobileDevice.Plist.PlistHandle,System.String)">
            <summary>
            Helper function to match a given substring in the value of a
            PLIST_STRING node.
            </summary>
            <param name="strnode">
            node of type PLIST_STRING
            </param>
            <param name="substr">
            value to match
            </param>
            <returns>
            1 if the node's value contains the given substring,
            or 0 if not.
            </returns>
        </member>
        <!-- Badly formed XML comment ignored for member "M:iMobileDevice.Plist.IPlistApi.plist_key_val_compare(iMobileDevice.Plist.PlistHandle,System.String)" -->
        <!-- Badly formed XML comment ignored for member "M:iMobileDevice.Plist.IPlistApi.plist_key_val_compare_with_size(iMobileDevice.Plist.PlistHandle,System.String,System.UInt32)" -->
        <member name="M:iMobileDevice.Plist.IPlistApi.plist_key_val_contains(iMobileDevice.Plist.PlistHandle,System.String)">
            <summary>
            Helper function to match a given substring in the value of a
            PLIST_KEY node.
            </summary>
            <param name="keynode">
            node of type PLIST_KEY
            </param>
            <param name="substr">
            value to match
            </param>
            <returns>
            1 if the node's value contains the given substring,
            or 0 if not.
            </returns>
        </member>
        <!-- Badly formed XML comment ignored for member "M:iMobileDevice.Plist.IPlistApi.plist_data_val_compare(iMobileDevice.Plist.PlistHandle,System.Char@,System.UInt32)" -->
        <!-- Badly formed XML comment ignored for member "M:iMobileDevice.Plist.IPlistApi.plist_data_val_compare_with_size(iMobileDevice.Plist.PlistHandle,System.Char@,System.UInt32)" -->
        <member name="M:iMobileDevice.Plist.IPlistApi.plist_data_val_contains(iMobileDevice.Plist.PlistHandle,System.Char@,System.UInt32)">
            <summary>
            Helper function to match a given data blob within the value of a
            PLIST_DATA node.
            </summary>
            <param name="datanode">
            node of type PLIST_KEY
            </param>
            <param name="cmpval">
            data blob to match
            </param>
            <param name="n">
            size of data blob passed in cmpval
            </param>
            <returns>
            1 if the node's value contains the given data blob
            or 0 if not.
            </returns>
        </member>
        <member name="F:iMobileDevice.Plist.PlistApi.parent">
            <summary>
            Backing field for the <see cref="P:iMobileDevice.Plist.PlistApi.Parent"/> property
            </summary>
        </member>
        <member name="M:iMobileDevice.Plist.PlistApi.#ctor(iMobileDevice.ILibiMobileDevice)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Plist.PlistApi"/> class
            </summary>
            <param name="parent">
            The <see cref="!:ILibiMobileDeviceApi"/> which owns this <see cref="N:iMobileDevice.Plist"/>.
            </param>
        </member>
        <member name="P:iMobileDevice.Plist.PlistApi.Parent">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.Plist.PlistApi.plist_new_dict">
            <summary>
            Create a new root plist_t type #PLIST_DICT
            </summary>
            <returns>
            the created plist
            </returns>
        </member>
        <member name="M:iMobileDevice.Plist.PlistApi.plist_new_array">
            <summary>
            Create a new root plist_t type #PLIST_ARRAY
            </summary>
            <returns>
            the created plist
            </returns>
        </member>
        <member name="M:iMobileDevice.Plist.PlistApi.plist_new_string(System.String)">
            <summary>
            Create a new plist_t type #PLIST_STRING
            </summary>
            <param name="val">
            the sting value, encoded in UTF8.
            </param>
            <returns>
            the created item
            </returns>
        </member>
        <member name="M:iMobileDevice.Plist.PlistApi.plist_new_bool(System.Char)">
            <summary>
            Create a new plist_t type #PLIST_BOOLEAN
            </summary>
            <param name="val">
            the boolean value, 0 is false, other values are true.
            </param>
            <returns>
            the created item
            </returns>
        </member>
        <member name="M:iMobileDevice.Plist.PlistApi.plist_new_uint(System.UInt64)">
            <summary>
            Create a new plist_t type #PLIST_UINT
            </summary>
            <param name="val">
            the unsigned integer value
            </param>
            <returns>
            the created item
            </returns>
        </member>
        <member name="M:iMobileDevice.Plist.PlistApi.plist_new_real(System.Double)">
            <summary>
            Create a new plist_t type #PLIST_REAL
            </summary>
            <param name="val">
            the real value
            </param>
            <returns>
            the created item
            </returns>
        </member>
        <member name="M:iMobileDevice.Plist.PlistApi.plist_new_data(System.String,System.UInt64)">
            <summary>
            Create a new plist_t type #PLIST_DATA
            </summary>
            <param name="val">
            the binary buffer
            </param>
            <param name="length">
            the length of the buffer
            </param>
            <returns>
            the created item
            </returns>
        </member>
        <member name="M:iMobileDevice.Plist.PlistApi.plist_new_date(System.Int32,System.Int32)">
            <summary>
            Create a new plist_t type #PLIST_DATE
            </summary>
            <param name="sec">
            the number of seconds since 01/01/2001
            </param>
            <param name="usec">
            the number of microseconds
            </param>
            <returns>
            the created item
            </returns>
        </member>
        <member name="M:iMobileDevice.Plist.PlistApi.plist_new_uid(System.UInt64)">
            <summary>
            Create a new plist_t type #PLIST_UID
            </summary>
            <param name="val">
            the unsigned integer value
            </param>
            <returns>
            the created item
            </returns>
        </member>
        <member name="M:iMobileDevice.Plist.PlistApi.plist_free(System.IntPtr)">
            <summary>
            Destruct a plist_t node and all its children recursively
            </summary>
            <param name="plist">
            the plist to free
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.PlistApi.plist_copy(iMobileDevice.Plist.PlistHandle)">
            <summary>
            Return a copy of passed node and it's children
            </summary>
            <param name="node">
            the plist to copy
            </param>
            <returns>
            copied plist
            </returns>
        </member>
        <member name="M:iMobileDevice.Plist.PlistApi.plist_array_get_size(iMobileDevice.Plist.PlistHandle)">
            <summary>
            Get size of a #PLIST_ARRAY node.
            </summary>
            <param name="node">
            the node of type #PLIST_ARRAY
            </param>
            <returns>
            size of the #PLIST_ARRAY node
            </returns>
        </member>
        <member name="M:iMobileDevice.Plist.PlistApi.plist_array_get_item(iMobileDevice.Plist.PlistHandle,System.UInt32)">
            <summary>
            Get the nth item in a #PLIST_ARRAY node.
            </summary>
            <param name="node">
            the node of type #PLIST_ARRAY
            </param>
            <param name="n">
            the index of the item to get. Range is [0, array_size[
            </param>
            <returns>
            the nth item or NULL if node is not of type #PLIST_ARRAY
            </returns>
        </member>
        <member name="M:iMobileDevice.Plist.PlistApi.plist_array_get_item_index(iMobileDevice.Plist.PlistHandle)">
            <summary>
            Get the index of an item. item must be a member of a #PLIST_ARRAY node.
            </summary>
            <param name="node">
            the node
            </param>
            <returns>
            the node index or UINT_MAX if node index can't be determined
            </returns>
        </member>
        <member name="M:iMobileDevice.Plist.PlistApi.plist_array_set_item(iMobileDevice.Plist.PlistHandle,iMobileDevice.Plist.PlistHandle,System.UInt32)">
            <summary>
            Set the nth item in a #PLIST_ARRAY node.
            The previous item at index n will be freed using #plist_free
            </summary>
            <param name="node">
            the node of type #PLIST_ARRAY
            </param>
            <param name="item">
            the new item at index n. The array is responsible for freeing item when it is no longer needed.
            </param>
            <param name="n">
            the index of the item to get. Range is [0, array_size[. Assert if n is not in range.
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.PlistApi.plist_array_append_item(iMobileDevice.Plist.PlistHandle,iMobileDevice.Plist.PlistHandle)">
            <summary>
            Append a new item at the end of a #PLIST_ARRAY node.
            </summary>
            <param name="node">
            the node of type #PLIST_ARRAY
            </param>
            <param name="item">
            the new item. The array is responsible for freeing item when it is no longer needed.
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.PlistApi.plist_array_insert_item(iMobileDevice.Plist.PlistHandle,iMobileDevice.Plist.PlistHandle,System.UInt32)">
            <summary>
            Insert a new item at position n in a #PLIST_ARRAY node.
            </summary>
            <param name="node">
            the node of type #PLIST_ARRAY
            </param>
            <param name="item">
            the new item to insert. The array is responsible for freeing item when it is no longer needed.
            </param>
            <param name="n">
            The position at which the node will be stored. Range is [0, array_size[. Assert if n is not in range.
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.PlistApi.plist_array_remove_item(iMobileDevice.Plist.PlistHandle,System.UInt32)">
            <summary>
            Remove an existing position in a #PLIST_ARRAY node.
            Removed position will be freed using #plist_free.
            </summary>
            <param name="node">
            the node of type #PLIST_ARRAY
            </param>
            <param name="n">
            The position to remove. Range is [0, array_size[. Assert if n is not in range.
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.PlistApi.plist_array_item_remove(iMobileDevice.Plist.PlistHandle)">
            <summary>
            Remove a node that is a child node of a #PLIST_ARRAY node.
            node will be freed using #plist_free.
            </summary>
            <param name="node">
            The node to be removed from its #PLIST_ARRAY parent.
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.PlistApi.plist_array_new_iter(iMobileDevice.Plist.PlistHandle,iMobileDevice.Plist.PlistArrayIterHandle@)">
            <summary>
            Create an iterator of a #PLIST_ARRAY node.
            The allocated iterator should be freed with the standard free function.
            </summary>
            <param name="node">
            The node of type #PLIST_ARRAY
            </param>
            <param name="iter">
            Location to store the iterator for the array.
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.PlistApi.plist_array_next_item(iMobileDevice.Plist.PlistHandle,iMobileDevice.Plist.PlistArrayIterHandle,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Increment iterator of a #PLIST_ARRAY node.
            </summary>
            <param name="node">
            The node of type #PLIST_ARRAY.
            </param>
            <param name="iter">
            Iterator of the array
            </param>
            <param name="item">
            Location to store the item. The caller must *not* free the
            returned item. Will be set to NULL when no more items are left
            to iterate.
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.PlistApi.plist_dict_get_size(iMobileDevice.Plist.PlistHandle)">
            <summary>
            Get size of a #PLIST_DICT node.
            </summary>
            <param name="node">
            the node of type #PLIST_DICT
            </param>
            <returns>
            size of the #PLIST_DICT node
            </returns>
        </member>
        <member name="M:iMobileDevice.Plist.PlistApi.plist_dict_new_iter(iMobileDevice.Plist.PlistHandle,iMobileDevice.Plist.PlistDictIterHandle@)">
            <summary>
            Create an iterator of a #PLIST_DICT node.
            The allocated iterator should be freed with the standard free function.
            </summary>
            <param name="node">
            The node of type #PLIST_DICT.
            </param>
            <param name="iter">
            Location to store the iterator for the dictionary.
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.PlistApi.plist_dict_next_item(iMobileDevice.Plist.PlistHandle,iMobileDevice.Plist.PlistDictIterHandle,System.String@,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Increment iterator of a #PLIST_DICT node.
            </summary>
            <param name="node">
            The node of type #PLIST_DICT
            </param>
            <param name="iter">
            Iterator of the dictionary
            </param>
            <param name="key">
            Location to store the key, or NULL. The caller is responsible
            for freeing the the returned string.
            </param>
            <param name="val">
            Location to store the value, or NULL. The caller must *not*
            free the returned value. Will be set to NULL when no more
            key/value pairs are left to iterate.
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.PlistApi.plist_dict_get_item_key(iMobileDevice.Plist.PlistHandle,System.String@)">
            <summary>
            Get key associated key to an item. Item must be member of a dictionary.
            </summary>
            <param name="node">
            the item
            </param>
            <param name="key">
            a location to store the key. The caller is responsible for freeing the returned string.
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.PlistApi.plist_dict_get_item(iMobileDevice.Plist.PlistHandle,System.String)">
            <summary>
            Get the nth item in a #PLIST_DICT node.
            </summary>
            <param name="node">
            the node of type #PLIST_DICT
            </param>
            <param name="key">
            the identifier of the item to get.
            </param>
            <returns>
            the item or NULL if node is not of type #PLIST_DICT. The caller should not free
            the returned node.
            </returns>
        </member>
        <member name="M:iMobileDevice.Plist.PlistApi.plist_dict_item_get_key(iMobileDevice.Plist.PlistHandle)">
            <summary>
            Get key node associated to an item. Item must be member of a dictionary.
            </summary>
            <param name="node">
            the item
            </param>
            <returns>
            the key node of the given item, or NULL.
            </returns>
        </member>
        <member name="M:iMobileDevice.Plist.PlistApi.plist_dict_set_item(iMobileDevice.Plist.PlistHandle,System.String,iMobileDevice.Plist.PlistHandle)">
            <summary>
            Set item identified by key in a #PLIST_DICT node.
            The previous item identified by key will be freed using #plist_free.
            If there is no item for the given key a new item will be inserted.
            </summary>
            <param name="node">
            the node of type #PLIST_DICT
            </param>
            <param name="item">
            the new item associated to key
            </param>
            <param name="key">
            the identifier of the item to set.
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.PlistApi.plist_dict_insert_item(iMobileDevice.Plist.PlistHandle,System.String,iMobileDevice.Plist.PlistHandle)">
            <summary>
            Insert a new item into a #PLIST_DICT node.
            </summary>
            <param name="node">
            the node of type #PLIST_DICT
            </param>
            <param name="item">
            the new item to insert
            </param>
            <param name="key">
            The identifier of the item to insert.
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.PlistApi.plist_dict_remove_item(iMobileDevice.Plist.PlistHandle,System.String)">
            <summary>
            Remove an existing position in a #PLIST_DICT node.
            Removed position will be freed using #plist_free
            </summary>
            <param name="node">
            the node of type #PLIST_DICT
            </param>
            <param name="key">
            The identifier of the item to remove. Assert if identifier is not present.
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.PlistApi.plist_dict_merge(iMobileDevice.Plist.PlistHandle@,iMobileDevice.Plist.PlistHandle)">
            <summary>
            Merge a dictionary into another. This will add all key/value pairs
            from the source dictionary to the target dictionary, overwriting
            any existing key/value pairs that are already present in target.
            </summary>
            <param name="target">
            pointer to an existing node of type #PLIST_DICT
            </param>
            <param name="source">
            node of type #PLIST_DICT that should be merged into target
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.PlistApi.plist_get_parent(iMobileDevice.Plist.PlistHandle)">
            <summary>
            Get the parent of a node
            </summary>
            <param name="node">
            the parent (NULL if node is root)
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.PlistApi.plist_get_node_type(iMobileDevice.Plist.PlistHandle)">
            <summary>
            Get the #plist_type of a node.
            </summary>
            <param name="node">
            the node
            </param>
            <returns>
            the type of the node
            </returns>
        </member>
        <member name="M:iMobileDevice.Plist.PlistApi.plist_get_key_val(iMobileDevice.Plist.PlistHandle,System.String@)">
            <summary>
            Get the value of a #PLIST_KEY node.
            This function does nothing if node is not of type #PLIST_KEY
            </summary>
            <param name="node">
            the node
            </param>
            <param name="val">
            a pointer to a C-string. This function allocates the memory,
            caller is responsible for freeing it.
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.PlistApi.plist_get_string_val(iMobileDevice.Plist.PlistHandle,System.String@)">
            <summary>
            Get the value of a #PLIST_STRING node.
            This function does nothing if node is not of type #PLIST_STRING
            </summary>
            <param name="node">
            the node
            </param>
            <param name="val">
            a pointer to a C-string. This function allocates the memory,
            caller is responsible for freeing it. Data is UTF-8 encoded.
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.PlistApi.plist_get_string_ptr(iMobileDevice.Plist.PlistHandle,System.UInt64@)">
            <summary>
            Get a pointer to the buffer of a #PLIST_STRING node.
            </summary>
            <param name="node">
            The node
            </param>
            <param name="length">
            If non-NULL, will be set to the length of the string
            </param>
            <returns>
            Pointer to the NULL-terminated buffer.
            </returns>
            <remarks>
            DO NOT MODIFY the buffer. Mind that the buffer is only available
            until the plist node gets freed. Make a copy if needed.
            </remarks>
        </member>
        <member name="M:iMobileDevice.Plist.PlistApi.plist_get_bool_val(iMobileDevice.Plist.PlistHandle,System.Char@)">
            <summary>
            Get the value of a #PLIST_BOOLEAN node.
            This function does nothing if node is not of type #PLIST_BOOLEAN
            </summary>
            <param name="node">
            the node
            </param>
            <param name="val">
            a pointer to a uint8_t variable.
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.PlistApi.plist_get_uint_val(iMobileDevice.Plist.PlistHandle,System.UInt64@)">
            <summary>
            Get the value of a #PLIST_UINT node.
            This function does nothing if node is not of type #PLIST_UINT
            </summary>
            <param name="node">
            the node
            </param>
            <param name="val">
            a pointer to a uint64_t variable.
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.PlistApi.plist_get_real_val(iMobileDevice.Plist.PlistHandle,System.Double@)">
            <summary>
            Get the value of a #PLIST_REAL node.
            This function does nothing if node is not of type #PLIST_REAL
            </summary>
            <param name="node">
            the node
            </param>
            <param name="val">
            a pointer to a double variable.
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.PlistApi.plist_get_data_val(iMobileDevice.Plist.PlistHandle,System.String@,System.UInt64@)">
            <summary>
            Get the value of a #PLIST_DATA node.
            This function does nothing if node is not of type #PLIST_DATA
            </summary>
            <param name="node">
            the node
            </param>
            <param name="val">
            a pointer to an unallocated char buffer. This function allocates the memory,
            caller is responsible for freeing it.
            </param>
            <param name="length">
            the length of the buffer
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.PlistApi.plist_get_data_ptr(iMobileDevice.Plist.PlistHandle,System.UInt64@)">
            <summary>
            Get a pointer to the data buffer of a #PLIST_DATA node.
            </summary>
            <param name="node">
            The node
            </param>
            <param name="length">
            Pointer to a uint64_t that will be set to the length of the buffer
            </param>
            <returns>
            Pointer to the buffer
            </returns>
            <remarks>
            DO NOT MODIFY the buffer. Mind that the buffer is only available
            until the plist node gets freed. Make a copy if needed.
            </remarks>
        </member>
        <member name="M:iMobileDevice.Plist.PlistApi.plist_get_date_val(iMobileDevice.Plist.PlistHandle,System.Int32@,System.Int32@)">
            <summary>
            Get the value of a #PLIST_DATE node.
            This function does nothing if node is not of type #PLIST_DATE
            </summary>
            <param name="node">
            the node
            </param>
            <param name="sec">
            a pointer to an int32_t variable. Represents the number of seconds since 01/01/2001.
            </param>
            <param name="usec">
            a pointer to an int32_t variable. Represents the number of microseconds
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.PlistApi.plist_get_uid_val(iMobileDevice.Plist.PlistHandle,System.UInt64@)">
            <summary>
            Get the value of a #PLIST_UID node.
            This function does nothing if node is not of type #PLIST_UID
            </summary>
            <param name="node">
            the node
            </param>
            <param name="val">
            a pointer to a uint64_t variable.
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.PlistApi.plist_set_key_val(iMobileDevice.Plist.PlistHandle,System.String)">
            <summary>
            Set the value of a node.
            Forces type of node to #PLIST_KEY
            </summary>
            <param name="node">
            the node
            </param>
            <param name="val">
            the key value
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.PlistApi.plist_set_string_val(iMobileDevice.Plist.PlistHandle,System.String)">
            <summary>
            Set the value of a node.
            Forces type of node to #PLIST_STRING
            </summary>
            <param name="node">
            the node
            </param>
            <param name="val">
            the string value. The string is copied when set and will be
            freed by the node.
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.PlistApi.plist_set_bool_val(iMobileDevice.Plist.PlistHandle,System.Char)">
            <summary>
            Set the value of a node.
            Forces type of node to #PLIST_BOOLEAN
            </summary>
            <param name="node">
            the node
            </param>
            <param name="val">
            the boolean value
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.PlistApi.plist_set_uint_val(iMobileDevice.Plist.PlistHandle,System.UInt64)">
            <summary>
            Set the value of a node.
            Forces type of node to #PLIST_UINT
            </summary>
            <param name="node">
            the node
            </param>
            <param name="val">
            the unsigned integer value
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.PlistApi.plist_set_real_val(iMobileDevice.Plist.PlistHandle,System.Double)">
            <summary>
            Set the value of a node.
            Forces type of node to #PLIST_REAL
            </summary>
            <param name="node">
            the node
            </param>
            <param name="val">
            the real value
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.PlistApi.plist_set_data_val(iMobileDevice.Plist.PlistHandle,System.String,System.UInt64)">
            <summary>
            Set the value of a node.
            Forces type of node to #PLIST_DATA
            </summary>
            <param name="node">
            the node
            </param>
            <param name="val">
            the binary buffer. The buffer is copied when set and will
            be freed by the node.
            </param>
            <param name="length">
            the length of the buffer
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.PlistApi.plist_set_date_val(iMobileDevice.Plist.PlistHandle,System.Int32,System.Int32)">
            <summary>
            Set the value of a node.
            Forces type of node to #PLIST_DATE
            </summary>
            <param name="node">
            the node
            </param>
            <param name="sec">
            the number of seconds since 01/01/2001
            </param>
            <param name="usec">
            the number of microseconds
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.PlistApi.plist_set_uid_val(iMobileDevice.Plist.PlistHandle,System.UInt64)">
            <summary>
            Set the value of a node.
            Forces type of node to #PLIST_UID
            </summary>
            <param name="node">
            the node
            </param>
            <param name="val">
            the unsigned integer value
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.PlistApi.plist_to_xml(iMobileDevice.Plist.PlistHandle,System.String@,System.UInt32@)">
            <summary>
            Export the #plist_t structure to XML format.
            </summary>
            <param name="plist">
            the root node to export
            </param>
            <param name="plist_xml">
            a pointer to a C-string. This function allocates the memory,
            caller is responsible for freeing it. Data is UTF-8 encoded.
            </param>
            <param name="length">
            a pointer to an uint32_t variable. Represents the length of the allocated buffer.
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.PlistApi.plist_to_xml_free(System.IntPtr)">
            <summary>
            Frees the memory allocated by plist_to_xml().
            </summary>
            <param name="plist_xml">
            The buffer allocated by plist_to_xml().
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.PlistApi.plist_to_bin(iMobileDevice.Plist.PlistHandle,System.String@,System.UInt32@)">
            <summary>
            Export the #plist_t structure to binary format.
            </summary>
            <param name="plist">
            the root node to export
            </param>
            <param name="plist_bin">
            a pointer to a char* buffer. This function allocates the memory,
            caller is responsible for freeing it.
            </param>
            <param name="length">
            a pointer to an uint32_t variable. Represents the length of the allocated buffer.
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.PlistApi.plist_to_bin_free(System.IntPtr)">
            <summary>
            Frees the memory allocated by plist_to_bin().
            </summary>
            <param name="plist_bin">
            The buffer allocated by plist_to_bin().
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.PlistApi.plist_from_xml(System.String,System.UInt32,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Import the #plist_t structure from XML format.
            </summary>
            <param name="plist_xml">
            a pointer to the xml buffer.
            </param>
            <param name="length">
            length of the buffer to read.
            </param>
            <param name="plist">
            a pointer to the imported plist.
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.PlistApi.plist_from_bin(System.String,System.UInt32,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Import the #plist_t structure from binary format.
            </summary>
            <param name="plist_bin">
            a pointer to the xml buffer.
            </param>
            <param name="length">
            length of the buffer to read.
            </param>
            <param name="plist">
            a pointer to the imported plist.
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.PlistApi.plist_from_memory(System.String,System.UInt32,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Import the #plist_t structure from memory data.
            This method will look at the first bytes of plist_data
            to determine if plist_data contains a binary or XML plist.
            </summary>
            <param name="plist_data">
            a pointer to the memory buffer containing plist data.
            </param>
            <param name="length">
            length of the buffer to read.
            </param>
            <param name="plist">
            a pointer to the imported plist.
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.PlistApi.plist_is_binary(System.String,System.UInt32)">
            <summary>
            Test if in-memory plist data is binary or XML
            This method will look at the first bytes of plist_data
            to determine if plist_data contains a binary or XML plist.
            This method is not validating the whole memory buffer to check if the
            content is truly a plist, it's only using some heuristic on the first few
            bytes of plist_data.
            </summary>
            <param name="plist_data">
            a pointer to the memory buffer containing plist data.
            </param>
            <param name="length">
            length of the buffer to read.
            </param>
            <returns>
            1 if the buffer is a binary plist, 0 otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Plist.PlistApi.plist_access_path(iMobileDevice.Plist.PlistHandle,System.UInt32)">
            <summary>
            Get a node from its path. Each path element depends on the associated father node type.
            For Dictionaries, var args are casted to const char*, for arrays, var args are caster to uint32_t
            Search is breath first order.
            </summary>
            <param name="plist">
            the node to access result from.
            </param>
            <param name="length">
            length of the path to access
            </param>
            <returns>
            the value to access.
            </returns>
        </member>
        <member name="M:iMobileDevice.Plist.PlistApi.plist_access_pathv(iMobileDevice.Plist.PlistHandle,System.UInt32,System.IntPtr)">
            <summary>
            Variadic version of #plist_access_path.
            </summary>
            <param name="plist">
            the node to access result from.
            </param>
            <param name="length">
            length of the path to access
            </param>
            <param name="v">
            list of array's index and dic'st key
            </param>
            <returns>
            the value to access.
            </returns>
        </member>
        <member name="M:iMobileDevice.Plist.PlistApi.plist_compare_node_value(iMobileDevice.Plist.PlistHandle,iMobileDevice.Plist.PlistHandle)">
            <summary>
            Compare two node values
            </summary>
            <param name="node_l">
            left node to compare
            </param>
            <param name="node_r">
            rigth node to compare
            </param>
            <returns>
            TRUE is type and value match, FALSE otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Plist.PlistApi.plist_bool_val_is_true(iMobileDevice.Plist.PlistHandle)">
            <summary>
            Helper function to check the value of a PLIST_BOOL node.
            </summary>
            <param name="boolnode">
            node of type PLIST_BOOL
            </param>
            <returns>
            1 if the boolean node has a value of TRUE, 0 if FALSE,
            or -1 if the node is not of type PLIST_BOOL
            </returns>
        </member>
        <member name="M:iMobileDevice.Plist.PlistApi.plist_uint_val_compare(iMobileDevice.Plist.PlistHandle,System.UInt64)">
            <summary>
            Helper function to compare the value of a PLIST_UINT node against
            a given value.
            </summary>
            <param name="uintnode">
            node of type PLIST_UINT
            </param>
            <param name="cmpval">
            value to compare against
            </param>
            <returns>
            0 if the node's value and cmpval are equal,
            1 if the node's value is greater than cmpval,
            or -1 if the node's value is less than cmpval.
            </returns>
        </member>
        <member name="M:iMobileDevice.Plist.PlistApi.plist_uid_val_compare(iMobileDevice.Plist.PlistHandle,System.UInt64)">
            <summary>
            Helper function to compare the value of a PLIST_UID node against
            a given value.
            </summary>
            <param name="uidnode">
            node of type PLIST_UID
            </param>
            <param name="cmpval">
            value to compare against
            </param>
            <returns>
            0 if the node's value and cmpval are equal,
            1 if the node's value is greater than cmpval,
            or -1 if the node's value is less than cmpval.
            </returns>
        </member>
        <member name="M:iMobileDevice.Plist.PlistApi.plist_real_val_compare(iMobileDevice.Plist.PlistHandle,System.Double)">
            <summary>
            Helper function to compare the value of a PLIST_REAL node against
            a given value.
            </summary>
            <param name="realnode">
            node of type PLIST_REAL
            </param>
            <param name="cmpval">
            value to compare against
            </param>
            <returns>
            0 if the node's value and cmpval are (almost) equal,
            1 if the node's value is greater than cmpval,
            or -1 if the node's value is less than cmpval.
            </returns>
            <remarks>
            WARNING: Comparing floating point values can give inaccurate
            results because of the nature of floating point values on computer
            systems. While this function is designed to be as accurate as
            possible, please don't rely on it too much.
            </remarks>
        </member>
        <member name="M:iMobileDevice.Plist.PlistApi.plist_date_val_compare(iMobileDevice.Plist.PlistHandle,System.Int32,System.Int32)">
            <summary>
            Helper function to compare the value of a PLIST_DATE node against
            a given set of seconds and fraction of a second since epoch.
            </summary>
            <param name="datenode">
            node of type PLIST_DATE
            </param>
            <param name="cmpsec">
            number of seconds since epoch to compare against
            </param>
            <param name="cmpusec">
            fraction of a second in microseconds to compare against
            </param>
            <returns>
            0 if the node's date is equal to the supplied values,
            1 if the node's date is greater than the supplied values,
            or -1 if the node's date is less than the supplied values.
            </returns>
        </member>
        <!-- Badly formed XML comment ignored for member "M:iMobileDevice.Plist.PlistApi.plist_string_val_compare(iMobileDevice.Plist.PlistHandle,System.String)" -->
        <!-- Badly formed XML comment ignored for member "M:iMobileDevice.Plist.PlistApi.plist_string_val_compare_with_size(iMobileDevice.Plist.PlistHandle,System.String,System.UInt32)" -->
        <member name="M:iMobileDevice.Plist.PlistApi.plist_string_val_contains(iMobileDevice.Plist.PlistHandle,System.String)">
            <summary>
            Helper function to match a given substring in the value of a
            PLIST_STRING node.
            </summary>
            <param name="strnode">
            node of type PLIST_STRING
            </param>
            <param name="substr">
            value to match
            </param>
            <returns>
            1 if the node's value contains the given substring,
            or 0 if not.
            </returns>
        </member>
        <!-- Badly formed XML comment ignored for member "M:iMobileDevice.Plist.PlistApi.plist_key_val_compare(iMobileDevice.Plist.PlistHandle,System.String)" -->
        <!-- Badly formed XML comment ignored for member "M:iMobileDevice.Plist.PlistApi.plist_key_val_compare_with_size(iMobileDevice.Plist.PlistHandle,System.String,System.UInt32)" -->
        <member name="M:iMobileDevice.Plist.PlistApi.plist_key_val_contains(iMobileDevice.Plist.PlistHandle,System.String)">
            <summary>
            Helper function to match a given substring in the value of a
            PLIST_KEY node.
            </summary>
            <param name="keynode">
            node of type PLIST_KEY
            </param>
            <param name="substr">
            value to match
            </param>
            <returns>
            1 if the node's value contains the given substring,
            or 0 if not.
            </returns>
        </member>
        <!-- Badly formed XML comment ignored for member "M:iMobileDevice.Plist.PlistApi.plist_data_val_compare(iMobileDevice.Plist.PlistHandle,System.Char@,System.UInt32)" -->
        <!-- Badly formed XML comment ignored for member "M:iMobileDevice.Plist.PlistApi.plist_data_val_compare_with_size(iMobileDevice.Plist.PlistHandle,System.Char@,System.UInt32)" -->
        <member name="M:iMobileDevice.Plist.PlistApi.plist_data_val_contains(iMobileDevice.Plist.PlistHandle,System.Char@,System.UInt32)">
            <summary>
            Helper function to match a given data blob within the value of a
            PLIST_DATA node.
            </summary>
            <param name="datanode">
            node of type PLIST_KEY
            </param>
            <param name="cmpval">
            data blob to match
            </param>
            <param name="n">
            size of data blob passed in cmpval
            </param>
            <returns>
            1 if the node's value contains the given data blob
            or 0 if not.
            </returns>
        </member>
        <member name="T:iMobileDevice.Plist.PlistArrayIterHandle">
            <summary>
            Represents a wrapper class for Plist handles.
            </summary>
        </member>
        <member name="M:iMobileDevice.Plist.PlistArrayIterHandle.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Plist.PlistArrayIterHandle"/> class.
            </summary>
        </member>
        <member name="M:iMobileDevice.Plist.PlistArrayIterHandle.#ctor(System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Plist.PlistArrayIterHandle"/> class, specifying whether the handle is to be reliably released.
            </summary>
            <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>
        </member>
        <member name="P:iMobileDevice.Plist.PlistArrayIterHandle.Api">
            <summary>
            Gets or sets the API to use
            </summary>
        </member>
        <member name="P:iMobileDevice.Plist.PlistArrayIterHandle.Zero">
            <summary>
            Gets a value which represents a pointer or handle that has been initialized to zero.
            </summary>
        </member>
        <member name="M:iMobileDevice.Plist.PlistArrayIterHandle.ReleaseHandle">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.Plist.PlistArrayIterHandle.DangerousCreate(System.IntPtr,System.Boolean)">
            <summary>
            Creates a new <see cref="T:iMobileDevice.Plist.PlistArrayIterHandle"/> from a <see cref="T:System.IntPtr"/>.
            </summary>
            <param name="unsafeHandle">
            The underlying <see cref="T:System.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>
        </member>
        <member name="M:iMobileDevice.Plist.PlistArrayIterHandle.DangerousCreate(System.IntPtr)">
            <summary>
            Creates a new <see cref="T:iMobileDevice.Plist.PlistArrayIterHandle"/> from a <see cref="T:System.IntPtr"/>.
            </summary>
            <param name="unsafeHandle">
            The underlying <see cref="T:System.IntPtr"/>
            </param>
            <returns>
            </returns>
        </member>
        <member name="M:iMobileDevice.Plist.PlistArrayIterHandle.ToString">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.Plist.PlistArrayIterHandle.Equals(System.Object)">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.Plist.PlistArrayIterHandle.GetHashCode">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.Plist.PlistArrayIterHandle.op_Equality(iMobileDevice.Plist.PlistArrayIterHandle,iMobileDevice.Plist.PlistArrayIterHandle)">
            <summary>
            Determines whether two specified instances of <see cref="T:iMobileDevice.Plist.PlistArrayIterHandle"/> are equal.
            </summary>
            <param name="value1">
            The first pointer or handle to compare.
            </param>
            <param name="value2">
            The second pointer or handle to compare.
            </param>
            <returns>
            <see langword="true"/> if <paramref name="value1"/> equals <paramref name="value2"/>; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="M:iMobileDevice.Plist.PlistArrayIterHandle.op_Inequality(iMobileDevice.Plist.PlistArrayIterHandle,iMobileDevice.Plist.PlistArrayIterHandle)">
            <summary>
            Determines whether two specified instances of <see cref="T:iMobileDevice.Plist.PlistArrayIterHandle"/> are not equal.
            </summary>
            <param name="value1">
            The first pointer or handle to compare.
            </param>
            <param name="value2">
            The second pointer or handle to compare.
            </param>
            <returns>
            <see langword="true"/> if <paramref name="value1"/> does not equal <paramref name="value2"/>; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="T:iMobileDevice.Plist.PlistDictIterHandle">
            <summary>
            Represents a wrapper class for Plist handles.
            </summary>
        </member>
        <member name="M:iMobileDevice.Plist.PlistDictIterHandle.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Plist.PlistDictIterHandle"/> class.
            </summary>
        </member>
        <member name="M:iMobileDevice.Plist.PlistDictIterHandle.#ctor(System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Plist.PlistDictIterHandle"/> class, specifying whether the handle is to be reliably released.
            </summary>
            <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>
        </member>
        <member name="P:iMobileDevice.Plist.PlistDictIterHandle.Api">
            <summary>
            Gets or sets the API to use
            </summary>
        </member>
        <member name="P:iMobileDevice.Plist.PlistDictIterHandle.Zero">
            <summary>
            Gets a value which represents a pointer or handle that has been initialized to zero.
            </summary>
        </member>
        <member name="M:iMobileDevice.Plist.PlistDictIterHandle.ReleaseHandle">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.Plist.PlistDictIterHandle.DangerousCreate(System.IntPtr,System.Boolean)">
            <summary>
            Creates a new <see cref="T:iMobileDevice.Plist.PlistDictIterHandle"/> from a <see cref="T:System.IntPtr"/>.
            </summary>
            <param name="unsafeHandle">
            The underlying <see cref="T:System.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>
        </member>
        <member name="M:iMobileDevice.Plist.PlistDictIterHandle.DangerousCreate(System.IntPtr)">
            <summary>
            Creates a new <see cref="T:iMobileDevice.Plist.PlistDictIterHandle"/> from a <see cref="T:System.IntPtr"/>.
            </summary>
            <param name="unsafeHandle">
            The underlying <see cref="T:System.IntPtr"/>
            </param>
            <returns>
            </returns>
        </member>
        <member name="M:iMobileDevice.Plist.PlistDictIterHandle.ToString">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.Plist.PlistDictIterHandle.Equals(System.Object)">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.Plist.PlistDictIterHandle.GetHashCode">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.Plist.PlistDictIterHandle.op_Equality(iMobileDevice.Plist.PlistDictIterHandle,iMobileDevice.Plist.PlistDictIterHandle)">
            <summary>
            Determines whether two specified instances of <see cref="T:iMobileDevice.Plist.PlistDictIterHandle"/> are equal.
            </summary>
            <param name="value1">
            The first pointer or handle to compare.
            </param>
            <param name="value2">
            The second pointer or handle to compare.
            </param>
            <returns>
            <see langword="true"/> if <paramref name="value1"/> equals <paramref name="value2"/>; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="M:iMobileDevice.Plist.PlistDictIterHandle.op_Inequality(iMobileDevice.Plist.PlistDictIterHandle,iMobileDevice.Plist.PlistDictIterHandle)">
            <summary>
            Determines whether two specified instances of <see cref="T:iMobileDevice.Plist.PlistDictIterHandle"/> are not equal.
            </summary>
            <param name="value1">
            The first pointer or handle to compare.
            </param>
            <param name="value2">
            The second pointer or handle to compare.
            </param>
            <returns>
            <see langword="true"/> if <paramref name="value1"/> does not equal <paramref name="value2"/>; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="T:iMobileDevice.Plist.PlistHandle">
            <summary>
            Represents a wrapper class for Plist handles.
            </summary>
        </member>
        <member name="M:iMobileDevice.Plist.PlistHandle.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Plist.PlistHandle"/> class.
            </summary>
        </member>
        <member name="M:iMobileDevice.Plist.PlistHandle.#ctor(System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Plist.PlistHandle"/> class, specifying whether the handle is to be reliably released.
            </summary>
            <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>
        </member>
        <member name="P:iMobileDevice.Plist.PlistHandle.Api">
            <summary>
            Gets or sets the API to use
            </summary>
        </member>
        <member name="P:iMobileDevice.Plist.PlistHandle.Zero">
            <summary>
            Gets a value which represents a pointer or handle that has been initialized to zero.
            </summary>
        </member>
        <member name="M:iMobileDevice.Plist.PlistHandle.ReleaseHandle">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.Plist.PlistHandle.DangerousCreate(System.IntPtr,System.Boolean)">
            <summary>
            Creates a new <see cref="T:iMobileDevice.Plist.PlistHandle"/> from a <see cref="T:System.IntPtr"/>.
            </summary>
            <param name="unsafeHandle">
            The underlying <see cref="T:System.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>
        </member>
        <member name="M:iMobileDevice.Plist.PlistHandle.DangerousCreate(System.IntPtr)">
            <summary>
            Creates a new <see cref="T:iMobileDevice.Plist.PlistHandle"/> from a <see cref="T:System.IntPtr"/>.
            </summary>
            <param name="unsafeHandle">
            The underlying <see cref="T:System.IntPtr"/>
            </param>
            <returns>
            </returns>
        </member>
        <member name="M:iMobileDevice.Plist.PlistHandle.ToString">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.Plist.PlistHandle.Equals(System.Object)">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.Plist.PlistHandle.GetHashCode">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.Plist.PlistHandle.op_Equality(iMobileDevice.Plist.PlistHandle,iMobileDevice.Plist.PlistHandle)">
            <summary>
            Determines whether two specified instances of <see cref="T:iMobileDevice.Plist.PlistHandle"/> are equal.
            </summary>
            <param name="value1">
            The first pointer or handle to compare.
            </param>
            <param name="value2">
            The second pointer or handle to compare.
            </param>
            <returns>
            <see langword="true"/> if <paramref name="value1"/> equals <paramref name="value2"/>; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="M:iMobileDevice.Plist.PlistHandle.op_Inequality(iMobileDevice.Plist.PlistHandle,iMobileDevice.Plist.PlistHandle)">
            <summary>
            Determines whether two specified instances of <see cref="T:iMobileDevice.Plist.PlistHandle"/> are not equal.
            </summary>
            <param name="value1">
            The first pointer or handle to compare.
            </param>
            <param name="value2">
            The second pointer or handle to compare.
            </param>
            <returns>
            <see langword="true"/> if <paramref name="value1"/> does not equal <paramref name="value2"/>; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="M:iMobileDevice.Plist.PlistNativeMethods.plist_new_dict">
            <summary>
            Create a new root plist_t type #PLIST_DICT
            </summary>
            <returns>
            the created plist
            </returns>
        </member>
        <member name="M:iMobileDevice.Plist.PlistNativeMethods.plist_new_array">
            <summary>
            Create a new root plist_t type #PLIST_ARRAY
            </summary>
            <returns>
            the created plist
            </returns>
        </member>
        <member name="M:iMobileDevice.Plist.PlistNativeMethods.plist_new_string(System.String)">
            <summary>
            Create a new plist_t type #PLIST_STRING
            </summary>
            <param name="val">
            the sting value, encoded in UTF8.
            </param>
            <returns>
            the created item
            </returns>
        </member>
        <member name="M:iMobileDevice.Plist.PlistNativeMethods.plist_new_bool(System.Char)">
            <summary>
            Create a new plist_t type #PLIST_BOOLEAN
            </summary>
            <param name="val">
            the boolean value, 0 is false, other values are true.
            </param>
            <returns>
            the created item
            </returns>
        </member>
        <member name="M:iMobileDevice.Plist.PlistNativeMethods.plist_new_uint(System.UInt64)">
            <summary>
            Create a new plist_t type #PLIST_UINT
            </summary>
            <param name="val">
            the unsigned integer value
            </param>
            <returns>
            the created item
            </returns>
        </member>
        <member name="M:iMobileDevice.Plist.PlistNativeMethods.plist_new_real(System.Double)">
            <summary>
            Create a new plist_t type #PLIST_REAL
            </summary>
            <param name="val">
            the real value
            </param>
            <returns>
            the created item
            </returns>
        </member>
        <member name="M:iMobileDevice.Plist.PlistNativeMethods.plist_new_data(System.String,System.UInt64)">
            <summary>
            Create a new plist_t type #PLIST_DATA
            </summary>
            <param name="val">
            the binary buffer
            </param>
            <param name="length">
            the length of the buffer
            </param>
            <returns>
            the created item
            </returns>
        </member>
        <member name="M:iMobileDevice.Plist.PlistNativeMethods.plist_new_date(System.Int32,System.Int32)">
            <summary>
            Create a new plist_t type #PLIST_DATE
            </summary>
            <param name="sec">
            the number of seconds since 01/01/2001
            </param>
            <param name="usec">
            the number of microseconds
            </param>
            <returns>
            the created item
            </returns>
        </member>
        <member name="M:iMobileDevice.Plist.PlistNativeMethods.plist_new_uid(System.UInt64)">
            <summary>
            Create a new plist_t type #PLIST_UID
            </summary>
            <param name="val">
            the unsigned integer value
            </param>
            <returns>
            the created item
            </returns>
        </member>
        <member name="M:iMobileDevice.Plist.PlistNativeMethods.plist_free(System.IntPtr)">
            <summary>
            Destruct a plist_t node and all its children recursively
            </summary>
            <param name="plist">
            the plist to free
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.PlistNativeMethods.plist_copy(iMobileDevice.Plist.PlistHandle)">
            <summary>
            Return a copy of passed node and it's children
            </summary>
            <param name="node">
            the plist to copy
            </param>
            <returns>
            copied plist
            </returns>
        </member>
        <member name="M:iMobileDevice.Plist.PlistNativeMethods.plist_array_get_size(iMobileDevice.Plist.PlistHandle)">
            <summary>
            Get size of a #PLIST_ARRAY node.
            </summary>
            <param name="node">
            the node of type #PLIST_ARRAY
            </param>
            <returns>
            size of the #PLIST_ARRAY node
            </returns>
        </member>
        <member name="M:iMobileDevice.Plist.PlistNativeMethods.plist_array_get_item(iMobileDevice.Plist.PlistHandle,System.UInt32)">
            <summary>
            Get the nth item in a #PLIST_ARRAY node.
            </summary>
            <param name="node">
            the node of type #PLIST_ARRAY
            </param>
            <param name="n">
            the index of the item to get. Range is [0, array_size[
            </param>
            <returns>
            the nth item or NULL if node is not of type #PLIST_ARRAY
            </returns>
        </member>
        <member name="M:iMobileDevice.Plist.PlistNativeMethods.plist_array_get_item_index(iMobileDevice.Plist.PlistHandle)">
            <summary>
            Get the index of an item. item must be a member of a #PLIST_ARRAY node.
            </summary>
            <param name="node">
            the node
            </param>
            <returns>
            the node index or UINT_MAX if node index can't be determined
            </returns>
        </member>
        <member name="M:iMobileDevice.Plist.PlistNativeMethods.plist_array_set_item(iMobileDevice.Plist.PlistHandle,iMobileDevice.Plist.PlistHandle,System.UInt32)">
            <summary>
            Set the nth item in a #PLIST_ARRAY node.
            The previous item at index n will be freed using #plist_free
            </summary>
            <param name="node">
            the node of type #PLIST_ARRAY
            </param>
            <param name="item">
            the new item at index n. The array is responsible for freeing item when it is no longer needed.
            </param>
            <param name="n">
            the index of the item to get. Range is [0, array_size[. Assert if n is not in range.
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.PlistNativeMethods.plist_array_append_item(iMobileDevice.Plist.PlistHandle,iMobileDevice.Plist.PlistHandle)">
            <summary>
            Append a new item at the end of a #PLIST_ARRAY node.
            </summary>
            <param name="node">
            the node of type #PLIST_ARRAY
            </param>
            <param name="item">
            the new item. The array is responsible for freeing item when it is no longer needed.
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.PlistNativeMethods.plist_array_insert_item(iMobileDevice.Plist.PlistHandle,iMobileDevice.Plist.PlistHandle,System.UInt32)">
            <summary>
            Insert a new item at position n in a #PLIST_ARRAY node.
            </summary>
            <param name="node">
            the node of type #PLIST_ARRAY
            </param>
            <param name="item">
            the new item to insert. The array is responsible for freeing item when it is no longer needed.
            </param>
            <param name="n">
            The position at which the node will be stored. Range is [0, array_size[. Assert if n is not in range.
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.PlistNativeMethods.plist_array_remove_item(iMobileDevice.Plist.PlistHandle,System.UInt32)">
            <summary>
            Remove an existing position in a #PLIST_ARRAY node.
            Removed position will be freed using #plist_free.
            </summary>
            <param name="node">
            the node of type #PLIST_ARRAY
            </param>
            <param name="n">
            The position to remove. Range is [0, array_size[. Assert if n is not in range.
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.PlistNativeMethods.plist_array_item_remove(iMobileDevice.Plist.PlistHandle)">
            <summary>
            Remove a node that is a child node of a #PLIST_ARRAY node.
            node will be freed using #plist_free.
            </summary>
            <param name="node">
            The node to be removed from its #PLIST_ARRAY parent.
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.PlistNativeMethods.plist_array_new_iter(iMobileDevice.Plist.PlistHandle,iMobileDevice.Plist.PlistArrayIterHandle@)">
            <summary>
            Create an iterator of a #PLIST_ARRAY node.
            The allocated iterator should be freed with the standard free function.
            </summary>
            <param name="node">
            The node of type #PLIST_ARRAY
            </param>
            <param name="iter">
            Location to store the iterator for the array.
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.PlistNativeMethods.plist_array_next_item(iMobileDevice.Plist.PlistHandle,iMobileDevice.Plist.PlistArrayIterHandle,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Increment iterator of a #PLIST_ARRAY node.
            </summary>
            <param name="node">
            The node of type #PLIST_ARRAY.
            </param>
            <param name="iter">
            Iterator of the array
            </param>
            <param name="item">
            Location to store the item. The caller must *not* free the
            returned item. Will be set to NULL when no more items are left
            to iterate.
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.PlistNativeMethods.plist_dict_get_size(iMobileDevice.Plist.PlistHandle)">
            <summary>
            Get size of a #PLIST_DICT node.
            </summary>
            <param name="node">
            the node of type #PLIST_DICT
            </param>
            <returns>
            size of the #PLIST_DICT node
            </returns>
        </member>
        <member name="M:iMobileDevice.Plist.PlistNativeMethods.plist_dict_new_iter(iMobileDevice.Plist.PlistHandle,iMobileDevice.Plist.PlistDictIterHandle@)">
            <summary>
            Create an iterator of a #PLIST_DICT node.
            The allocated iterator should be freed with the standard free function.
            </summary>
            <param name="node">
            The node of type #PLIST_DICT.
            </param>
            <param name="iter">
            Location to store the iterator for the dictionary.
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.PlistNativeMethods.plist_dict_next_item(iMobileDevice.Plist.PlistHandle,iMobileDevice.Plist.PlistDictIterHandle,System.IntPtr@,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Increment iterator of a #PLIST_DICT node.
            </summary>
            <param name="node">
            The node of type #PLIST_DICT
            </param>
            <param name="iter">
            Iterator of the dictionary
            </param>
            <param name="key">
            Location to store the key, or NULL. The caller is responsible
            for freeing the the returned string.
            </param>
            <param name="val">
            Location to store the value, or NULL. The caller must *not*
            free the returned value. Will be set to NULL when no more
            key/value pairs are left to iterate.
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.PlistNativeMethods.plist_dict_get_item_key(iMobileDevice.Plist.PlistHandle,System.IntPtr@)">
            <summary>
            Get key associated key to an item. Item must be member of a dictionary.
            </summary>
            <param name="node">
            the item
            </param>
            <param name="key">
            a location to store the key. The caller is responsible for freeing the returned string.
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.PlistNativeMethods.plist_dict_get_item(iMobileDevice.Plist.PlistHandle,System.String)">
            <summary>
            Get the nth item in a #PLIST_DICT node.
            </summary>
            <param name="node">
            the node of type #PLIST_DICT
            </param>
            <param name="key">
            the identifier of the item to get.
            </param>
            <returns>
            the item or NULL if node is not of type #PLIST_DICT. The caller should not free
            the returned node.
            </returns>
        </member>
        <member name="M:iMobileDevice.Plist.PlistNativeMethods.plist_dict_item_get_key(iMobileDevice.Plist.PlistHandle)">
            <summary>
            Get key node associated to an item. Item must be member of a dictionary.
            </summary>
            <param name="node">
            the item
            </param>
            <returns>
            the key node of the given item, or NULL.
            </returns>
        </member>
        <member name="M:iMobileDevice.Plist.PlistNativeMethods.plist_dict_set_item(iMobileDevice.Plist.PlistHandle,System.String,iMobileDevice.Plist.PlistHandle)">
            <summary>
            Set item identified by key in a #PLIST_DICT node.
            The previous item identified by key will be freed using #plist_free.
            If there is no item for the given key a new item will be inserted.
            </summary>
            <param name="node">
            the node of type #PLIST_DICT
            </param>
            <param name="item">
            the new item associated to key
            </param>
            <param name="key">
            the identifier of the item to set.
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.PlistNativeMethods.plist_dict_insert_item(iMobileDevice.Plist.PlistHandle,System.String,iMobileDevice.Plist.PlistHandle)">
            <summary>
            Insert a new item into a #PLIST_DICT node.
            </summary>
            <param name="node">
            the node of type #PLIST_DICT
            </param>
            <param name="item">
            the new item to insert
            </param>
            <param name="key">
            The identifier of the item to insert.
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.PlistNativeMethods.plist_dict_remove_item(iMobileDevice.Plist.PlistHandle,System.String)">
            <summary>
            Remove an existing position in a #PLIST_DICT node.
            Removed position will be freed using #plist_free
            </summary>
            <param name="node">
            the node of type #PLIST_DICT
            </param>
            <param name="key">
            The identifier of the item to remove. Assert if identifier is not present.
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.PlistNativeMethods.plist_dict_merge(iMobileDevice.Plist.PlistHandle@,iMobileDevice.Plist.PlistHandle)">
            <summary>
            Merge a dictionary into another. This will add all key/value pairs
            from the source dictionary to the target dictionary, overwriting
            any existing key/value pairs that are already present in target.
            </summary>
            <param name="target">
            pointer to an existing node of type #PLIST_DICT
            </param>
            <param name="source">
            node of type #PLIST_DICT that should be merged into target
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.PlistNativeMethods.plist_get_parent(iMobileDevice.Plist.PlistHandle)">
            <summary>
            Get the parent of a node
            </summary>
            <param name="node">
            the parent (NULL if node is root)
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.PlistNativeMethods.plist_get_node_type(iMobileDevice.Plist.PlistHandle)">
            <summary>
            Get the #plist_type of a node.
            </summary>
            <param name="node">
            the node
            </param>
            <returns>
            the type of the node
            </returns>
        </member>
        <member name="M:iMobileDevice.Plist.PlistNativeMethods.plist_get_key_val(iMobileDevice.Plist.PlistHandle,System.IntPtr@)">
            <summary>
            Get the value of a #PLIST_KEY node.
            This function does nothing if node is not of type #PLIST_KEY
            </summary>
            <param name="node">
            the node
            </param>
            <param name="val">
            a pointer to a C-string. This function allocates the memory,
            caller is responsible for freeing it.
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.PlistNativeMethods.plist_get_string_val(iMobileDevice.Plist.PlistHandle,System.IntPtr@)">
            <summary>
            Get the value of a #PLIST_STRING node.
            This function does nothing if node is not of type #PLIST_STRING
            </summary>
            <param name="node">
            the node
            </param>
            <param name="val">
            a pointer to a C-string. This function allocates the memory,
            caller is responsible for freeing it. Data is UTF-8 encoded.
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.PlistNativeMethods.plist_get_string_ptr(iMobileDevice.Plist.PlistHandle,System.UInt64@)">
            <summary>
            Get a pointer to the buffer of a #PLIST_STRING node.
            </summary>
            <param name="node">
            The node
            </param>
            <param name="length">
            If non-NULL, will be set to the length of the string
            </param>
            <returns>
            Pointer to the NULL-terminated buffer.
            </returns>
            <remarks>
            DO NOT MODIFY the buffer. Mind that the buffer is only available
            until the plist node gets freed. Make a copy if needed.
            </remarks>
        </member>
        <member name="M:iMobileDevice.Plist.PlistNativeMethods.plist_get_bool_val(iMobileDevice.Plist.PlistHandle,System.Char@)">
            <summary>
            Get the value of a #PLIST_BOOLEAN node.
            This function does nothing if node is not of type #PLIST_BOOLEAN
            </summary>
            <param name="node">
            the node
            </param>
            <param name="val">
            a pointer to a uint8_t variable.
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.PlistNativeMethods.plist_get_uint_val(iMobileDevice.Plist.PlistHandle,System.UInt64@)">
            <summary>
            Get the value of a #PLIST_UINT node.
            This function does nothing if node is not of type #PLIST_UINT
            </summary>
            <param name="node">
            the node
            </param>
            <param name="val">
            a pointer to a uint64_t variable.
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.PlistNativeMethods.plist_get_real_val(iMobileDevice.Plist.PlistHandle,System.Double@)">
            <summary>
            Get the value of a #PLIST_REAL node.
            This function does nothing if node is not of type #PLIST_REAL
            </summary>
            <param name="node">
            the node
            </param>
            <param name="val">
            a pointer to a double variable.
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.PlistNativeMethods.plist_get_data_val(iMobileDevice.Plist.PlistHandle,System.IntPtr@,System.UInt64@)">
            <summary>
            Get the value of a #PLIST_DATA node.
            This function does nothing if node is not of type #PLIST_DATA
            </summary>
            <param name="node">
            the node
            </param>
            <param name="val">
            a pointer to an unallocated char buffer. This function allocates the memory,
            caller is responsible for freeing it.
            </param>
            <param name="length">
            the length of the buffer
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.PlistNativeMethods.plist_get_data_ptr(iMobileDevice.Plist.PlistHandle,System.UInt64@)">
            <summary>
            Get a pointer to the data buffer of a #PLIST_DATA node.
            </summary>
            <param name="node">
            The node
            </param>
            <param name="length">
            Pointer to a uint64_t that will be set to the length of the buffer
            </param>
            <returns>
            Pointer to the buffer
            </returns>
            <remarks>
            DO NOT MODIFY the buffer. Mind that the buffer is only available
            until the plist node gets freed. Make a copy if needed.
            </remarks>
        </member>
        <member name="M:iMobileDevice.Plist.PlistNativeMethods.plist_get_date_val(iMobileDevice.Plist.PlistHandle,System.Int32@,System.Int32@)">
            <summary>
            Get the value of a #PLIST_DATE node.
            This function does nothing if node is not of type #PLIST_DATE
            </summary>
            <param name="node">
            the node
            </param>
            <param name="sec">
            a pointer to an int32_t variable. Represents the number of seconds since 01/01/2001.
            </param>
            <param name="usec">
            a pointer to an int32_t variable. Represents the number of microseconds
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.PlistNativeMethods.plist_get_uid_val(iMobileDevice.Plist.PlistHandle,System.UInt64@)">
            <summary>
            Get the value of a #PLIST_UID node.
            This function does nothing if node is not of type #PLIST_UID
            </summary>
            <param name="node">
            the node
            </param>
            <param name="val">
            a pointer to a uint64_t variable.
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.PlistNativeMethods.plist_set_key_val(iMobileDevice.Plist.PlistHandle,System.String)">
            <summary>
            Set the value of a node.
            Forces type of node to #PLIST_KEY
            </summary>
            <param name="node">
            the node
            </param>
            <param name="val">
            the key value
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.PlistNativeMethods.plist_set_string_val(iMobileDevice.Plist.PlistHandle,System.String)">
            <summary>
            Set the value of a node.
            Forces type of node to #PLIST_STRING
            </summary>
            <param name="node">
            the node
            </param>
            <param name="val">
            the string value. The string is copied when set and will be
            freed by the node.
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.PlistNativeMethods.plist_set_bool_val(iMobileDevice.Plist.PlistHandle,System.Char)">
            <summary>
            Set the value of a node.
            Forces type of node to #PLIST_BOOLEAN
            </summary>
            <param name="node">
            the node
            </param>
            <param name="val">
            the boolean value
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.PlistNativeMethods.plist_set_uint_val(iMobileDevice.Plist.PlistHandle,System.UInt64)">
            <summary>
            Set the value of a node.
            Forces type of node to #PLIST_UINT
            </summary>
            <param name="node">
            the node
            </param>
            <param name="val">
            the unsigned integer value
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.PlistNativeMethods.plist_set_real_val(iMobileDevice.Plist.PlistHandle,System.Double)">
            <summary>
            Set the value of a node.
            Forces type of node to #PLIST_REAL
            </summary>
            <param name="node">
            the node
            </param>
            <param name="val">
            the real value
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.PlistNativeMethods.plist_set_data_val(iMobileDevice.Plist.PlistHandle,System.String,System.UInt64)">
            <summary>
            Set the value of a node.
            Forces type of node to #PLIST_DATA
            </summary>
            <param name="node">
            the node
            </param>
            <param name="val">
            the binary buffer. The buffer is copied when set and will
            be freed by the node.
            </param>
            <param name="length">
            the length of the buffer
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.PlistNativeMethods.plist_set_date_val(iMobileDevice.Plist.PlistHandle,System.Int32,System.Int32)">
            <summary>
            Set the value of a node.
            Forces type of node to #PLIST_DATE
            </summary>
            <param name="node">
            the node
            </param>
            <param name="sec">
            the number of seconds since 01/01/2001
            </param>
            <param name="usec">
            the number of microseconds
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.PlistNativeMethods.plist_set_uid_val(iMobileDevice.Plist.PlistHandle,System.UInt64)">
            <summary>
            Set the value of a node.
            Forces type of node to #PLIST_UID
            </summary>
            <param name="node">
            the node
            </param>
            <param name="val">
            the unsigned integer value
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.PlistNativeMethods.plist_to_xml(iMobileDevice.Plist.PlistHandle,System.IntPtr@,System.UInt32@)">
            <summary>
            Export the #plist_t structure to XML format.
            </summary>
            <param name="plist">
            the root node to export
            </param>
            <param name="plist_xml">
            a pointer to a C-string. This function allocates the memory,
            caller is responsible for freeing it. Data is UTF-8 encoded.
            </param>
            <param name="length">
            a pointer to an uint32_t variable. Represents the length of the allocated buffer.
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.PlistNativeMethods.plist_to_xml_free(System.IntPtr)">
            <summary>
            Frees the memory allocated by plist_to_xml().
            </summary>
            <param name="plist_xml">
            The buffer allocated by plist_to_xml().
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.PlistNativeMethods.plist_to_bin(iMobileDevice.Plist.PlistHandle,System.IntPtr@,System.UInt32@)">
            <summary>
            Export the #plist_t structure to binary format.
            </summary>
            <param name="plist">
            the root node to export
            </param>
            <param name="plist_bin">
            a pointer to a char* buffer. This function allocates the memory,
            caller is responsible for freeing it.
            </param>
            <param name="length">
            a pointer to an uint32_t variable. Represents the length of the allocated buffer.
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.PlistNativeMethods.plist_to_bin_free(System.IntPtr)">
            <summary>
            Frees the memory allocated by plist_to_bin().
            </summary>
            <param name="plist_bin">
            The buffer allocated by plist_to_bin().
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.PlistNativeMethods.plist_from_xml(System.String,System.UInt32,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Import the #plist_t structure from XML format.
            </summary>
            <param name="plist_xml">
            a pointer to the xml buffer.
            </param>
            <param name="length">
            length of the buffer to read.
            </param>
            <param name="plist">
            a pointer to the imported plist.
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.PlistNativeMethods.plist_from_bin(System.String,System.UInt32,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Import the #plist_t structure from binary format.
            </summary>
            <param name="plist_bin">
            a pointer to the xml buffer.
            </param>
            <param name="length">
            length of the buffer to read.
            </param>
            <param name="plist">
            a pointer to the imported plist.
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.PlistNativeMethods.plist_from_memory(System.String,System.UInt32,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Import the #plist_t structure from memory data.
            This method will look at the first bytes of plist_data
            to determine if plist_data contains a binary or XML plist.
            </summary>
            <param name="plist_data">
            a pointer to the memory buffer containing plist data.
            </param>
            <param name="length">
            length of the buffer to read.
            </param>
            <param name="plist">
            a pointer to the imported plist.
            </param>
        </member>
        <member name="M:iMobileDevice.Plist.PlistNativeMethods.plist_is_binary(System.String,System.UInt32)">
            <summary>
            Test if in-memory plist data is binary or XML
            This method will look at the first bytes of plist_data
            to determine if plist_data contains a binary or XML plist.
            This method is not validating the whole memory buffer to check if the
            content is truly a plist, it's only using some heuristic on the first few
            bytes of plist_data.
            </summary>
            <param name="plist_data">
            a pointer to the memory buffer containing plist data.
            </param>
            <param name="length">
            length of the buffer to read.
            </param>
            <returns>
            1 if the buffer is a binary plist, 0 otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Plist.PlistNativeMethods.plist_access_path(iMobileDevice.Plist.PlistHandle,System.UInt32)">
            <summary>
            Get a node from its path. Each path element depends on the associated father node type.
            For Dictionaries, var args are casted to const char*, for arrays, var args are caster to uint32_t
            Search is breath first order.
            </summary>
            <param name="plist">
            the node to access result from.
            </param>
            <param name="length">
            length of the path to access
            </param>
            <returns>
            the value to access.
            </returns>
        </member>
        <member name="M:iMobileDevice.Plist.PlistNativeMethods.plist_access_pathv(iMobileDevice.Plist.PlistHandle,System.UInt32,System.IntPtr)">
            <summary>
            Variadic version of #plist_access_path.
            </summary>
            <param name="plist">
            the node to access result from.
            </param>
            <param name="length">
            length of the path to access
            </param>
            <param name="v">
            list of array's index and dic'st key
            </param>
            <returns>
            the value to access.
            </returns>
        </member>
        <member name="M:iMobileDevice.Plist.PlistNativeMethods.plist_compare_node_value(iMobileDevice.Plist.PlistHandle,iMobileDevice.Plist.PlistHandle)">
            <summary>
            Compare two node values
            </summary>
            <param name="node_l">
            left node to compare
            </param>
            <param name="node_r">
            rigth node to compare
            </param>
            <returns>
            TRUE is type and value match, FALSE otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Plist.PlistNativeMethods.plist_bool_val_is_true(iMobileDevice.Plist.PlistHandle)">
            <summary>
            Helper function to check the value of a PLIST_BOOL node.
            </summary>
            <param name="boolnode">
            node of type PLIST_BOOL
            </param>
            <returns>
            1 if the boolean node has a value of TRUE, 0 if FALSE,
            or -1 if the node is not of type PLIST_BOOL
            </returns>
        </member>
        <member name="M:iMobileDevice.Plist.PlistNativeMethods.plist_uint_val_compare(iMobileDevice.Plist.PlistHandle,System.UInt64)">
            <summary>
            Helper function to compare the value of a PLIST_UINT node against
            a given value.
            </summary>
            <param name="uintnode">
            node of type PLIST_UINT
            </param>
            <param name="cmpval">
            value to compare against
            </param>
            <returns>
            0 if the node's value and cmpval are equal,
            1 if the node's value is greater than cmpval,
            or -1 if the node's value is less than cmpval.
            </returns>
        </member>
        <member name="M:iMobileDevice.Plist.PlistNativeMethods.plist_uid_val_compare(iMobileDevice.Plist.PlistHandle,System.UInt64)">
            <summary>
            Helper function to compare the value of a PLIST_UID node against
            a given value.
            </summary>
            <param name="uidnode">
            node of type PLIST_UID
            </param>
            <param name="cmpval">
            value to compare against
            </param>
            <returns>
            0 if the node's value and cmpval are equal,
            1 if the node's value is greater than cmpval,
            or -1 if the node's value is less than cmpval.
            </returns>
        </member>
        <member name="M:iMobileDevice.Plist.PlistNativeMethods.plist_real_val_compare(iMobileDevice.Plist.PlistHandle,System.Double)">
            <summary>
            Helper function to compare the value of a PLIST_REAL node against
            a given value.
            </summary>
            <param name="realnode">
            node of type PLIST_REAL
            </param>
            <param name="cmpval">
            value to compare against
            </param>
            <returns>
            0 if the node's value and cmpval are (almost) equal,
            1 if the node's value is greater than cmpval,
            or -1 if the node's value is less than cmpval.
            </returns>
            <remarks>
            WARNING: Comparing floating point values can give inaccurate
            results because of the nature of floating point values on computer
            systems. While this function is designed to be as accurate as
            possible, please don't rely on it too much.
            </remarks>
        </member>
        <member name="M:iMobileDevice.Plist.PlistNativeMethods.plist_date_val_compare(iMobileDevice.Plist.PlistHandle,System.Int32,System.Int32)">
            <summary>
            Helper function to compare the value of a PLIST_DATE node against
            a given set of seconds and fraction of a second since epoch.
            </summary>
            <param name="datenode">
            node of type PLIST_DATE
            </param>
            <param name="cmpsec">
            number of seconds since epoch to compare against
            </param>
            <param name="cmpusec">
            fraction of a second in microseconds to compare against
            </param>
            <returns>
            0 if the node's date is equal to the supplied values,
            1 if the node's date is greater than the supplied values,
            or -1 if the node's date is less than the supplied values.
            </returns>
        </member>
        <!-- Badly formed XML comment ignored for member "M:iMobileDevice.Plist.PlistNativeMethods.plist_string_val_compare(iMobileDevice.Plist.PlistHandle,System.String)" -->
        <!-- Badly formed XML comment ignored for member "M:iMobileDevice.Plist.PlistNativeMethods.plist_string_val_compare_with_size(iMobileDevice.Plist.PlistHandle,System.String,System.UInt32)" -->
        <member name="M:iMobileDevice.Plist.PlistNativeMethods.plist_string_val_contains(iMobileDevice.Plist.PlistHandle,System.String)">
            <summary>
            Helper function to match a given substring in the value of a
            PLIST_STRING node.
            </summary>
            <param name="strnode">
            node of type PLIST_STRING
            </param>
            <param name="substr">
            value to match
            </param>
            <returns>
            1 if the node's value contains the given substring,
            or 0 if not.
            </returns>
        </member>
        <!-- Badly formed XML comment ignored for member "M:iMobileDevice.Plist.PlistNativeMethods.plist_key_val_compare(iMobileDevice.Plist.PlistHandle,System.String)" -->
        <!-- Badly formed XML comment ignored for member "M:iMobileDevice.Plist.PlistNativeMethods.plist_key_val_compare_with_size(iMobileDevice.Plist.PlistHandle,System.String,System.UInt32)" -->
        <member name="M:iMobileDevice.Plist.PlistNativeMethods.plist_key_val_contains(iMobileDevice.Plist.PlistHandle,System.String)">
            <summary>
            Helper function to match a given substring in the value of a
            PLIST_KEY node.
            </summary>
            <param name="keynode">
            node of type PLIST_KEY
            </param>
            <param name="substr">
            value to match
            </param>
            <returns>
            1 if the node's value contains the given substring,
            or 0 if not.
            </returns>
        </member>
        <!-- Badly formed XML comment ignored for member "M:iMobileDevice.Plist.PlistNativeMethods.plist_data_val_compare(iMobileDevice.Plist.PlistHandle,System.Char@,System.UInt32)" -->
        <!-- Badly formed XML comment ignored for member "M:iMobileDevice.Plist.PlistNativeMethods.plist_data_val_compare_with_size(iMobileDevice.Plist.PlistHandle,System.Char@,System.UInt32)" -->
        <member name="M:iMobileDevice.Plist.PlistNativeMethods.plist_data_val_contains(iMobileDevice.Plist.PlistHandle,System.Char@,System.UInt32)">
            <summary>
            Helper function to match a given data blob within the value of a
            PLIST_DATA node.
            </summary>
            <param name="datanode">
            node of type PLIST_KEY
            </param>
            <param name="cmpval">
            data blob to match
            </param>
            <param name="n">
            size of data blob passed in cmpval
            </param>
            <returns>
            1 if the node's value contains the given data blob
            or 0 if not.
            </returns>
        </member>
        <member name="T:iMobileDevice.Plist.PlistType">
            <summary>
            The enumeration of plist node types.
            </summary>
        </member>
        <member name="F:iMobileDevice.Plist.PlistType.None">
            <summary>
            No type 
            </summary>
        </member>
        <member name="P:iMobileDevice.Preboard.IPreboardApi.Parent">
            <summary>
            Gets or sets the <see cref="!:ILibiMobileDeviceApi"/> which owns this <see cref="N:iMobileDevice.Preboard"/>.
            </summary>
        </member>
        <member name="M:iMobileDevice.Preboard.IPreboardApi.preboard_client_new(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Lockdown.LockdownServiceDescriptorHandle,iMobileDevice.Preboard.PreboardClientHandle@)">
            <summary>
            Connects to the preboard 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">
            Pointer that will point to a newly allocated
            preboard_client_t upon successful return. Must be freed using
            preboard_client_free() after use.
            </param>
            <returns>
            PREBOARD_E_SUCCESS on success, PREBOARD_E_INVALID_ARG when
            client is NULL, or an PREBOARD_E_* error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Preboard.IPreboardApi.preboard_client_start_service(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Preboard.PreboardClientHandle@,System.String)">
            <summary>
            Starts a new preboard 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
            preboard_client_t upon successful return. Must be freed using
            preboard_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>
            PREBOARD_E_SUCCESS on success, or a PREBOARD_E_* error
            code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Preboard.IPreboardApi.preboard_client_free(System.IntPtr)">
            <summary>
            Disconnects a preboard client from the device and frees up the
            preboard client data.
            </summary>
            <param name="client">
            The preboard client to disconnect and free.
            </param>
            <returns>
            PREBOARD_E_SUCCESS on success, PREBOARD_E_INVALID_ARG when
            client is NULL, or a PREBOARD_E_* error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Preboard.IPreboardApi.preboard_send(iMobileDevice.Preboard.PreboardClientHandle,iMobileDevice.Plist.PlistHandle)">
            <summary>
            Sends a plist to the service.
            </summary>
            <param name="client">
            The preboard client
            </param>
            <param name="plist">
            The plist to send
            </param>
            <returns>
            PREBOARD_E_SUCCESS on success,
            PREBOARD_E_INVALID_ARG when client or plist is NULL,
            or a PREBOARD_E_* error code on error
            </returns>
        </member>
        <member name="M:iMobileDevice.Preboard.IPreboardApi.preboard_receive(iMobileDevice.Preboard.PreboardClientHandle,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Receives a plist from the service.
            </summary>
            <param name="client">
            The preboard client
            </param>
            <param name="plist">
            Pointer to a plist_t what will be set to the received plist
            </param>
            <returns>
            PREBOARD_E_SUCCESS on success,
            PREBOARD_E_INVALID_ARG when client or plist is NULL,
            PREBOARD_E_TIMEOUT when no data was received after 5 seconds,
            or a PREBOARD_E_* error code on error
            </returns>
        </member>
        <member name="M:iMobileDevice.Preboard.IPreboardApi.preboard_receive_with_timeout(iMobileDevice.Preboard.PreboardClientHandle,iMobileDevice.Plist.PlistHandle@,System.UInt32)">
            <summary>
            Receives a plist from the service with the specified timeout.
            </summary>
            <param name="client">
            The preboard client
            </param>
            <param name="plist">
            Pointer to a plist_t what will be set to the received plist
            </param>
            <returns>
            PREBOARD_E_SUCCESS on success,
            PREBOARD_E_INVALID_ARG when client or plist is NULL,
            PREBOARD_E_TIMEOUT when no data was received after the given timeout,
            or a PREBOARD_E_* error code on error.
            </returns>
        </member>
        <!-- Badly formed XML comment ignored for member "M:iMobileDevice.Preboard.IPreboardApi.preboard_create_stashbag(iMobileDevice.Preboard.PreboardClientHandle,iMobileDevice.Plist.PlistHandle,iMobileDevice.Preboard.PreboardStatusCallBack,System.IntPtr)" -->
        <!-- Badly formed XML comment ignored for member "M:iMobileDevice.Preboard.IPreboardApi.preboard_commit_stashbag(iMobileDevice.Preboard.PreboardClientHandle,iMobileDevice.Plist.PlistHandle,iMobileDevice.Preboard.PreboardStatusCallBack,System.IntPtr)" -->
        <member name="F:iMobileDevice.Preboard.PreboardApi.parent">
            <summary>
            Backing field for the <see cref="P:iMobileDevice.Preboard.PreboardApi.Parent"/> property
            </summary>
        </member>
        <member name="M:iMobileDevice.Preboard.PreboardApi.#ctor(iMobileDevice.ILibiMobileDevice)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Preboard.PreboardApi"/> class
            </summary>
            <param name="parent">
            The <see cref="!:ILibiMobileDeviceApi"/> which owns this <see cref="N:iMobileDevice.Preboard"/>.
            </param>
        </member>
        <member name="P:iMobileDevice.Preboard.PreboardApi.Parent">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.Preboard.PreboardApi.preboard_client_new(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Lockdown.LockdownServiceDescriptorHandle,iMobileDevice.Preboard.PreboardClientHandle@)">
            <summary>
            Connects to the preboard 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">
            Pointer that will point to a newly allocated
            preboard_client_t upon successful return. Must be freed using
            preboard_client_free() after use.
            </param>
            <returns>
            PREBOARD_E_SUCCESS on success, PREBOARD_E_INVALID_ARG when
            client is NULL, or an PREBOARD_E_* error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Preboard.PreboardApi.preboard_client_start_service(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Preboard.PreboardClientHandle@,System.String)">
            <summary>
            Starts a new preboard 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
            preboard_client_t upon successful return. Must be freed using
            preboard_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>
            PREBOARD_E_SUCCESS on success, or a PREBOARD_E_* error
            code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Preboard.PreboardApi.preboard_client_free(System.IntPtr)">
            <summary>
            Disconnects a preboard client from the device and frees up the
            preboard client data.
            </summary>
            <param name="client">
            The preboard client to disconnect and free.
            </param>
            <returns>
            PREBOARD_E_SUCCESS on success, PREBOARD_E_INVALID_ARG when
            client is NULL, or a PREBOARD_E_* error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Preboard.PreboardApi.preboard_send(iMobileDevice.Preboard.PreboardClientHandle,iMobileDevice.Plist.PlistHandle)">
            <summary>
            Sends a plist to the service.
            </summary>
            <param name="client">
            The preboard client
            </param>
            <param name="plist">
            The plist to send
            </param>
            <returns>
            PREBOARD_E_SUCCESS on success,
            PREBOARD_E_INVALID_ARG when client or plist is NULL,
            or a PREBOARD_E_* error code on error
            </returns>
        </member>
        <member name="M:iMobileDevice.Preboard.PreboardApi.preboard_receive(iMobileDevice.Preboard.PreboardClientHandle,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Receives a plist from the service.
            </summary>
            <param name="client">
            The preboard client
            </param>
            <param name="plist">
            Pointer to a plist_t what will be set to the received plist
            </param>
            <returns>
            PREBOARD_E_SUCCESS on success,
            PREBOARD_E_INVALID_ARG when client or plist is NULL,
            PREBOARD_E_TIMEOUT when no data was received after 5 seconds,
            or a PREBOARD_E_* error code on error
            </returns>
        </member>
        <member name="M:iMobileDevice.Preboard.PreboardApi.preboard_receive_with_timeout(iMobileDevice.Preboard.PreboardClientHandle,iMobileDevice.Plist.PlistHandle@,System.UInt32)">
            <summary>
            Receives a plist from the service with the specified timeout.
            </summary>
            <param name="client">
            The preboard client
            </param>
            <param name="plist">
            Pointer to a plist_t what will be set to the received plist
            </param>
            <returns>
            PREBOARD_E_SUCCESS on success,
            PREBOARD_E_INVALID_ARG when client or plist is NULL,
            PREBOARD_E_TIMEOUT when no data was received after the given timeout,
            or a PREBOARD_E_* error code on error.
            </returns>
        </member>
        <!-- Badly formed XML comment ignored for member "M:iMobileDevice.Preboard.PreboardApi.preboard_create_stashbag(iMobileDevice.Preboard.PreboardClientHandle,iMobileDevice.Plist.PlistHandle,iMobileDevice.Preboard.PreboardStatusCallBack,System.IntPtr)" -->
        <!-- Badly formed XML comment ignored for member "M:iMobileDevice.Preboard.PreboardApi.preboard_commit_stashbag(iMobileDevice.Preboard.PreboardClientHandle,iMobileDevice.Plist.PlistHandle,iMobileDevice.Preboard.PreboardStatusCallBack,System.IntPtr)" -->
        <member name="T:iMobileDevice.Preboard.PreboardClientHandle">
            <summary>
            Represents a wrapper class for Preboard handles.
            </summary>
        </member>
        <member name="M:iMobileDevice.Preboard.PreboardClientHandle.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Preboard.PreboardClientHandle"/> class.
            </summary>
        </member>
        <member name="M:iMobileDevice.Preboard.PreboardClientHandle.#ctor(System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Preboard.PreboardClientHandle"/> class, specifying whether the handle is to be reliably released.
            </summary>
            <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>
        </member>
        <member name="P:iMobileDevice.Preboard.PreboardClientHandle.Api">
            <summary>
            Gets or sets the API to use
            </summary>
        </member>
        <member name="P:iMobileDevice.Preboard.PreboardClientHandle.Zero">
            <summary>
            Gets a value which represents a pointer or handle that has been initialized to zero.
            </summary>
        </member>
        <member name="M:iMobileDevice.Preboard.PreboardClientHandle.ReleaseHandle">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.Preboard.PreboardClientHandle.DangerousCreate(System.IntPtr,System.Boolean)">
            <summary>
            Creates a new <see cref="T:iMobileDevice.Preboard.PreboardClientHandle"/> from a <see cref="T:System.IntPtr"/>.
            </summary>
            <param name="unsafeHandle">
            The underlying <see cref="T:System.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>
        </member>
        <member name="M:iMobileDevice.Preboard.PreboardClientHandle.DangerousCreate(System.IntPtr)">
            <summary>
            Creates a new <see cref="T:iMobileDevice.Preboard.PreboardClientHandle"/> from a <see cref="T:System.IntPtr"/>.
            </summary>
            <param name="unsafeHandle">
            The underlying <see cref="T:System.IntPtr"/>
            </param>
            <returns>
            </returns>
        </member>
        <member name="M:iMobileDevice.Preboard.PreboardClientHandle.ToString">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.Preboard.PreboardClientHandle.Equals(System.Object)">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.Preboard.PreboardClientHandle.GetHashCode">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.Preboard.PreboardClientHandle.op_Equality(iMobileDevice.Preboard.PreboardClientHandle,iMobileDevice.Preboard.PreboardClientHandle)">
            <summary>
            Determines whether two specified instances of <see cref="T:iMobileDevice.Preboard.PreboardClientHandle"/> are equal.
            </summary>
            <param name="value1">
            The first pointer or handle to compare.
            </param>
            <param name="value2">
            The second pointer or handle to compare.
            </param>
            <returns>
            <see langword="true"/> if <paramref name="value1"/> equals <paramref name="value2"/>; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="M:iMobileDevice.Preboard.PreboardClientHandle.op_Inequality(iMobileDevice.Preboard.PreboardClientHandle,iMobileDevice.Preboard.PreboardClientHandle)">
            <summary>
            Determines whether two specified instances of <see cref="T:iMobileDevice.Preboard.PreboardClientHandle"/> are not equal.
            </summary>
            <param name="value1">
            The first pointer or handle to compare.
            </param>
            <param name="value2">
            The second pointer or handle to compare.
            </param>
            <returns>
            <see langword="true"/> if <paramref name="value1"/> does not equal <paramref name="value2"/>; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="T:iMobileDevice.Preboard.PreboardError">
            <summary>
            Error Codes 
            </summary>
        </member>
        <member name="T:iMobileDevice.Preboard.PreboardException">
            Represents an exception that occurred when interacting with the Preboard API.
        </member>
        <member name="F:iMobileDevice.Preboard.PreboardException.errorCode">
            <summary>
            Backing field for the <see cref="P:iMobileDevice.Preboard.PreboardException.ErrorCode"/> property.
            </summary>
        </member>
        <member name="M:iMobileDevice.Preboard.PreboardException.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Preboard.PreboardException"/> class.
            </summary>
        </member>
        <member name="M:iMobileDevice.Preboard.PreboardException.#ctor(iMobileDevice.Preboard.PreboardError)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Preboard.PreboardException"/> class with a specified error code.
            </summary>
            <param name="error">
            The error code of the error that occurred.
            </param>
        </member>
        <member name="M:iMobileDevice.Preboard.PreboardException.#ctor(iMobileDevice.Preboard.PreboardError,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Preboard.PreboardException"/> class with a specified error code and error message.
            </summary>
            <param name="error">
            The error code of the error that occurred.
            </param>
            <param name="message">
            A message which describes the error.
            </param>
        </member>
        <member name="M:iMobileDevice.Preboard.PreboardException.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Preboard.PreboardException"/> class with a specified error message.
            </summary>
            <param name="message">
            The message that describes the error.
            </param>
        </member>
        <member name="M:iMobileDevice.Preboard.PreboardException.#ctor(System.String,System.Exception)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Preboard.PreboardException"/> class with a specified error message and a reference to the inner exception that is the cause of this exception.
            </summary>
            <param name="message">
            The error message that explains the reason for the exception.
            </param>
            <param name="inner">
            The exception that is the cause of the current exception, or <see langword="null"/> if no inner exception is specified.
            </param>
        </member>
        <member name="M:iMobileDevice.Preboard.PreboardException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Preboard.PreboardException"/> class with serialized data.
            </summary>
            <param name="info">
            The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds the serialized object data about the exception being thrown.
            </param>
            <param name="context">
            The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that contains contextual information about the source or destination.
            </param>
        </member>
        <member name="P:iMobileDevice.Preboard.PreboardException.ErrorCode">
            <summary>
            Gets the error code that represents the error.
            </summary>
        </member>
        <member name="M:iMobileDevice.Preboard.PreboardNativeMethods.preboard_client_new(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Lockdown.LockdownServiceDescriptorHandle,iMobileDevice.Preboard.PreboardClientHandle@)">
            <summary>
            Connects to the preboard 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">
            Pointer that will point to a newly allocated
            preboard_client_t upon successful return. Must be freed using
            preboard_client_free() after use.
            </param>
            <returns>
            PREBOARD_E_SUCCESS on success, PREBOARD_E_INVALID_ARG when
            client is NULL, or an PREBOARD_E_* error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Preboard.PreboardNativeMethods.preboard_client_start_service(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Preboard.PreboardClientHandle@,System.String)">
            <summary>
            Starts a new preboard 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
            preboard_client_t upon successful return. Must be freed using
            preboard_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>
            PREBOARD_E_SUCCESS on success, or a PREBOARD_E_* error
            code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Preboard.PreboardNativeMethods.preboard_client_free(System.IntPtr)">
            <summary>
            Disconnects a preboard client from the device and frees up the
            preboard client data.
            </summary>
            <param name="client">
            The preboard client to disconnect and free.
            </param>
            <returns>
            PREBOARD_E_SUCCESS on success, PREBOARD_E_INVALID_ARG when
            client is NULL, or a PREBOARD_E_* error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Preboard.PreboardNativeMethods.preboard_send(iMobileDevice.Preboard.PreboardClientHandle,iMobileDevice.Plist.PlistHandle)">
            <summary>
            Sends a plist to the service.
            </summary>
            <param name="client">
            The preboard client
            </param>
            <param name="plist">
            The plist to send
            </param>
            <returns>
            PREBOARD_E_SUCCESS on success,
            PREBOARD_E_INVALID_ARG when client or plist is NULL,
            or a PREBOARD_E_* error code on error
            </returns>
        </member>
        <member name="M:iMobileDevice.Preboard.PreboardNativeMethods.preboard_receive(iMobileDevice.Preboard.PreboardClientHandle,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Receives a plist from the service.
            </summary>
            <param name="client">
            The preboard client
            </param>
            <param name="plist">
            Pointer to a plist_t what will be set to the received plist
            </param>
            <returns>
            PREBOARD_E_SUCCESS on success,
            PREBOARD_E_INVALID_ARG when client or plist is NULL,
            PREBOARD_E_TIMEOUT when no data was received after 5 seconds,
            or a PREBOARD_E_* error code on error
            </returns>
        </member>
        <member name="M:iMobileDevice.Preboard.PreboardNativeMethods.preboard_receive_with_timeout(iMobileDevice.Preboard.PreboardClientHandle,iMobileDevice.Plist.PlistHandle@,System.UInt32)">
            <summary>
            Receives a plist from the service with the specified timeout.
            </summary>
            <param name="client">
            The preboard client
            </param>
            <param name="plist">
            Pointer to a plist_t what will be set to the received plist
            </param>
            <returns>
            PREBOARD_E_SUCCESS on success,
            PREBOARD_E_INVALID_ARG when client or plist is NULL,
            PREBOARD_E_TIMEOUT when no data was received after the given timeout,
            or a PREBOARD_E_* error code on error.
            </returns>
        </member>
        <!-- Badly formed XML comment ignored for member "M:iMobileDevice.Preboard.PreboardNativeMethods.preboard_create_stashbag(iMobileDevice.Preboard.PreboardClientHandle,iMobileDevice.Plist.PlistHandle,iMobileDevice.Preboard.PreboardStatusCallBack,System.IntPtr)" -->
        <!-- Badly formed XML comment ignored for member "M:iMobileDevice.Preboard.PreboardNativeMethods.preboard_commit_stashbag(iMobileDevice.Preboard.PreboardClientHandle,iMobileDevice.Plist.PlistHandle,iMobileDevice.Preboard.PreboardStatusCallBack,System.IntPtr)" -->
        <member name="P:iMobileDevice.PropertyListService.IPropertyListServiceApi.Parent">
            <summary>
            Gets or sets the <see cref="!:ILibiMobileDeviceApi"/> which owns this <see cref="N:iMobileDevice.PropertyListService"/>.
            </summary>
        </member>
        <member name="M:iMobileDevice.PropertyListService.IPropertyListServiceApi.property_list_service_client_new(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Lockdown.LockdownServiceDescriptorHandle,iMobileDevice.PropertyListService.PropertyListServiceClientHandle@)">
            <summary>
            Creates a new property list service for the specified port.
            </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">
            Pointer that will be set to a newly allocated
            property_list_service_client_t upon successful return.
            </param>
            <returns>
            PROPERTY_LIST_SERVICE_E_SUCCESS on success,
            PROPERTY_LIST_SERVICE_E_INVALID_ARG when one of the arguments is invalid,
            or PROPERTY_LIST_SERVICE_E_MUX_ERROR when connecting to the device failed.
            </returns>
        </member>
        <member name="M:iMobileDevice.PropertyListService.IPropertyListServiceApi.property_list_service_client_free(System.IntPtr)">
            <summary>
            Frees a PropertyList service.
            </summary>
            <param name="client">
            The property list service to free.
            </param>
            <returns>
            PROPERTY_LIST_SERVICE_E_SUCCESS on success,
            PROPERTY_LIST_SERVICE_E_INVALID_ARG when client is invalid, or a
            PROPERTY_LIST_SERVICE_E_UNKNOWN_ERROR when another error occurred.
            </returns>
        </member>
        <member name="M:iMobileDevice.PropertyListService.IPropertyListServiceApi.property_list_service_send_xml_plist(iMobileDevice.PropertyListService.PropertyListServiceClientHandle,iMobileDevice.Plist.PlistHandle)">
            <summary>
            Sends an XML plist.
            </summary>
            <param name="client">
            The property list service client to use for sending.
            </param>
            <param name="plist">
            plist to send
            </param>
            <returns>
            PROPERTY_LIST_SERVICE_E_SUCCESS on success,
            PROPERTY_LIST_SERVICE_E_INVALID_ARG when client or plist is NULL,
            PROPERTY_LIST_SERVICE_E_PLIST_ERROR when dict is not a valid plist,
            or PROPERTY_LIST_SERVICE_E_UNKNOWN_ERROR when an unspecified error occurs.
            </returns>
        </member>
        <member name="M:iMobileDevice.PropertyListService.IPropertyListServiceApi.property_list_service_send_binary_plist(iMobileDevice.PropertyListService.PropertyListServiceClientHandle,iMobileDevice.Plist.PlistHandle)">
            <summary>
            Sends a binary plist.
            </summary>
            <param name="client">
            The property list service client to use for sending.
            </param>
            <param name="plist">
            plist to send
            </param>
            <returns>
            PROPERTY_LIST_SERVICE_E_SUCCESS on success,
            PROPERTY_LIST_SERVICE_E_INVALID_ARG when client or plist is NULL,
            PROPERTY_LIST_SERVICE_E_PLIST_ERROR when dict is not a valid plist,
            or PROPERTY_LIST_SERVICE_E_UNKNOWN_ERROR when an unspecified error occurs.
            </returns>
        </member>
        <member name="M:iMobileDevice.PropertyListService.IPropertyListServiceApi.property_list_service_receive_plist_with_timeout(iMobileDevice.PropertyListService.PropertyListServiceClientHandle,iMobileDevice.Plist.PlistHandle@,System.UInt32)">
            <summary>
            Receives a plist using the given property list service client with specified
            timeout.
            Binary or XML plists are automatically handled.
            </summary>
            <param name="client">
            The property list service client to use for receiving
            </param>
            <param name="plist">
            pointer to a plist_t that will point to the received plist
            upon successful return
            </param>
            <param name="timeout">
            Maximum time in milliseconds to wait for data.
            </param>
            <returns>
            PROPERTY_LIST_SERVICE_E_SUCCESS on success,
            PROPERTY_LIST_SERVICE_E_INVALID_ARG when connection or *plist is NULL,
            PROPERTY_LIST_SERVICE_E_PLIST_ERROR when the received data cannot be
            converted to a plist, PROPERTY_LIST_SERVICE_E_MUX_ERROR when a
            communication error occurs, or PROPERTY_LIST_SERVICE_E_UNKNOWN_ERROR when
            an unspecified error occurs.
            </returns>
        </member>
        <member name="M:iMobileDevice.PropertyListService.IPropertyListServiceApi.property_list_service_receive_plist(iMobileDevice.PropertyListService.PropertyListServiceClientHandle,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Receives a plist using the given property list service client.
            Binary or XML plists are automatically handled.
            This function is like property_list_service_receive_plist_with_timeout
            using a timeout of 10 seconds.
            </summary>
            <param name="client">
            The property list service client to use for receiving
            </param>
            <param name="plist">
            pointer to a plist_t that will point to the received plist
            upon successful return
            </param>
            <returns>
            PROPERTY_LIST_SERVICE_E_SUCCESS on success,
            PROPERTY_LIST_SERVICE_E_INVALID_ARG when client or *plist is NULL,
            PROPERTY_LIST_SERVICE_E_NOT_ENOUGH_DATA when not enough data
            received, PROPERTY_LIST_SERVICE_E_RECEIVE_TIMEOUT when the connection times out,
            PROPERTY_LIST_SERVICE_E_PLIST_ERROR when the received data cannot be
            converted to a plist, PROPERTY_LIST_SERVICE_E_MUX_ERROR when a
            communication error occurs, or PROPERTY_LIST_SERVICE_E_UNKNOWN_ERROR when
            an unspecified error occurs.
            </returns>
        </member>
        <member name="M:iMobileDevice.PropertyListService.IPropertyListServiceApi.property_list_service_enable_ssl(iMobileDevice.PropertyListService.PropertyListServiceClientHandle)">
            <summary>
            Enable SSL for the given property list service client.
            </summary>
            <param name="client">
            The connected property list service client for which SSL
            should be enabled.
            </param>
            <returns>
            PROPERTY_LIST_SERVICE_E_SUCCESS on success,
            PROPERTY_LIST_SERVICE_E_INVALID_ARG if client or client->connection is
            NULL, PROPERTY_LIST_SERVICE_E_SSL_ERROR when SSL could not be enabled,
            or PROPERTY_LIST_SERVICE_E_UNKNOWN_ERROR otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.PropertyListService.IPropertyListServiceApi.property_list_service_disable_ssl(iMobileDevice.PropertyListService.PropertyListServiceClientHandle)">
            <summary>
            Disable SSL for the given property list service client.
            </summary>
            <param name="client">
            The connected property list service client for which SSL
            should be disabled.
            </param>
            <returns>
            PROPERTY_LIST_SERVICE_E_SUCCESS on success,
            PROPERTY_LIST_SERVICE_E_INVALID_ARG if client or client->connection is
            NULL, or PROPERTY_LIST_SERVICE_E_UNKNOWN_ERROR otherwise.
            </returns>
        </member>
        <member name="F:iMobileDevice.PropertyListService.PropertyListServiceApi.parent">
            <summary>
            Backing field for the <see cref="P:iMobileDevice.PropertyListService.PropertyListServiceApi.Parent"/> property
            </summary>
        </member>
        <member name="M:iMobileDevice.PropertyListService.PropertyListServiceApi.#ctor(iMobileDevice.ILibiMobileDevice)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.PropertyListService.PropertyListServiceApi"/> class
            </summary>
            <param name="parent">
            The <see cref="!:ILibiMobileDeviceApi"/> which owns this <see cref="N:iMobileDevice.PropertyListService"/>.
            </param>
        </member>
        <member name="P:iMobileDevice.PropertyListService.PropertyListServiceApi.Parent">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.PropertyListService.PropertyListServiceApi.property_list_service_client_new(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Lockdown.LockdownServiceDescriptorHandle,iMobileDevice.PropertyListService.PropertyListServiceClientHandle@)">
            <summary>
            Creates a new property list service for the specified port.
            </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">
            Pointer that will be set to a newly allocated
            property_list_service_client_t upon successful return.
            </param>
            <returns>
            PROPERTY_LIST_SERVICE_E_SUCCESS on success,
            PROPERTY_LIST_SERVICE_E_INVALID_ARG when one of the arguments is invalid,
            or PROPERTY_LIST_SERVICE_E_MUX_ERROR when connecting to the device failed.
            </returns>
        </member>
        <member name="M:iMobileDevice.PropertyListService.PropertyListServiceApi.property_list_service_client_free(System.IntPtr)">
            <summary>
            Frees a PropertyList service.
            </summary>
            <param name="client">
            The property list service to free.
            </param>
            <returns>
            PROPERTY_LIST_SERVICE_E_SUCCESS on success,
            PROPERTY_LIST_SERVICE_E_INVALID_ARG when client is invalid, or a
            PROPERTY_LIST_SERVICE_E_UNKNOWN_ERROR when another error occurred.
            </returns>
        </member>
        <member name="M:iMobileDevice.PropertyListService.PropertyListServiceApi.property_list_service_send_xml_plist(iMobileDevice.PropertyListService.PropertyListServiceClientHandle,iMobileDevice.Plist.PlistHandle)">
            <summary>
            Sends an XML plist.
            </summary>
            <param name="client">
            The property list service client to use for sending.
            </param>
            <param name="plist">
            plist to send
            </param>
            <returns>
            PROPERTY_LIST_SERVICE_E_SUCCESS on success,
            PROPERTY_LIST_SERVICE_E_INVALID_ARG when client or plist is NULL,
            PROPERTY_LIST_SERVICE_E_PLIST_ERROR when dict is not a valid plist,
            or PROPERTY_LIST_SERVICE_E_UNKNOWN_ERROR when an unspecified error occurs.
            </returns>
        </member>
        <member name="M:iMobileDevice.PropertyListService.PropertyListServiceApi.property_list_service_send_binary_plist(iMobileDevice.PropertyListService.PropertyListServiceClientHandle,iMobileDevice.Plist.PlistHandle)">
            <summary>
            Sends a binary plist.
            </summary>
            <param name="client">
            The property list service client to use for sending.
            </param>
            <param name="plist">
            plist to send
            </param>
            <returns>
            PROPERTY_LIST_SERVICE_E_SUCCESS on success,
            PROPERTY_LIST_SERVICE_E_INVALID_ARG when client or plist is NULL,
            PROPERTY_LIST_SERVICE_E_PLIST_ERROR when dict is not a valid plist,
            or PROPERTY_LIST_SERVICE_E_UNKNOWN_ERROR when an unspecified error occurs.
            </returns>
        </member>
        <member name="M:iMobileDevice.PropertyListService.PropertyListServiceApi.property_list_service_receive_plist_with_timeout(iMobileDevice.PropertyListService.PropertyListServiceClientHandle,iMobileDevice.Plist.PlistHandle@,System.UInt32)">
            <summary>
            Receives a plist using the given property list service client with specified
            timeout.
            Binary or XML plists are automatically handled.
            </summary>
            <param name="client">
            The property list service client to use for receiving
            </param>
            <param name="plist">
            pointer to a plist_t that will point to the received plist
            upon successful return
            </param>
            <param name="timeout">
            Maximum time in milliseconds to wait for data.
            </param>
            <returns>
            PROPERTY_LIST_SERVICE_E_SUCCESS on success,
            PROPERTY_LIST_SERVICE_E_INVALID_ARG when connection or *plist is NULL,
            PROPERTY_LIST_SERVICE_E_PLIST_ERROR when the received data cannot be
            converted to a plist, PROPERTY_LIST_SERVICE_E_MUX_ERROR when a
            communication error occurs, or PROPERTY_LIST_SERVICE_E_UNKNOWN_ERROR when
            an unspecified error occurs.
            </returns>
        </member>
        <member name="M:iMobileDevice.PropertyListService.PropertyListServiceApi.property_list_service_receive_plist(iMobileDevice.PropertyListService.PropertyListServiceClientHandle,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Receives a plist using the given property list service client.
            Binary or XML plists are automatically handled.
            This function is like property_list_service_receive_plist_with_timeout
            using a timeout of 10 seconds.
            </summary>
            <param name="client">
            The property list service client to use for receiving
            </param>
            <param name="plist">
            pointer to a plist_t that will point to the received plist
            upon successful return
            </param>
            <returns>
            PROPERTY_LIST_SERVICE_E_SUCCESS on success,
            PROPERTY_LIST_SERVICE_E_INVALID_ARG when client or *plist is NULL,
            PROPERTY_LIST_SERVICE_E_NOT_ENOUGH_DATA when not enough data
            received, PROPERTY_LIST_SERVICE_E_RECEIVE_TIMEOUT when the connection times out,
            PROPERTY_LIST_SERVICE_E_PLIST_ERROR when the received data cannot be
            converted to a plist, PROPERTY_LIST_SERVICE_E_MUX_ERROR when a
            communication error occurs, or PROPERTY_LIST_SERVICE_E_UNKNOWN_ERROR when
            an unspecified error occurs.
            </returns>
        </member>
        <member name="M:iMobileDevice.PropertyListService.PropertyListServiceApi.property_list_service_enable_ssl(iMobileDevice.PropertyListService.PropertyListServiceClientHandle)">
            <summary>
            Enable SSL for the given property list service client.
            </summary>
            <param name="client">
            The connected property list service client for which SSL
            should be enabled.
            </param>
            <returns>
            PROPERTY_LIST_SERVICE_E_SUCCESS on success,
            PROPERTY_LIST_SERVICE_E_INVALID_ARG if client or client->connection is
            NULL, PROPERTY_LIST_SERVICE_E_SSL_ERROR when SSL could not be enabled,
            or PROPERTY_LIST_SERVICE_E_UNKNOWN_ERROR otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.PropertyListService.PropertyListServiceApi.property_list_service_disable_ssl(iMobileDevice.PropertyListService.PropertyListServiceClientHandle)">
            <summary>
            Disable SSL for the given property list service client.
            </summary>
            <param name="client">
            The connected property list service client for which SSL
            should be disabled.
            </param>
            <returns>
            PROPERTY_LIST_SERVICE_E_SUCCESS on success,
            PROPERTY_LIST_SERVICE_E_INVALID_ARG if client or client->connection is
            NULL, or PROPERTY_LIST_SERVICE_E_UNKNOWN_ERROR otherwise.
            </returns>
        </member>
        <member name="T:iMobileDevice.PropertyListService.PropertyListServiceClientHandle">
            <summary>
            Represents a wrapper class for PropertyListService handles.
            </summary>
        </member>
        <member name="M:iMobileDevice.PropertyListService.PropertyListServiceClientHandle.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.PropertyListService.PropertyListServiceClientHandle"/> class.
            </summary>
        </member>
        <member name="M:iMobileDevice.PropertyListService.PropertyListServiceClientHandle.#ctor(System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.PropertyListService.PropertyListServiceClientHandle"/> class, specifying whether the handle is to be reliably released.
            </summary>
            <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>
        </member>
        <member name="P:iMobileDevice.PropertyListService.PropertyListServiceClientHandle.Api">
            <summary>
            Gets or sets the API to use
            </summary>
        </member>
        <member name="P:iMobileDevice.PropertyListService.PropertyListServiceClientHandle.Zero">
            <summary>
            Gets a value which represents a pointer or handle that has been initialized to zero.
            </summary>
        </member>
        <member name="M:iMobileDevice.PropertyListService.PropertyListServiceClientHandle.ReleaseHandle">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.PropertyListService.PropertyListServiceClientHandle.DangerousCreate(System.IntPtr,System.Boolean)">
            <summary>
            Creates a new <see cref="T:iMobileDevice.PropertyListService.PropertyListServiceClientHandle"/> from a <see cref="T:System.IntPtr"/>.
            </summary>
            <param name="unsafeHandle">
            The underlying <see cref="T:System.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>
        </member>
        <member name="M:iMobileDevice.PropertyListService.PropertyListServiceClientHandle.DangerousCreate(System.IntPtr)">
            <summary>
            Creates a new <see cref="T:iMobileDevice.PropertyListService.PropertyListServiceClientHandle"/> from a <see cref="T:System.IntPtr"/>.
            </summary>
            <param name="unsafeHandle">
            The underlying <see cref="T:System.IntPtr"/>
            </param>
            <returns>
            </returns>
        </member>
        <member name="M:iMobileDevice.PropertyListService.PropertyListServiceClientHandle.ToString">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.PropertyListService.PropertyListServiceClientHandle.Equals(System.Object)">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.PropertyListService.PropertyListServiceClientHandle.GetHashCode">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.PropertyListService.PropertyListServiceClientHandle.op_Equality(iMobileDevice.PropertyListService.PropertyListServiceClientHandle,iMobileDevice.PropertyListService.PropertyListServiceClientHandle)">
            <summary>
            Determines whether two specified instances of <see cref="T:iMobileDevice.PropertyListService.PropertyListServiceClientHandle"/> are equal.
            </summary>
            <param name="value1">
            The first pointer or handle to compare.
            </param>
            <param name="value2">
            The second pointer or handle to compare.
            </param>
            <returns>
            <see langword="true"/> if <paramref name="value1"/> equals <paramref name="value2"/>; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="M:iMobileDevice.PropertyListService.PropertyListServiceClientHandle.op_Inequality(iMobileDevice.PropertyListService.PropertyListServiceClientHandle,iMobileDevice.PropertyListService.PropertyListServiceClientHandle)">
            <summary>
            Determines whether two specified instances of <see cref="T:iMobileDevice.PropertyListService.PropertyListServiceClientHandle"/> are not equal.
            </summary>
            <param name="value1">
            The first pointer or handle to compare.
            </param>
            <param name="value2">
            The second pointer or handle to compare.
            </param>
            <returns>
            <see langword="true"/> if <paramref name="value1"/> does not equal <paramref name="value2"/>; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="T:iMobileDevice.PropertyListService.PropertyListServiceException">
            Represents an exception that occurred when interacting with the PropertyListService API.
        </member>
        <member name="F:iMobileDevice.PropertyListService.PropertyListServiceException.errorCode">
            <summary>
            Backing field for the <see cref="P:iMobileDevice.PropertyListService.PropertyListServiceException.ErrorCode"/> property.
            </summary>
        </member>
        <member name="M:iMobileDevice.PropertyListService.PropertyListServiceException.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.PropertyListService.PropertyListServiceException"/> class.
            </summary>
        </member>
        <member name="M:iMobileDevice.PropertyListService.PropertyListServiceException.#ctor(iMobileDevice.PropertyListService.PropertyListServiceError)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.PropertyListService.PropertyListServiceException"/> class with a specified error code.
            </summary>
            <param name="error">
            The error code of the error that occurred.
            </param>
        </member>
        <member name="M:iMobileDevice.PropertyListService.PropertyListServiceException.#ctor(iMobileDevice.PropertyListService.PropertyListServiceError,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.PropertyListService.PropertyListServiceException"/> class with a specified error code and error message.
            </summary>
            <param name="error">
            The error code of the error that occurred.
            </param>
            <param name="message">
            A message which describes the error.
            </param>
        </member>
        <member name="M:iMobileDevice.PropertyListService.PropertyListServiceException.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.PropertyListService.PropertyListServiceException"/> class with a specified error message.
            </summary>
            <param name="message">
            The message that describes the error.
            </param>
        </member>
        <member name="M:iMobileDevice.PropertyListService.PropertyListServiceException.#ctor(System.String,System.Exception)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.PropertyListService.PropertyListServiceException"/> class with a specified error message and a reference to the inner exception that is the cause of this exception.
            </summary>
            <param name="message">
            The error message that explains the reason for the exception.
            </param>
            <param name="inner">
            The exception that is the cause of the current exception, or <see langword="null"/> if no inner exception is specified.
            </param>
        </member>
        <member name="M:iMobileDevice.PropertyListService.PropertyListServiceException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.PropertyListService.PropertyListServiceException"/> class with serialized data.
            </summary>
            <param name="info">
            The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds the serialized object data about the exception being thrown.
            </param>
            <param name="context">
            The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that contains contextual information about the source or destination.
            </param>
        </member>
        <member name="P:iMobileDevice.PropertyListService.PropertyListServiceException.ErrorCode">
            <summary>
            Gets the error code that represents the error.
            </summary>
        </member>
        <member name="M:iMobileDevice.PropertyListService.PropertyListServiceNativeMethods.property_list_service_client_new(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Lockdown.LockdownServiceDescriptorHandle,iMobileDevice.PropertyListService.PropertyListServiceClientHandle@)">
            <summary>
            Creates a new property list service for the specified port.
            </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">
            Pointer that will be set to a newly allocated
            property_list_service_client_t upon successful return.
            </param>
            <returns>
            PROPERTY_LIST_SERVICE_E_SUCCESS on success,
            PROPERTY_LIST_SERVICE_E_INVALID_ARG when one of the arguments is invalid,
            or PROPERTY_LIST_SERVICE_E_MUX_ERROR when connecting to the device failed.
            </returns>
        </member>
        <member name="M:iMobileDevice.PropertyListService.PropertyListServiceNativeMethods.property_list_service_client_free(System.IntPtr)">
            <summary>
            Frees a PropertyList service.
            </summary>
            <param name="client">
            The property list service to free.
            </param>
            <returns>
            PROPERTY_LIST_SERVICE_E_SUCCESS on success,
            PROPERTY_LIST_SERVICE_E_INVALID_ARG when client is invalid, or a
            PROPERTY_LIST_SERVICE_E_UNKNOWN_ERROR when another error occurred.
            </returns>
        </member>
        <member name="M:iMobileDevice.PropertyListService.PropertyListServiceNativeMethods.property_list_service_send_xml_plist(iMobileDevice.PropertyListService.PropertyListServiceClientHandle,iMobileDevice.Plist.PlistHandle)">
            <summary>
            Sends an XML plist.
            </summary>
            <param name="client">
            The property list service client to use for sending.
            </param>
            <param name="plist">
            plist to send
            </param>
            <returns>
            PROPERTY_LIST_SERVICE_E_SUCCESS on success,
            PROPERTY_LIST_SERVICE_E_INVALID_ARG when client or plist is NULL,
            PROPERTY_LIST_SERVICE_E_PLIST_ERROR when dict is not a valid plist,
            or PROPERTY_LIST_SERVICE_E_UNKNOWN_ERROR when an unspecified error occurs.
            </returns>
        </member>
        <member name="M:iMobileDevice.PropertyListService.PropertyListServiceNativeMethods.property_list_service_send_binary_plist(iMobileDevice.PropertyListService.PropertyListServiceClientHandle,iMobileDevice.Plist.PlistHandle)">
            <summary>
            Sends a binary plist.
            </summary>
            <param name="client">
            The property list service client to use for sending.
            </param>
            <param name="plist">
            plist to send
            </param>
            <returns>
            PROPERTY_LIST_SERVICE_E_SUCCESS on success,
            PROPERTY_LIST_SERVICE_E_INVALID_ARG when client or plist is NULL,
            PROPERTY_LIST_SERVICE_E_PLIST_ERROR when dict is not a valid plist,
            or PROPERTY_LIST_SERVICE_E_UNKNOWN_ERROR when an unspecified error occurs.
            </returns>
        </member>
        <member name="M:iMobileDevice.PropertyListService.PropertyListServiceNativeMethods.property_list_service_receive_plist_with_timeout(iMobileDevice.PropertyListService.PropertyListServiceClientHandle,iMobileDevice.Plist.PlistHandle@,System.UInt32)">
            <summary>
            Receives a plist using the given property list service client with specified
            timeout.
            Binary or XML plists are automatically handled.
            </summary>
            <param name="client">
            The property list service client to use for receiving
            </param>
            <param name="plist">
            pointer to a plist_t that will point to the received plist
            upon successful return
            </param>
            <param name="timeout">
            Maximum time in milliseconds to wait for data.
            </param>
            <returns>
            PROPERTY_LIST_SERVICE_E_SUCCESS on success,
            PROPERTY_LIST_SERVICE_E_INVALID_ARG when connection or *plist is NULL,
            PROPERTY_LIST_SERVICE_E_PLIST_ERROR when the received data cannot be
            converted to a plist, PROPERTY_LIST_SERVICE_E_MUX_ERROR when a
            communication error occurs, or PROPERTY_LIST_SERVICE_E_UNKNOWN_ERROR when
            an unspecified error occurs.
            </returns>
        </member>
        <member name="M:iMobileDevice.PropertyListService.PropertyListServiceNativeMethods.property_list_service_receive_plist(iMobileDevice.PropertyListService.PropertyListServiceClientHandle,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Receives a plist using the given property list service client.
            Binary or XML plists are automatically handled.
            This function is like property_list_service_receive_plist_with_timeout
            using a timeout of 10 seconds.
            </summary>
            <param name="client">
            The property list service client to use for receiving
            </param>
            <param name="plist">
            pointer to a plist_t that will point to the received plist
            upon successful return
            </param>
            <returns>
            PROPERTY_LIST_SERVICE_E_SUCCESS on success,
            PROPERTY_LIST_SERVICE_E_INVALID_ARG when client or *plist is NULL,
            PROPERTY_LIST_SERVICE_E_NOT_ENOUGH_DATA when not enough data
            received, PROPERTY_LIST_SERVICE_E_RECEIVE_TIMEOUT when the connection times out,
            PROPERTY_LIST_SERVICE_E_PLIST_ERROR when the received data cannot be
            converted to a plist, PROPERTY_LIST_SERVICE_E_MUX_ERROR when a
            communication error occurs, or PROPERTY_LIST_SERVICE_E_UNKNOWN_ERROR when
            an unspecified error occurs.
            </returns>
        </member>
        <member name="M:iMobileDevice.PropertyListService.PropertyListServiceNativeMethods.property_list_service_enable_ssl(iMobileDevice.PropertyListService.PropertyListServiceClientHandle)">
            <summary>
            Enable SSL for the given property list service client.
            </summary>
            <param name="client">
            The connected property list service client for which SSL
            should be enabled.
            </param>
            <returns>
            PROPERTY_LIST_SERVICE_E_SUCCESS on success,
            PROPERTY_LIST_SERVICE_E_INVALID_ARG if client or client->connection is
            NULL, PROPERTY_LIST_SERVICE_E_SSL_ERROR when SSL could not be enabled,
            or PROPERTY_LIST_SERVICE_E_UNKNOWN_ERROR otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.PropertyListService.PropertyListServiceNativeMethods.property_list_service_disable_ssl(iMobileDevice.PropertyListService.PropertyListServiceClientHandle)">
            <summary>
            Disable SSL for the given property list service client.
            </summary>
            <param name="client">
            The connected property list service client for which SSL
            should be disabled.
            </param>
            <returns>
            PROPERTY_LIST_SERVICE_E_SUCCESS on success,
            PROPERTY_LIST_SERVICE_E_INVALID_ARG if client or client->connection is
            NULL, or PROPERTY_LIST_SERVICE_E_UNKNOWN_ERROR otherwise.
            </returns>
        </member>
        <member name="P:iMobileDevice.Recovery.IRecoveryApi.Parent">
            <summary>
            Gets or sets the <see cref="!:ILibiMobileDeviceApi"/> which owns this <see cref="N:iMobileDevice.Recovery"/>.
            </summary>
        </member>
        <member name="F:iMobileDevice.Recovery.RecoveryApi.parent">
            <summary>
            Backing field for the <see cref="P:iMobileDevice.Recovery.RecoveryApi.Parent"/> property
            </summary>
        </member>
        <member name="M:iMobileDevice.Recovery.RecoveryApi.#ctor(iMobileDevice.ILibiMobileDevice)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Recovery.RecoveryApi"/> class
            </summary>
            <param name="parent">
            The <see cref="!:ILibiMobileDeviceApi"/> which owns this <see cref="N:iMobileDevice.Recovery"/>.
            </param>
        </member>
        <member name="P:iMobileDevice.Recovery.RecoveryApi.Parent">
            <inheritdoc/>
        </member>
        <member name="T:iMobileDevice.Recovery.RecoveryClientHandle">
            <summary>
            Represents a wrapper class for Recovery handles.
            </summary>
        </member>
        <member name="M:iMobileDevice.Recovery.RecoveryClientHandle.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Recovery.RecoveryClientHandle"/> class.
            </summary>
        </member>
        <member name="M:iMobileDevice.Recovery.RecoveryClientHandle.#ctor(System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Recovery.RecoveryClientHandle"/> class, specifying whether the handle is to be reliably released.
            </summary>
            <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>
        </member>
        <member name="P:iMobileDevice.Recovery.RecoveryClientHandle.Api">
            <summary>
            Gets or sets the API to use
            </summary>
        </member>
        <member name="P:iMobileDevice.Recovery.RecoveryClientHandle.Zero">
            <summary>
            Gets a value which represents a pointer or handle that has been initialized to zero.
            </summary>
        </member>
        <member name="M:iMobileDevice.Recovery.RecoveryClientHandle.ReleaseHandle">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.Recovery.RecoveryClientHandle.DangerousCreate(System.IntPtr,System.Boolean)">
            <summary>
            Creates a new <see cref="T:iMobileDevice.Recovery.RecoveryClientHandle"/> from a <see cref="T:System.IntPtr"/>.
            </summary>
            <param name="unsafeHandle">
            The underlying <see cref="T:System.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>
        </member>
        <member name="M:iMobileDevice.Recovery.RecoveryClientHandle.DangerousCreate(System.IntPtr)">
            <summary>
            Creates a new <see cref="T:iMobileDevice.Recovery.RecoveryClientHandle"/> from a <see cref="T:System.IntPtr"/>.
            </summary>
            <param name="unsafeHandle">
            The underlying <see cref="T:System.IntPtr"/>
            </param>
            <returns>
            </returns>
        </member>
        <member name="M:iMobileDevice.Recovery.RecoveryClientHandle.ToString">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.Recovery.RecoveryClientHandle.Equals(System.Object)">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.Recovery.RecoveryClientHandle.GetHashCode">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.Recovery.RecoveryClientHandle.op_Equality(iMobileDevice.Recovery.RecoveryClientHandle,iMobileDevice.Recovery.RecoveryClientHandle)">
            <summary>
            Determines whether two specified instances of <see cref="T:iMobileDevice.Recovery.RecoveryClientHandle"/> are equal.
            </summary>
            <param name="value1">
            The first pointer or handle to compare.
            </param>
            <param name="value2">
            The second pointer or handle to compare.
            </param>
            <returns>
            <see langword="true"/> if <paramref name="value1"/> equals <paramref name="value2"/>; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="M:iMobileDevice.Recovery.RecoveryClientHandle.op_Inequality(iMobileDevice.Recovery.RecoveryClientHandle,iMobileDevice.Recovery.RecoveryClientHandle)">
            <summary>
            Determines whether two specified instances of <see cref="T:iMobileDevice.Recovery.RecoveryClientHandle"/> are not equal.
            </summary>
            <param name="value1">
            The first pointer or handle to compare.
            </param>
            <param name="value2">
            The second pointer or handle to compare.
            </param>
            <returns>
            <see langword="true"/> if <paramref name="value1"/> does not equal <paramref name="value2"/>; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="T:iMobileDevice.Recovery.RecoveryDeviceEventContextHandle">
            <summary>
            Represents a wrapper class for Recovery handles.
            </summary>
        </member>
        <member name="M:iMobileDevice.Recovery.RecoveryDeviceEventContextHandle.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Recovery.RecoveryDeviceEventContextHandle"/> class.
            </summary>
        </member>
        <member name="M:iMobileDevice.Recovery.RecoveryDeviceEventContextHandle.#ctor(System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Recovery.RecoveryDeviceEventContextHandle"/> class, specifying whether the handle is to be reliably released.
            </summary>
            <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>
        </member>
        <member name="P:iMobileDevice.Recovery.RecoveryDeviceEventContextHandle.Api">
            <summary>
            Gets or sets the API to use
            </summary>
        </member>
        <member name="P:iMobileDevice.Recovery.RecoveryDeviceEventContextHandle.Zero">
            <summary>
            Gets a value which represents a pointer or handle that has been initialized to zero.
            </summary>
        </member>
        <member name="M:iMobileDevice.Recovery.RecoveryDeviceEventContextHandle.ReleaseHandle">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.Recovery.RecoveryDeviceEventContextHandle.DangerousCreate(System.IntPtr,System.Boolean)">
            <summary>
            Creates a new <see cref="T:iMobileDevice.Recovery.RecoveryDeviceEventContextHandle"/> from a <see cref="T:System.IntPtr"/>.
            </summary>
            <param name="unsafeHandle">
            The underlying <see cref="T:System.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>
        </member>
        <member name="M:iMobileDevice.Recovery.RecoveryDeviceEventContextHandle.DangerousCreate(System.IntPtr)">
            <summary>
            Creates a new <see cref="T:iMobileDevice.Recovery.RecoveryDeviceEventContextHandle"/> from a <see cref="T:System.IntPtr"/>.
            </summary>
            <param name="unsafeHandle">
            The underlying <see cref="T:System.IntPtr"/>
            </param>
            <returns>
            </returns>
        </member>
        <member name="M:iMobileDevice.Recovery.RecoveryDeviceEventContextHandle.ToString">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.Recovery.RecoveryDeviceEventContextHandle.Equals(System.Object)">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.Recovery.RecoveryDeviceEventContextHandle.GetHashCode">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.Recovery.RecoveryDeviceEventContextHandle.op_Equality(iMobileDevice.Recovery.RecoveryDeviceEventContextHandle,iMobileDevice.Recovery.RecoveryDeviceEventContextHandle)">
            <summary>
            Determines whether two specified instances of <see cref="T:iMobileDevice.Recovery.RecoveryDeviceEventContextHandle"/> are equal.
            </summary>
            <param name="value1">
            The first pointer or handle to compare.
            </param>
            <param name="value2">
            The second pointer or handle to compare.
            </param>
            <returns>
            <see langword="true"/> if <paramref name="value1"/> equals <paramref name="value2"/>; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="M:iMobileDevice.Recovery.RecoveryDeviceEventContextHandle.op_Inequality(iMobileDevice.Recovery.RecoveryDeviceEventContextHandle,iMobileDevice.Recovery.RecoveryDeviceEventContextHandle)">
            <summary>
            Determines whether two specified instances of <see cref="T:iMobileDevice.Recovery.RecoveryDeviceEventContextHandle"/> are not equal.
            </summary>
            <param name="value1">
            The first pointer or handle to compare.
            </param>
            <param name="value2">
            The second pointer or handle to compare.
            </param>
            <returns>
            <see langword="true"/> if <paramref name="value1"/> does not equal <paramref name="value2"/>; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="T:iMobileDevice.Recovery.RecoveryDeviceHandle">
            <summary>
            Represents a wrapper class for Recovery handles.
            </summary>
        </member>
        <member name="M:iMobileDevice.Recovery.RecoveryDeviceHandle.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Recovery.RecoveryDeviceHandle"/> class.
            </summary>
        </member>
        <member name="M:iMobileDevice.Recovery.RecoveryDeviceHandle.#ctor(System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Recovery.RecoveryDeviceHandle"/> class, specifying whether the handle is to be reliably released.
            </summary>
            <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>
        </member>
        <member name="P:iMobileDevice.Recovery.RecoveryDeviceHandle.Api">
            <summary>
            Gets or sets the API to use
            </summary>
        </member>
        <member name="P:iMobileDevice.Recovery.RecoveryDeviceHandle.Zero">
            <summary>
            Gets a value which represents a pointer or handle that has been initialized to zero.
            </summary>
        </member>
        <member name="M:iMobileDevice.Recovery.RecoveryDeviceHandle.ReleaseHandle">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.Recovery.RecoveryDeviceHandle.DangerousCreate(System.IntPtr,System.Boolean)">
            <summary>
            Creates a new <see cref="T:iMobileDevice.Recovery.RecoveryDeviceHandle"/> from a <see cref="T:System.IntPtr"/>.
            </summary>
            <param name="unsafeHandle">
            The underlying <see cref="T:System.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>
        </member>
        <member name="M:iMobileDevice.Recovery.RecoveryDeviceHandle.DangerousCreate(System.IntPtr)">
            <summary>
            Creates a new <see cref="T:iMobileDevice.Recovery.RecoveryDeviceHandle"/> from a <see cref="T:System.IntPtr"/>.
            </summary>
            <param name="unsafeHandle">
            The underlying <see cref="T:System.IntPtr"/>
            </param>
            <returns>
            </returns>
        </member>
        <member name="M:iMobileDevice.Recovery.RecoveryDeviceHandle.ToString">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.Recovery.RecoveryDeviceHandle.Equals(System.Object)">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.Recovery.RecoveryDeviceHandle.GetHashCode">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.Recovery.RecoveryDeviceHandle.op_Equality(iMobileDevice.Recovery.RecoveryDeviceHandle,iMobileDevice.Recovery.RecoveryDeviceHandle)">
            <summary>
            Determines whether two specified instances of <see cref="T:iMobileDevice.Recovery.RecoveryDeviceHandle"/> are equal.
            </summary>
            <param name="value1">
            The first pointer or handle to compare.
            </param>
            <param name="value2">
            The second pointer or handle to compare.
            </param>
            <returns>
            <see langword="true"/> if <paramref name="value1"/> equals <paramref name="value2"/>; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="M:iMobileDevice.Recovery.RecoveryDeviceHandle.op_Inequality(iMobileDevice.Recovery.RecoveryDeviceHandle,iMobileDevice.Recovery.RecoveryDeviceHandle)">
            <summary>
            Determines whether two specified instances of <see cref="T:iMobileDevice.Recovery.RecoveryDeviceHandle"/> are not equal.
            </summary>
            <param name="value1">
            The first pointer or handle to compare.
            </param>
            <param name="value2">
            The second pointer or handle to compare.
            </param>
            <returns>
            <see langword="true"/> if <paramref name="value1"/> does not equal <paramref name="value2"/>; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="T:iMobileDevice.Recovery.RecoveryException">
            Represents an exception that occurred when interacting with the Recovery API.
        </member>
        <member name="F:iMobileDevice.Recovery.RecoveryException.errorCode">
            <summary>
            Backing field for the <see cref="P:iMobileDevice.Recovery.RecoveryException.ErrorCode"/> property.
            </summary>
        </member>
        <member name="M:iMobileDevice.Recovery.RecoveryException.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Recovery.RecoveryException"/> class.
            </summary>
        </member>
        <member name="M:iMobileDevice.Recovery.RecoveryException.#ctor(iMobileDevice.Recovery.RecoveryError)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Recovery.RecoveryException"/> class with a specified error code.
            </summary>
            <param name="error">
            The error code of the error that occurred.
            </param>
        </member>
        <member name="M:iMobileDevice.Recovery.RecoveryException.#ctor(iMobileDevice.Recovery.RecoveryError,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Recovery.RecoveryException"/> class with a specified error code and error message.
            </summary>
            <param name="error">
            The error code of the error that occurred.
            </param>
            <param name="message">
            A message which describes the error.
            </param>
        </member>
        <member name="M:iMobileDevice.Recovery.RecoveryException.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Recovery.RecoveryException"/> class with a specified error message.
            </summary>
            <param name="message">
            The message that describes the error.
            </param>
        </member>
        <member name="M:iMobileDevice.Recovery.RecoveryException.#ctor(System.String,System.Exception)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Recovery.RecoveryException"/> class with a specified error message and a reference to the inner exception that is the cause of this exception.
            </summary>
            <param name="message">
            The error message that explains the reason for the exception.
            </param>
            <param name="inner">
            The exception that is the cause of the current exception, or <see langword="null"/> if no inner exception is specified.
            </param>
        </member>
        <member name="M:iMobileDevice.Recovery.RecoveryException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Recovery.RecoveryException"/> class with serialized data.
            </summary>
            <param name="info">
            The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds the serialized object data about the exception being thrown.
            </param>
            <param name="context">
            The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that contains contextual information about the source or destination.
            </param>
        </member>
        <member name="P:iMobileDevice.Recovery.RecoveryException.ErrorCode">
            <summary>
            Gets the error code that represents the error.
            </summary>
        </member>
        <member name="P:iMobileDevice.Restore.IRestoreApi.Parent">
            <summary>
            Gets or sets the <see cref="!:ILibiMobileDeviceApi"/> which owns this <see cref="N:iMobileDevice.Restore"/>.
            </summary>
        </member>
        <member name="M:iMobileDevice.Restore.IRestoreApi.restored_client_new(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Restore.RestoreClientHandle@,System.String)">
            <summary>
            Creates a new restored client for the device.
            </summary>
            <param name="device">
            The device to create a restored client for
            </param>
            <param name="client">
            The pointer to the location of the new restored_client
            </param>
            <param name="label">
            The label to use for communication. Usually the program name.
            </param>
            <returns>
            RESTORE_E_SUCCESS on success, RESTORE_E_INVALID_ARG when client is NULL
            </returns>
        </member>
        <member name="M:iMobileDevice.Restore.IRestoreApi.restored_client_free(System.IntPtr)">
            <summary>
            Closes the restored client session if one is running and frees up the
            restored_client struct.
            </summary>
            <param name="client">
            The restore client
            </param>
            <returns>
            RESTORE_E_SUCCESS on success, RESTORE_E_INVALID_ARG when client is NULL
            </returns>
        </member>
        <member name="M:iMobileDevice.Restore.IRestoreApi.restored_query_type(iMobileDevice.Restore.RestoreClientHandle,System.String@,System.UInt64@)">
            <summary>
            Query the type of the service daemon. Depending on whether the device is
            queried in normal mode or restore mode, different types will be returned.
            </summary>
            <param name="client">
            The restored client
            </param>
            <param name="type">
            The type returned by the service daemon. Pass NULL to ignore.
            </param>
            <param name="version">
            The restore protocol version. Pass NULL to ignore.
            </param>
            <returns>
            RESTORE_E_SUCCESS on success, RESTORE_E_INVALID_ARG when client is NULL
            </returns>
        </member>
        <member name="M:iMobileDevice.Restore.IRestoreApi.restored_query_value(iMobileDevice.Restore.RestoreClientHandle,System.String,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Queries a value from the device specified by a key.
            </summary>
            <param name="client">
            An initialized restored client.
            </param>
            <param name="key">
            The key name to request
            </param>
            <param name="value">
            A plist node representing the result value node
            </param>
            <returns>
            RESTORE_E_SUCCESS on success, RESTORE_E_INVALID_ARG when client is NULL, RESTORE_E_PLIST_ERROR if value for key can't be found
            </returns>
        </member>
        <member name="M:iMobileDevice.Restore.IRestoreApi.restored_get_value(iMobileDevice.Restore.RestoreClientHandle,System.String,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Retrieves a value from information plist specified by a key.
            </summary>
            <param name="client">
            An initialized restored client.
            </param>
            <param name="key">
            The key name to request or NULL to query for all keys
            </param>
            <param name="value">
            A plist node representing the result value node
            </param>
            <returns>
            RESTORE_E_SUCCESS on success, RESTORE_E_INVALID_ARG when client is NULL, RESTORE_E_PLIST_ERROR if value for key can't be found
            </returns>
        </member>
        <member name="M:iMobileDevice.Restore.IRestoreApi.restored_send(iMobileDevice.Restore.RestoreClientHandle,iMobileDevice.Plist.PlistHandle)">
            <summary>
            Sends a plist to restored.
            </summary>
            <param name="client">
            The restored client
            </param>
            <param name="plist">
            The plist to send
            </param>
            <returns>
            RESTORE_E_SUCCESS on success, RESTORE_E_INVALID_ARG when client or
            plist is NULL
            </returns>
            <remarks>
            This function is low-level and should only be used if you need to send
            a new type of message.
            </remarks>
        </member>
        <member name="M:iMobileDevice.Restore.IRestoreApi.restored_receive(iMobileDevice.Restore.RestoreClientHandle,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Receives a plist from restored.
            </summary>
            <param name="client">
            The restored client
            </param>
            <param name="plist">
            The plist to store the received data
            </param>
            <returns>
            RESTORE_E_SUCCESS on success, RESTORE_E_INVALID_ARG when client or
            plist is NULL
            </returns>
        </member>
        <member name="M:iMobileDevice.Restore.IRestoreApi.restored_goodbye(iMobileDevice.Restore.RestoreClientHandle)">
            <summary>
            Sends the Goodbye request to restored signaling the end of communication.
            </summary>
            <param name="client">
            The restore client
            </param>
            <returns>
            RESTORE_E_SUCCESS on success, RESTORE_E_INVALID_ARG when client is NULL,
            RESTORE_E_PLIST_ERROR if the device did not acknowledge the request
            </returns>
        </member>
        <member name="M:iMobileDevice.Restore.IRestoreApi.restored_start_restore(iMobileDevice.Restore.RestoreClientHandle,iMobileDevice.Plist.PlistHandle,System.UInt64)">
            <summary>
            Requests to start a restore and retrieve it's port on success.
            </summary>
            <param name="client">
            The restored client
            </param>
            <param name="options">
            PLIST_DICT with options for the restore process or NULL
            </param>
            <param name="version">
            the restore protocol version, see restored_query_type()
            </param>
            <returns>
            RESTORE_E_SUCCESS on success, RESTORE_E_INVALID_ARG if a parameter
            is NULL, RESTORE_E_START_RESTORE_FAILED if the request fails
            </returns>
        </member>
        <member name="M:iMobileDevice.Restore.IRestoreApi.restored_reboot(iMobileDevice.Restore.RestoreClientHandle)">
            <summary>
            Requests device to reboot.
            </summary>
            <param name="client">
            The restored client
            </param>
            <returns>
            RESTORE_E_SUCCESS on success, RESTORE_E_INVALID_ARG if a parameter
            is NULL
            </returns>
        </member>
        <member name="M:iMobileDevice.Restore.IRestoreApi.restored_client_set_label(iMobileDevice.Restore.RestoreClientHandle,System.String)">
            <summary>
            Sets the label to send for requests to restored.
            </summary>
            <param name="client">
            The restore client
            </param>
            <param name="label">
            The label to set or NULL to disable sending a label
            </param>
        </member>
        <member name="F:iMobileDevice.Restore.RestoreApi.parent">
            <summary>
            Backing field for the <see cref="P:iMobileDevice.Restore.RestoreApi.Parent"/> property
            </summary>
        </member>
        <member name="M:iMobileDevice.Restore.RestoreApi.#ctor(iMobileDevice.ILibiMobileDevice)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Restore.RestoreApi"/> class
            </summary>
            <param name="parent">
            The <see cref="!:ILibiMobileDeviceApi"/> which owns this <see cref="N:iMobileDevice.Restore"/>.
            </param>
        </member>
        <member name="P:iMobileDevice.Restore.RestoreApi.Parent">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.Restore.RestoreApi.restored_client_new(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Restore.RestoreClientHandle@,System.String)">
            <summary>
            Creates a new restored client for the device.
            </summary>
            <param name="device">
            The device to create a restored client for
            </param>
            <param name="client">
            The pointer to the location of the new restored_client
            </param>
            <param name="label">
            The label to use for communication. Usually the program name.
            </param>
            <returns>
            RESTORE_E_SUCCESS on success, RESTORE_E_INVALID_ARG when client is NULL
            </returns>
        </member>
        <member name="M:iMobileDevice.Restore.RestoreApi.restored_client_free(System.IntPtr)">
            <summary>
            Closes the restored client session if one is running and frees up the
            restored_client struct.
            </summary>
            <param name="client">
            The restore client
            </param>
            <returns>
            RESTORE_E_SUCCESS on success, RESTORE_E_INVALID_ARG when client is NULL
            </returns>
        </member>
        <member name="M:iMobileDevice.Restore.RestoreApi.restored_query_type(iMobileDevice.Restore.RestoreClientHandle,System.String@,System.UInt64@)">
            <summary>
            Query the type of the service daemon. Depending on whether the device is
            queried in normal mode or restore mode, different types will be returned.
            </summary>
            <param name="client">
            The restored client
            </param>
            <param name="type">
            The type returned by the service daemon. Pass NULL to ignore.
            </param>
            <param name="version">
            The restore protocol version. Pass NULL to ignore.
            </param>
            <returns>
            RESTORE_E_SUCCESS on success, RESTORE_E_INVALID_ARG when client is NULL
            </returns>
        </member>
        <member name="M:iMobileDevice.Restore.RestoreApi.restored_query_value(iMobileDevice.Restore.RestoreClientHandle,System.String,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Queries a value from the device specified by a key.
            </summary>
            <param name="client">
            An initialized restored client.
            </param>
            <param name="key">
            The key name to request
            </param>
            <param name="value">
            A plist node representing the result value node
            </param>
            <returns>
            RESTORE_E_SUCCESS on success, RESTORE_E_INVALID_ARG when client is NULL, RESTORE_E_PLIST_ERROR if value for key can't be found
            </returns>
        </member>
        <member name="M:iMobileDevice.Restore.RestoreApi.restored_get_value(iMobileDevice.Restore.RestoreClientHandle,System.String,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Retrieves a value from information plist specified by a key.
            </summary>
            <param name="client">
            An initialized restored client.
            </param>
            <param name="key">
            The key name to request or NULL to query for all keys
            </param>
            <param name="value">
            A plist node representing the result value node
            </param>
            <returns>
            RESTORE_E_SUCCESS on success, RESTORE_E_INVALID_ARG when client is NULL, RESTORE_E_PLIST_ERROR if value for key can't be found
            </returns>
        </member>
        <member name="M:iMobileDevice.Restore.RestoreApi.restored_send(iMobileDevice.Restore.RestoreClientHandle,iMobileDevice.Plist.PlistHandle)">
            <summary>
            Sends a plist to restored.
            </summary>
            <param name="client">
            The restored client
            </param>
            <param name="plist">
            The plist to send
            </param>
            <returns>
            RESTORE_E_SUCCESS on success, RESTORE_E_INVALID_ARG when client or
            plist is NULL
            </returns>
            <remarks>
            This function is low-level and should only be used if you need to send
            a new type of message.
            </remarks>
        </member>
        <member name="M:iMobileDevice.Restore.RestoreApi.restored_receive(iMobileDevice.Restore.RestoreClientHandle,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Receives a plist from restored.
            </summary>
            <param name="client">
            The restored client
            </param>
            <param name="plist">
            The plist to store the received data
            </param>
            <returns>
            RESTORE_E_SUCCESS on success, RESTORE_E_INVALID_ARG when client or
            plist is NULL
            </returns>
        </member>
        <member name="M:iMobileDevice.Restore.RestoreApi.restored_goodbye(iMobileDevice.Restore.RestoreClientHandle)">
            <summary>
            Sends the Goodbye request to restored signaling the end of communication.
            </summary>
            <param name="client">
            The restore client
            </param>
            <returns>
            RESTORE_E_SUCCESS on success, RESTORE_E_INVALID_ARG when client is NULL,
            RESTORE_E_PLIST_ERROR if the device did not acknowledge the request
            </returns>
        </member>
        <member name="M:iMobileDevice.Restore.RestoreApi.restored_start_restore(iMobileDevice.Restore.RestoreClientHandle,iMobileDevice.Plist.PlistHandle,System.UInt64)">
            <summary>
            Requests to start a restore and retrieve it's port on success.
            </summary>
            <param name="client">
            The restored client
            </param>
            <param name="options">
            PLIST_DICT with options for the restore process or NULL
            </param>
            <param name="version">
            the restore protocol version, see restored_query_type()
            </param>
            <returns>
            RESTORE_E_SUCCESS on success, RESTORE_E_INVALID_ARG if a parameter
            is NULL, RESTORE_E_START_RESTORE_FAILED if the request fails
            </returns>
        </member>
        <member name="M:iMobileDevice.Restore.RestoreApi.restored_reboot(iMobileDevice.Restore.RestoreClientHandle)">
            <summary>
            Requests device to reboot.
            </summary>
            <param name="client">
            The restored client
            </param>
            <returns>
            RESTORE_E_SUCCESS on success, RESTORE_E_INVALID_ARG if a parameter
            is NULL
            </returns>
        </member>
        <member name="M:iMobileDevice.Restore.RestoreApi.restored_client_set_label(iMobileDevice.Restore.RestoreClientHandle,System.String)">
            <summary>
            Sets the label to send for requests to restored.
            </summary>
            <param name="client">
            The restore client
            </param>
            <param name="label">
            The label to set or NULL to disable sending a label
            </param>
        </member>
        <member name="T:iMobileDevice.Restore.RestoreClientHandle">
            <summary>
            Represents a wrapper class for Restore handles.
            </summary>
        </member>
        <member name="M:iMobileDevice.Restore.RestoreClientHandle.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Restore.RestoreClientHandle"/> class.
            </summary>
        </member>
        <member name="M:iMobileDevice.Restore.RestoreClientHandle.#ctor(System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Restore.RestoreClientHandle"/> class, specifying whether the handle is to be reliably released.
            </summary>
            <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>
        </member>
        <member name="P:iMobileDevice.Restore.RestoreClientHandle.Api">
            <summary>
            Gets or sets the API to use
            </summary>
        </member>
        <member name="P:iMobileDevice.Restore.RestoreClientHandle.Zero">
            <summary>
            Gets a value which represents a pointer or handle that has been initialized to zero.
            </summary>
        </member>
        <member name="M:iMobileDevice.Restore.RestoreClientHandle.ReleaseHandle">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.Restore.RestoreClientHandle.DangerousCreate(System.IntPtr,System.Boolean)">
            <summary>
            Creates a new <see cref="T:iMobileDevice.Restore.RestoreClientHandle"/> from a <see cref="T:System.IntPtr"/>.
            </summary>
            <param name="unsafeHandle">
            The underlying <see cref="T:System.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>
        </member>
        <member name="M:iMobileDevice.Restore.RestoreClientHandle.DangerousCreate(System.IntPtr)">
            <summary>
            Creates a new <see cref="T:iMobileDevice.Restore.RestoreClientHandle"/> from a <see cref="T:System.IntPtr"/>.
            </summary>
            <param name="unsafeHandle">
            The underlying <see cref="T:System.IntPtr"/>
            </param>
            <returns>
            </returns>
        </member>
        <member name="M:iMobileDevice.Restore.RestoreClientHandle.ToString">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.Restore.RestoreClientHandle.Equals(System.Object)">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.Restore.RestoreClientHandle.GetHashCode">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.Restore.RestoreClientHandle.op_Equality(iMobileDevice.Restore.RestoreClientHandle,iMobileDevice.Restore.RestoreClientHandle)">
            <summary>
            Determines whether two specified instances of <see cref="T:iMobileDevice.Restore.RestoreClientHandle"/> are equal.
            </summary>
            <param name="value1">
            The first pointer or handle to compare.
            </param>
            <param name="value2">
            The second pointer or handle to compare.
            </param>
            <returns>
            <see langword="true"/> if <paramref name="value1"/> equals <paramref name="value2"/>; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="M:iMobileDevice.Restore.RestoreClientHandle.op_Inequality(iMobileDevice.Restore.RestoreClientHandle,iMobileDevice.Restore.RestoreClientHandle)">
            <summary>
            Determines whether two specified instances of <see cref="T:iMobileDevice.Restore.RestoreClientHandle"/> are not equal.
            </summary>
            <param name="value1">
            The first pointer or handle to compare.
            </param>
            <param name="value2">
            The second pointer or handle to compare.
            </param>
            <returns>
            <see langword="true"/> if <paramref name="value1"/> does not equal <paramref name="value2"/>; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="T:iMobileDevice.Restore.RestoreError">
            <summary>
            Error Codes 
            </summary>
        </member>
        <member name="T:iMobileDevice.Restore.RestoreException">
            Represents an exception that occurred when interacting with the Restore API.
        </member>
        <member name="F:iMobileDevice.Restore.RestoreException.errorCode">
            <summary>
            Backing field for the <see cref="P:iMobileDevice.Restore.RestoreException.ErrorCode"/> property.
            </summary>
        </member>
        <member name="M:iMobileDevice.Restore.RestoreException.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Restore.RestoreException"/> class.
            </summary>
        </member>
        <member name="M:iMobileDevice.Restore.RestoreException.#ctor(iMobileDevice.Restore.RestoreError)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Restore.RestoreException"/> class with a specified error code.
            </summary>
            <param name="error">
            The error code of the error that occurred.
            </param>
        </member>
        <member name="M:iMobileDevice.Restore.RestoreException.#ctor(iMobileDevice.Restore.RestoreError,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Restore.RestoreException"/> class with a specified error code and error message.
            </summary>
            <param name="error">
            The error code of the error that occurred.
            </param>
            <param name="message">
            A message which describes the error.
            </param>
        </member>
        <member name="M:iMobileDevice.Restore.RestoreException.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Restore.RestoreException"/> class with a specified error message.
            </summary>
            <param name="message">
            The message that describes the error.
            </param>
        </member>
        <member name="M:iMobileDevice.Restore.RestoreException.#ctor(System.String,System.Exception)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Restore.RestoreException"/> class with a specified error message and a reference to the inner exception that is the cause of this exception.
            </summary>
            <param name="message">
            The error message that explains the reason for the exception.
            </param>
            <param name="inner">
            The exception that is the cause of the current exception, or <see langword="null"/> if no inner exception is specified.
            </param>
        </member>
        <member name="M:iMobileDevice.Restore.RestoreException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Restore.RestoreException"/> class with serialized data.
            </summary>
            <param name="info">
            The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds the serialized object data about the exception being thrown.
            </param>
            <param name="context">
            The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that contains contextual information about the source or destination.
            </param>
        </member>
        <member name="P:iMobileDevice.Restore.RestoreException.ErrorCode">
            <summary>
            Gets the error code that represents the error.
            </summary>
        </member>
        <member name="M:iMobileDevice.Restore.RestoreNativeMethods.restored_client_new(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Restore.RestoreClientHandle@,System.String)">
            <summary>
            Creates a new restored client for the device.
            </summary>
            <param name="device">
            The device to create a restored client for
            </param>
            <param name="client">
            The pointer to the location of the new restored_client
            </param>
            <param name="label">
            The label to use for communication. Usually the program name.
            </param>
            <returns>
            RESTORE_E_SUCCESS on success, RESTORE_E_INVALID_ARG when client is NULL
            </returns>
        </member>
        <member name="M:iMobileDevice.Restore.RestoreNativeMethods.restored_client_free(System.IntPtr)">
            <summary>
            Closes the restored client session if one is running and frees up the
            restored_client struct.
            </summary>
            <param name="client">
            The restore client
            </param>
            <returns>
            RESTORE_E_SUCCESS on success, RESTORE_E_INVALID_ARG when client is NULL
            </returns>
        </member>
        <member name="M:iMobileDevice.Restore.RestoreNativeMethods.restored_query_type(iMobileDevice.Restore.RestoreClientHandle,System.IntPtr@,System.UInt64@)">
            <summary>
            Query the type of the service daemon. Depending on whether the device is
            queried in normal mode or restore mode, different types will be returned.
            </summary>
            <param name="client">
            The restored client
            </param>
            <param name="type">
            The type returned by the service daemon. Pass NULL to ignore.
            </param>
            <param name="version">
            The restore protocol version. Pass NULL to ignore.
            </param>
            <returns>
            RESTORE_E_SUCCESS on success, RESTORE_E_INVALID_ARG when client is NULL
            </returns>
        </member>
        <member name="M:iMobileDevice.Restore.RestoreNativeMethods.restored_query_value(iMobileDevice.Restore.RestoreClientHandle,System.String,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Queries a value from the device specified by a key.
            </summary>
            <param name="client">
            An initialized restored client.
            </param>
            <param name="key">
            The key name to request
            </param>
            <param name="value">
            A plist node representing the result value node
            </param>
            <returns>
            RESTORE_E_SUCCESS on success, RESTORE_E_INVALID_ARG when client is NULL, RESTORE_E_PLIST_ERROR if value for key can't be found
            </returns>
        </member>
        <member name="M:iMobileDevice.Restore.RestoreNativeMethods.restored_get_value(iMobileDevice.Restore.RestoreClientHandle,System.String,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Retrieves a value from information plist specified by a key.
            </summary>
            <param name="client">
            An initialized restored client.
            </param>
            <param name="key">
            The key name to request or NULL to query for all keys
            </param>
            <param name="value">
            A plist node representing the result value node
            </param>
            <returns>
            RESTORE_E_SUCCESS on success, RESTORE_E_INVALID_ARG when client is NULL, RESTORE_E_PLIST_ERROR if value for key can't be found
            </returns>
        </member>
        <member name="M:iMobileDevice.Restore.RestoreNativeMethods.restored_send(iMobileDevice.Restore.RestoreClientHandle,iMobileDevice.Plist.PlistHandle)">
            <summary>
            Sends a plist to restored.
            </summary>
            <param name="client">
            The restored client
            </param>
            <param name="plist">
            The plist to send
            </param>
            <returns>
            RESTORE_E_SUCCESS on success, RESTORE_E_INVALID_ARG when client or
            plist is NULL
            </returns>
            <remarks>
            This function is low-level and should only be used if you need to send
            a new type of message.
            </remarks>
        </member>
        <member name="M:iMobileDevice.Restore.RestoreNativeMethods.restored_receive(iMobileDevice.Restore.RestoreClientHandle,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Receives a plist from restored.
            </summary>
            <param name="client">
            The restored client
            </param>
            <param name="plist">
            The plist to store the received data
            </param>
            <returns>
            RESTORE_E_SUCCESS on success, RESTORE_E_INVALID_ARG when client or
            plist is NULL
            </returns>
        </member>
        <member name="M:iMobileDevice.Restore.RestoreNativeMethods.restored_goodbye(iMobileDevice.Restore.RestoreClientHandle)">
            <summary>
            Sends the Goodbye request to restored signaling the end of communication.
            </summary>
            <param name="client">
            The restore client
            </param>
            <returns>
            RESTORE_E_SUCCESS on success, RESTORE_E_INVALID_ARG when client is NULL,
            RESTORE_E_PLIST_ERROR if the device did not acknowledge the request
            </returns>
        </member>
        <member name="M:iMobileDevice.Restore.RestoreNativeMethods.restored_start_restore(iMobileDevice.Restore.RestoreClientHandle,iMobileDevice.Plist.PlistHandle,System.UInt64)">
            <summary>
            Requests to start a restore and retrieve it's port on success.
            </summary>
            <param name="client">
            The restored client
            </param>
            <param name="options">
            PLIST_DICT with options for the restore process or NULL
            </param>
            <param name="version">
            the restore protocol version, see restored_query_type()
            </param>
            <returns>
            RESTORE_E_SUCCESS on success, RESTORE_E_INVALID_ARG if a parameter
            is NULL, RESTORE_E_START_RESTORE_FAILED if the request fails
            </returns>
        </member>
        <member name="M:iMobileDevice.Restore.RestoreNativeMethods.restored_reboot(iMobileDevice.Restore.RestoreClientHandle)">
            <summary>
            Requests device to reboot.
            </summary>
            <param name="client">
            The restored client
            </param>
            <returns>
            RESTORE_E_SUCCESS on success, RESTORE_E_INVALID_ARG if a parameter
            is NULL
            </returns>
        </member>
        <member name="M:iMobileDevice.Restore.RestoreNativeMethods.restored_client_set_label(iMobileDevice.Restore.RestoreClientHandle,System.String)">
            <summary>
            Sets the label to send for requests to restored.
            </summary>
            <param name="client">
            The restore client
            </param>
            <param name="label">
            The label to set or NULL to disable sending a label
            </param>
        </member>
        <member name="P:iMobileDevice.Screenshotr.IScreenshotrApi.Parent">
            <summary>
            Gets or sets the <see cref="!:ILibiMobileDeviceApi"/> which owns this <see cref="N:iMobileDevice.Screenshotr"/>.
            </summary>
        </member>
        <member name="M:iMobileDevice.Screenshotr.IScreenshotrApi.screenshotr_client_new(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Lockdown.LockdownServiceDescriptorHandle,iMobileDevice.Screenshotr.ScreenshotrClientHandle@)">
            <summary>
            Connects to the screenshotr 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">
            Pointer that will be set to a newly allocated
            screenshotr_client_t upon successful return.
            </param>
            <returns>
            SCREENSHOTR_E_SUCCESS on success, SCREENSHOTR_E_INVALID ARG if one
            or more parameters are invalid, or SCREENSHOTR_E_CONN_FAILED if the
            connection to the device could not be established.
            </returns>
            <remarks>
            This service is only available if a developer disk image has been
            mounted.
            </remarks>
        </member>
        <member name="M:iMobileDevice.Screenshotr.IScreenshotrApi.screenshotr_client_start_service(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Screenshotr.ScreenshotrClientHandle@,System.String)">
            <summary>
            Starts a new screenshotr 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
            screenshotr_client_t upon successful return. Must be freed using
            screenshotr_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>
            SCREENSHOTR_E_SUCCESS on success, or an SCREENSHOTR_E_* error
            code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Screenshotr.IScreenshotrApi.screenshotr_client_free(System.IntPtr)">
            <summary>
            Disconnects a screenshotr client from the device and frees up the
            screenshotr client data.
            </summary>
            <param name="client">
            The screenshotr client to disconnect and free.
            </param>
            <returns>
            SCREENSHOTR_E_SUCCESS on success, or SCREENSHOTR_E_INVALID_ARG
            if client is NULL.
            </returns>
        </member>
        <member name="M:iMobileDevice.Screenshotr.IScreenshotrApi.screenshotr_take_screenshot(iMobileDevice.Screenshotr.ScreenshotrClientHandle,System.IntPtr@,System.UInt64@)">
            <summary>
            Get a screen shot from the connected device.
            </summary>
            <param name="client">
            The connection screenshotr service client.
            </param>
            <param name="imgdata">
            Pointer that will point to a newly allocated buffer
            containing TIFF image data upon successful return. It is up to the
            caller to free the memory.
            </param>
            <param name="imgsize">
            Pointer to a uint64_t that will be set to the size of the
            buffer imgdata points to upon successful return.
            </param>
            <returns>
            SCREENSHOTR_E_SUCCESS on success, SCREENSHOTR_E_INVALID_ARG if
            one or more parameters are invalid, or another error code if an
            error occurred.
            </returns>
        </member>
        <member name="M:iMobileDevice.Screenshotr.IScreenshotrApi.screenshotr_screenshot_free(System.IntPtr)">
            <summary>
            Frees the memory used by a screen shot
            </summary>
            <param name="imgdata">
            The screenshot
            </param>
            <returns>
            SCREENSHOTR_E_SUCCESS on success
            </returns>
        </member>
        <member name="F:iMobileDevice.Screenshotr.ScreenshotrApi.parent">
            <summary>
            Backing field for the <see cref="P:iMobileDevice.Screenshotr.ScreenshotrApi.Parent"/> property
            </summary>
        </member>
        <member name="M:iMobileDevice.Screenshotr.ScreenshotrApi.#ctor(iMobileDevice.ILibiMobileDevice)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Screenshotr.ScreenshotrApi"/> class
            </summary>
            <param name="parent">
            The <see cref="!:ILibiMobileDeviceApi"/> which owns this <see cref="N:iMobileDevice.Screenshotr"/>.
            </param>
        </member>
        <member name="P:iMobileDevice.Screenshotr.ScreenshotrApi.Parent">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.Screenshotr.ScreenshotrApi.screenshotr_client_new(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Lockdown.LockdownServiceDescriptorHandle,iMobileDevice.Screenshotr.ScreenshotrClientHandle@)">
            <summary>
            Connects to the screenshotr 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">
            Pointer that will be set to a newly allocated
            screenshotr_client_t upon successful return.
            </param>
            <returns>
            SCREENSHOTR_E_SUCCESS on success, SCREENSHOTR_E_INVALID ARG if one
            or more parameters are invalid, or SCREENSHOTR_E_CONN_FAILED if the
            connection to the device could not be established.
            </returns>
            <remarks>
            This service is only available if a developer disk image has been
            mounted.
            </remarks>
        </member>
        <member name="M:iMobileDevice.Screenshotr.ScreenshotrApi.screenshotr_client_start_service(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Screenshotr.ScreenshotrClientHandle@,System.String)">
            <summary>
            Starts a new screenshotr 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
            screenshotr_client_t upon successful return. Must be freed using
            screenshotr_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>
            SCREENSHOTR_E_SUCCESS on success, or an SCREENSHOTR_E_* error
            code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Screenshotr.ScreenshotrApi.screenshotr_client_free(System.IntPtr)">
            <summary>
            Disconnects a screenshotr client from the device and frees up the
            screenshotr client data.
            </summary>
            <param name="client">
            The screenshotr client to disconnect and free.
            </param>
            <returns>
            SCREENSHOTR_E_SUCCESS on success, or SCREENSHOTR_E_INVALID_ARG
            if client is NULL.
            </returns>
        </member>
        <member name="M:iMobileDevice.Screenshotr.ScreenshotrApi.screenshotr_take_screenshot(iMobileDevice.Screenshotr.ScreenshotrClientHandle,System.IntPtr@,System.UInt64@)">
            <summary>
            Get a screen shot from the connected device.
            </summary>
            <param name="client">
            The connection screenshotr service client.
            </param>
            <param name="imgdata">
            Pointer that will point to a newly allocated buffer
            containing TIFF image data upon successful return. It is up to the
            caller to free the memory.
            </param>
            <param name="imgsize">
            Pointer to a uint64_t that will be set to the size of the
            buffer imgdata points to upon successful return.
            </param>
            <returns>
            SCREENSHOTR_E_SUCCESS on success, SCREENSHOTR_E_INVALID_ARG if
            one or more parameters are invalid, or another error code if an
            error occurred.
            </returns>
        </member>
        <member name="M:iMobileDevice.Screenshotr.ScreenshotrApi.screenshotr_screenshot_free(System.IntPtr)">
            <summary>
            Frees the memory used by a screen shot
            </summary>
            <param name="imgdata">
            The screenshot
            </param>
            <returns>
            SCREENSHOTR_E_SUCCESS on success
            </returns>
        </member>
        <member name="T:iMobileDevice.Screenshotr.ScreenshotrClientHandle">
            <summary>
            Represents a wrapper class for Screenshotr handles.
            </summary>
        </member>
        <member name="M:iMobileDevice.Screenshotr.ScreenshotrClientHandle.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Screenshotr.ScreenshotrClientHandle"/> class.
            </summary>
        </member>
        <member name="M:iMobileDevice.Screenshotr.ScreenshotrClientHandle.#ctor(System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Screenshotr.ScreenshotrClientHandle"/> class, specifying whether the handle is to be reliably released.
            </summary>
            <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>
        </member>
        <member name="P:iMobileDevice.Screenshotr.ScreenshotrClientHandle.Api">
            <summary>
            Gets or sets the API to use
            </summary>
        </member>
        <member name="P:iMobileDevice.Screenshotr.ScreenshotrClientHandle.Zero">
            <summary>
            Gets a value which represents a pointer or handle that has been initialized to zero.
            </summary>
        </member>
        <member name="M:iMobileDevice.Screenshotr.ScreenshotrClientHandle.ReleaseHandle">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.Screenshotr.ScreenshotrClientHandle.DangerousCreate(System.IntPtr,System.Boolean)">
            <summary>
            Creates a new <see cref="T:iMobileDevice.Screenshotr.ScreenshotrClientHandle"/> from a <see cref="T:System.IntPtr"/>.
            </summary>
            <param name="unsafeHandle">
            The underlying <see cref="T:System.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>
        </member>
        <member name="M:iMobileDevice.Screenshotr.ScreenshotrClientHandle.DangerousCreate(System.IntPtr)">
            <summary>
            Creates a new <see cref="T:iMobileDevice.Screenshotr.ScreenshotrClientHandle"/> from a <see cref="T:System.IntPtr"/>.
            </summary>
            <param name="unsafeHandle">
            The underlying <see cref="T:System.IntPtr"/>
            </param>
            <returns>
            </returns>
        </member>
        <member name="M:iMobileDevice.Screenshotr.ScreenshotrClientHandle.ToString">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.Screenshotr.ScreenshotrClientHandle.Equals(System.Object)">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.Screenshotr.ScreenshotrClientHandle.GetHashCode">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.Screenshotr.ScreenshotrClientHandle.op_Equality(iMobileDevice.Screenshotr.ScreenshotrClientHandle,iMobileDevice.Screenshotr.ScreenshotrClientHandle)">
            <summary>
            Determines whether two specified instances of <see cref="T:iMobileDevice.Screenshotr.ScreenshotrClientHandle"/> are equal.
            </summary>
            <param name="value1">
            The first pointer or handle to compare.
            </param>
            <param name="value2">
            The second pointer or handle to compare.
            </param>
            <returns>
            <see langword="true"/> if <paramref name="value1"/> equals <paramref name="value2"/>; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="M:iMobileDevice.Screenshotr.ScreenshotrClientHandle.op_Inequality(iMobileDevice.Screenshotr.ScreenshotrClientHandle,iMobileDevice.Screenshotr.ScreenshotrClientHandle)">
            <summary>
            Determines whether two specified instances of <see cref="T:iMobileDevice.Screenshotr.ScreenshotrClientHandle"/> are not equal.
            </summary>
            <param name="value1">
            The first pointer or handle to compare.
            </param>
            <param name="value2">
            The second pointer or handle to compare.
            </param>
            <returns>
            <see langword="true"/> if <paramref name="value1"/> does not equal <paramref name="value2"/>; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="T:iMobileDevice.Screenshotr.ScreenshotrError">
            <summary>
            Error Codes 
            </summary>
        </member>
        <member name="T:iMobileDevice.Screenshotr.ScreenshotrException">
            Represents an exception that occurred when interacting with the Screenshotr API.
        </member>
        <member name="F:iMobileDevice.Screenshotr.ScreenshotrException.errorCode">
            <summary>
            Backing field for the <see cref="P:iMobileDevice.Screenshotr.ScreenshotrException.ErrorCode"/> property.
            </summary>
        </member>
        <member name="M:iMobileDevice.Screenshotr.ScreenshotrException.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Screenshotr.ScreenshotrException"/> class.
            </summary>
        </member>
        <member name="M:iMobileDevice.Screenshotr.ScreenshotrException.#ctor(iMobileDevice.Screenshotr.ScreenshotrError)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Screenshotr.ScreenshotrException"/> class with a specified error code.
            </summary>
            <param name="error">
            The error code of the error that occurred.
            </param>
        </member>
        <member name="M:iMobileDevice.Screenshotr.ScreenshotrException.#ctor(iMobileDevice.Screenshotr.ScreenshotrError,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Screenshotr.ScreenshotrException"/> class with a specified error code and error message.
            </summary>
            <param name="error">
            The error code of the error that occurred.
            </param>
            <param name="message">
            A message which describes the error.
            </param>
        </member>
        <member name="M:iMobileDevice.Screenshotr.ScreenshotrException.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Screenshotr.ScreenshotrException"/> class with a specified error message.
            </summary>
            <param name="message">
            The message that describes the error.
            </param>
        </member>
        <member name="M:iMobileDevice.Screenshotr.ScreenshotrException.#ctor(System.String,System.Exception)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Screenshotr.ScreenshotrException"/> class with a specified error message and a reference to the inner exception that is the cause of this exception.
            </summary>
            <param name="message">
            The error message that explains the reason for the exception.
            </param>
            <param name="inner">
            The exception that is the cause of the current exception, or <see langword="null"/> if no inner exception is specified.
            </param>
        </member>
        <member name="M:iMobileDevice.Screenshotr.ScreenshotrException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Screenshotr.ScreenshotrException"/> class with serialized data.
            </summary>
            <param name="info">
            The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds the serialized object data about the exception being thrown.
            </param>
            <param name="context">
            The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that contains contextual information about the source or destination.
            </param>
        </member>
        <member name="P:iMobileDevice.Screenshotr.ScreenshotrException.ErrorCode">
            <summary>
            Gets the error code that represents the error.
            </summary>
        </member>
        <member name="M:iMobileDevice.Screenshotr.ScreenshotrNativeMethods.screenshotr_client_new(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Lockdown.LockdownServiceDescriptorHandle,iMobileDevice.Screenshotr.ScreenshotrClientHandle@)">
            <summary>
            Connects to the screenshotr 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">
            Pointer that will be set to a newly allocated
            screenshotr_client_t upon successful return.
            </param>
            <returns>
            SCREENSHOTR_E_SUCCESS on success, SCREENSHOTR_E_INVALID ARG if one
            or more parameters are invalid, or SCREENSHOTR_E_CONN_FAILED if the
            connection to the device could not be established.
            </returns>
            <remarks>
            This service is only available if a developer disk image has been
            mounted.
            </remarks>
        </member>
        <member name="M:iMobileDevice.Screenshotr.ScreenshotrNativeMethods.screenshotr_client_start_service(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Screenshotr.ScreenshotrClientHandle@,System.String)">
            <summary>
            Starts a new screenshotr 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
            screenshotr_client_t upon successful return. Must be freed using
            screenshotr_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>
            SCREENSHOTR_E_SUCCESS on success, or an SCREENSHOTR_E_* error
            code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Screenshotr.ScreenshotrNativeMethods.screenshotr_client_free(System.IntPtr)">
            <summary>
            Disconnects a screenshotr client from the device and frees up the
            screenshotr client data.
            </summary>
            <param name="client">
            The screenshotr client to disconnect and free.
            </param>
            <returns>
            SCREENSHOTR_E_SUCCESS on success, or SCREENSHOTR_E_INVALID_ARG
            if client is NULL.
            </returns>
        </member>
        <member name="M:iMobileDevice.Screenshotr.ScreenshotrNativeMethods.screenshotr_take_screenshot(iMobileDevice.Screenshotr.ScreenshotrClientHandle,System.IntPtr@,System.UInt64@)">
            <summary>
            Get a screen shot from the connected device.
            </summary>
            <param name="client">
            The connection screenshotr service client.
            </param>
            <param name="imgdata">
            Pointer that will point to a newly allocated buffer
            containing TIFF image data upon successful return. It is up to the
            caller to free the memory.
            </param>
            <param name="imgsize">
            Pointer to a uint64_t that will be set to the size of the
            buffer imgdata points to upon successful return.
            </param>
            <returns>
            SCREENSHOTR_E_SUCCESS on success, SCREENSHOTR_E_INVALID_ARG if
            one or more parameters are invalid, or another error code if an
            error occurred.
            </returns>
        </member>
        <member name="M:iMobileDevice.Screenshotr.ScreenshotrNativeMethods.screenshotr_screenshot_free(System.IntPtr)">
            <summary>
            Frees the memory used by a screen shot
            </summary>
            <param name="imgdata">
            The screenshot
            </param>
            <returns>
            SCREENSHOTR_E_SUCCESS on success
            </returns>
        </member>
        <member name="P:iMobileDevice.Service.IServiceApi.Parent">
            <summary>
            Gets or sets the <see cref="!:ILibiMobileDeviceApi"/> which owns this <see cref="N:iMobileDevice.Service"/>.
            </summary>
        </member>
        <member name="M:iMobileDevice.Service.IServiceApi.service_client_new(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Lockdown.LockdownServiceDescriptorHandle,iMobileDevice.Service.ServiceClientHandle@)">
            <summary>
            Creates a new service for the specified service descriptor.
            </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">
            Pointer that will be set to a newly allocated
            service_client_t upon successful return.
            </param>
            <returns>
            SERVICE_E_SUCCESS on success,
            SERVICE_E_INVALID_ARG when one of the arguments is invalid,
            or SERVICE_E_MUX_ERROR when connecting to the device failed.
            </returns>
        </member>
        <member name="M:iMobileDevice.Service.IServiceApi.service_client_factory_start_service(iMobileDevice.iDevice.iDeviceHandle,System.String,System.IntPtr@,System.String,iMobileDevice.Service.ConstructorFunc@,System.Int32@)">
            <summary>
            Starts a new service on the specified device with given name and
            connects to it.
            </summary>
            <param name="device">
            The device to connect to.
            </param>
            <param name="service_name">
            The name of the service to start.
            </param>
            <param name="client">
            Pointer that will point to a newly allocated service_client_t
            upon successful return. Must be freed using service_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>
            SERVICE_E_SUCCESS on success, or a SERVICE_E_* error code
            otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Service.IServiceApi.service_client_free(System.IntPtr)">
            <summary>
            Frees a service instance.
            </summary>
            <param name="client">
            The service instance to free.
            </param>
            <returns>
            SERVICE_E_SUCCESS on success,
            SERVICE_E_INVALID_ARG when client is invalid, or a
            SERVICE_E_UNKNOWN_ERROR when another error occurred.
            </returns>
        </member>
        <member name="M:iMobileDevice.Service.IServiceApi.service_send(iMobileDevice.Service.ServiceClientHandle,System.Byte[],System.UInt32,System.UInt32@)">
            <summary>
            Sends data using the given service client.
            </summary>
            <param name="client">
            The service client to use for sending.
            </param>
            <param name="data">
            Data to send
            </param>
            <param name="size">
            Size of the data to send
            </param>
            <param name="sent">
            Number of bytes sent (can be NULL to ignore)
            </param>
            <returns>
            SERVICE_E_SUCCESS on success,
            SERVICE_E_INVALID_ARG when one or more parameters are
            invalid, or SERVICE_E_UNKNOWN_ERROR when an unspecified
            error occurs.
            </returns>
        </member>
        <member name="M:iMobileDevice.Service.IServiceApi.service_receive_with_timeout(iMobileDevice.Service.ServiceClientHandle,System.Byte[],System.UInt32,System.UInt32@,System.UInt32)">
            <summary>
            Receives data using the given service client with specified timeout.
            </summary>
            <param name="client">
            The service client to use for receiving
            </param>
            <param name="data">
            Buffer that will be filled with the data received
            </param>
            <param name="size">
            Number of bytes to receive
            </param>
            <param name="received">
            Number of bytes received (can be NULL to ignore)
            </param>
            <param name="timeout">
            Maximum time in milliseconds to wait for data.
            </param>
            <returns>
            SERVICE_E_SUCCESS on success,
            SERVICE_E_INVALID_ARG when one or more parameters are
            invalid, SERVICE_E_MUX_ERROR when a communication error
            occurs, or SERVICE_E_UNKNOWN_ERROR when an unspecified
            error occurs.
            </returns>
        </member>
        <member name="M:iMobileDevice.Service.IServiceApi.service_receive(iMobileDevice.Service.ServiceClientHandle,System.Byte[],System.UInt32,System.UInt32@)">
            <summary>
            Receives data using the given service client.
            </summary>
            <param name="client">
            The service client to use for receiving
            </param>
            <param name="data">
            Buffer that will be filled with the data received
            </param>
            <param name="size">
            Number of bytes to receive
            </param>
            <param name="received">
            Number of bytes received (can be NULL to ignore)
            </param>
            <returns>
            SERVICE_E_SUCCESS on success,
            SERVICE_E_INVALID_ARG when one or more parameters are
            invalid, SERVICE_E_NOT_ENOUGH_DATA when not enough data
            received, SERVICE_E_TIMEOUT when the connection times out,
            SERVICE_E_MUX_ERROR when a communication error
            occurs, or SERVICE_E_UNKNOWN_ERROR when an unspecified
            error occurs.
            </returns>
        </member>
        <member name="M:iMobileDevice.Service.IServiceApi.service_enable_ssl(iMobileDevice.Service.ServiceClientHandle)">
            <summary>
            Enable SSL for the given service client.
            </summary>
            <param name="client">
            The connected service client for that SSL should be enabled.
            </param>
            <returns>
            SERVICE_E_SUCCESS on success,
            SERVICE_E_INVALID_ARG if client or client->connection is
            NULL, SERVICE_E_NOT_ENOUGH_DATA when not enough data
            received, SERVICE_E_TIMEOUT when the connection times out,
            SERVICE_E_SSL_ERROR when SSL could not be enabled,
            or SERVICE_E_UNKNOWN_ERROR otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Service.IServiceApi.service_disable_ssl(iMobileDevice.Service.ServiceClientHandle)">
            <summary>
            Disable SSL for the given service client.
            </summary>
            <param name="client">
            The connected service client for that SSL should be disabled.
            </param>
            <returns>
            SERVICE_E_SUCCESS on success,
            SERVICE_E_INVALID_ARG if client or client->connection is
            NULL, or SERVICE_E_UNKNOWN_ERROR otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Service.IServiceApi.service_disable_bypass_ssl(iMobileDevice.Service.ServiceClientHandle,System.Char)">
            <summary>
            Disable SSL for the given service client without sending SSL terminate messages.
            </summary>
            <param name="client">
            The connected service client for that SSL should be disabled.
            </param>
            <returns>
            SERVICE_E_SUCCESS on success,
            SERVICE_E_INVALID_ARG if client or client->connection is
            NULL, or SERVICE_E_UNKNOWN_ERROR otherwise.
            </returns>
        </member>
        <member name="F:iMobileDevice.Service.ServiceApi.parent">
            <summary>
            Backing field for the <see cref="P:iMobileDevice.Service.ServiceApi.Parent"/> property
            </summary>
        </member>
        <member name="M:iMobileDevice.Service.ServiceApi.#ctor(iMobileDevice.ILibiMobileDevice)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Service.ServiceApi"/> class
            </summary>
            <param name="parent">
            The <see cref="!:ILibiMobileDeviceApi"/> which owns this <see cref="N:iMobileDevice.Service"/>.
            </param>
        </member>
        <member name="P:iMobileDevice.Service.ServiceApi.Parent">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.Service.ServiceApi.service_client_new(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Lockdown.LockdownServiceDescriptorHandle,iMobileDevice.Service.ServiceClientHandle@)">
            <summary>
            Creates a new service for the specified service descriptor.
            </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">
            Pointer that will be set to a newly allocated
            service_client_t upon successful return.
            </param>
            <returns>
            SERVICE_E_SUCCESS on success,
            SERVICE_E_INVALID_ARG when one of the arguments is invalid,
            or SERVICE_E_MUX_ERROR when connecting to the device failed.
            </returns>
        </member>
        <member name="M:iMobileDevice.Service.ServiceApi.service_client_factory_start_service(iMobileDevice.iDevice.iDeviceHandle,System.String,System.IntPtr@,System.String,iMobileDevice.Service.ConstructorFunc@,System.Int32@)">
            <summary>
            Starts a new service on the specified device with given name and
            connects to it.
            </summary>
            <param name="device">
            The device to connect to.
            </param>
            <param name="service_name">
            The name of the service to start.
            </param>
            <param name="client">
            Pointer that will point to a newly allocated service_client_t
            upon successful return. Must be freed using service_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>
            SERVICE_E_SUCCESS on success, or a SERVICE_E_* error code
            otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Service.ServiceApi.service_client_free(System.IntPtr)">
            <summary>
            Frees a service instance.
            </summary>
            <param name="client">
            The service instance to free.
            </param>
            <returns>
            SERVICE_E_SUCCESS on success,
            SERVICE_E_INVALID_ARG when client is invalid, or a
            SERVICE_E_UNKNOWN_ERROR when another error occurred.
            </returns>
        </member>
        <member name="M:iMobileDevice.Service.ServiceApi.service_send(iMobileDevice.Service.ServiceClientHandle,System.Byte[],System.UInt32,System.UInt32@)">
            <summary>
            Sends data using the given service client.
            </summary>
            <param name="client">
            The service client to use for sending.
            </param>
            <param name="data">
            Data to send
            </param>
            <param name="size">
            Size of the data to send
            </param>
            <param name="sent">
            Number of bytes sent (can be NULL to ignore)
            </param>
            <returns>
            SERVICE_E_SUCCESS on success,
            SERVICE_E_INVALID_ARG when one or more parameters are
            invalid, or SERVICE_E_UNKNOWN_ERROR when an unspecified
            error occurs.
            </returns>
        </member>
        <member name="M:iMobileDevice.Service.ServiceApi.service_receive_with_timeout(iMobileDevice.Service.ServiceClientHandle,System.Byte[],System.UInt32,System.UInt32@,System.UInt32)">
            <summary>
            Receives data using the given service client with specified timeout.
            </summary>
            <param name="client">
            The service client to use for receiving
            </param>
            <param name="data">
            Buffer that will be filled with the data received
            </param>
            <param name="size">
            Number of bytes to receive
            </param>
            <param name="received">
            Number of bytes received (can be NULL to ignore)
            </param>
            <param name="timeout">
            Maximum time in milliseconds to wait for data.
            </param>
            <returns>
            SERVICE_E_SUCCESS on success,
            SERVICE_E_INVALID_ARG when one or more parameters are
            invalid, SERVICE_E_MUX_ERROR when a communication error
            occurs, or SERVICE_E_UNKNOWN_ERROR when an unspecified
            error occurs.
            </returns>
        </member>
        <member name="M:iMobileDevice.Service.ServiceApi.service_receive(iMobileDevice.Service.ServiceClientHandle,System.Byte[],System.UInt32,System.UInt32@)">
            <summary>
            Receives data using the given service client.
            </summary>
            <param name="client">
            The service client to use for receiving
            </param>
            <param name="data">
            Buffer that will be filled with the data received
            </param>
            <param name="size">
            Number of bytes to receive
            </param>
            <param name="received">
            Number of bytes received (can be NULL to ignore)
            </param>
            <returns>
            SERVICE_E_SUCCESS on success,
            SERVICE_E_INVALID_ARG when one or more parameters are
            invalid, SERVICE_E_NOT_ENOUGH_DATA when not enough data
            received, SERVICE_E_TIMEOUT when the connection times out,
            SERVICE_E_MUX_ERROR when a communication error
            occurs, or SERVICE_E_UNKNOWN_ERROR when an unspecified
            error occurs.
            </returns>
        </member>
        <member name="M:iMobileDevice.Service.ServiceApi.service_enable_ssl(iMobileDevice.Service.ServiceClientHandle)">
            <summary>
            Enable SSL for the given service client.
            </summary>
            <param name="client">
            The connected service client for that SSL should be enabled.
            </param>
            <returns>
            SERVICE_E_SUCCESS on success,
            SERVICE_E_INVALID_ARG if client or client->connection is
            NULL, SERVICE_E_NOT_ENOUGH_DATA when not enough data
            received, SERVICE_E_TIMEOUT when the connection times out,
            SERVICE_E_SSL_ERROR when SSL could not be enabled,
            or SERVICE_E_UNKNOWN_ERROR otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Service.ServiceApi.service_disable_ssl(iMobileDevice.Service.ServiceClientHandle)">
            <summary>
            Disable SSL for the given service client.
            </summary>
            <param name="client">
            The connected service client for that SSL should be disabled.
            </param>
            <returns>
            SERVICE_E_SUCCESS on success,
            SERVICE_E_INVALID_ARG if client or client->connection is
            NULL, or SERVICE_E_UNKNOWN_ERROR otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Service.ServiceApi.service_disable_bypass_ssl(iMobileDevice.Service.ServiceClientHandle,System.Char)">
            <summary>
            Disable SSL for the given service client without sending SSL terminate messages.
            </summary>
            <param name="client">
            The connected service client for that SSL should be disabled.
            </param>
            <returns>
            SERVICE_E_SUCCESS on success,
            SERVICE_E_INVALID_ARG if client or client->connection is
            NULL, or SERVICE_E_UNKNOWN_ERROR otherwise.
            </returns>
        </member>
        <member name="T:iMobileDevice.Service.ServiceClientHandle">
            <summary>
            Represents a wrapper class for Service handles.
            </summary>
        </member>
        <member name="M:iMobileDevice.Service.ServiceClientHandle.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Service.ServiceClientHandle"/> class.
            </summary>
        </member>
        <member name="M:iMobileDevice.Service.ServiceClientHandle.#ctor(System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Service.ServiceClientHandle"/> class, specifying whether the handle is to be reliably released.
            </summary>
            <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>
        </member>
        <member name="P:iMobileDevice.Service.ServiceClientHandle.Api">
            <summary>
            Gets or sets the API to use
            </summary>
        </member>
        <member name="P:iMobileDevice.Service.ServiceClientHandle.Zero">
            <summary>
            Gets a value which represents a pointer or handle that has been initialized to zero.
            </summary>
        </member>
        <member name="M:iMobileDevice.Service.ServiceClientHandle.ReleaseHandle">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.Service.ServiceClientHandle.DangerousCreate(System.IntPtr,System.Boolean)">
            <summary>
            Creates a new <see cref="T:iMobileDevice.Service.ServiceClientHandle"/> from a <see cref="T:System.IntPtr"/>.
            </summary>
            <param name="unsafeHandle">
            The underlying <see cref="T:System.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>
        </member>
        <member name="M:iMobileDevice.Service.ServiceClientHandle.DangerousCreate(System.IntPtr)">
            <summary>
            Creates a new <see cref="T:iMobileDevice.Service.ServiceClientHandle"/> from a <see cref="T:System.IntPtr"/>.
            </summary>
            <param name="unsafeHandle">
            The underlying <see cref="T:System.IntPtr"/>
            </param>
            <returns>
            </returns>
        </member>
        <member name="M:iMobileDevice.Service.ServiceClientHandle.ToString">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.Service.ServiceClientHandle.Equals(System.Object)">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.Service.ServiceClientHandle.GetHashCode">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.Service.ServiceClientHandle.op_Equality(iMobileDevice.Service.ServiceClientHandle,iMobileDevice.Service.ServiceClientHandle)">
            <summary>
            Determines whether two specified instances of <see cref="T:iMobileDevice.Service.ServiceClientHandle"/> are equal.
            </summary>
            <param name="value1">
            The first pointer or handle to compare.
            </param>
            <param name="value2">
            The second pointer or handle to compare.
            </param>
            <returns>
            <see langword="true"/> if <paramref name="value1"/> equals <paramref name="value2"/>; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="M:iMobileDevice.Service.ServiceClientHandle.op_Inequality(iMobileDevice.Service.ServiceClientHandle,iMobileDevice.Service.ServiceClientHandle)">
            <summary>
            Determines whether two specified instances of <see cref="T:iMobileDevice.Service.ServiceClientHandle"/> are not equal.
            </summary>
            <param name="value1">
            The first pointer or handle to compare.
            </param>
            <param name="value2">
            The second pointer or handle to compare.
            </param>
            <returns>
            <see langword="true"/> if <paramref name="value1"/> does not equal <paramref name="value2"/>; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="T:iMobileDevice.Service.ServiceError">
            <summary>
            Error Codes 
            </summary>
        </member>
        <member name="T:iMobileDevice.Service.ServiceException">
            Represents an exception that occurred when interacting with the Service API.
        </member>
        <member name="F:iMobileDevice.Service.ServiceException.errorCode">
            <summary>
            Backing field for the <see cref="P:iMobileDevice.Service.ServiceException.ErrorCode"/> property.
            </summary>
        </member>
        <member name="M:iMobileDevice.Service.ServiceException.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Service.ServiceException"/> class.
            </summary>
        </member>
        <member name="M:iMobileDevice.Service.ServiceException.#ctor(iMobileDevice.Service.ServiceError)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Service.ServiceException"/> class with a specified error code.
            </summary>
            <param name="error">
            The error code of the error that occurred.
            </param>
        </member>
        <member name="M:iMobileDevice.Service.ServiceException.#ctor(iMobileDevice.Service.ServiceError,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Service.ServiceException"/> class with a specified error code and error message.
            </summary>
            <param name="error">
            The error code of the error that occurred.
            </param>
            <param name="message">
            A message which describes the error.
            </param>
        </member>
        <member name="M:iMobileDevice.Service.ServiceException.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Service.ServiceException"/> class with a specified error message.
            </summary>
            <param name="message">
            The message that describes the error.
            </param>
        </member>
        <member name="M:iMobileDevice.Service.ServiceException.#ctor(System.String,System.Exception)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Service.ServiceException"/> class with a specified error message and a reference to the inner exception that is the cause of this exception.
            </summary>
            <param name="message">
            The error message that explains the reason for the exception.
            </param>
            <param name="inner">
            The exception that is the cause of the current exception, or <see langword="null"/> if no inner exception is specified.
            </param>
        </member>
        <member name="M:iMobileDevice.Service.ServiceException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Service.ServiceException"/> class with serialized data.
            </summary>
            <param name="info">
            The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds the serialized object data about the exception being thrown.
            </param>
            <param name="context">
            The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that contains contextual information about the source or destination.
            </param>
        </member>
        <member name="P:iMobileDevice.Service.ServiceException.ErrorCode">
            <summary>
            Gets the error code that represents the error.
            </summary>
        </member>
        <member name="M:iMobileDevice.Service.ServiceNativeMethods.service_client_new(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Lockdown.LockdownServiceDescriptorHandle,iMobileDevice.Service.ServiceClientHandle@)">
            <summary>
            Creates a new service for the specified service descriptor.
            </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">
            Pointer that will be set to a newly allocated
            service_client_t upon successful return.
            </param>
            <returns>
            SERVICE_E_SUCCESS on success,
            SERVICE_E_INVALID_ARG when one of the arguments is invalid,
            or SERVICE_E_MUX_ERROR when connecting to the device failed.
            </returns>
        </member>
        <member name="M:iMobileDevice.Service.ServiceNativeMethods.service_client_factory_start_service(iMobileDevice.iDevice.iDeviceHandle,System.String,System.IntPtr@,System.String,iMobileDevice.Service.ConstructorFunc@,System.Int32@)">
            <summary>
            Starts a new service on the specified device with given name and
            connects to it.
            </summary>
            <param name="device">
            The device to connect to.
            </param>
            <param name="service_name">
            The name of the service to start.
            </param>
            <param name="client">
            Pointer that will point to a newly allocated service_client_t
            upon successful return. Must be freed using service_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>
            SERVICE_E_SUCCESS on success, or a SERVICE_E_* error code
            otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Service.ServiceNativeMethods.service_client_free(System.IntPtr)">
            <summary>
            Frees a service instance.
            </summary>
            <param name="client">
            The service instance to free.
            </param>
            <returns>
            SERVICE_E_SUCCESS on success,
            SERVICE_E_INVALID_ARG when client is invalid, or a
            SERVICE_E_UNKNOWN_ERROR when another error occurred.
            </returns>
        </member>
        <member name="M:iMobileDevice.Service.ServiceNativeMethods.service_send(iMobileDevice.Service.ServiceClientHandle,System.Byte[],System.UInt32,System.UInt32@)">
            <summary>
            Sends data using the given service client.
            </summary>
            <param name="client">
            The service client to use for sending.
            </param>
            <param name="data">
            Data to send
            </param>
            <param name="size">
            Size of the data to send
            </param>
            <param name="sent">
            Number of bytes sent (can be NULL to ignore)
            </param>
            <returns>
            SERVICE_E_SUCCESS on success,
            SERVICE_E_INVALID_ARG when one or more parameters are
            invalid, or SERVICE_E_UNKNOWN_ERROR when an unspecified
            error occurs.
            </returns>
        </member>
        <member name="M:iMobileDevice.Service.ServiceNativeMethods.service_receive_with_timeout(iMobileDevice.Service.ServiceClientHandle,System.Byte[],System.UInt32,System.UInt32@,System.UInt32)">
            <summary>
            Receives data using the given service client with specified timeout.
            </summary>
            <param name="client">
            The service client to use for receiving
            </param>
            <param name="data">
            Buffer that will be filled with the data received
            </param>
            <param name="size">
            Number of bytes to receive
            </param>
            <param name="received">
            Number of bytes received (can be NULL to ignore)
            </param>
            <param name="timeout">
            Maximum time in milliseconds to wait for data.
            </param>
            <returns>
            SERVICE_E_SUCCESS on success,
            SERVICE_E_INVALID_ARG when one or more parameters are
            invalid, SERVICE_E_MUX_ERROR when a communication error
            occurs, or SERVICE_E_UNKNOWN_ERROR when an unspecified
            error occurs.
            </returns>
        </member>
        <member name="M:iMobileDevice.Service.ServiceNativeMethods.service_receive(iMobileDevice.Service.ServiceClientHandle,System.Byte[],System.UInt32,System.UInt32@)">
            <summary>
            Receives data using the given service client.
            </summary>
            <param name="client">
            The service client to use for receiving
            </param>
            <param name="data">
            Buffer that will be filled with the data received
            </param>
            <param name="size">
            Number of bytes to receive
            </param>
            <param name="received">
            Number of bytes received (can be NULL to ignore)
            </param>
            <returns>
            SERVICE_E_SUCCESS on success,
            SERVICE_E_INVALID_ARG when one or more parameters are
            invalid, SERVICE_E_NOT_ENOUGH_DATA when not enough data
            received, SERVICE_E_TIMEOUT when the connection times out,
            SERVICE_E_MUX_ERROR when a communication error
            occurs, or SERVICE_E_UNKNOWN_ERROR when an unspecified
            error occurs.
            </returns>
        </member>
        <member name="M:iMobileDevice.Service.ServiceNativeMethods.service_enable_ssl(iMobileDevice.Service.ServiceClientHandle)">
            <summary>
            Enable SSL for the given service client.
            </summary>
            <param name="client">
            The connected service client for that SSL should be enabled.
            </param>
            <returns>
            SERVICE_E_SUCCESS on success,
            SERVICE_E_INVALID_ARG if client or client->connection is
            NULL, SERVICE_E_NOT_ENOUGH_DATA when not enough data
            received, SERVICE_E_TIMEOUT when the connection times out,
            SERVICE_E_SSL_ERROR when SSL could not be enabled,
            or SERVICE_E_UNKNOWN_ERROR otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Service.ServiceNativeMethods.service_disable_ssl(iMobileDevice.Service.ServiceClientHandle)">
            <summary>
            Disable SSL for the given service client.
            </summary>
            <param name="client">
            The connected service client for that SSL should be disabled.
            </param>
            <returns>
            SERVICE_E_SUCCESS on success,
            SERVICE_E_INVALID_ARG if client or client->connection is
            NULL, or SERVICE_E_UNKNOWN_ERROR otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Service.ServiceNativeMethods.service_disable_bypass_ssl(iMobileDevice.Service.ServiceClientHandle,System.Char)">
            <summary>
            Disable SSL for the given service client without sending SSL terminate messages.
            </summary>
            <param name="client">
            The connected service client for that SSL should be disabled.
            </param>
            <returns>
            SERVICE_E_SUCCESS on success,
            SERVICE_E_INVALID_ARG if client or client->connection is
            NULL, or SERVICE_E_UNKNOWN_ERROR otherwise.
            </returns>
        </member>
        <member name="P:iMobileDevice.SpringBoardServices.ISpringBoardServicesApi.Parent">
            <summary>
            Gets or sets the <see cref="!:ILibiMobileDeviceApi"/> which owns this <see cref="N:iMobileDevice.SpringBoardServices"/>.
            </summary>
        </member>
        <member name="M:iMobileDevice.SpringBoardServices.ISpringBoardServicesApi.sbservices_client_new(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Lockdown.LockdownServiceDescriptorHandle,iMobileDevice.SpringBoardServices.SpringBoardServicesClientHandle@)">
            <summary>
            Connects to the springboardservices 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">
            Pointer that will point to a newly allocated
            sbservices_client_t upon successful return.
            </param>
            <returns>
            SBSERVICES_E_SUCCESS on success, SBSERVICES_E_INVALID_ARG when
            client is NULL, or an SBSERVICES_E_* error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.SpringBoardServices.ISpringBoardServicesApi.sbservices_client_start_service(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.SpringBoardServices.SpringBoardServicesClientHandle@,System.String)">
            <summary>
            Starts a new sbservices 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
            sbservices_client_t upon successful return. Must be freed using
            sbservices_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>
            SBSERVICES_E_SUCCESS on success, or an SBSERVICES_E_* error
            code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.SpringBoardServices.ISpringBoardServicesApi.sbservices_client_free(System.IntPtr)">
            <summary>
            Disconnects an sbservices client from the device and frees up the
            sbservices client data.
            </summary>
            <param name="client">
            The sbservices client to disconnect and free.
            </param>
            <returns>
            SBSERVICES_E_SUCCESS on success, SBSERVICES_E_INVALID_ARG when
            client is NULL, or an SBSERVICES_E_* error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.SpringBoardServices.ISpringBoardServicesApi.sbservices_get_icon_state(iMobileDevice.SpringBoardServices.SpringBoardServicesClientHandle,iMobileDevice.Plist.PlistHandle@,System.String)">
            <summary>
            Gets the icon state of the connected device.
            </summary>
            <param name="client">
            The connected sbservices client to use.
            </param>
            <param name="state">
            Pointer that will point to a newly allocated plist containing
            the current icon state. It is up to the caller to free the memory.
            </param>
            <param name="format_version">
            A string to be passed as formatVersion along with
            the request, or NULL if no formatVersion should be passed. This is only
            supported since iOS 4.0 so for older firmware versions this must be set
            to NULL.
            </param>
            <returns>
            SBSERVICES_E_SUCCESS on success, SBSERVICES_E_INVALID_ARG when
            client or state is invalid, or an SBSERVICES_E_* error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.SpringBoardServices.ISpringBoardServicesApi.sbservices_set_icon_state(iMobileDevice.SpringBoardServices.SpringBoardServicesClientHandle,iMobileDevice.Plist.PlistHandle)">
            <summary>
            Sets the icon state of the connected device.
            </summary>
            <param name="client">
            The connected sbservices client to use.
            </param>
            <param name="newstate">
            A plist containing the new iconstate.
            </param>
            <returns>
            SBSERVICES_E_SUCCESS on success, SBSERVICES_E_INVALID_ARG when
            client or newstate is NULL, or an SBSERVICES_E_* error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.SpringBoardServices.ISpringBoardServicesApi.sbservices_get_icon_pngdata(iMobileDevice.SpringBoardServices.SpringBoardServicesClientHandle,System.String,System.IntPtr@,System.UInt64@)">
            <summary>
            Get the icon of the specified app as PNG data.
            </summary>
            <param name="client">
            The connected sbservices client to use.
            </param>
            <param name="bundleId">
            The bundle identifier of the app to retrieve the icon for.
            </param>
            <param name="pngdata">
            Pointer that will point to a newly allocated buffer
            containing the PNG data upon successful return. It is up to the caller
            to free the memory.
            </param>
            <param name="pngsize">
            Pointer to a uint64_t that will be set to the size of the
            buffer pngdata points to upon successful return.
            </param>
            <returns>
            SBSERVICES_E_SUCCESS on success, SBSERVICES_E_INVALID_ARG when
            client, bundleId, or pngdata are invalid, or an SBSERVICES_E_* error
            code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.SpringBoardServices.ISpringBoardServicesApi.sbservices_get_interface_orientation(iMobileDevice.SpringBoardServices.SpringBoardServicesClientHandle,iMobileDevice.SpringBoardServices.SpringBoardServicesInterfaceOrientation@)">
            <summary>
            Gets the interface orientation of the device.
            </summary>
            <param name="client">
            The connected sbservices client to use.
            </param>
            <param name="interface_orientation">
            The interface orientation upon successful return.
            </param>
            <returns>
            SBSERVICES_E_SUCCESS on success, SBSERVICES_E_INVALID_ARG when
            client or state is invalid, or an SBSERVICES_E_* error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.SpringBoardServices.ISpringBoardServicesApi.sbservices_get_home_screen_wallpaper_pngdata(iMobileDevice.SpringBoardServices.SpringBoardServicesClientHandle,System.IntPtr@,System.UInt64@)">
            <summary>
            Get the home screen wallpaper as PNG data.
            </summary>
            <param name="client">
            The connected sbservices client to use.
            </param>
            <param name="pngdata">
            Pointer that will point to a newly allocated buffer
            containing the PNG data upon successful return. It is up to the caller
            to free the memory.
            </param>
            <param name="pngsize">
            Pointer to a uint64_t that will be set to the size of the
            buffer pngdata points to upon successful return.
            </param>
            <returns>
            SBSERVICES_E_SUCCESS on success, SBSERVICES_E_INVALID_ARG when
            client or pngdata are invalid, or an SBSERVICES_E_* error
            code otherwise.
            </returns>
        </member>
        <member name="F:iMobileDevice.SpringBoardServices.SpringBoardServicesApi.parent">
            <summary>
            Backing field for the <see cref="P:iMobileDevice.SpringBoardServices.SpringBoardServicesApi.Parent"/> property
            </summary>
        </member>
        <member name="M:iMobileDevice.SpringBoardServices.SpringBoardServicesApi.#ctor(iMobileDevice.ILibiMobileDevice)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.SpringBoardServices.SpringBoardServicesApi"/> class
            </summary>
            <param name="parent">
            The <see cref="!:ILibiMobileDeviceApi"/> which owns this <see cref="N:iMobileDevice.SpringBoardServices"/>.
            </param>
        </member>
        <member name="P:iMobileDevice.SpringBoardServices.SpringBoardServicesApi.Parent">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.SpringBoardServices.SpringBoardServicesApi.sbservices_client_new(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Lockdown.LockdownServiceDescriptorHandle,iMobileDevice.SpringBoardServices.SpringBoardServicesClientHandle@)">
            <summary>
            Connects to the springboardservices 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">
            Pointer that will point to a newly allocated
            sbservices_client_t upon successful return.
            </param>
            <returns>
            SBSERVICES_E_SUCCESS on success, SBSERVICES_E_INVALID_ARG when
            client is NULL, or an SBSERVICES_E_* error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.SpringBoardServices.SpringBoardServicesApi.sbservices_client_start_service(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.SpringBoardServices.SpringBoardServicesClientHandle@,System.String)">
            <summary>
            Starts a new sbservices 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
            sbservices_client_t upon successful return. Must be freed using
            sbservices_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>
            SBSERVICES_E_SUCCESS on success, or an SBSERVICES_E_* error
            code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.SpringBoardServices.SpringBoardServicesApi.sbservices_client_free(System.IntPtr)">
            <summary>
            Disconnects an sbservices client from the device and frees up the
            sbservices client data.
            </summary>
            <param name="client">
            The sbservices client to disconnect and free.
            </param>
            <returns>
            SBSERVICES_E_SUCCESS on success, SBSERVICES_E_INVALID_ARG when
            client is NULL, or an SBSERVICES_E_* error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.SpringBoardServices.SpringBoardServicesApi.sbservices_get_icon_state(iMobileDevice.SpringBoardServices.SpringBoardServicesClientHandle,iMobileDevice.Plist.PlistHandle@,System.String)">
            <summary>
            Gets the icon state of the connected device.
            </summary>
            <param name="client">
            The connected sbservices client to use.
            </param>
            <param name="state">
            Pointer that will point to a newly allocated plist containing
            the current icon state. It is up to the caller to free the memory.
            </param>
            <param name="format_version">
            A string to be passed as formatVersion along with
            the request, or NULL if no formatVersion should be passed. This is only
            supported since iOS 4.0 so for older firmware versions this must be set
            to NULL.
            </param>
            <returns>
            SBSERVICES_E_SUCCESS on success, SBSERVICES_E_INVALID_ARG when
            client or state is invalid, or an SBSERVICES_E_* error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.SpringBoardServices.SpringBoardServicesApi.sbservices_set_icon_state(iMobileDevice.SpringBoardServices.SpringBoardServicesClientHandle,iMobileDevice.Plist.PlistHandle)">
            <summary>
            Sets the icon state of the connected device.
            </summary>
            <param name="client">
            The connected sbservices client to use.
            </param>
            <param name="newstate">
            A plist containing the new iconstate.
            </param>
            <returns>
            SBSERVICES_E_SUCCESS on success, SBSERVICES_E_INVALID_ARG when
            client or newstate is NULL, or an SBSERVICES_E_* error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.SpringBoardServices.SpringBoardServicesApi.sbservices_get_icon_pngdata(iMobileDevice.SpringBoardServices.SpringBoardServicesClientHandle,System.String,System.IntPtr@,System.UInt64@)">
            <summary>
            Get the icon of the specified app as PNG data.
            </summary>
            <param name="client">
            The connected sbservices client to use.
            </param>
            <param name="bundleId">
            The bundle identifier of the app to retrieve the icon for.
            </param>
            <param name="pngdata">
            Pointer that will point to a newly allocated buffer
            containing the PNG data upon successful return. It is up to the caller
            to free the memory.
            </param>
            <param name="pngsize">
            Pointer to a uint64_t that will be set to the size of the
            buffer pngdata points to upon successful return.
            </param>
            <returns>
            SBSERVICES_E_SUCCESS on success, SBSERVICES_E_INVALID_ARG when
            client, bundleId, or pngdata are invalid, or an SBSERVICES_E_* error
            code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.SpringBoardServices.SpringBoardServicesApi.sbservices_get_interface_orientation(iMobileDevice.SpringBoardServices.SpringBoardServicesClientHandle,iMobileDevice.SpringBoardServices.SpringBoardServicesInterfaceOrientation@)">
            <summary>
            Gets the interface orientation of the device.
            </summary>
            <param name="client">
            The connected sbservices client to use.
            </param>
            <param name="interface_orientation">
            The interface orientation upon successful return.
            </param>
            <returns>
            SBSERVICES_E_SUCCESS on success, SBSERVICES_E_INVALID_ARG when
            client or state is invalid, or an SBSERVICES_E_* error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.SpringBoardServices.SpringBoardServicesApi.sbservices_get_home_screen_wallpaper_pngdata(iMobileDevice.SpringBoardServices.SpringBoardServicesClientHandle,System.IntPtr@,System.UInt64@)">
            <summary>
            Get the home screen wallpaper as PNG data.
            </summary>
            <param name="client">
            The connected sbservices client to use.
            </param>
            <param name="pngdata">
            Pointer that will point to a newly allocated buffer
            containing the PNG data upon successful return. It is up to the caller
            to free the memory.
            </param>
            <param name="pngsize">
            Pointer to a uint64_t that will be set to the size of the
            buffer pngdata points to upon successful return.
            </param>
            <returns>
            SBSERVICES_E_SUCCESS on success, SBSERVICES_E_INVALID_ARG when
            client or pngdata are invalid, or an SBSERVICES_E_* error
            code otherwise.
            </returns>
        </member>
        <member name="T:iMobileDevice.SpringBoardServices.SpringBoardServicesClientHandle">
            <summary>
            Represents a wrapper class for SpringBoardServices handles.
            </summary>
        </member>
        <member name="M:iMobileDevice.SpringBoardServices.SpringBoardServicesClientHandle.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.SpringBoardServices.SpringBoardServicesClientHandle"/> class.
            </summary>
        </member>
        <member name="M:iMobileDevice.SpringBoardServices.SpringBoardServicesClientHandle.#ctor(System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.SpringBoardServices.SpringBoardServicesClientHandle"/> class, specifying whether the handle is to be reliably released.
            </summary>
            <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>
        </member>
        <member name="P:iMobileDevice.SpringBoardServices.SpringBoardServicesClientHandle.Api">
            <summary>
            Gets or sets the API to use
            </summary>
        </member>
        <member name="P:iMobileDevice.SpringBoardServices.SpringBoardServicesClientHandle.Zero">
            <summary>
            Gets a value which represents a pointer or handle that has been initialized to zero.
            </summary>
        </member>
        <member name="M:iMobileDevice.SpringBoardServices.SpringBoardServicesClientHandle.ReleaseHandle">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.SpringBoardServices.SpringBoardServicesClientHandle.DangerousCreate(System.IntPtr,System.Boolean)">
            <summary>
            Creates a new <see cref="T:iMobileDevice.SpringBoardServices.SpringBoardServicesClientHandle"/> from a <see cref="T:System.IntPtr"/>.
            </summary>
            <param name="unsafeHandle">
            The underlying <see cref="T:System.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>
        </member>
        <member name="M:iMobileDevice.SpringBoardServices.SpringBoardServicesClientHandle.DangerousCreate(System.IntPtr)">
            <summary>
            Creates a new <see cref="T:iMobileDevice.SpringBoardServices.SpringBoardServicesClientHandle"/> from a <see cref="T:System.IntPtr"/>.
            </summary>
            <param name="unsafeHandle">
            The underlying <see cref="T:System.IntPtr"/>
            </param>
            <returns>
            </returns>
        </member>
        <member name="M:iMobileDevice.SpringBoardServices.SpringBoardServicesClientHandle.ToString">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.SpringBoardServices.SpringBoardServicesClientHandle.Equals(System.Object)">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.SpringBoardServices.SpringBoardServicesClientHandle.GetHashCode">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.SpringBoardServices.SpringBoardServicesClientHandle.op_Equality(iMobileDevice.SpringBoardServices.SpringBoardServicesClientHandle,iMobileDevice.SpringBoardServices.SpringBoardServicesClientHandle)">
            <summary>
            Determines whether two specified instances of <see cref="T:iMobileDevice.SpringBoardServices.SpringBoardServicesClientHandle"/> are equal.
            </summary>
            <param name="value1">
            The first pointer or handle to compare.
            </param>
            <param name="value2">
            The second pointer or handle to compare.
            </param>
            <returns>
            <see langword="true"/> if <paramref name="value1"/> equals <paramref name="value2"/>; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="M:iMobileDevice.SpringBoardServices.SpringBoardServicesClientHandle.op_Inequality(iMobileDevice.SpringBoardServices.SpringBoardServicesClientHandle,iMobileDevice.SpringBoardServices.SpringBoardServicesClientHandle)">
            <summary>
            Determines whether two specified instances of <see cref="T:iMobileDevice.SpringBoardServices.SpringBoardServicesClientHandle"/> are not equal.
            </summary>
            <param name="value1">
            The first pointer or handle to compare.
            </param>
            <param name="value2">
            The second pointer or handle to compare.
            </param>
            <returns>
            <see langword="true"/> if <paramref name="value1"/> does not equal <paramref name="value2"/>; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="T:iMobileDevice.SpringBoardServices.SpringBoardServicesError">
            <summary>
            Error Codes 
            </summary>
        </member>
        <member name="T:iMobileDevice.SpringBoardServices.SpringBoardServicesException">
            Represents an exception that occurred when interacting with the SpringBoardServices API.
        </member>
        <member name="F:iMobileDevice.SpringBoardServices.SpringBoardServicesException.errorCode">
            <summary>
            Backing field for the <see cref="P:iMobileDevice.SpringBoardServices.SpringBoardServicesException.ErrorCode"/> property.
            </summary>
        </member>
        <member name="M:iMobileDevice.SpringBoardServices.SpringBoardServicesException.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.SpringBoardServices.SpringBoardServicesException"/> class.
            </summary>
        </member>
        <member name="M:iMobileDevice.SpringBoardServices.SpringBoardServicesException.#ctor(iMobileDevice.SpringBoardServices.SpringBoardServicesError)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.SpringBoardServices.SpringBoardServicesException"/> class with a specified error code.
            </summary>
            <param name="error">
            The error code of the error that occurred.
            </param>
        </member>
        <member name="M:iMobileDevice.SpringBoardServices.SpringBoardServicesException.#ctor(iMobileDevice.SpringBoardServices.SpringBoardServicesError,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.SpringBoardServices.SpringBoardServicesException"/> class with a specified error code and error message.
            </summary>
            <param name="error">
            The error code of the error that occurred.
            </param>
            <param name="message">
            A message which describes the error.
            </param>
        </member>
        <member name="M:iMobileDevice.SpringBoardServices.SpringBoardServicesException.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.SpringBoardServices.SpringBoardServicesException"/> class with a specified error message.
            </summary>
            <param name="message">
            The message that describes the error.
            </param>
        </member>
        <member name="M:iMobileDevice.SpringBoardServices.SpringBoardServicesException.#ctor(System.String,System.Exception)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.SpringBoardServices.SpringBoardServicesException"/> class with a specified error message and a reference to the inner exception that is the cause of this exception.
            </summary>
            <param name="message">
            The error message that explains the reason for the exception.
            </param>
            <param name="inner">
            The exception that is the cause of the current exception, or <see langword="null"/> if no inner exception is specified.
            </param>
        </member>
        <member name="M:iMobileDevice.SpringBoardServices.SpringBoardServicesException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.SpringBoardServices.SpringBoardServicesException"/> class with serialized data.
            </summary>
            <param name="info">
            The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds the serialized object data about the exception being thrown.
            </param>
            <param name="context">
            The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that contains contextual information about the source or destination.
            </param>
        </member>
        <member name="P:iMobileDevice.SpringBoardServices.SpringBoardServicesException.ErrorCode">
            <summary>
            Gets the error code that represents the error.
            </summary>
        </member>
        <member name="M:iMobileDevice.SpringBoardServices.SpringBoardServicesNativeMethods.sbservices_client_new(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Lockdown.LockdownServiceDescriptorHandle,iMobileDevice.SpringBoardServices.SpringBoardServicesClientHandle@)">
            <summary>
            Connects to the springboardservices 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">
            Pointer that will point to a newly allocated
            sbservices_client_t upon successful return.
            </param>
            <returns>
            SBSERVICES_E_SUCCESS on success, SBSERVICES_E_INVALID_ARG when
            client is NULL, or an SBSERVICES_E_* error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.SpringBoardServices.SpringBoardServicesNativeMethods.sbservices_client_start_service(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.SpringBoardServices.SpringBoardServicesClientHandle@,System.String)">
            <summary>
            Starts a new sbservices 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
            sbservices_client_t upon successful return. Must be freed using
            sbservices_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>
            SBSERVICES_E_SUCCESS on success, or an SBSERVICES_E_* error
            code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.SpringBoardServices.SpringBoardServicesNativeMethods.sbservices_client_free(System.IntPtr)">
            <summary>
            Disconnects an sbservices client from the device and frees up the
            sbservices client data.
            </summary>
            <param name="client">
            The sbservices client to disconnect and free.
            </param>
            <returns>
            SBSERVICES_E_SUCCESS on success, SBSERVICES_E_INVALID_ARG when
            client is NULL, or an SBSERVICES_E_* error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.SpringBoardServices.SpringBoardServicesNativeMethods.sbservices_get_icon_state(iMobileDevice.SpringBoardServices.SpringBoardServicesClientHandle,iMobileDevice.Plist.PlistHandle@,System.String)">
            <summary>
            Gets the icon state of the connected device.
            </summary>
            <param name="client">
            The connected sbservices client to use.
            </param>
            <param name="state">
            Pointer that will point to a newly allocated plist containing
            the current icon state. It is up to the caller to free the memory.
            </param>
            <param name="format_version">
            A string to be passed as formatVersion along with
            the request, or NULL if no formatVersion should be passed. This is only
            supported since iOS 4.0 so for older firmware versions this must be set
            to NULL.
            </param>
            <returns>
            SBSERVICES_E_SUCCESS on success, SBSERVICES_E_INVALID_ARG when
            client or state is invalid, or an SBSERVICES_E_* error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.SpringBoardServices.SpringBoardServicesNativeMethods.sbservices_set_icon_state(iMobileDevice.SpringBoardServices.SpringBoardServicesClientHandle,iMobileDevice.Plist.PlistHandle)">
            <summary>
            Sets the icon state of the connected device.
            </summary>
            <param name="client">
            The connected sbservices client to use.
            </param>
            <param name="newstate">
            A plist containing the new iconstate.
            </param>
            <returns>
            SBSERVICES_E_SUCCESS on success, SBSERVICES_E_INVALID_ARG when
            client or newstate is NULL, or an SBSERVICES_E_* error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.SpringBoardServices.SpringBoardServicesNativeMethods.sbservices_get_icon_pngdata(iMobileDevice.SpringBoardServices.SpringBoardServicesClientHandle,System.String,System.IntPtr@,System.UInt64@)">
            <summary>
            Get the icon of the specified app as PNG data.
            </summary>
            <param name="client">
            The connected sbservices client to use.
            </param>
            <param name="bundleId">
            The bundle identifier of the app to retrieve the icon for.
            </param>
            <param name="pngdata">
            Pointer that will point to a newly allocated buffer
            containing the PNG data upon successful return. It is up to the caller
            to free the memory.
            </param>
            <param name="pngsize">
            Pointer to a uint64_t that will be set to the size of the
            buffer pngdata points to upon successful return.
            </param>
            <returns>
            SBSERVICES_E_SUCCESS on success, SBSERVICES_E_INVALID_ARG when
            client, bundleId, or pngdata are invalid, or an SBSERVICES_E_* error
            code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.SpringBoardServices.SpringBoardServicesNativeMethods.sbservices_get_interface_orientation(iMobileDevice.SpringBoardServices.SpringBoardServicesClientHandle,iMobileDevice.SpringBoardServices.SpringBoardServicesInterfaceOrientation@)">
            <summary>
            Gets the interface orientation of the device.
            </summary>
            <param name="client">
            The connected sbservices client to use.
            </param>
            <param name="interface_orientation">
            The interface orientation upon successful return.
            </param>
            <returns>
            SBSERVICES_E_SUCCESS on success, SBSERVICES_E_INVALID_ARG when
            client or state is invalid, or an SBSERVICES_E_* error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.SpringBoardServices.SpringBoardServicesNativeMethods.sbservices_get_home_screen_wallpaper_pngdata(iMobileDevice.SpringBoardServices.SpringBoardServicesClientHandle,System.IntPtr@,System.UInt64@)">
            <summary>
            Get the home screen wallpaper as PNG data.
            </summary>
            <param name="client">
            The connected sbservices client to use.
            </param>
            <param name="pngdata">
            Pointer that will point to a newly allocated buffer
            containing the PNG data upon successful return. It is up to the caller
            to free the memory.
            </param>
            <param name="pngsize">
            Pointer to a uint64_t that will be set to the size of the
            buffer pngdata points to upon successful return.
            </param>
            <returns>
            SBSERVICES_E_SUCCESS on success, SBSERVICES_E_INVALID_ARG when
            client or pngdata are invalid, or an SBSERVICES_E_* error
            code otherwise.
            </returns>
        </member>
        <member name="P:iMobileDevice.SyslogRelay.ISyslogRelayApi.Parent">
            <summary>
            Gets or sets the <see cref="!:ILibiMobileDeviceApi"/> which owns this <see cref="N:iMobileDevice.SyslogRelay"/>.
            </summary>
        </member>
        <member name="M:iMobileDevice.SyslogRelay.ISyslogRelayApi.syslog_relay_client_new(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Lockdown.LockdownServiceDescriptorHandle,iMobileDevice.SyslogRelay.SyslogRelayClientHandle@)">
            <summary>
            Connects to the syslog_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">
            Pointer that will point to a newly allocated
            syslog_relay_client_t upon successful return. Must be freed using
            syslog_relay_client_free() after use.
            </param>
            <returns>
            SYSLOG_RELAY_E_SUCCESS on success, SYSLOG_RELAY_E_INVALID_ARG when
            client is NULL, or an SYSLOG_RELAY_E_* error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.SyslogRelay.ISyslogRelayApi.syslog_relay_client_start_service(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.SyslogRelay.SyslogRelayClientHandle@,System.String)">
            <summary>
            Starts a new syslog_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
            syslog_relay_client_t upon successful return. Must be freed using
            syslog_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>
            SYSLOG_RELAY_E_SUCCESS on success, or an SYSLOG_RELAY_E_* error
            code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.SyslogRelay.ISyslogRelayApi.syslog_relay_client_free(System.IntPtr)">
            <summary>
            Disconnects a syslog_relay client from the device and frees up the
            syslog_relay client data.
            </summary>
            <param name="client">
            The syslog_relay client to disconnect and free.
            </param>
            <returns>
            SYSLOG_RELAY_E_SUCCESS on success, SYSLOG_RELAY_E_INVALID_ARG when
            client is NULL, or an SYSLOG_RELAY_E_* error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.SyslogRelay.ISyslogRelayApi.syslog_relay_start_capture(iMobileDevice.SyslogRelay.SyslogRelayClientHandle,iMobileDevice.SyslogRelay.SyslogRelayReceiveCallBack,System.IntPtr)">
            <summary>
            Starts capturing the syslog of the device using a callback.
            Use syslog_relay_stop_capture() to stop receiving the syslog.
            </summary>
            <param name="client">
            The syslog_relay client to use
            </param>
            <param name="callback">
            Callback to receive each character from the syslog.
            </param>
            <param name="user_data">
            Custom pointer passed to the callback function.
            </param>
            <returns>
            SYSLOG_RELAY_E_SUCCESS on success,
            SYSLOG_RELAY_E_INVALID_ARG when one or more parameters are
            invalid or SYSLOG_RELAY_E_UNKNOWN_ERROR when an unspecified
            error occurs or a syslog capture has already been started.
            </returns>
        </member>
        <member name="M:iMobileDevice.SyslogRelay.ISyslogRelayApi.syslog_relay_start_capture_raw(iMobileDevice.SyslogRelay.SyslogRelayClientHandle,iMobileDevice.SyslogRelay.SyslogRelayReceiveCallBack,System.IntPtr)">
            <summary>
            Starts capturing the *raw* syslog of the device using a callback.
            This function is like syslog_relay_start_capture with the difference that
            it will neither check nor process the received data before passing it to
            the callback function.
            Use syslog_relay_stop_capture() to stop receiving the syslog.
            </summary>
            <param name="client">
            The syslog_relay client to use
            </param>
            <param name="callback">
            Callback to receive each character from the syslog.
            </param>
            <param name="user_data">
            Custom pointer passed to the callback function.
            </param>
            <returns>
            SYSLOG_RELAY_E_SUCCESS on success,
            SYSLOG_RELAY_E_INVALID_ARG when one or more parameters are
            invalid or SYSLOG_RELAY_E_UNKNOWN_ERROR when an unspecified
            error occurs or a syslog capture has already been started.
            </returns>
            <remarks>
            Use syslog_relay_start_capture for a safer implementation.
            </remarks>
        </member>
        <member name="M:iMobileDevice.SyslogRelay.ISyslogRelayApi.syslog_relay_stop_capture(iMobileDevice.SyslogRelay.SyslogRelayClientHandle)">
            <summary>
            Stops capturing the syslog of the device.
            Use syslog_relay_start_capture() to start receiving the syslog.
            </summary>
            <param name="client">
            The syslog_relay client to use
            </param>
            <returns>
            SYSLOG_RELAY_E_SUCCESS on success,
            SYSLOG_RELAY_E_INVALID_ARG when one or more parameters are
            invalid or SYSLOG_RELAY_E_UNKNOWN_ERROR when an unspecified
            error occurs or a syslog capture has already been started.
            </returns>
        </member>
        <member name="M:iMobileDevice.SyslogRelay.ISyslogRelayApi.syslog_relay_receive_with_timeout(iMobileDevice.SyslogRelay.SyslogRelayClientHandle,System.Byte[],System.UInt32,System.UInt32@,System.UInt32)">
            <summary>
            Receives data using the given syslog_relay client with specified timeout.
            </summary>
            <param name="client">
            The syslog_relay client to use for receiving
            </param>
            <param name="data">
            Buffer that will be filled with the data received
            </param>
            <param name="size">
            Number of bytes to receive
            </param>
            <param name="received">
            Number of bytes received (can be NULL to ignore)
            </param>
            <param name="timeout">
            Maximum time in milliseconds to wait for data.
            </param>
            <returns>
            SYSLOG_RELAY_E_SUCCESS on success,
            SYSLOG_RELAY_E_INVALID_ARG when one or more parameters are
            invalid, SYSLOG_RELAY_E_MUX_ERROR when a communication error
            occurs, or SYSLOG_RELAY_E_UNKNOWN_ERROR when an unspecified
            error occurs.
            </returns>
        </member>
        <member name="M:iMobileDevice.SyslogRelay.ISyslogRelayApi.syslog_relay_receive(iMobileDevice.SyslogRelay.SyslogRelayClientHandle,System.Byte[],System.UInt32,System.UInt32@)">
            <summary>
            Receives data from the service.
            </summary>
            <param name="client">
            The syslog_relay client
            </param>
            <param name="data">
            Buffer that will be filled with the data received
            </param>
            <param name="size">
            Number of bytes to receive
            </param>
            <param name="received">
            Number of bytes received (can be NULL to ignore)
            </param>
            <param name="timeout">
            Maximum time in milliseconds to wait for data.
            </param>
            <returns>
            SYSLOG_RELAY_E_SUCCESS on success,
            SYSLOG_RELAY_E_INVALID_ARG when client or plist is NULL
            </returns>
        </member>
        <member name="F:iMobileDevice.SyslogRelay.SyslogRelayApi.parent">
            <summary>
            Backing field for the <see cref="P:iMobileDevice.SyslogRelay.SyslogRelayApi.Parent"/> property
            </summary>
        </member>
        <member name="M:iMobileDevice.SyslogRelay.SyslogRelayApi.#ctor(iMobileDevice.ILibiMobileDevice)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.SyslogRelay.SyslogRelayApi"/> class
            </summary>
            <param name="parent">
            The <see cref="!:ILibiMobileDeviceApi"/> which owns this <see cref="N:iMobileDevice.SyslogRelay"/>.
            </param>
        </member>
        <member name="P:iMobileDevice.SyslogRelay.SyslogRelayApi.Parent">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.SyslogRelay.SyslogRelayApi.syslog_relay_client_new(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Lockdown.LockdownServiceDescriptorHandle,iMobileDevice.SyslogRelay.SyslogRelayClientHandle@)">
            <summary>
            Connects to the syslog_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">
            Pointer that will point to a newly allocated
            syslog_relay_client_t upon successful return. Must be freed using
            syslog_relay_client_free() after use.
            </param>
            <returns>
            SYSLOG_RELAY_E_SUCCESS on success, SYSLOG_RELAY_E_INVALID_ARG when
            client is NULL, or an SYSLOG_RELAY_E_* error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.SyslogRelay.SyslogRelayApi.syslog_relay_client_start_service(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.SyslogRelay.SyslogRelayClientHandle@,System.String)">
            <summary>
            Starts a new syslog_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
            syslog_relay_client_t upon successful return. Must be freed using
            syslog_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>
            SYSLOG_RELAY_E_SUCCESS on success, or an SYSLOG_RELAY_E_* error
            code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.SyslogRelay.SyslogRelayApi.syslog_relay_client_free(System.IntPtr)">
            <summary>
            Disconnects a syslog_relay client from the device and frees up the
            syslog_relay client data.
            </summary>
            <param name="client">
            The syslog_relay client to disconnect and free.
            </param>
            <returns>
            SYSLOG_RELAY_E_SUCCESS on success, SYSLOG_RELAY_E_INVALID_ARG when
            client is NULL, or an SYSLOG_RELAY_E_* error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.SyslogRelay.SyslogRelayApi.syslog_relay_start_capture(iMobileDevice.SyslogRelay.SyslogRelayClientHandle,iMobileDevice.SyslogRelay.SyslogRelayReceiveCallBack,System.IntPtr)">
            <summary>
            Starts capturing the syslog of the device using a callback.
            Use syslog_relay_stop_capture() to stop receiving the syslog.
            </summary>
            <param name="client">
            The syslog_relay client to use
            </param>
            <param name="callback">
            Callback to receive each character from the syslog.
            </param>
            <param name="user_data">
            Custom pointer passed to the callback function.
            </param>
            <returns>
            SYSLOG_RELAY_E_SUCCESS on success,
            SYSLOG_RELAY_E_INVALID_ARG when one or more parameters are
            invalid or SYSLOG_RELAY_E_UNKNOWN_ERROR when an unspecified
            error occurs or a syslog capture has already been started.
            </returns>
        </member>
        <member name="M:iMobileDevice.SyslogRelay.SyslogRelayApi.syslog_relay_start_capture_raw(iMobileDevice.SyslogRelay.SyslogRelayClientHandle,iMobileDevice.SyslogRelay.SyslogRelayReceiveCallBack,System.IntPtr)">
            <summary>
            Starts capturing the *raw* syslog of the device using a callback.
            This function is like syslog_relay_start_capture with the difference that
            it will neither check nor process the received data before passing it to
            the callback function.
            Use syslog_relay_stop_capture() to stop receiving the syslog.
            </summary>
            <param name="client">
            The syslog_relay client to use
            </param>
            <param name="callback">
            Callback to receive each character from the syslog.
            </param>
            <param name="user_data">
            Custom pointer passed to the callback function.
            </param>
            <returns>
            SYSLOG_RELAY_E_SUCCESS on success,
            SYSLOG_RELAY_E_INVALID_ARG when one or more parameters are
            invalid or SYSLOG_RELAY_E_UNKNOWN_ERROR when an unspecified
            error occurs or a syslog capture has already been started.
            </returns>
            <remarks>
            Use syslog_relay_start_capture for a safer implementation.
            </remarks>
        </member>
        <member name="M:iMobileDevice.SyslogRelay.SyslogRelayApi.syslog_relay_stop_capture(iMobileDevice.SyslogRelay.SyslogRelayClientHandle)">
            <summary>
            Stops capturing the syslog of the device.
            Use syslog_relay_start_capture() to start receiving the syslog.
            </summary>
            <param name="client">
            The syslog_relay client to use
            </param>
            <returns>
            SYSLOG_RELAY_E_SUCCESS on success,
            SYSLOG_RELAY_E_INVALID_ARG when one or more parameters are
            invalid or SYSLOG_RELAY_E_UNKNOWN_ERROR when an unspecified
            error occurs or a syslog capture has already been started.
            </returns>
        </member>
        <member name="M:iMobileDevice.SyslogRelay.SyslogRelayApi.syslog_relay_receive_with_timeout(iMobileDevice.SyslogRelay.SyslogRelayClientHandle,System.Byte[],System.UInt32,System.UInt32@,System.UInt32)">
            <summary>
            Receives data using the given syslog_relay client with specified timeout.
            </summary>
            <param name="client">
            The syslog_relay client to use for receiving
            </param>
            <param name="data">
            Buffer that will be filled with the data received
            </param>
            <param name="size">
            Number of bytes to receive
            </param>
            <param name="received">
            Number of bytes received (can be NULL to ignore)
            </param>
            <param name="timeout">
            Maximum time in milliseconds to wait for data.
            </param>
            <returns>
            SYSLOG_RELAY_E_SUCCESS on success,
            SYSLOG_RELAY_E_INVALID_ARG when one or more parameters are
            invalid, SYSLOG_RELAY_E_MUX_ERROR when a communication error
            occurs, or SYSLOG_RELAY_E_UNKNOWN_ERROR when an unspecified
            error occurs.
            </returns>
        </member>
        <member name="M:iMobileDevice.SyslogRelay.SyslogRelayApi.syslog_relay_receive(iMobileDevice.SyslogRelay.SyslogRelayClientHandle,System.Byte[],System.UInt32,System.UInt32@)">
            <summary>
            Receives data from the service.
            </summary>
            <param name="client">
            The syslog_relay client
            </param>
            <param name="data">
            Buffer that will be filled with the data received
            </param>
            <param name="size">
            Number of bytes to receive
            </param>
            <param name="received">
            Number of bytes received (can be NULL to ignore)
            </param>
            <param name="timeout">
            Maximum time in milliseconds to wait for data.
            </param>
            <returns>
            SYSLOG_RELAY_E_SUCCESS on success,
            SYSLOG_RELAY_E_INVALID_ARG when client or plist is NULL
            </returns>
        </member>
        <member name="T:iMobileDevice.SyslogRelay.SyslogRelayClientHandle">
            <summary>
            Represents a wrapper class for SyslogRelay handles.
            </summary>
        </member>
        <member name="M:iMobileDevice.SyslogRelay.SyslogRelayClientHandle.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.SyslogRelay.SyslogRelayClientHandle"/> class.
            </summary>
        </member>
        <member name="M:iMobileDevice.SyslogRelay.SyslogRelayClientHandle.#ctor(System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.SyslogRelay.SyslogRelayClientHandle"/> class, specifying whether the handle is to be reliably released.
            </summary>
            <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>
        </member>
        <member name="P:iMobileDevice.SyslogRelay.SyslogRelayClientHandle.Api">
            <summary>
            Gets or sets the API to use
            </summary>
        </member>
        <member name="P:iMobileDevice.SyslogRelay.SyslogRelayClientHandle.Zero">
            <summary>
            Gets a value which represents a pointer or handle that has been initialized to zero.
            </summary>
        </member>
        <member name="M:iMobileDevice.SyslogRelay.SyslogRelayClientHandle.ReleaseHandle">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.SyslogRelay.SyslogRelayClientHandle.DangerousCreate(System.IntPtr,System.Boolean)">
            <summary>
            Creates a new <see cref="T:iMobileDevice.SyslogRelay.SyslogRelayClientHandle"/> from a <see cref="T:System.IntPtr"/>.
            </summary>
            <param name="unsafeHandle">
            The underlying <see cref="T:System.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>
        </member>
        <member name="M:iMobileDevice.SyslogRelay.SyslogRelayClientHandle.DangerousCreate(System.IntPtr)">
            <summary>
            Creates a new <see cref="T:iMobileDevice.SyslogRelay.SyslogRelayClientHandle"/> from a <see cref="T:System.IntPtr"/>.
            </summary>
            <param name="unsafeHandle">
            The underlying <see cref="T:System.IntPtr"/>
            </param>
            <returns>
            </returns>
        </member>
        <member name="M:iMobileDevice.SyslogRelay.SyslogRelayClientHandle.ToString">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.SyslogRelay.SyslogRelayClientHandle.Equals(System.Object)">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.SyslogRelay.SyslogRelayClientHandle.GetHashCode">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.SyslogRelay.SyslogRelayClientHandle.op_Equality(iMobileDevice.SyslogRelay.SyslogRelayClientHandle,iMobileDevice.SyslogRelay.SyslogRelayClientHandle)">
            <summary>
            Determines whether two specified instances of <see cref="T:iMobileDevice.SyslogRelay.SyslogRelayClientHandle"/> are equal.
            </summary>
            <param name="value1">
            The first pointer or handle to compare.
            </param>
            <param name="value2">
            The second pointer or handle to compare.
            </param>
            <returns>
            <see langword="true"/> if <paramref name="value1"/> equals <paramref name="value2"/>; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="M:iMobileDevice.SyslogRelay.SyslogRelayClientHandle.op_Inequality(iMobileDevice.SyslogRelay.SyslogRelayClientHandle,iMobileDevice.SyslogRelay.SyslogRelayClientHandle)">
            <summary>
            Determines whether two specified instances of <see cref="T:iMobileDevice.SyslogRelay.SyslogRelayClientHandle"/> are not equal.
            </summary>
            <param name="value1">
            The first pointer or handle to compare.
            </param>
            <param name="value2">
            The second pointer or handle to compare.
            </param>
            <returns>
            <see langword="true"/> if <paramref name="value1"/> does not equal <paramref name="value2"/>; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="T:iMobileDevice.SyslogRelay.SyslogRelayError">
            <summary>
            Error Codes 
            </summary>
        </member>
        <member name="T:iMobileDevice.SyslogRelay.SyslogRelayException">
            Represents an exception that occurred when interacting with the SyslogRelay API.
        </member>
        <member name="F:iMobileDevice.SyslogRelay.SyslogRelayException.errorCode">
            <summary>
            Backing field for the <see cref="P:iMobileDevice.SyslogRelay.SyslogRelayException.ErrorCode"/> property.
            </summary>
        </member>
        <member name="M:iMobileDevice.SyslogRelay.SyslogRelayException.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.SyslogRelay.SyslogRelayException"/> class.
            </summary>
        </member>
        <member name="M:iMobileDevice.SyslogRelay.SyslogRelayException.#ctor(iMobileDevice.SyslogRelay.SyslogRelayError)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.SyslogRelay.SyslogRelayException"/> class with a specified error code.
            </summary>
            <param name="error">
            The error code of the error that occurred.
            </param>
        </member>
        <member name="M:iMobileDevice.SyslogRelay.SyslogRelayException.#ctor(iMobileDevice.SyslogRelay.SyslogRelayError,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.SyslogRelay.SyslogRelayException"/> class with a specified error code and error message.
            </summary>
            <param name="error">
            The error code of the error that occurred.
            </param>
            <param name="message">
            A message which describes the error.
            </param>
        </member>
        <member name="M:iMobileDevice.SyslogRelay.SyslogRelayException.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.SyslogRelay.SyslogRelayException"/> class with a specified error message.
            </summary>
            <param name="message">
            The message that describes the error.
            </param>
        </member>
        <member name="M:iMobileDevice.SyslogRelay.SyslogRelayException.#ctor(System.String,System.Exception)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.SyslogRelay.SyslogRelayException"/> class with a specified error message and a reference to the inner exception that is the cause of this exception.
            </summary>
            <param name="message">
            The error message that explains the reason for the exception.
            </param>
            <param name="inner">
            The exception that is the cause of the current exception, or <see langword="null"/> if no inner exception is specified.
            </param>
        </member>
        <member name="M:iMobileDevice.SyslogRelay.SyslogRelayException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.SyslogRelay.SyslogRelayException"/> class with serialized data.
            </summary>
            <param name="info">
            The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds the serialized object data about the exception being thrown.
            </param>
            <param name="context">
            The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that contains contextual information about the source or destination.
            </param>
        </member>
        <member name="P:iMobileDevice.SyslogRelay.SyslogRelayException.ErrorCode">
            <summary>
            Gets the error code that represents the error.
            </summary>
        </member>
        <member name="M:iMobileDevice.SyslogRelay.SyslogRelayNativeMethods.syslog_relay_client_new(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Lockdown.LockdownServiceDescriptorHandle,iMobileDevice.SyslogRelay.SyslogRelayClientHandle@)">
            <summary>
            Connects to the syslog_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">
            Pointer that will point to a newly allocated
            syslog_relay_client_t upon successful return. Must be freed using
            syslog_relay_client_free() after use.
            </param>
            <returns>
            SYSLOG_RELAY_E_SUCCESS on success, SYSLOG_RELAY_E_INVALID_ARG when
            client is NULL, or an SYSLOG_RELAY_E_* error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.SyslogRelay.SyslogRelayNativeMethods.syslog_relay_client_start_service(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.SyslogRelay.SyslogRelayClientHandle@,System.String)">
            <summary>
            Starts a new syslog_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
            syslog_relay_client_t upon successful return. Must be freed using
            syslog_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>
            SYSLOG_RELAY_E_SUCCESS on success, or an SYSLOG_RELAY_E_* error
            code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.SyslogRelay.SyslogRelayNativeMethods.syslog_relay_client_free(System.IntPtr)">
            <summary>
            Disconnects a syslog_relay client from the device and frees up the
            syslog_relay client data.
            </summary>
            <param name="client">
            The syslog_relay client to disconnect and free.
            </param>
            <returns>
            SYSLOG_RELAY_E_SUCCESS on success, SYSLOG_RELAY_E_INVALID_ARG when
            client is NULL, or an SYSLOG_RELAY_E_* error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.SyslogRelay.SyslogRelayNativeMethods.syslog_relay_start_capture(iMobileDevice.SyslogRelay.SyslogRelayClientHandle,iMobileDevice.SyslogRelay.SyslogRelayReceiveCallBack,System.IntPtr)">
            <summary>
            Starts capturing the syslog of the device using a callback.
            Use syslog_relay_stop_capture() to stop receiving the syslog.
            </summary>
            <param name="client">
            The syslog_relay client to use
            </param>
            <param name="callback">
            Callback to receive each character from the syslog.
            </param>
            <param name="user_data">
            Custom pointer passed to the callback function.
            </param>
            <returns>
            SYSLOG_RELAY_E_SUCCESS on success,
            SYSLOG_RELAY_E_INVALID_ARG when one or more parameters are
            invalid or SYSLOG_RELAY_E_UNKNOWN_ERROR when an unspecified
            error occurs or a syslog capture has already been started.
            </returns>
        </member>
        <member name="M:iMobileDevice.SyslogRelay.SyslogRelayNativeMethods.syslog_relay_start_capture_raw(iMobileDevice.SyslogRelay.SyslogRelayClientHandle,iMobileDevice.SyslogRelay.SyslogRelayReceiveCallBack,System.IntPtr)">
            <summary>
            Starts capturing the *raw* syslog of the device using a callback.
            This function is like syslog_relay_start_capture with the difference that
            it will neither check nor process the received data before passing it to
            the callback function.
            Use syslog_relay_stop_capture() to stop receiving the syslog.
            </summary>
            <param name="client">
            The syslog_relay client to use
            </param>
            <param name="callback">
            Callback to receive each character from the syslog.
            </param>
            <param name="user_data">
            Custom pointer passed to the callback function.
            </param>
            <returns>
            SYSLOG_RELAY_E_SUCCESS on success,
            SYSLOG_RELAY_E_INVALID_ARG when one or more parameters are
            invalid or SYSLOG_RELAY_E_UNKNOWN_ERROR when an unspecified
            error occurs or a syslog capture has already been started.
            </returns>
            <remarks>
            Use syslog_relay_start_capture for a safer implementation.
            </remarks>
        </member>
        <member name="M:iMobileDevice.SyslogRelay.SyslogRelayNativeMethods.syslog_relay_stop_capture(iMobileDevice.SyslogRelay.SyslogRelayClientHandle)">
            <summary>
            Stops capturing the syslog of the device.
            Use syslog_relay_start_capture() to start receiving the syslog.
            </summary>
            <param name="client">
            The syslog_relay client to use
            </param>
            <returns>
            SYSLOG_RELAY_E_SUCCESS on success,
            SYSLOG_RELAY_E_INVALID_ARG when one or more parameters are
            invalid or SYSLOG_RELAY_E_UNKNOWN_ERROR when an unspecified
            error occurs or a syslog capture has already been started.
            </returns>
        </member>
        <member name="M:iMobileDevice.SyslogRelay.SyslogRelayNativeMethods.syslog_relay_receive_with_timeout(iMobileDevice.SyslogRelay.SyslogRelayClientHandle,System.Byte[],System.UInt32,System.UInt32@,System.UInt32)">
            <summary>
            Receives data using the given syslog_relay client with specified timeout.
            </summary>
            <param name="client">
            The syslog_relay client to use for receiving
            </param>
            <param name="data">
            Buffer that will be filled with the data received
            </param>
            <param name="size">
            Number of bytes to receive
            </param>
            <param name="received">
            Number of bytes received (can be NULL to ignore)
            </param>
            <param name="timeout">
            Maximum time in milliseconds to wait for data.
            </param>
            <returns>
            SYSLOG_RELAY_E_SUCCESS on success,
            SYSLOG_RELAY_E_INVALID_ARG when one or more parameters are
            invalid, SYSLOG_RELAY_E_MUX_ERROR when a communication error
            occurs, or SYSLOG_RELAY_E_UNKNOWN_ERROR when an unspecified
            error occurs.
            </returns>
        </member>
        <member name="M:iMobileDevice.SyslogRelay.SyslogRelayNativeMethods.syslog_relay_receive(iMobileDevice.SyslogRelay.SyslogRelayClientHandle,System.Byte[],System.UInt32,System.UInt32@)">
            <summary>
            Receives data from the service.
            </summary>
            <param name="client">
            The syslog_relay client
            </param>
            <param name="data">
            Buffer that will be filled with the data received
            </param>
            <param name="size">
            Number of bytes to receive
            </param>
            <param name="received">
            Number of bytes received (can be NULL to ignore)
            </param>
            <param name="timeout">
            Maximum time in milliseconds to wait for data.
            </param>
            <returns>
            SYSLOG_RELAY_E_SUCCESS on success,
            SYSLOG_RELAY_E_INVALID_ARG when client or plist is NULL
            </returns>
        </member>
        <member name="P:iMobileDevice.Usbmuxd.IUsbmuxdApi.Parent">
            <summary>
            Gets or sets the <see cref="!:ILibiMobileDeviceApi"/> which owns this <see cref="N:iMobileDevice.Usbmuxd"/>.
            </summary>
        </member>
        <member name="M:iMobileDevice.Usbmuxd.IUsbmuxdApi.usbmuxd_events_subscribe(iMobileDevice.Usbmuxd.UsbmuxdSubscriptionContextHandle@,iMobileDevice.Usbmuxd.UsbmuxdEventCallBack,System.IntPtr)">
            <summary>
            Subscribe a callback function to be called upon device add/remove events.
            This method can be called multiple times to register multiple callbacks
            since every subscription will have its own context (returned in the
            first parameter).
            </summary>
            <param name="context">
            A pointer to a usbmuxd_subscription_context_t that will be
            set upon creation of the subscription. The returned context must be
            passed to usbmuxd_events_unsubscribe() to unsubscribe the callback.
            </param>
            <param name="callback">
            A callback function that is executed when an event occurs.
            </param>
            <param name="user_data">
            Custom data passed on to the callback function. The data
            needs to be kept available until the callback function is unsubscribed.
            </param>
            <returns>
            0 on success or a negative errno value.
            </returns>
        </member>
        <member name="M:iMobileDevice.Usbmuxd.IUsbmuxdApi.usbmuxd_events_unsubscribe(iMobileDevice.Usbmuxd.UsbmuxdSubscriptionContextHandle)">
            <summary>
            Unsubscribe callback function
            </summary>
            <param name="context">
            A valid context as returned from usbmuxd_events_subscribe().
            </param>
            <returns>
            0 on success or a negative errno value.
            </returns>
        </member>
        <member name="M:iMobileDevice.Usbmuxd.IUsbmuxdApi.usbmuxd_subscribe(iMobileDevice.Usbmuxd.UsbmuxdEventCallBack,System.IntPtr)">
            <summary>
            Subscribe a callback (deprecated)
            </summary>
            <param name="callback">
            A callback function that is executed when an event occurs.
            </param>
            <param name="user_data">
            Custom data passed on to the callback function. The data
            needs to be kept available until the callback function is unsubscribed.
            </param>
            <returns>
            0 on success or negative on error.
            </returns>
            <remarks>
            Deprecated. Use usbmuxd_events_subscribe and usbmuxd_events_unsubscribe instead.
            </remarks>
        </member>
        <member name="M:iMobileDevice.Usbmuxd.IUsbmuxdApi.usbmuxd_unsubscribe">
            <summary>
            Unsubscribe callback (deprecated)
            </summary>
            <returns>
            0 on success or negative on error.
            </returns>
            <remarks>
            Deprecated. Use usbmuxd_events_subscribe and usbmuxd_events_unsubscribe instead.
            </remarks>
        </member>
        <member name="M:iMobileDevice.Usbmuxd.IUsbmuxdApi.usbmuxd_get_device_list(System.IntPtr@)">
            <summary>
            Contacts usbmuxd and retrieves a list of connected devices.
            </summary>
            <param name="device_list">
            A pointer to an array of usbmuxd_device_info_t
            that will hold records of the connected devices. The last record
            is a null-terminated record with all fields set to 0/NULL.
            </param>
            <returns>
            number of attached devices, zero on no devices, or negative
            if an error occured.
            </returns>
            <remarks>
            The user has to free the list returned.
            </remarks>
        </member>
        <member name="M:iMobileDevice.Usbmuxd.IUsbmuxdApi.usbmuxd_device_list_free(System.IntPtr)">
            <summary>
            Frees the device list returned by an usbmuxd_get_device_list call
            </summary>
            <param name="device_list">
            A pointer to an array of usbmuxd_device_info_t to free.
            </param>
            <returns>
            0 on success, -1 on error.
            </returns>
        </member>
        <member name="M:iMobileDevice.Usbmuxd.IUsbmuxdApi.usbmuxd_get_device_by_udid(System.String,iMobileDevice.Usbmuxd.UsbmuxdDeviceInfo@)">
            <summary>
            Looks up the device specified by UDID and returns device information.
            </summary>
            <param name="udid">
            A device UDID of the device to look for. If udid is NULL,
            This function will return the first device found.
            </param>
            <param name="device">
            Pointer to a previously allocated (or static)
            usbmuxd_device_info_t that will be filled with the device info.
            </param>
            <returns>
            0 if no matching device is connected, 1 if the device was found,
            or a negative value on error.
            </returns>
            <remarks>
            This function only considers devices connected through USB. To
            query devices available via network, use usbmuxd_get_device().
            </remarks>
        </member>
        <member name="M:iMobileDevice.Usbmuxd.IUsbmuxdApi.usbmuxd_get_device(System.String,iMobileDevice.Usbmuxd.UsbmuxdDeviceInfo@,System.Int32)">
            <summary>
            Looks up the device specified by UDID with given options and returns
            device information.
            </summary>
            <param name="udid">
            A device UDID of the device to look for. If udid is NULL,
            this function will return the first device found.
            </param>
            <param name="device">
            Pointer to a previously allocated (or static)
            usbmuxd_device_info_t that will be filled with the device info.
            </param>
            <param name="options">
            Specifying what device connection types should be
            considered during lookup. Accepts bitwise or'ed values of
            usbmux_lookup_options.
            If 0 (no option) is specified it will default to DEVICE_LOOKUP_USBMUX.
            To lookup both USB and network-connected devices, pass
            DEVICE_LOOKUP_USBMUX | DEVICE_LOOKUP_NETWORK. If a device is available
            both via USBMUX *and* network, it will select the USB connection.
            This behavior can be changed by adding DEVICE_LOOKUP_PREFER_NETWORK
            to the options in which case it will select the network connection.
            </param>
            <returns>
            0 if no matching device is connected, 1 if the device was found,
            or a negative value on error.
            </returns>
        </member>
        <member name="M:iMobileDevice.Usbmuxd.IUsbmuxdApi.usbmuxd_connect(System.UInt32,System.UInt16)">
            <summary>
            Request proxy connection to the specified device and port.
            </summary>
            <param name="handle">
            returned in the usbmux_device_info_t structure via
            usbmuxd_get_device() or usbmuxd_get_device_list().
            </param>
            <param name="tcp_port">
            TCP port number on device, in range 0-65535.
            common values are 62078 for lockdown, and 22 for SSH.
            </param>
            <returns>
            socket file descriptor of the connection, or a negative errno
            value on error.
            </returns>
        </member>
        <member name="M:iMobileDevice.Usbmuxd.IUsbmuxdApi.usbmuxd_disconnect(System.Int32)">
            <summary>
            Disconnect. For now, this just closes the socket file descriptor.
            </summary>
            <param name="sfd">
            socket file descriptor returned by usbmuxd_connect()
            </param>
            <returns>
            0 on success, -1 on error.
            </returns>
        </member>
        <member name="M:iMobileDevice.Usbmuxd.IUsbmuxdApi.usbmuxd_send(System.Int32,System.Byte[],System.UInt32,System.UInt32@)">
            <summary>
            Send data to the specified socket.
            </summary>
            <param name="sfd">
            socket file descriptor returned by usbmuxd_connect()
            </param>
            <param name="data">
            buffer to send
            </param>
            <param name="len">
            size of buffer to send
            </param>
            <param name="sent_bytes">
            how many bytes sent
            </param>
            <returns>
            0 on success, a negative errno value otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Usbmuxd.IUsbmuxdApi.usbmuxd_recv_timeout(System.Int32,System.Byte[],System.UInt32,System.UInt32@,System.UInt32)">
            <summary>
            Receive data from the specified socket.
            </summary>
            <param name="sfd">
            socket file descriptor returned by usbmuxd_connect()
            </param>
            <param name="data">
            buffer to put the data to
            </param>
            <param name="len">
            number of bytes to receive
            </param>
            <param name="recv_bytes">
            number of bytes received
            </param>
            <param name="timeout">
            how many milliseconds to wait for data
            </param>
            <returns>
            0 on success, a negative errno value otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Usbmuxd.IUsbmuxdApi.usbmuxd_recv(System.Int32,System.Byte[],System.UInt32,System.UInt32@)">
            <summary>
            Receive data from the specified socket with a default timeout.
            </summary>
            <param name="sfd">
            socket file descriptor returned by usbmuxd_connect()
            </param>
            <param name="data">
            buffer to put the data to
            </param>
            <param name="len">
            number of bytes to receive
            </param>
            <param name="recv_bytes">
            number of bytes received
            </param>
            <returns>
            0 on success, a negative errno value otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Usbmuxd.IUsbmuxdApi.usbmuxd_read_buid(System.String@)">
            <summary>
            Reads the SystemBUID
            </summary>
            <param name="buid">
            pointer to a variable that will be set to point to a newly
            allocated string with the System BUID returned by usbmuxd
            </param>
            <returns>
            0 on success, a negative errno value otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Usbmuxd.IUsbmuxdApi.usbmuxd_read_pair_record(System.String,System.String@,System.UInt32@)">
            <summary>
            Read a pairing record
            </summary>
            <param name="record_id">
            the record identifier of the pairing record to retrieve
            </param>
            <param name="record_data">
            pointer to a variable that will be set to point to a
            newly allocated buffer containing the pairing record data
            </param>
            <param name="record_size">
            pointer to a variable that will be set to the size of
            the buffer returned in record_data
            </param>
            <returns>
            0 on success, a negative error value otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Usbmuxd.IUsbmuxdApi.usbmuxd_save_pair_record(System.String,System.String,System.UInt32)">
            <summary>
            Save a pairing record
            </summary>
            <param name="record_id">
            the record identifier of the pairing record to save
            </param>
            <param name="record_data">
            buffer containing the pairing record data
            </param>
            <param name="record_size">
            size of the buffer passed in record_data
            </param>
            <returns>
            0 on success, a negative error value otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Usbmuxd.IUsbmuxdApi.usbmuxd_save_pair_record_with_device_id(System.String,System.UInt32,System.String,System.UInt32)">
            <summary>
            Save a pairing record with device identifier
            </summary>
            <param name="record_id">
            the record identifier of the pairing record to save
            </param>
            <param name="device_id">
            the device identifier of the connected device, or 0
            </param>
            <param name="record_data">
            buffer containing the pairing record data
            </param>
            <param name="record_size">
            size of the buffer passed in record_data
            </param>
            <returns>
            0 on success, a negative error value otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Usbmuxd.IUsbmuxdApi.usbmuxd_delete_pair_record(System.String)">
            <summary>
            Delete a pairing record
            </summary>
            <param name="record_id">
            the record identifier of the pairing record to delete.
            </param>
            <returns>
            0 on success, a negative errno value otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Usbmuxd.IUsbmuxdApi.libusbmuxd_set_use_inotify(System.Int32)">
            <summary>
            Enable or disable the use of inotify extension. Enabled by default.
            Use 0 to disable and 1 to enable inotify support.
            This only has an effect on linux systems if inotify support has been built
            in. Otherwise and on all other platforms this function has no effect.
            </summary>
        </member>
        <member name="M:iMobileDevice.Usbmuxd.IUsbmuxdApi.usbmuxd_set_socket_type(System.Int32)">
            <summary>
            Sets the socket type (Unix socket or TCP socket) libusbmuxd should use when connecting
            to usbmuxd.
            </summary>
            <param name="value">
            SOCKET_TYPE_UNIX or SOCKET_TYPE_TCP
            </param>
            <returns>
            0 on success or negative on error
            </returns>
        </member>
        <member name="M:iMobileDevice.Usbmuxd.IUsbmuxdApi.usbmuxd_get_socket_type(System.Int32@)">
            <summary>
            Gets the socket type (Unix socket or TCP socket) libusbmuxd should use when connecting
            to usbmuxd.
            </summary>
            <param name="value">
            A pointer to an integer which will reveive the current socket type
            </param>
            <returns>
            0 on success or negative on error
            </returns>
        </member>
        <member name="M:iMobileDevice.Usbmuxd.IUsbmuxdApi.usbmuxd_set_tcp_endpoint(System.String,System.UInt16)">
            <summary>
            Sets the TCP endpoint to which usbmuxd will connect if the socket type is set to
            SOCKET_TYPE_TCP
            </summary>
            <param name="host">
            The hostname or IP address to which to connect
            </param>
            <param name="port">
            The port to which to connect.
            </param>
            <returns>
            0 on success or negative on error
            </returns>
        </member>
        <member name="M:iMobileDevice.Usbmuxd.IUsbmuxdApi.usbmuxd_get_tcp_endpoint(System.String@,System.UInt16@)">
            <summary>
            Gets the TCP endpoint to which usbmuxd will connect if th esocket type is set to
            SOCKET_TYPE_TCP
            </summary>
            <param name="host">
            A pointer which will be set to the hostname or IP address to which to connect.
            The caller must free this string.
            </param>
            <param name="port">
            The port to which to connect
            </param>
            <returns>
            0 on success or negative on error
            </returns>
        </member>
        <member name="T:iMobileDevice.Usbmuxd.UsbmuxConnectionType">
            <summary>
            Type of connection a device is available on 
            </summary>
        </member>
        <member name="F:iMobileDevice.Usbmuxd.UsbmuxdApi.parent">
            <summary>
            Backing field for the <see cref="P:iMobileDevice.Usbmuxd.UsbmuxdApi.Parent"/> property
            </summary>
        </member>
        <member name="M:iMobileDevice.Usbmuxd.UsbmuxdApi.#ctor(iMobileDevice.ILibiMobileDevice)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Usbmuxd.UsbmuxdApi"/> class
            </summary>
            <param name="parent">
            The <see cref="!:ILibiMobileDeviceApi"/> which owns this <see cref="N:iMobileDevice.Usbmuxd"/>.
            </param>
        </member>
        <member name="P:iMobileDevice.Usbmuxd.UsbmuxdApi.Parent">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.Usbmuxd.UsbmuxdApi.usbmuxd_events_subscribe(iMobileDevice.Usbmuxd.UsbmuxdSubscriptionContextHandle@,iMobileDevice.Usbmuxd.UsbmuxdEventCallBack,System.IntPtr)">
            <summary>
            Subscribe a callback function to be called upon device add/remove events.
            This method can be called multiple times to register multiple callbacks
            since every subscription will have its own context (returned in the
            first parameter).
            </summary>
            <param name="context">
            A pointer to a usbmuxd_subscription_context_t that will be
            set upon creation of the subscription. The returned context must be
            passed to usbmuxd_events_unsubscribe() to unsubscribe the callback.
            </param>
            <param name="callback">
            A callback function that is executed when an event occurs.
            </param>
            <param name="user_data">
            Custom data passed on to the callback function. The data
            needs to be kept available until the callback function is unsubscribed.
            </param>
            <returns>
            0 on success or a negative errno value.
            </returns>
        </member>
        <member name="M:iMobileDevice.Usbmuxd.UsbmuxdApi.usbmuxd_events_unsubscribe(iMobileDevice.Usbmuxd.UsbmuxdSubscriptionContextHandle)">
            <summary>
            Unsubscribe callback function
            </summary>
            <param name="context">
            A valid context as returned from usbmuxd_events_subscribe().
            </param>
            <returns>
            0 on success or a negative errno value.
            </returns>
        </member>
        <member name="M:iMobileDevice.Usbmuxd.UsbmuxdApi.usbmuxd_subscribe(iMobileDevice.Usbmuxd.UsbmuxdEventCallBack,System.IntPtr)">
            <summary>
            Subscribe a callback (deprecated)
            </summary>
            <param name="callback">
            A callback function that is executed when an event occurs.
            </param>
            <param name="user_data">
            Custom data passed on to the callback function. The data
            needs to be kept available until the callback function is unsubscribed.
            </param>
            <returns>
            0 on success or negative on error.
            </returns>
            <remarks>
            Deprecated. Use usbmuxd_events_subscribe and usbmuxd_events_unsubscribe instead.
            </remarks>
        </member>
        <member name="M:iMobileDevice.Usbmuxd.UsbmuxdApi.usbmuxd_unsubscribe">
            <summary>
            Unsubscribe callback (deprecated)
            </summary>
            <returns>
            0 on success or negative on error.
            </returns>
            <remarks>
            Deprecated. Use usbmuxd_events_subscribe and usbmuxd_events_unsubscribe instead.
            </remarks>
        </member>
        <member name="M:iMobileDevice.Usbmuxd.UsbmuxdApi.usbmuxd_get_device_list(System.IntPtr@)">
            <summary>
            Contacts usbmuxd and retrieves a list of connected devices.
            </summary>
            <param name="device_list">
            A pointer to an array of usbmuxd_device_info_t
            that will hold records of the connected devices. The last record
            is a null-terminated record with all fields set to 0/NULL.
            </param>
            <returns>
            number of attached devices, zero on no devices, or negative
            if an error occured.
            </returns>
            <remarks>
            The user has to free the list returned.
            </remarks>
        </member>
        <member name="M:iMobileDevice.Usbmuxd.UsbmuxdApi.usbmuxd_device_list_free(System.IntPtr)">
            <summary>
            Frees the device list returned by an usbmuxd_get_device_list call
            </summary>
            <param name="device_list">
            A pointer to an array of usbmuxd_device_info_t to free.
            </param>
            <returns>
            0 on success, -1 on error.
            </returns>
        </member>
        <member name="M:iMobileDevice.Usbmuxd.UsbmuxdApi.usbmuxd_get_device_by_udid(System.String,iMobileDevice.Usbmuxd.UsbmuxdDeviceInfo@)">
            <summary>
            Looks up the device specified by UDID and returns device information.
            </summary>
            <param name="udid">
            A device UDID of the device to look for. If udid is NULL,
            This function will return the first device found.
            </param>
            <param name="device">
            Pointer to a previously allocated (or static)
            usbmuxd_device_info_t that will be filled with the device info.
            </param>
            <returns>
            0 if no matching device is connected, 1 if the device was found,
            or a negative value on error.
            </returns>
            <remarks>
            This function only considers devices connected through USB. To
            query devices available via network, use usbmuxd_get_device().
            </remarks>
        </member>
        <member name="M:iMobileDevice.Usbmuxd.UsbmuxdApi.usbmuxd_get_device(System.String,iMobileDevice.Usbmuxd.UsbmuxdDeviceInfo@,System.Int32)">
            <summary>
            Looks up the device specified by UDID with given options and returns
            device information.
            </summary>
            <param name="udid">
            A device UDID of the device to look for. If udid is NULL,
            this function will return the first device found.
            </param>
            <param name="device">
            Pointer to a previously allocated (or static)
            usbmuxd_device_info_t that will be filled with the device info.
            </param>
            <param name="options">
            Specifying what device connection types should be
            considered during lookup. Accepts bitwise or'ed values of
            usbmux_lookup_options.
            If 0 (no option) is specified it will default to DEVICE_LOOKUP_USBMUX.
            To lookup both USB and network-connected devices, pass
            DEVICE_LOOKUP_USBMUX | DEVICE_LOOKUP_NETWORK. If a device is available
            both via USBMUX *and* network, it will select the USB connection.
            This behavior can be changed by adding DEVICE_LOOKUP_PREFER_NETWORK
            to the options in which case it will select the network connection.
            </param>
            <returns>
            0 if no matching device is connected, 1 if the device was found,
            or a negative value on error.
            </returns>
        </member>
        <member name="M:iMobileDevice.Usbmuxd.UsbmuxdApi.usbmuxd_connect(System.UInt32,System.UInt16)">
            <summary>
            Request proxy connection to the specified device and port.
            </summary>
            <param name="handle">
            returned in the usbmux_device_info_t structure via
            usbmuxd_get_device() or usbmuxd_get_device_list().
            </param>
            <param name="tcp_port">
            TCP port number on device, in range 0-65535.
            common values are 62078 for lockdown, and 22 for SSH.
            </param>
            <returns>
            socket file descriptor of the connection, or a negative errno
            value on error.
            </returns>
        </member>
        <member name="M:iMobileDevice.Usbmuxd.UsbmuxdApi.usbmuxd_disconnect(System.Int32)">
            <summary>
            Disconnect. For now, this just closes the socket file descriptor.
            </summary>
            <param name="sfd">
            socket file descriptor returned by usbmuxd_connect()
            </param>
            <returns>
            0 on success, -1 on error.
            </returns>
        </member>
        <member name="M:iMobileDevice.Usbmuxd.UsbmuxdApi.usbmuxd_send(System.Int32,System.Byte[],System.UInt32,System.UInt32@)">
            <summary>
            Send data to the specified socket.
            </summary>
            <param name="sfd">
            socket file descriptor returned by usbmuxd_connect()
            </param>
            <param name="data">
            buffer to send
            </param>
            <param name="len">
            size of buffer to send
            </param>
            <param name="sent_bytes">
            how many bytes sent
            </param>
            <returns>
            0 on success, a negative errno value otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Usbmuxd.UsbmuxdApi.usbmuxd_recv_timeout(System.Int32,System.Byte[],System.UInt32,System.UInt32@,System.UInt32)">
            <summary>
            Receive data from the specified socket.
            </summary>
            <param name="sfd">
            socket file descriptor returned by usbmuxd_connect()
            </param>
            <param name="data">
            buffer to put the data to
            </param>
            <param name="len">
            number of bytes to receive
            </param>
            <param name="recv_bytes">
            number of bytes received
            </param>
            <param name="timeout">
            how many milliseconds to wait for data
            </param>
            <returns>
            0 on success, a negative errno value otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Usbmuxd.UsbmuxdApi.usbmuxd_recv(System.Int32,System.Byte[],System.UInt32,System.UInt32@)">
            <summary>
            Receive data from the specified socket with a default timeout.
            </summary>
            <param name="sfd">
            socket file descriptor returned by usbmuxd_connect()
            </param>
            <param name="data">
            buffer to put the data to
            </param>
            <param name="len">
            number of bytes to receive
            </param>
            <param name="recv_bytes">
            number of bytes received
            </param>
            <returns>
            0 on success, a negative errno value otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Usbmuxd.UsbmuxdApi.usbmuxd_read_buid(System.String@)">
            <summary>
            Reads the SystemBUID
            </summary>
            <param name="buid">
            pointer to a variable that will be set to point to a newly
            allocated string with the System BUID returned by usbmuxd
            </param>
            <returns>
            0 on success, a negative errno value otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Usbmuxd.UsbmuxdApi.usbmuxd_read_pair_record(System.String,System.String@,System.UInt32@)">
            <summary>
            Read a pairing record
            </summary>
            <param name="record_id">
            the record identifier of the pairing record to retrieve
            </param>
            <param name="record_data">
            pointer to a variable that will be set to point to a
            newly allocated buffer containing the pairing record data
            </param>
            <param name="record_size">
            pointer to a variable that will be set to the size of
            the buffer returned in record_data
            </param>
            <returns>
            0 on success, a negative error value otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Usbmuxd.UsbmuxdApi.usbmuxd_save_pair_record(System.String,System.String,System.UInt32)">
            <summary>
            Save a pairing record
            </summary>
            <param name="record_id">
            the record identifier of the pairing record to save
            </param>
            <param name="record_data">
            buffer containing the pairing record data
            </param>
            <param name="record_size">
            size of the buffer passed in record_data
            </param>
            <returns>
            0 on success, a negative error value otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Usbmuxd.UsbmuxdApi.usbmuxd_save_pair_record_with_device_id(System.String,System.UInt32,System.String,System.UInt32)">
            <summary>
            Save a pairing record with device identifier
            </summary>
            <param name="record_id">
            the record identifier of the pairing record to save
            </param>
            <param name="device_id">
            the device identifier of the connected device, or 0
            </param>
            <param name="record_data">
            buffer containing the pairing record data
            </param>
            <param name="record_size">
            size of the buffer passed in record_data
            </param>
            <returns>
            0 on success, a negative error value otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Usbmuxd.UsbmuxdApi.usbmuxd_delete_pair_record(System.String)">
            <summary>
            Delete a pairing record
            </summary>
            <param name="record_id">
            the record identifier of the pairing record to delete.
            </param>
            <returns>
            0 on success, a negative errno value otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Usbmuxd.UsbmuxdApi.libusbmuxd_set_use_inotify(System.Int32)">
            <summary>
            Enable or disable the use of inotify extension. Enabled by default.
            Use 0 to disable and 1 to enable inotify support.
            This only has an effect on linux systems if inotify support has been built
            in. Otherwise and on all other platforms this function has no effect.
            </summary>
        </member>
        <member name="M:iMobileDevice.Usbmuxd.UsbmuxdApi.usbmuxd_set_socket_type(System.Int32)">
            <summary>
            Sets the socket type (Unix socket or TCP socket) libusbmuxd should use when connecting
            to usbmuxd.
            </summary>
            <param name="value">
            SOCKET_TYPE_UNIX or SOCKET_TYPE_TCP
            </param>
            <returns>
            0 on success or negative on error
            </returns>
        </member>
        <member name="M:iMobileDevice.Usbmuxd.UsbmuxdApi.usbmuxd_get_socket_type(System.Int32@)">
            <summary>
            Gets the socket type (Unix socket or TCP socket) libusbmuxd should use when connecting
            to usbmuxd.
            </summary>
            <param name="value">
            A pointer to an integer which will reveive the current socket type
            </param>
            <returns>
            0 on success or negative on error
            </returns>
        </member>
        <member name="M:iMobileDevice.Usbmuxd.UsbmuxdApi.usbmuxd_set_tcp_endpoint(System.String,System.UInt16)">
            <summary>
            Sets the TCP endpoint to which usbmuxd will connect if the socket type is set to
            SOCKET_TYPE_TCP
            </summary>
            <param name="host">
            The hostname or IP address to which to connect
            </param>
            <param name="port">
            The port to which to connect.
            </param>
            <returns>
            0 on success or negative on error
            </returns>
        </member>
        <member name="M:iMobileDevice.Usbmuxd.UsbmuxdApi.usbmuxd_get_tcp_endpoint(System.String@,System.UInt16@)">
            <summary>
            Gets the TCP endpoint to which usbmuxd will connect if th esocket type is set to
            SOCKET_TYPE_TCP
            </summary>
            <param name="host">
            A pointer which will be set to the hostname or IP address to which to connect.
            The caller must free this string.
            </param>
            <param name="port">
            The port to which to connect
            </param>
            <returns>
            0 on success or negative on error
            </returns>
        </member>
        <member name="T:iMobileDevice.Usbmuxd.UsbmuxdEventType">
            <summary>
            event types for event callback function
            </summary>
        </member>
        <member name="M:iMobileDevice.Usbmuxd.UsbmuxdNativeMethods.usbmuxd_events_subscribe(iMobileDevice.Usbmuxd.UsbmuxdSubscriptionContextHandle@,iMobileDevice.Usbmuxd.UsbmuxdEventCallBack,System.IntPtr)">
            <summary>
            Subscribe a callback function to be called upon device add/remove events.
            This method can be called multiple times to register multiple callbacks
            since every subscription will have its own context (returned in the
            first parameter).
            </summary>
            <param name="context">
            A pointer to a usbmuxd_subscription_context_t that will be
            set upon creation of the subscription. The returned context must be
            passed to usbmuxd_events_unsubscribe() to unsubscribe the callback.
            </param>
            <param name="callback">
            A callback function that is executed when an event occurs.
            </param>
            <param name="user_data">
            Custom data passed on to the callback function. The data
            needs to be kept available until the callback function is unsubscribed.
            </param>
            <returns>
            0 on success or a negative errno value.
            </returns>
        </member>
        <member name="M:iMobileDevice.Usbmuxd.UsbmuxdNativeMethods.usbmuxd_events_unsubscribe(iMobileDevice.Usbmuxd.UsbmuxdSubscriptionContextHandle)">
            <summary>
            Unsubscribe callback function
            </summary>
            <param name="context">
            A valid context as returned from usbmuxd_events_subscribe().
            </param>
            <returns>
            0 on success or a negative errno value.
            </returns>
        </member>
        <member name="M:iMobileDevice.Usbmuxd.UsbmuxdNativeMethods.usbmuxd_subscribe(iMobileDevice.Usbmuxd.UsbmuxdEventCallBack,System.IntPtr)">
            <summary>
            Subscribe a callback (deprecated)
            </summary>
            <param name="callback">
            A callback function that is executed when an event occurs.
            </param>
            <param name="user_data">
            Custom data passed on to the callback function. The data
            needs to be kept available until the callback function is unsubscribed.
            </param>
            <returns>
            0 on success or negative on error.
            </returns>
            <remarks>
            Deprecated. Use usbmuxd_events_subscribe and usbmuxd_events_unsubscribe instead.
            </remarks>
        </member>
        <member name="M:iMobileDevice.Usbmuxd.UsbmuxdNativeMethods.usbmuxd_unsubscribe">
            <summary>
            Unsubscribe callback (deprecated)
            </summary>
            <returns>
            0 on success or negative on error.
            </returns>
            <remarks>
            Deprecated. Use usbmuxd_events_subscribe and usbmuxd_events_unsubscribe instead.
            </remarks>
        </member>
        <member name="M:iMobileDevice.Usbmuxd.UsbmuxdNativeMethods.usbmuxd_get_device_list(System.IntPtr@)">
            <summary>
            Contacts usbmuxd and retrieves a list of connected devices.
            </summary>
            <param name="device_list">
            A pointer to an array of usbmuxd_device_info_t
            that will hold records of the connected devices. The last record
            is a null-terminated record with all fields set to 0/NULL.
            </param>
            <returns>
            number of attached devices, zero on no devices, or negative
            if an error occured.
            </returns>
            <remarks>
            The user has to free the list returned.
            </remarks>
        </member>
        <member name="M:iMobileDevice.Usbmuxd.UsbmuxdNativeMethods.usbmuxd_device_list_free(System.IntPtr)">
            <summary>
            Frees the device list returned by an usbmuxd_get_device_list call
            </summary>
            <param name="device_list">
            A pointer to an array of usbmuxd_device_info_t to free.
            </param>
            <returns>
            0 on success, -1 on error.
            </returns>
        </member>
        <member name="M:iMobileDevice.Usbmuxd.UsbmuxdNativeMethods.usbmuxd_get_device_by_udid(System.String,iMobileDevice.Usbmuxd.UsbmuxdDeviceInfo@)">
            <summary>
            Looks up the device specified by UDID and returns device information.
            </summary>
            <param name="udid">
            A device UDID of the device to look for. If udid is NULL,
            This function will return the first device found.
            </param>
            <param name="device">
            Pointer to a previously allocated (or static)
            usbmuxd_device_info_t that will be filled with the device info.
            </param>
            <returns>
            0 if no matching device is connected, 1 if the device was found,
            or a negative value on error.
            </returns>
            <remarks>
            This function only considers devices connected through USB. To
            query devices available via network, use usbmuxd_get_device().
            </remarks>
        </member>
        <member name="M:iMobileDevice.Usbmuxd.UsbmuxdNativeMethods.usbmuxd_get_device(System.String,iMobileDevice.Usbmuxd.UsbmuxdDeviceInfo@,System.Int32)">
            <summary>
            Looks up the device specified by UDID with given options and returns
            device information.
            </summary>
            <param name="udid">
            A device UDID of the device to look for. If udid is NULL,
            this function will return the first device found.
            </param>
            <param name="device">
            Pointer to a previously allocated (or static)
            usbmuxd_device_info_t that will be filled with the device info.
            </param>
            <param name="options">
            Specifying what device connection types should be
            considered during lookup. Accepts bitwise or'ed values of
            usbmux_lookup_options.
            If 0 (no option) is specified it will default to DEVICE_LOOKUP_USBMUX.
            To lookup both USB and network-connected devices, pass
            DEVICE_LOOKUP_USBMUX | DEVICE_LOOKUP_NETWORK. If a device is available
            both via USBMUX *and* network, it will select the USB connection.
            This behavior can be changed by adding DEVICE_LOOKUP_PREFER_NETWORK
            to the options in which case it will select the network connection.
            </param>
            <returns>
            0 if no matching device is connected, 1 if the device was found,
            or a negative value on error.
            </returns>
        </member>
        <member name="M:iMobileDevice.Usbmuxd.UsbmuxdNativeMethods.usbmuxd_connect(System.UInt32,System.UInt16)">
            <summary>
            Request proxy connection to the specified device and port.
            </summary>
            <param name="handle">
            returned in the usbmux_device_info_t structure via
            usbmuxd_get_device() or usbmuxd_get_device_list().
            </param>
            <param name="tcp_port">
            TCP port number on device, in range 0-65535.
            common values are 62078 for lockdown, and 22 for SSH.
            </param>
            <returns>
            socket file descriptor of the connection, or a negative errno
            value on error.
            </returns>
        </member>
        <member name="M:iMobileDevice.Usbmuxd.UsbmuxdNativeMethods.usbmuxd_disconnect(System.Int32)">
            <summary>
            Disconnect. For now, this just closes the socket file descriptor.
            </summary>
            <param name="sfd">
            socket file descriptor returned by usbmuxd_connect()
            </param>
            <returns>
            0 on success, -1 on error.
            </returns>
        </member>
        <member name="M:iMobileDevice.Usbmuxd.UsbmuxdNativeMethods.usbmuxd_send(System.Int32,System.Byte[],System.UInt32,System.UInt32@)">
            <summary>
            Send data to the specified socket.
            </summary>
            <param name="sfd">
            socket file descriptor returned by usbmuxd_connect()
            </param>
            <param name="data">
            buffer to send
            </param>
            <param name="len">
            size of buffer to send
            </param>
            <param name="sent_bytes">
            how many bytes sent
            </param>
            <returns>
            0 on success, a negative errno value otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Usbmuxd.UsbmuxdNativeMethods.usbmuxd_recv_timeout(System.Int32,System.Byte[],System.UInt32,System.UInt32@,System.UInt32)">
            <summary>
            Receive data from the specified socket.
            </summary>
            <param name="sfd">
            socket file descriptor returned by usbmuxd_connect()
            </param>
            <param name="data">
            buffer to put the data to
            </param>
            <param name="len">
            number of bytes to receive
            </param>
            <param name="recv_bytes">
            number of bytes received
            </param>
            <param name="timeout">
            how many milliseconds to wait for data
            </param>
            <returns>
            0 on success, a negative errno value otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Usbmuxd.UsbmuxdNativeMethods.usbmuxd_recv(System.Int32,System.Byte[],System.UInt32,System.UInt32@)">
            <summary>
            Receive data from the specified socket with a default timeout.
            </summary>
            <param name="sfd">
            socket file descriptor returned by usbmuxd_connect()
            </param>
            <param name="data">
            buffer to put the data to
            </param>
            <param name="len">
            number of bytes to receive
            </param>
            <param name="recv_bytes">
            number of bytes received
            </param>
            <returns>
            0 on success, a negative errno value otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Usbmuxd.UsbmuxdNativeMethods.usbmuxd_read_buid(System.IntPtr@)">
            <summary>
            Reads the SystemBUID
            </summary>
            <param name="buid">
            pointer to a variable that will be set to point to a newly
            allocated string with the System BUID returned by usbmuxd
            </param>
            <returns>
            0 on success, a negative errno value otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Usbmuxd.UsbmuxdNativeMethods.usbmuxd_read_pair_record(System.String,System.IntPtr@,System.UInt32@)">
            <summary>
            Read a pairing record
            </summary>
            <param name="record_id">
            the record identifier of the pairing record to retrieve
            </param>
            <param name="record_data">
            pointer to a variable that will be set to point to a
            newly allocated buffer containing the pairing record data
            </param>
            <param name="record_size">
            pointer to a variable that will be set to the size of
            the buffer returned in record_data
            </param>
            <returns>
            0 on success, a negative error value otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Usbmuxd.UsbmuxdNativeMethods.usbmuxd_save_pair_record(System.String,System.String,System.UInt32)">
            <summary>
            Save a pairing record
            </summary>
            <param name="record_id">
            the record identifier of the pairing record to save
            </param>
            <param name="record_data">
            buffer containing the pairing record data
            </param>
            <param name="record_size">
            size of the buffer passed in record_data
            </param>
            <returns>
            0 on success, a negative error value otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Usbmuxd.UsbmuxdNativeMethods.usbmuxd_save_pair_record_with_device_id(System.String,System.UInt32,System.String,System.UInt32)">
            <summary>
            Save a pairing record with device identifier
            </summary>
            <param name="record_id">
            the record identifier of the pairing record to save
            </param>
            <param name="device_id">
            the device identifier of the connected device, or 0
            </param>
            <param name="record_data">
            buffer containing the pairing record data
            </param>
            <param name="record_size">
            size of the buffer passed in record_data
            </param>
            <returns>
            0 on success, a negative error value otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Usbmuxd.UsbmuxdNativeMethods.usbmuxd_delete_pair_record(System.String)">
            <summary>
            Delete a pairing record
            </summary>
            <param name="record_id">
            the record identifier of the pairing record to delete.
            </param>
            <returns>
            0 on success, a negative errno value otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Usbmuxd.UsbmuxdNativeMethods.libusbmuxd_set_use_inotify(System.Int32)">
            <summary>
            Enable or disable the use of inotify extension. Enabled by default.
            Use 0 to disable and 1 to enable inotify support.
            This only has an effect on linux systems if inotify support has been built
            in. Otherwise and on all other platforms this function has no effect.
            </summary>
        </member>
        <member name="M:iMobileDevice.Usbmuxd.UsbmuxdNativeMethods.usbmuxd_set_socket_type(System.Int32)">
            <summary>
            Sets the socket type (Unix socket or TCP socket) libusbmuxd should use when connecting
            to usbmuxd.
            </summary>
            <param name="value">
            SOCKET_TYPE_UNIX or SOCKET_TYPE_TCP
            </param>
            <returns>
            0 on success or negative on error
            </returns>
        </member>
        <member name="M:iMobileDevice.Usbmuxd.UsbmuxdNativeMethods.usbmuxd_get_socket_type(System.Int32@)">
            <summary>
            Gets the socket type (Unix socket or TCP socket) libusbmuxd should use when connecting
            to usbmuxd.
            </summary>
            <param name="value">
            A pointer to an integer which will reveive the current socket type
            </param>
            <returns>
            0 on success or negative on error
            </returns>
        </member>
        <member name="M:iMobileDevice.Usbmuxd.UsbmuxdNativeMethods.usbmuxd_set_tcp_endpoint(System.String,System.UInt16)">
            <summary>
            Sets the TCP endpoint to which usbmuxd will connect if the socket type is set to
            SOCKET_TYPE_TCP
            </summary>
            <param name="host">
            The hostname or IP address to which to connect
            </param>
            <param name="port">
            The port to which to connect.
            </param>
            <returns>
            0 on success or negative on error
            </returns>
        </member>
        <member name="M:iMobileDevice.Usbmuxd.UsbmuxdNativeMethods.usbmuxd_get_tcp_endpoint(System.IntPtr@,System.UInt16@)">
            <summary>
            Gets the TCP endpoint to which usbmuxd will connect if th esocket type is set to
            SOCKET_TYPE_TCP
            </summary>
            <param name="host">
            A pointer which will be set to the hostname or IP address to which to connect.
            The caller must free this string.
            </param>
            <param name="port">
            The port to which to connect
            </param>
            <returns>
            0 on success or negative on error
            </returns>
        </member>
        <member name="T:iMobileDevice.Usbmuxd.UsbmuxdSocketType">
            <summary>
            specifies how libusbmuxd should connect to usbmuxd
            </summary>
        </member>
        <member name="T:iMobileDevice.Usbmuxd.UsbmuxdSubscriptionContextHandle">
            <summary>
            Represents a wrapper class for Usbmuxd handles.
            </summary>
        </member>
        <member name="M:iMobileDevice.Usbmuxd.UsbmuxdSubscriptionContextHandle.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Usbmuxd.UsbmuxdSubscriptionContextHandle"/> class.
            </summary>
        </member>
        <member name="M:iMobileDevice.Usbmuxd.UsbmuxdSubscriptionContextHandle.#ctor(System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.Usbmuxd.UsbmuxdSubscriptionContextHandle"/> class, specifying whether the handle is to be reliably released.
            </summary>
            <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>
        </member>
        <member name="P:iMobileDevice.Usbmuxd.UsbmuxdSubscriptionContextHandle.Api">
            <summary>
            Gets or sets the API to use
            </summary>
        </member>
        <member name="P:iMobileDevice.Usbmuxd.UsbmuxdSubscriptionContextHandle.Zero">
            <summary>
            Gets a value which represents a pointer or handle that has been initialized to zero.
            </summary>
        </member>
        <member name="M:iMobileDevice.Usbmuxd.UsbmuxdSubscriptionContextHandle.ReleaseHandle">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.Usbmuxd.UsbmuxdSubscriptionContextHandle.DangerousCreate(System.IntPtr,System.Boolean)">
            <summary>
            Creates a new <see cref="T:iMobileDevice.Usbmuxd.UsbmuxdSubscriptionContextHandle"/> from a <see cref="T:System.IntPtr"/>.
            </summary>
            <param name="unsafeHandle">
            The underlying <see cref="T:System.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>
        </member>
        <member name="M:iMobileDevice.Usbmuxd.UsbmuxdSubscriptionContextHandle.DangerousCreate(System.IntPtr)">
            <summary>
            Creates a new <see cref="T:iMobileDevice.Usbmuxd.UsbmuxdSubscriptionContextHandle"/> from a <see cref="T:System.IntPtr"/>.
            </summary>
            <param name="unsafeHandle">
            The underlying <see cref="T:System.IntPtr"/>
            </param>
            <returns>
            </returns>
        </member>
        <member name="M:iMobileDevice.Usbmuxd.UsbmuxdSubscriptionContextHandle.ToString">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.Usbmuxd.UsbmuxdSubscriptionContextHandle.Equals(System.Object)">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.Usbmuxd.UsbmuxdSubscriptionContextHandle.GetHashCode">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.Usbmuxd.UsbmuxdSubscriptionContextHandle.op_Equality(iMobileDevice.Usbmuxd.UsbmuxdSubscriptionContextHandle,iMobileDevice.Usbmuxd.UsbmuxdSubscriptionContextHandle)">
            <summary>
            Determines whether two specified instances of <see cref="T:iMobileDevice.Usbmuxd.UsbmuxdSubscriptionContextHandle"/> are equal.
            </summary>
            <param name="value1">
            The first pointer or handle to compare.
            </param>
            <param name="value2">
            The second pointer or handle to compare.
            </param>
            <returns>
            <see langword="true"/> if <paramref name="value1"/> equals <paramref name="value2"/>; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="M:iMobileDevice.Usbmuxd.UsbmuxdSubscriptionContextHandle.op_Inequality(iMobileDevice.Usbmuxd.UsbmuxdSubscriptionContextHandle,iMobileDevice.Usbmuxd.UsbmuxdSubscriptionContextHandle)">
            <summary>
            Determines whether two specified instances of <see cref="T:iMobileDevice.Usbmuxd.UsbmuxdSubscriptionContextHandle"/> are not equal.
            </summary>
            <param name="value1">
            The first pointer or handle to compare.
            </param>
            <param name="value2">
            The second pointer or handle to compare.
            </param>
            <returns>
            <see langword="true"/> if <paramref name="value1"/> does not equal <paramref name="value2"/>; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="T:iMobileDevice.Usbmuxd.UsbmuxLookupOptions">
            <summary>
            Device lookup options for usbmuxd_get_device. 
            </summary>
        </member>
        <member name="F:iMobileDevice.Usbmuxd.UsbmuxLookupOptions.LookupPreferNetwork">
            <summary>
            prefer network connection if device is available via USBMUX *and* network 
            </summary>
        </member>
        <member name="T:iMobileDevice.Utf8Marshal">
            <summary>
            Provides marshalling capabilities for UTF-8 strings.
            </summary>
        </member>
        <member name="M:iMobileDevice.Utf8Marshal.PtrToStringUtf8(System.IntPtr)">
            <summary>
            Converts a pointer to an UTF-8 string.
            </summary>
            <param name="value">
            The value to marshal.
            </param>
            <returns>
            A <see cref="T:System.String"/> which represents the underlying string.
            </returns>
        </member>
        <member name="M:iMobileDevice.Utf8Marshal.PtrToStringUtf8(System.IntPtr,iMobileDevice.ILibiMobileDevice)">
            <summary>
            Converts a pointer to an UTF-8 string.
            </summary>
            <param name="value">
            The value to marshal.
            </param>
            <param name="api">
            The libimobiledevice API to use when marshalling.
            </param>
            <returns>
            A <see cref="T:System.String"/> which represents the underlying string.
            </returns>
        </member>
        <member name="M:iMobileDevice.Utf8Marshal.StringToHGlobalUtf8(System.String)">
            <summary>
            Converts a value to an UTF-8 string, in native memory.
            </summary>
            <param name="value">
            The value to encode.
            </param>
            <returns>
            A pointer to the UTF-8 string in unmanaged memory. You must free this pointer
            using <see cref="M:System.Runtime.InteropServices.Marshal.FreeHGlobal(System.IntPtr)"/>.
            </returns>
        </member>
        <member name="T:iMobileDevice.Utilities">
            <summary>
            Provides methods for retrieving the directory in which the libimobiledevice library and tools are located.
            </summary>
            <remarks>
            <para>
            To run the and tools, such as <c>iproxy</c>, we need to know where they are located.
            </para>
            <para>
            The libimobiledevice library and tools are delivered via the <c>imobiledevice-net</c> NuGet packages on Windows and macOS,
            and, as a special case, Ubuntu 16.04.
            On other Linux distributions, you can use the Quamotion PPA at https://launchpad.net/~quamotion/+archive/ubuntu/ppa,
            or compile from source.
            </para>
            <para>
            When running in development mode, or via <c>dotnet run</c>, .NET Core does not copy the contents of the NuGet packages to the
            output directory, but references them instead. In most cases, this is transparent - assemblies, managed and native, are
            loaded via .NET anyway, so as long as .NET knows where they are, we are good.
            </para>
            <para>
            For executables, that's a different story. We can't determine the path ourselves, because we don't know, say, the version number,
            nor is there an API in CoreCLR we can use to query the location.
            </para>
            <para>
            So we take a detour. The NuGet packages ship with a 'lighthouse' library which contains a <c>get_moduleFileName</c> function, which
            returns the location of the library. We can call <c>get_moduleFileName</c> from managed code, and determine the directory from there.
            </para>
            <para>
            Although the same function exists on Windows, Linux and OS X, there are some slight differences. For example, the Windows function uses
            Unicode, whereas the Unix ones use UTF-8.
            </para>
            </remarks>
        </member>
        <member name="F:iMobileDevice.Utilities.mobileDeviceDotNetDirectory">
            <summary>
            Caches the result of <see cref="M:iMobileDevice.Utilities.GetMobileDeviceDotNetDirectory"/>, so only a single call is required.
            </summary>
        </member>
        <member name="M:iMobileDevice.Utilities.GetMobileDeviceDotNetDirectory">
            <summary>
            Gets the directory in which the libimobiledevice library and tools are located.
            </summary>
            <returns>
            The directory in which the libimobiledevice library and tools are located.
            </returns>
        </member>
        <member name="M:iMobileDevice.Utilities.GetProxyPath">
            <summary>
            Gets the full path of the <c>iproxy.exe</c> executable.
            </summary>
            <returns>
            The full path of the <c>iproxy.exe</c> executable.
            </returns>
        </member>
        <member name="M:iMobileDevice.Utilities.GetUsbMuxdPath">
            <summary>
            Gets the full path of the <c>usbmuxd.exe</c> executable.
            </summary>
            <returns>
            The full path of the <c>usbmuxd.exe</c> executable.
            </returns>
        </member>
        <member name="M:iMobileDevice.Utilities.GetMobileDeviceDotNetDirUnix(System.Text.StringBuilder,System.Int32)">
            <summary>
            Returns the filename of the <c>mobiledevice-net-lighthouse-x64</c> module.
            </summary>
            <param name="filename">
            A <see cref="T:System.Text.StringBuilder"/> which will receive the filename of the module.
            </param>
            <param name="length">
            The maximum capacity of the module.
            </param>
            <returns>
            <c>0</c> if the operation completed successfully, or an error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.Utilities.GetMobileDeviceDotNetDirWin(System.Text.StringBuilder,System.Int32)">
            <summary>
            Returns the filename of the <c>mobiledevice-net-lighthouse-x64</c> module.
            </summary>
            <param name="filename">
            A <see cref="T:System.Text.StringBuilder"/> which will receive the filename of the module.
            </param>
            <param name="length">
            The maximum capacity of the module.
            </param>
            <returns>
            <c>0</c> if the operation completed successfully, or an error code otherwise.
            </returns>
        </member>
        <member name="P:iMobileDevice.WebInspector.IWebInspectorApi.Parent">
            <summary>
            Gets or sets the <see cref="!:ILibiMobileDeviceApi"/> which owns this <see cref="N:iMobileDevice.WebInspector"/>.
            </summary>
        </member>
        <member name="M:iMobileDevice.WebInspector.IWebInspectorApi.webinspector_client_new(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Lockdown.LockdownServiceDescriptorHandle,iMobileDevice.WebInspector.WebInspectorClientHandle@)">
            <summary>
            Connects to the webinspector 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">
            Pointer that will point to a newly allocated
            webinspector_client_t upon successful return. Must be freed using
            webinspector_client_free() after use.
            </param>
            <returns>
            WEBINSPECTOR_E_SUCCESS on success, WEBINSPECTOR_E_INVALID_ARG when
            client is NULL, or an WEBINSPECTOR_E_* error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.WebInspector.IWebInspectorApi.webinspector_client_start_service(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.WebInspector.WebInspectorClientHandle@,System.String)">
            <summary>
            Starts a new webinspector 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
            webinspector_client_t upon successful return. Must be freed using
            webinspector_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>
            WEBINSPECTOR_E_SUCCESS on success, or an WEBINSPECTOR_E_* error
            code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.WebInspector.IWebInspectorApi.webinspector_client_free(System.IntPtr)">
            <summary>
            Disconnects a webinspector client from the device and frees up the
            webinspector client data.
            </summary>
            <param name="client">
            The webinspector client to disconnect and free.
            </param>
            <returns>
            WEBINSPECTOR_E_SUCCESS on success, WEBINSPECTOR_E_INVALID_ARG when
            client is NULL, or an WEBINSPECTOR_E_* error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.WebInspector.IWebInspectorApi.webinspector_send(iMobileDevice.WebInspector.WebInspectorClientHandle,iMobileDevice.Plist.PlistHandle)">
            <summary>
            Sends a plist to the service.
            </summary>
            <param name="client">
            The webinspector client
            </param>
            <param name="plist">
            The plist to send
            </param>
            <returns>
            DIAGNOSTICS_RELAY_E_SUCCESS on success,
            DIAGNOSTICS_RELAY_E_INVALID_ARG when client or plist is NULL
            </returns>
        </member>
        <member name="M:iMobileDevice.WebInspector.IWebInspectorApi.webinspector_receive(iMobileDevice.WebInspector.WebInspectorClientHandle,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Receives a plist from the service.
            </summary>
            <param name="client">
            The webinspector client
            </param>
            <param name="plist">
            The plist to store the received data
            </param>
            <returns>
            DIAGNOSTICS_RELAY_E_SUCCESS on success,
            DIAGNOSTICS_RELAY_E_INVALID_ARG when client or plist is NULL
            </returns>
        </member>
        <member name="M:iMobileDevice.WebInspector.IWebInspectorApi.webinspector_receive_with_timeout(iMobileDevice.WebInspector.WebInspectorClientHandle,iMobileDevice.Plist.PlistHandle@,System.UInt32)">
            <summary>
            Receives a plist using the given webinspector client.
            </summary>
            <param name="client">
            The webinspector client to use for receiving
            </param>
            <param name="plist">
            pointer to a plist_t that will point to the received plist
            upon successful return
            </param>
            <param name="timeout">
            Maximum time in milliseconds to wait for data.
            </param>
            <returns>
            WEBINSPECTOR_E_SUCCESS on success,
            WEBINSPECTOR_E_INVALID_ARG when client or *plist is NULL,
            WEBINSPECTOR_E_PLIST_ERROR when the received data cannot be
            converted to a plist, WEBINSPECTOR_E_MUX_ERROR when a
            communication error occurs, or WEBINSPECTOR_E_UNKNOWN_ERROR
            when an unspecified error occurs.
            </returns>
        </member>
        <member name="F:iMobileDevice.WebInspector.WebInspectorApi.parent">
            <summary>
            Backing field for the <see cref="P:iMobileDevice.WebInspector.WebInspectorApi.Parent"/> property
            </summary>
        </member>
        <member name="M:iMobileDevice.WebInspector.WebInspectorApi.#ctor(iMobileDevice.ILibiMobileDevice)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.WebInspector.WebInspectorApi"/> class
            </summary>
            <param name="parent">
            The <see cref="!:ILibiMobileDeviceApi"/> which owns this <see cref="N:iMobileDevice.WebInspector"/>.
            </param>
        </member>
        <member name="P:iMobileDevice.WebInspector.WebInspectorApi.Parent">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.WebInspector.WebInspectorApi.webinspector_client_new(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Lockdown.LockdownServiceDescriptorHandle,iMobileDevice.WebInspector.WebInspectorClientHandle@)">
            <summary>
            Connects to the webinspector 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">
            Pointer that will point to a newly allocated
            webinspector_client_t upon successful return. Must be freed using
            webinspector_client_free() after use.
            </param>
            <returns>
            WEBINSPECTOR_E_SUCCESS on success, WEBINSPECTOR_E_INVALID_ARG when
            client is NULL, or an WEBINSPECTOR_E_* error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.WebInspector.WebInspectorApi.webinspector_client_start_service(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.WebInspector.WebInspectorClientHandle@,System.String)">
            <summary>
            Starts a new webinspector 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
            webinspector_client_t upon successful return. Must be freed using
            webinspector_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>
            WEBINSPECTOR_E_SUCCESS on success, or an WEBINSPECTOR_E_* error
            code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.WebInspector.WebInspectorApi.webinspector_client_free(System.IntPtr)">
            <summary>
            Disconnects a webinspector client from the device and frees up the
            webinspector client data.
            </summary>
            <param name="client">
            The webinspector client to disconnect and free.
            </param>
            <returns>
            WEBINSPECTOR_E_SUCCESS on success, WEBINSPECTOR_E_INVALID_ARG when
            client is NULL, or an WEBINSPECTOR_E_* error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.WebInspector.WebInspectorApi.webinspector_send(iMobileDevice.WebInspector.WebInspectorClientHandle,iMobileDevice.Plist.PlistHandle)">
            <summary>
            Sends a plist to the service.
            </summary>
            <param name="client">
            The webinspector client
            </param>
            <param name="plist">
            The plist to send
            </param>
            <returns>
            DIAGNOSTICS_RELAY_E_SUCCESS on success,
            DIAGNOSTICS_RELAY_E_INVALID_ARG when client or plist is NULL
            </returns>
        </member>
        <member name="M:iMobileDevice.WebInspector.WebInspectorApi.webinspector_receive(iMobileDevice.WebInspector.WebInspectorClientHandle,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Receives a plist from the service.
            </summary>
            <param name="client">
            The webinspector client
            </param>
            <param name="plist">
            The plist to store the received data
            </param>
            <returns>
            DIAGNOSTICS_RELAY_E_SUCCESS on success,
            DIAGNOSTICS_RELAY_E_INVALID_ARG when client or plist is NULL
            </returns>
        </member>
        <member name="M:iMobileDevice.WebInspector.WebInspectorApi.webinspector_receive_with_timeout(iMobileDevice.WebInspector.WebInspectorClientHandle,iMobileDevice.Plist.PlistHandle@,System.UInt32)">
            <summary>
            Receives a plist using the given webinspector client.
            </summary>
            <param name="client">
            The webinspector client to use for receiving
            </param>
            <param name="plist">
            pointer to a plist_t that will point to the received plist
            upon successful return
            </param>
            <param name="timeout">
            Maximum time in milliseconds to wait for data.
            </param>
            <returns>
            WEBINSPECTOR_E_SUCCESS on success,
            WEBINSPECTOR_E_INVALID_ARG when client or *plist is NULL,
            WEBINSPECTOR_E_PLIST_ERROR when the received data cannot be
            converted to a plist, WEBINSPECTOR_E_MUX_ERROR when a
            communication error occurs, or WEBINSPECTOR_E_UNKNOWN_ERROR
            when an unspecified error occurs.
            </returns>
        </member>
        <member name="T:iMobileDevice.WebInspector.WebInspectorClientHandle">
            <summary>
            Represents a wrapper class for WebInspector handles.
            </summary>
        </member>
        <member name="M:iMobileDevice.WebInspector.WebInspectorClientHandle.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.WebInspector.WebInspectorClientHandle"/> class.
            </summary>
        </member>
        <member name="M:iMobileDevice.WebInspector.WebInspectorClientHandle.#ctor(System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.WebInspector.WebInspectorClientHandle"/> class, specifying whether the handle is to be reliably released.
            </summary>
            <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>
        </member>
        <member name="P:iMobileDevice.WebInspector.WebInspectorClientHandle.Api">
            <summary>
            Gets or sets the API to use
            </summary>
        </member>
        <member name="P:iMobileDevice.WebInspector.WebInspectorClientHandle.Zero">
            <summary>
            Gets a value which represents a pointer or handle that has been initialized to zero.
            </summary>
        </member>
        <member name="M:iMobileDevice.WebInspector.WebInspectorClientHandle.ReleaseHandle">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.WebInspector.WebInspectorClientHandle.DangerousCreate(System.IntPtr,System.Boolean)">
            <summary>
            Creates a new <see cref="T:iMobileDevice.WebInspector.WebInspectorClientHandle"/> from a <see cref="T:System.IntPtr"/>.
            </summary>
            <param name="unsafeHandle">
            The underlying <see cref="T:System.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>
        </member>
        <member name="M:iMobileDevice.WebInspector.WebInspectorClientHandle.DangerousCreate(System.IntPtr)">
            <summary>
            Creates a new <see cref="T:iMobileDevice.WebInspector.WebInspectorClientHandle"/> from a <see cref="T:System.IntPtr"/>.
            </summary>
            <param name="unsafeHandle">
            The underlying <see cref="T:System.IntPtr"/>
            </param>
            <returns>
            </returns>
        </member>
        <member name="M:iMobileDevice.WebInspector.WebInspectorClientHandle.ToString">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.WebInspector.WebInspectorClientHandle.Equals(System.Object)">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.WebInspector.WebInspectorClientHandle.GetHashCode">
            <inheritdoc/>
        </member>
        <member name="M:iMobileDevice.WebInspector.WebInspectorClientHandle.op_Equality(iMobileDevice.WebInspector.WebInspectorClientHandle,iMobileDevice.WebInspector.WebInspectorClientHandle)">
            <summary>
            Determines whether two specified instances of <see cref="T:iMobileDevice.WebInspector.WebInspectorClientHandle"/> are equal.
            </summary>
            <param name="value1">
            The first pointer or handle to compare.
            </param>
            <param name="value2">
            The second pointer or handle to compare.
            </param>
            <returns>
            <see langword="true"/> if <paramref name="value1"/> equals <paramref name="value2"/>; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="M:iMobileDevice.WebInspector.WebInspectorClientHandle.op_Inequality(iMobileDevice.WebInspector.WebInspectorClientHandle,iMobileDevice.WebInspector.WebInspectorClientHandle)">
            <summary>
            Determines whether two specified instances of <see cref="T:iMobileDevice.WebInspector.WebInspectorClientHandle"/> are not equal.
            </summary>
            <param name="value1">
            The first pointer or handle to compare.
            </param>
            <param name="value2">
            The second pointer or handle to compare.
            </param>
            <returns>
            <see langword="true"/> if <paramref name="value1"/> does not equal <paramref name="value2"/>; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="T:iMobileDevice.WebInspector.WebInspectorError">
            <summary>
            Error Codes 
            </summary>
        </member>
        <member name="T:iMobileDevice.WebInspector.WebInspectorException">
            Represents an exception that occurred when interacting with the WebInspector API.
        </member>
        <member name="F:iMobileDevice.WebInspector.WebInspectorException.errorCode">
            <summary>
            Backing field for the <see cref="P:iMobileDevice.WebInspector.WebInspectorException.ErrorCode"/> property.
            </summary>
        </member>
        <member name="M:iMobileDevice.WebInspector.WebInspectorException.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.WebInspector.WebInspectorException"/> class.
            </summary>
        </member>
        <member name="M:iMobileDevice.WebInspector.WebInspectorException.#ctor(iMobileDevice.WebInspector.WebInspectorError)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.WebInspector.WebInspectorException"/> class with a specified error code.
            </summary>
            <param name="error">
            The error code of the error that occurred.
            </param>
        </member>
        <member name="M:iMobileDevice.WebInspector.WebInspectorException.#ctor(iMobileDevice.WebInspector.WebInspectorError,System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.WebInspector.WebInspectorException"/> class with a specified error code and error message.
            </summary>
            <param name="error">
            The error code of the error that occurred.
            </param>
            <param name="message">
            A message which describes the error.
            </param>
        </member>
        <member name="M:iMobileDevice.WebInspector.WebInspectorException.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.WebInspector.WebInspectorException"/> class with a specified error message.
            </summary>
            <param name="message">
            The message that describes the error.
            </param>
        </member>
        <member name="M:iMobileDevice.WebInspector.WebInspectorException.#ctor(System.String,System.Exception)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.WebInspector.WebInspectorException"/> class with a specified error message and a reference to the inner exception that is the cause of this exception.
            </summary>
            <param name="message">
            The error message that explains the reason for the exception.
            </param>
            <param name="inner">
            The exception that is the cause of the current exception, or <see langword="null"/> if no inner exception is specified.
            </param>
        </member>
        <member name="M:iMobileDevice.WebInspector.WebInspectorException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Initializes a new instance of the <see cref="T:iMobileDevice.WebInspector.WebInspectorException"/> class with serialized data.
            </summary>
            <param name="info">
            The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds the serialized object data about the exception being thrown.
            </param>
            <param name="context">
            The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that contains contextual information about the source or destination.
            </param>
        </member>
        <member name="P:iMobileDevice.WebInspector.WebInspectorException.ErrorCode">
            <summary>
            Gets the error code that represents the error.
            </summary>
        </member>
        <member name="M:iMobileDevice.WebInspector.WebInspectorNativeMethods.webinspector_client_new(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.Lockdown.LockdownServiceDescriptorHandle,iMobileDevice.WebInspector.WebInspectorClientHandle@)">
            <summary>
            Connects to the webinspector 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">
            Pointer that will point to a newly allocated
            webinspector_client_t upon successful return. Must be freed using
            webinspector_client_free() after use.
            </param>
            <returns>
            WEBINSPECTOR_E_SUCCESS on success, WEBINSPECTOR_E_INVALID_ARG when
            client is NULL, or an WEBINSPECTOR_E_* error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.WebInspector.WebInspectorNativeMethods.webinspector_client_start_service(iMobileDevice.iDevice.iDeviceHandle,iMobileDevice.WebInspector.WebInspectorClientHandle@,System.String)">
            <summary>
            Starts a new webinspector 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
            webinspector_client_t upon successful return. Must be freed using
            webinspector_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>
            WEBINSPECTOR_E_SUCCESS on success, or an WEBINSPECTOR_E_* error
            code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.WebInspector.WebInspectorNativeMethods.webinspector_client_free(System.IntPtr)">
            <summary>
            Disconnects a webinspector client from the device and frees up the
            webinspector client data.
            </summary>
            <param name="client">
            The webinspector client to disconnect and free.
            </param>
            <returns>
            WEBINSPECTOR_E_SUCCESS on success, WEBINSPECTOR_E_INVALID_ARG when
            client is NULL, or an WEBINSPECTOR_E_* error code otherwise.
            </returns>
        </member>
        <member name="M:iMobileDevice.WebInspector.WebInspectorNativeMethods.webinspector_send(iMobileDevice.WebInspector.WebInspectorClientHandle,iMobileDevice.Plist.PlistHandle)">
            <summary>
            Sends a plist to the service.
            </summary>
            <param name="client">
            The webinspector client
            </param>
            <param name="plist">
            The plist to send
            </param>
            <returns>
            DIAGNOSTICS_RELAY_E_SUCCESS on success,
            DIAGNOSTICS_RELAY_E_INVALID_ARG when client or plist is NULL
            </returns>
        </member>
        <member name="M:iMobileDevice.WebInspector.WebInspectorNativeMethods.webinspector_receive(iMobileDevice.WebInspector.WebInspectorClientHandle,iMobileDevice.Plist.PlistHandle@)">
            <summary>
            Receives a plist from the service.
            </summary>
            <param name="client">
            The webinspector client
            </param>
            <param name="plist">
            The plist to store the received data
            </param>
            <returns>
            DIAGNOSTICS_RELAY_E_SUCCESS on success,
            DIAGNOSTICS_RELAY_E_INVALID_ARG when client or plist is NULL
            </returns>
        </member>
        <member name="M:iMobileDevice.WebInspector.WebInspectorNativeMethods.webinspector_receive_with_timeout(iMobileDevice.WebInspector.WebInspectorClientHandle,iMobileDevice.Plist.PlistHandle@,System.UInt32)">
            <summary>
            Receives a plist using the given webinspector client.
            </summary>
            <param name="client">
            The webinspector client to use for receiving
            </param>
            <param name="plist">
            pointer to a plist_t that will point to the received plist
            upon successful return
            </param>
            <param name="timeout">
            Maximum time in milliseconds to wait for data.
            </param>
            <returns>
            WEBINSPECTOR_E_SUCCESS on success,
            WEBINSPECTOR_E_INVALID_ARG when client or *plist is NULL,
            WEBINSPECTOR_E_PLIST_ERROR when the received data cannot be
            converted to a plist, WEBINSPECTOR_E_MUX_ERROR when a
            communication error occurs, or WEBINSPECTOR_E_UNKNOWN_ERROR
            when an unspecified error occurs.
            </returns>
        </member>
    </members>
</doc>
