public extern static int AMRestoreRegisterForDeviceNotifications( DeviceRestoreNotificationCallback dfu_connect, DeviceRestoreNotificationCallback recovery_connect, DeviceRestoreNotificationCallback dfu_disconnect, DeviceRestoreNotificationCallback recovery_disconnect, uint unknown0, IntPtr user_info);
static extern int AMRestoreRegisterForDeviceNotifications( DeviceRestoreNotificationCallback dfu_connect, DeviceRestoreNotificationCallback recovery_connect, DeviceRestoreNotificationCallback dfu_disconnect, DeviceRestoreNotificationCallback recovery_disconnect, uint unknown0, IntPtr user_info);
/// <summary> /// Creates a new iPhone object. If an iPhone is connected to the computer, a connection will automatically be opened. /// </summary> public iPhone() { AMDeviceNotification notification; int ret = 0; dnc = new DeviceNotificationCallback(NotifyCallback); drn1 = new DeviceRestoreNotificationCallback(DfuConnectCallback); drn2 = new DeviceRestoreNotificationCallback(RecoveryConnectCallback); drn3 = new DeviceRestoreNotificationCallback(DfuDisconnectCallback); drn4 = new DeviceRestoreNotificationCallback(RecoveryDisconnectCallback); notification = new AMDeviceNotification(); ret = MobileDevice.AMDeviceNotificationSubscribe(dnc, 0, 0, 0, ref notification); if (ret != 0) { throw new Exception("AMDeviceNotificationSubscribe failed with error " + ret); } ret = MobileDevice.AMRestoreRegisterForDeviceNotifications(drn1, drn2, drn3, drn4, 0, IntPtr.Zero); if (ret != 0) { throw new Exception("AMRestoreRegisterForDeviceNotifications failed with error " + ret); } current_directory = "/"; }
/// <summary> /// Initializes a new iPhone object. /// </summary> private void doConstruction() { drn1 = new DeviceRestoreNotificationCallback(DfuConnectCallback); drn2 = new DeviceRestoreNotificationCallback(RecoveryConnectCallback); drn3 = new DeviceRestoreNotificationCallback(DfuDisconnectCallback); drn4 = new DeviceRestoreNotificationCallback(RecoveryDisconnectCallback); int ret = MobileDevice.AMDeviceMethods.AMRestoreRegisterForDeviceNotifications(drn1, drn2, drn3, drn4, 0, IntPtr.Zero); if (ret != 0) { throw new Exception("AMRestoreRegisterForDeviceNotifications failed with error " + ret); } current_directory = "/"; }
/// <summary> /// Initializes a new iDevice object. /// </summary> unsafe private void doConstruction() { dnc = new DeviceNotificationCallback(NotifyCallback); drn1 = new DeviceRestoreNotificationCallback(DfuConnectCallback); drn2 = new DeviceRestoreNotificationCallback(RecoveryConnectCallback); drn3 = new DeviceRestoreNotificationCallback(DfuDisconnectCallback); drn4 = new DeviceRestoreNotificationCallback(RecoveryDisconnectCallback); void* notification; int ret = MobileDevice.AMDeviceNotificationSubscribe(dnc, 0, 0, 0, out notification); if (ret != 0) { throw new Exception("AMDeviceNotificationSubscribe failed with error " + ret); } ret = MobileDevice.AMRestoreRegisterForDeviceNotifications(drn1, drn2, drn3, drn4, 0, null); if (ret != 0) { throw new Exception("AMRestoreRegisterForDeviceNotifications failed with error " + ret); } current_directory = "/"; }
/// <summary> /// 开始监听链接 /// </summary> /// <param name="errorCallBack">链接出错回调</param> public void StartListen() { if (!iSStartListen) { iSStartListen = true; try { deviceNotificationCallback = NotificationCallback; deviceDFUConnectedNotificationCallback = DfuConnectCallback; deviceRecoveryConnectedNotificationCallback = RecoveryConnectCallback; deviceDFUDisConnectedNotificationCallback = DfuDisconnectCallback; deviceRecoveryDisConnectedNotificationCallback = RecoveryDisconnectCallback; IntPtr zero = IntPtr.Zero; kAMDError error = (kAMDError)MobileDevice.AMDeviceNotificationSubscribe(this.deviceNotificationCallback, 0, 1, 0, ref zero); if (error != kAMDError.kAMDSuccess) { if (ListenErrorEvent != null) { ListenErrorEvent(this, new ListenErrorEventHandlerEventArgs("AMDeviceNotificationSubscribe failed with error : " + error.ToString(), ListenErrorEventType.StartListen)); } } IntPtr userInfo = IntPtr.Zero; error = (kAMDError)MobileDevice.AMRestoreRegisterForDeviceNotifications(this.deviceDFUConnectedNotificationCallback, this.deviceRecoveryConnectedNotificationCallback, this.deviceDFUDisConnectedNotificationCallback, this.deviceRecoveryDisConnectedNotificationCallback, 0, ref userInfo); if (error != kAMDError.kAMDSuccess) { if (ListenErrorEvent != null) { ListenErrorEvent(this, new ListenErrorEventHandlerEventArgs("AMRestoreRegisterForDeviceNotifications failed with error : " + error.ToString(), ListenErrorEventType.StartListen)); } } } catch (Exception ex) { if (ListenErrorEvent != null) { ListenErrorEvent(this, new ListenErrorEventHandlerEventArgs(ex.Message, ListenErrorEventType.StartListen)); } } } }
private unsafe void doConstruction() { void *voidPtr; this.dnc = new DeviceNotificationCallback(this.NotifyCallback); this.drn1 = new DeviceRestoreNotificationCallback(this.DfuConnectCallback); this.drn2 = new DeviceRestoreNotificationCallback(this.RecoveryConnectCallback); this.drn3 = new DeviceRestoreNotificationCallback(this.DfuDisconnectCallback); this.drn4 = new DeviceRestoreNotificationCallback(this.RecoveryDisconnectCallback); int num = MobileDevice.AMDeviceNotificationSubscribe(this.dnc, 0, 0, 0, out voidPtr); if (num != 0) { throw new Exception("AMDeviceNotificationSubscribe failed with error " + num); } num = MobileDevice.AMRestoreRegisterForDeviceNotifications(this.drn1, this.drn2, this.drn3, this.drn4, 0, null); if (num != 0) { throw new Exception("AMRestoreRegisterForDeviceNotifications failed with error " + num); } this.current_directory = "/"; }
/// <summary> /// 开始监听链接 /// 需要使用线程方式调用 /// </summary> public void StartListen() { if (!iSStartListen) { iSStartListen = true; try { deviceNotificationCallback = NotificationCallback; deviceDFUConnectedNotificationCallback = DfuConnectCallback; deviceRecoveryConnectedNotificationCallback = RecoveryConnectCallback; deviceDFUDisConnectedNotificationCallback = DfuDisconnectCallback; deviceRecoveryDisConnectedNotificationCallback = RecoveryDisconnectCallback; IntPtr zero = IntPtr.Zero; kAMDError error = (kAMDError)MobileDevice.AMDeviceNotificationSubscribe(deviceNotificationCallback, 0, 1, 0, ref zero); if (error != kAMDError.kAMDSuccess) { //Check "Apple Mobile Device Service" status ListenErrorEvent?.Invoke(this, new ListenErrorEventHandlerEventArgs("AMDeviceNotificationSubscribe failed with error : " + error, ListenErrorEventType.StartListen)); } IntPtr userInfo = IntPtr.Zero; error = (kAMDError)MobileDevice.AMRestoreRegisterForDeviceNotifications(deviceDFUConnectedNotificationCallback, deviceRecoveryConnectedNotificationCallback, deviceDFUDisConnectedNotificationCallback, deviceRecoveryDisConnectedNotificationCallback, 0, ref userInfo); if (error != kAMDError.kAMDSuccess) { ListenErrorEvent?.Invoke(this, new ListenErrorEventHandlerEventArgs("AMRestoreRegisterForDeviceNotifications failed with error : " + error, ListenErrorEventType.StartListen)); } //LoopRun CoreFoundation.CFRunLoopRun(); } catch (Exception ex) { if (ListenErrorEvent != null) { ListenErrorEvent(this, new ListenErrorEventHandlerEventArgs(ex.Message, ListenErrorEventType.StartListen)); } } } }
/// <summary> /// 配置链接,注册通知回调 /// </summary> private void doConstruction() { IntPtr voidPtr = IntPtr.Zero; dnc = NotifyCallback; drn1 = DfuConnectCallback; drn2 = RecoveryConnectCallback; drn3 = DfuDisconnectCallback; drn4 = RecoveryDisconnectCallback; int num = MobileDevice.AMDeviceNotificationSubscribe(dnc, 0, 0, 0, ref voidPtr); if (num != 0) { throw new Exception("AMDeviceNotificationSubscribe failed with error " + num); } num = MobileDevice.AMRestoreRegisterForDeviceNotifications(drn1, drn2, drn3, drn4, 0, IntPtr.Zero); if (num != 0) { throw new Exception("AMRestoreRegisterForDeviceNotifications failed with error " + num); } current_directory = "/"; }
/// <summary> /// Initializes a new iDevice object. /// </summary> unsafe private void doConstruction() { dnc = new DeviceNotificationCallback(NotifyCallback); drn1 = new DeviceRestoreNotificationCallback(DfuConnectCallback); drn2 = new DeviceRestoreNotificationCallback(RecoveryConnectCallback); drn3 = new DeviceRestoreNotificationCallback(DfuDisconnectCallback); drn4 = new DeviceRestoreNotificationCallback(RecoveryDisconnectCallback); void *notification; int ret = MobileDevice.AMDeviceNotificationSubscribe(dnc, 0, 0, 0, out notification); if (ret != 0) { throw new Exception("AMDeviceNotificationSubscribe failed with error " + ret); } ret = MobileDevice.AMRestoreRegisterForDeviceNotifications(drn1, drn2, drn3, drn4, 0, null); if (ret != 0) { throw new Exception("AMRestoreRegisterForDeviceNotifications failed with error " + ret); } current_directory = "/"; }
/// <summary> /// Creates a new iPhone object. If an iPhone is connected to the computer, a connection will automatically be opened. /// </summary> public iPhone() { AMDeviceNotification notification; int ret = 0; dnc = new DeviceNotificationCallback(NotifyCallback); drn1 = new DeviceRestoreNotificationCallback(DfuConnectCallback); drn2 = new DeviceRestoreNotificationCallback(RecoveryConnectCallback); drn3 = new DeviceRestoreNotificationCallback(DfuDisconnectCallback); drn4 = new DeviceRestoreNotificationCallback(RecoveryDisconnectCallback); notification = new AMDeviceNotification(); ret = MobileDevice.AMDeviceNotificationSubscribe(dnc, 0, 0, 0, ref notification); if (ret != 0) { throw new Exception("AMDeviceNotificationSubscribe failed with error " + ret); } ret = MobileDevice.AMRestoreRegisterForDeviceNotifications(drn1, drn2, drn3, drn4, 0, IntPtr.Zero); if (ret != 0) { throw new Exception("AMRestoreRegisterForDeviceNotifications failed with error " + ret); } current_directory = "/"; }
/// <summary> /// 配置链接,注册通知回调 /// </summary> private unsafe void doConstruction() { void* voidPtr; this.dnc = new DeviceNotificationCallback(this.NotifyCallback); this.drn1 = new DeviceRestoreNotificationCallback(this.DfuConnectCallback); this.drn2 = new DeviceRestoreNotificationCallback(this.RecoveryConnectCallback); this.drn3 = new DeviceRestoreNotificationCallback(this.DfuDisconnectCallback); this.drn4 = new DeviceRestoreNotificationCallback(this.RecoveryDisconnectCallback); int num = MobileDevice.AMDeviceNotificationSubscribe(this.dnc, 0, 0, 0, out voidPtr); if (num != 0) { throw new Exception("AMDeviceNotificationSubscribe failed with error " + num); } num = MobileDevice.AMRestoreRegisterForDeviceNotifications(this.drn1, this.drn2, this.drn3, this.drn4, 0, null); if (num != 0) { throw new Exception("AMRestoreRegisterForDeviceNotifications failed with error " + num); } this.current_directory = "/"; }
public static unsafe extern int AMRestoreRegisterForDeviceNotifications(DeviceRestoreNotificationCallback dfu_connect, DeviceRestoreNotificationCallback recovery_connect, DeviceRestoreNotificationCallback dfu_disconnect, DeviceRestoreNotificationCallback recovery_disconnect, uint unknown0, void* user_info);
public static extern unsafe int AMRestoreRegisterForDeviceNotifications(DeviceRestoreNotificationCallback dfu_connect, DeviceRestoreNotificationCallback recovery_connect, DeviceRestoreNotificationCallback dfu_disconnect, DeviceRestoreNotificationCallback recovery_disconnect, uint unknown0, void *user_info);
/// <summary> /// Initializes a new iPhone object. /// </summary> private void doConstruction() { drn1 = new DeviceRestoreNotificationCallback(DfuConnectCallback); drn2 = new DeviceRestoreNotificationCallback(RecoveryConnectCallback); drn3 = new DeviceRestoreNotificationCallback(DfuDisconnectCallback); drn4 = new DeviceRestoreNotificationCallback(RecoveryDisconnectCallback); int ret = MobileDevice.DeviceImpl.RestoreRegisterForDeviceNotifications(drn1, drn2, drn3, drn4, 0, IntPtr.Zero); if (ret != 0) { throw new Exception("AMRestoreRegisterForDeviceNotifications failed with error " + ret); } current_directory = "/"; }
public int RestoreRegisterForDeviceNotifications( DeviceRestoreNotificationCallback dfu_connect, DeviceRestoreNotificationCallback recovery_connect, DeviceRestoreNotificationCallback dfu_disconnect, DeviceRestoreNotificationCallback recovery_disconnect, uint unknown0, IntPtr user_info) { return AMDeviceMethods.AMRestoreRegisterForDeviceNotifications(dfu_connect, recovery_connect, dfu_disconnect, recovery_disconnect, unknown0, user_info); }
/// <summary> /// 配置链接,注册通知回调 /// </summary> private void doConstruction() { IntPtr voidPtr=IntPtr.Zero; dnc = NotifyCallback; drn1 = DfuConnectCallback; drn2 = RecoveryConnectCallback; drn3 = DfuDisconnectCallback; drn4 = RecoveryDisconnectCallback; int num = MobileDevice.AMDeviceNotificationSubscribe(dnc, 0, 0, 0, ref voidPtr); if (num != 0) { throw new Exception("AMDeviceNotificationSubscribe failed with error " + num); } num = MobileDevice.AMRestoreRegisterForDeviceNotifications(drn1, drn2, drn3, drn4, 0, IntPtr.Zero); if (num != 0) { throw new Exception("AMRestoreRegisterForDeviceNotifications failed with error " + num); } current_directory = "/"; }