public static bool AMDeviceSetValue(IntPtr device, string domain, string name, object value)
        {
            bool   flag     = true;
            IntPtr ptr      = CoreFoundation.StringToCFString(domain);
            IntPtr cfsKey   = CoreFoundation.StringToCFString(name);
            IntPtr cfsValue = CoreFoundation.CFTypeFromManagedType(value);

            if (AMDeviceSetValue_Int(device, ptr, cfsKey, cfsValue) != (int)kAMDError.kAMDSuccess)
            {
                flag = false;
            }
            if (ptr != IntPtr.Zero)
            {
                CoreFoundation.CFRelease(ptr);
            }
            if (cfsKey != IntPtr.Zero)
            {
                CoreFoundation.CFRelease(cfsKey);
            }
            if (cfsValue != IntPtr.Zero)
            {
                CoreFoundation.CFRelease(cfsValue);
            }
            return(flag);
        }
        public static bool AMDeviceRemoveValue(IntPtr device, string domain, string name)
        {
            bool flag = true;

            try
            {
                IntPtr ptr    = CoreFoundation.StringToCFString(domain);
                IntPtr cfsKey = CoreFoundation.StringToCFString(name);
                if (AMDeviceRemoveValue_UInt32(device, ptr, cfsKey) != 0)
                {
                    flag = false;
                }
                if (ptr != IntPtr.Zero)
                {
                    CoreFoundation.CFRelease(ptr);
                }
                if (cfsKey != IntPtr.Zero)
                {
                    CoreFoundation.CFRelease(cfsKey);
                }
            }
            catch (Exception exception)
            {
            }
            return(flag);
        }
Example #3
0
        public static object AMDeviceCopyValue(IntPtr device, string domain, string name)
        {
            object obj2     = string.Empty;
            IntPtr ptr      = CoreFoundation.StringToCFString(domain);
            IntPtr cfstring = CoreFoundation.StringToCFString(name);
            IntPtr srcRef   = AMDeviceCopyValue_Int(device, ptr, cfstring);

            if (ptr != IntPtr.Zero)
            {
                CoreFoundation.CFRelease(ptr);
            }

            if (cfstring != IntPtr.Zero)
            {
                CoreFoundation.CFRelease(cfstring);
            }

            if (srcRef != IntPtr.Zero)
            {
                obj2 = RuntimeHelpers.GetObjectValue(CoreFoundation.ManagedTypeFromCFType(ref srcRef));
                CoreFoundation.CFRelease(srcRef);
            }

            return(obj2);
        }
Example #4
0
        /// <summary>
        /// 开启Socket服务
        /// </summary>
        /// <param name="serviceName">服务名</param>
        /// <param name="serviceSocket">Socket链接</param>
        /// <returns></returns>
        private bool StartSocketService(string serviceName, ref int serviceSocket)
        {
            if (serviceSocket > 0) //已经开启服务
            {
                return(true);
            }

            if (!isConnected)
            {
                if (Connect() != (int)kAMDError.kAMDSuccess)
                {
                    Console.WriteLine("StartService()执行Connect()失败");
                    return(false);
                }
            }

            bool openSession = false;

            if (!isSessionOpen)
            {
                var kAMDSuccess = StartSession();
                if (kAMDSuccess == kAMDError.kAMDSuccess)
                {
                    openSession = true;
                }
                else
                {
                    return(false);
                }
            }

            var result = false;
            var zero   = IntPtr.Zero;

            if (MobileDevice.AMDeviceSecureStartService(DevicePtr, CoreFoundation.StringToCFString(serviceName), IntPtr.Zero, ref zero) == (int)kAMDError.kAMDSuccess)
            {
                serviceSocket = MobileDevice.AMDServiceConnectionGetSocket(zero);
                if (serviceSocket > 0)
                {
                    SocketContext         = zero;
                    DeviceSecureIOContext = MobileDevice.AMDServiceConnectionGetSecureIOContext(zero);
                }
                result = true;
            }
            else if (MobileDevice.AMDeviceStartService(DevicePtr, CoreFoundation.StringToCFString(serviceName), ref serviceSocket, IntPtr.Zero) == (int)kAMDError.kAMDSuccess)
            {
                result = true;
            }

            if (openSession)
            {
                StopSession();
            }

            return(result);
        }
        public static IntPtr ATHostConnectionCreateWithLibrary(string strPrefsValue, string strUUID)
        {
            IntPtr hPrefsValue = CoreFoundation.StringToCFString(strPrefsValue);
            IntPtr hUUID       = CoreFoundation.StringToCFString(strUUID);
            IntPtr ptr3        = ATHostConnectionCreateWithLibrary_IntPtr(hPrefsValue, hUUID, 0);

            CoreFoundation.CFRelease(hUUID);
            CoreFoundation.CFRelease(hPrefsValue);
            return(ptr3);
        }
        public static IntPtr ATCFMessageCreate(int sesssion, string strMessageType, Dictionary <object, object> dictParams)
        {
            IntPtr hMessageType = CoreFoundation.StringToCFString(strMessageType);
            IntPtr hParams      = CoreFoundation.CFTypeFromManagedType(dictParams);
            IntPtr ptr3         = ATCFMessageCreate_IntPtr(sesssion, hMessageType, hParams);

            CoreFoundation.CFRelease(hMessageType);
            CoreFoundation.CFRelease(hParams);
            return(ptr3);
        }
Example #7
0
 public static IntPtr CFStringMakeConstantString(string s)
 {
     return(CoreFoundation.StringToCFString(s));
 }