Beispiel #1
0
		internal static MiResult NewSession (ApplicationHandle handle, string protocol, string str1, DestinationOptionsHandle destinationOptionsHandle, out InstanceHandle instanceHandle, out SessionHandle sessionHandle)
		{
			string p1 = string.IsNullOrEmpty (str1) ? "localhost" : str1; //.Substring(1, str1.Length - 2);
			NewInstance (handle, p1, null, out instanceHandle);
			NativeCimSession session = new NativeCimSession();
			session.Protocol = protocol;
			session.ServerName = p1;
			session.DestinationOptions = destinationOptionsHandle == null ? IntPtr.Zero : destinationOptionsHandle.DangerousGetHandle ();
			IntPtr sessionPtr = (IntPtr)CimNativeApi.MarshalledObject.Create<NativeCimSession>(session);
			sessionHandle = new SessionHandle(sessionPtr);
			return MiResult.OK;
		}
		internal static MiResult SetUILocale(DestinationOptionsHandle destinationOptionsHandle, string locale)
		{
			/*
			MiResult miResult;
			DangerousHandleAccessor dangerousHandleAccessor = null;
			DangerousHandleAccessor modopt(System.Runtime.CompilerServices.IsConst) dangerousHandleAccessor modopt(System.Runtime.CompilerServices.IsConst) = new DangerousHandleAccessor(destinationOptionsHandle);
			try
			{
				dangerousHandleAccessor = dangerousHandleAccessor modopt(System.Runtime.CompilerServices.IsConst);
				IntPtr hGlobalUni = Marshal.StringToHGlobalUni(locale);
				IntPtr intPtr = hGlobalUni;
				try
				{
					miResult = (MiResult)<Module>.?A0x5fa54d02.MI_DestinationOptions_SetUILocale((void*)dangerousHandleAccessor.DangerousGetHandle(), (void*)hGlobalUni);
				}
				finally
				{
					if (intPtr != IntPtr.Zero)
					{
						Marshal.FreeHGlobal(intPtr);
					}
				}
			}
			dangerousHandleAccessor.Dispose();
			return miResult;
			*/
			return MiResult.NOT_SUPPORTED;
		}
		internal static MiResult SetTimeout(DestinationOptionsHandle destinationOptionsHandle, TimeSpan timeout)
		{
			/*
			MiResult miResult;
			_MI_Datetime _MIDatetime;
			DangerousHandleAccessor dangerousHandleAccessor = null;
			DangerousHandleAccessor modopt(System.Runtime.CompilerServices.IsConst) dangerousHandleAccessor modopt(System.Runtime.CompilerServices.IsConst) = new DangerousHandleAccessor(destinationOptionsHandle);
			try
			{
				dangerousHandleAccessor = dangerousHandleAccessor modopt(System.Runtime.CompilerServices.IsConst);
				InstanceMethods.ConvertManagedObjectToMiDateTime(timeout, ref _MIDatetime);
				miResult = (MiResult)<Module>.?A0x5fa54d02.MI_DestinationOptions_SetTimeout((void*)dangerousHandleAccessor.DangerousGetHandle(), &_MIDatetime + 4);
			}
			dangerousHandleAccessor.Dispose();
			return miResult;
			*/
			return MiResult.NOT_SUPPORTED;
		}
		internal static MiResult SetPacketPrivacy(DestinationOptionsHandle destinationOptionsHandle, bool privacy)
		{
			/*
			MiResult miResult;
			DangerousHandleAccessor dangerousHandleAccessor = null;
			DangerousHandleAccessor modopt(System.Runtime.CompilerServices.IsConst) dangerousHandleAccessor modopt(System.Runtime.CompilerServices.IsConst) = new DangerousHandleAccessor(destinationOptionsHandle);
			try
			{
				dangerousHandleAccessor = dangerousHandleAccessor modopt(System.Runtime.CompilerServices.IsConst);
				miResult = (MiResult)<Module>.?A0x5fa54d02.MI_DestinationOptions_SetPacketPrivacy((void*)dangerousHandleAccessor.DangerousGetHandle(), privacy);
			}
			dangerousHandleAccessor.Dispose();
			return miResult;
			*/
			return MiResult.NOT_SUPPORTED;
		}
		internal static MiResult SetImpersonationType(DestinationOptionsHandle destinationOptionsHandle, DestinationOptionsMethods.MiImpersonationType impersonationType)
		{
			/*
			MiResult miResult;
			DangerousHandleAccessor dangerousHandleAccessor = null;
			DangerousHandleAccessor modopt(System.Runtime.CompilerServices.IsConst) dangerousHandleAccessor modopt(System.Runtime.CompilerServices.IsConst) = new DangerousHandleAccessor(destinationOptionsHandle);
			try
			{
				dangerousHandleAccessor = dangerousHandleAccessor modopt(System.Runtime.CompilerServices.IsConst);
				miResult = (MiResult)<Module>.?A0x5fa54d02.MI_DestinationOptions_SetImpersonationType((void*)dangerousHandleAccessor.DangerousGetHandle(), (_MI_DestinationOptions_ImpersonationType)impersonationType);
			}
			dangerousHandleAccessor.Dispose();
			return miResult;
			*/
			return MiResult.NOT_SUPPORTED;
		}
		internal static unsafe MiResult GetUILocale(DestinationOptionsHandle destinationOptionsHandle, out string locale)
		{
			locale = CultureInfo.CurrentCulture.Name;
			/*
			_MI_Result _MIResult;
			DangerousHandleAccessor dangerousHandleAccessor = null;
			locale = null;
			DangerousHandleAccessor modopt(System.Runtime.CompilerServices.IsConst) dangerousHandleAccessor modopt(System.Runtime.CompilerServices.IsConst) = new DangerousHandleAccessor(destinationOptionsHandle);
			try
			{
				dangerousHandleAccessor = dangerousHandleAccessor modopt(System.Runtime.CompilerServices.IsConst);
				UInt16 modopt(System.Runtime.CompilerServices.IsConst)* uInt16 modopt(System.Runtime.CompilerServices.IsConst)Pointer = (UInt16 modopt(System.Runtime.CompilerServices.IsConst)*)((long)0);
				_MIResult = (_MI_Result)<Module>.?A0x5fa54d02.MI_DestinationOptions_GetUILocale((void*)dangerousHandleAccessor.DangerousGetHandle(), ref (UInt16 modopt(System.Runtime.CompilerServices.IsConst)*)((long)0));
				if (_MIResult == 0)
				{
					IntPtr intPtr = (IntPtr)uInt16 modopt(System.Runtime.CompilerServices.IsConst)Pointer;
					locale = Marshal.PtrToStringUni(intPtr);
				}
			}
			dangerousHandleAccessor.Dispose();
			return (MiResult)_MIResult;
			*/
			return MiResult.NOT_SUPPORTED;
		}
		internal static unsafe MiResult GetTransport(DestinationOptionsHandle destinationOptionsHandle, out string transport)
		{
			transport = DestinationOptionsMethods.transport_Http;
			/*
			_MI_Result _MIResult;
			DangerousHandleAccessor dangerousHandleAccessor = null;
			transport = null;
			DangerousHandleAccessor modopt(System.Runtime.CompilerServices.IsConst) dangerousHandleAccessor modopt(System.Runtime.CompilerServices.IsConst) = new DangerousHandleAccessor(destinationOptionsHandle);
			try
			{
				dangerousHandleAccessor = dangerousHandleAccessor modopt(System.Runtime.CompilerServices.IsConst);
				UInt16 modopt(System.Runtime.CompilerServices.IsConst)* uInt16 modopt(System.Runtime.CompilerServices.IsConst)Pointer = (UInt16 modopt(System.Runtime.CompilerServices.IsConst)*)((long)0);
				_MIResult = (_MI_Result)<Module>.?A0x5fa54d02.MI_DestinationOptions_GetTransport((void*)dangerousHandleAccessor.DangerousGetHandle(), ref (UInt16 modopt(System.Runtime.CompilerServices.IsConst)*)((long)0));
				if (_MIResult == 0)
				{
					IntPtr intPtr = (IntPtr)uInt16 modopt(System.Runtime.CompilerServices.IsConst)Pointer;
					transport = Marshal.PtrToStringUni(intPtr);
				}
			}
			dangerousHandleAccessor.Dispose();
			return (MiResult)_MIResult;
			*/
			return MiResult.NOT_SUPPORTED;
		}
		internal static MiResult GetTimeout(DestinationOptionsHandle destinationOptionsHandle, out TimeSpan timeout)
		{
			timeout = TimeSpan.MaxValue;
			/*
			_MI_Result _MIResult;
			DangerousHandleAccessor dangerousHandleAccessor = null;
			DangerousHandleAccessor modopt(System.Runtime.CompilerServices.IsConst) dangerousHandleAccessor modopt(System.Runtime.CompilerServices.IsConst) = new DangerousHandleAccessor(destinationOptionsHandle);
			try
			{
				dangerousHandleAccessor = dangerousHandleAccessor modopt(System.Runtime.CompilerServices.IsConst);
				timeout = TimeSpan.Zero;
				_MI_Datetime _MIDatetime = null;
				_MIResult = (_MI_Result)<Module>.?A0x5fa54d02.MI_DestinationOptions_GetTimeout((void*)dangerousHandleAccessor.DangerousGetHandle(), &_MIDatetime + 4);
				if (_MIResult == 0)
				{
					timeout = (TimeSpan)InstanceMethods.ConvertMiDateTimeToManagedObject(ref _MIDatetime);
				}
			}
			dangerousHandleAccessor.Dispose();
			return (MiResult)_MIResult;
			*/
			return MiResult.NOT_SUPPORTED;
		}
		internal static MiResult GetPacketPrivacy(DestinationOptionsHandle destinationOptionsHandle, out bool privacy)
		{
			privacy = false;
			/*
			_MI_Result _MIResult;
			byte num = 0;
			DangerousHandleAccessor dangerousHandleAccessor = null;
			privacy = false;
			DangerousHandleAccessor modopt(System.Runtime.CompilerServices.IsConst) dangerousHandleAccessor modopt(System.Runtime.CompilerServices.IsConst) = new DangerousHandleAccessor(destinationOptionsHandle);
			try
			{
				dangerousHandleAccessor = dangerousHandleAccessor modopt(System.Runtime.CompilerServices.IsConst);
				_MIResult = (_MI_Result)<Module>.?A0x5fa54d02.MI_DestinationOptions_GetPacketPrivacy((void*)dangerousHandleAccessor.DangerousGetHandle(), ref num);
				if (_MIResult == 0)
				{
					bool flag = num == 1;
					privacy = flag;
				}
			}
			dangerousHandleAccessor.Dispose();
			return (MiResult)_MIResult;
			*/
			return MiResult.NOT_SUPPORTED;
		}
		internal static unsafe MiResult AddDestinationCredentials(DestinationOptionsHandle destinationOptionsHandle, NativeCimCredentialHandle credentials)
		{
			NativeDestinationOptions options = CimNativeApi.MarshalledObject.FromPointer<NativeDestinationOptions>(destinationOptionsHandle.DangerousGetHandle ());
			string userName = Marshal.PtrToStringUni(credentials.DangerousGetHandle ());
			SecureString pwd = credentials.GetSecureString ();
			
			options.UserName = userName;
			options.Password = CimNativeApi.GetPassword(pwd);
			IntPtr ptr = (IntPtr)CimNativeApi.MarshalledObject.Create<NativeDestinationOptions>(options);
			destinationOptionsHandle.DangerousSetHandle (ptr);
			/*
			DangerousHandleAccessor dangerousHandleAccessor = null;
			DangerousHandleAccessor dangerousHandleAccessor1 = null;
			_MI_Result _MIResult = 0;
			DangerousHandleAccessor dangerousHandleAccessor modopt(System.Runtime.CompilerServices.IsConst) = new DangerousHandleAccessor(destinationOptionsHandle);
			try
			{
				_MI_DestinationOptions* _MIDestinationOptionsPointer = (_MI_DestinationOptions*)((void*)dangerousHandleAccessor.DangerousGetHandle());
				if (_MIDestinationOptionsPointer != null)
				{
					if ((long)(*(_MIDestinationOptionsPointer + (long)16)) != 0)
					{
						DangerousHandleAccessor modopt(System.Runtime.CompilerServices.IsConst) dangerousHandleAccessor modopt(System.Runtime.CompilerServices.IsConst)1 = new DangerousHandleAccessor(credentials);
						try
						{
							dangerousHandleAccessor1 = dangerousHandleAccessor modopt(System.Runtime.CompilerServices.IsConst)1;
							_MI_UserCredentials* _MIUserCredentialsPointer = (_MI_UserCredentials*)((void*)dangerousHandleAccessor1.DangerousGetHandle());
							SecureString secureString = credentials.GetSecureString();
							IntPtr zero = IntPtr.Zero;
							if (secureString == null || secureString.Length <= 0)
							{
								*(_MIUserCredentialsPointer + (long)24) = (long)0;
							}
							else
							{
								IntPtr globalAllocUnicode = Marshal.SecureStringToGlobalAllocUnicode(secureString);
								zero = globalAllocUnicode;
								*(_MIUserCredentialsPointer + (long)24) = (void*)globalAllocUnicode;
							}
							try
							{
								_MIResult = (_MI_Result)<Module>.?A0x5fa54d02.MI_DestinationOptions_AddDestinationCredentials(_MIDestinationOptionsPointer, _MIUserCredentialsPointer);
							}
							finally
							{
								if (zero != IntPtr.Zero)
								{
									Marshal.ZeroFreeGlobalAllocUnicode(zero);
								}
							}
						}
						dangerousHandleAccessor1.Dispose();
						dangerousHandleAccessor.Dispose();
						return (MiResult)_MIResult;
					}
				}
			}
			dangerousHandleAccessor.Dispose();
			*/
			return MiResult.OK;
		}
		internal static MiResult GetMaxEnvelopeSize(DestinationOptionsHandle destinationOptionsHandle, out uint sizeInKB)
		{
			sizeInKB = uint.MaxValue;
			/*
			_MI_Result _MIResult;
			uint num = 0;
			DangerousHandleAccessor dangerousHandleAccessor = null;
			sizeInKB = 0;
			DangerousHandleAccessor modopt(System.Runtime.CompilerServices.IsConst) dangerousHandleAccessor modopt(System.Runtime.CompilerServices.IsConst) = new DangerousHandleAccessor(destinationOptionsHandle);
			try
			{
				dangerousHandleAccessor = dangerousHandleAccessor modopt(System.Runtime.CompilerServices.IsConst);
				_MIResult = (_MI_Result)<Module>.?A0x5fa54d02.MI_DestinationOptions_GetMaxEnvelopeSize((void*)dangerousHandleAccessor.DangerousGetHandle(), ref num);
				if (_MIResult == 0)
				{
					sizeInKB = num;
				}
			}
			dangerousHandleAccessor.Dispose();
			return (MiResult)_MIResult;
			*/
			return MiResult.NOT_SUPPORTED;
		}
		internal static MiResult GetImpersonationType(DestinationOptionsHandle destinationOptionsHandle, out DestinationOptionsMethods.MiImpersonationType impersonationType)
		{
			impersonationType = MiImpersonationType.Default;
			/*
			_MI_Result _MIResult;
			_MI_DestinationOptions_ImpersonationType _MIDestinationOptionsImpersonationType = 0;
			DangerousHandleAccessor dangerousHandleAccessor = null;
			impersonationType = DestinationOptionsMethods.MiImpersonationType.Default;
			DangerousHandleAccessor modopt(System.Runtime.CompilerServices.IsConst) dangerousHandleAccessor modopt(System.Runtime.CompilerServices.IsConst) = new DangerousHandleAccessor(destinationOptionsHandle);
			try
			{
				dangerousHandleAccessor = dangerousHandleAccessor modopt(System.Runtime.CompilerServices.IsConst);
				_MIResult = (_MI_Result)<Module>.?A0x5fa54d02.MI_DestinationOptions_GetImpersonationType((void*)dangerousHandleAccessor.DangerousGetHandle(), (_MI_DestinationOptions_ImpersonationType*)(&_MIDestinationOptionsImpersonationType));
				if (_MIResult == 0)
				{
					impersonationType = (DestinationOptionsMethods.MiImpersonationType)_MIDestinationOptionsImpersonationType;
				}
			}
			dangerousHandleAccessor.Dispose();
			return (MiResult)_MIResult;
			*/
			return MiResult.NOT_SUPPORTED;
		}
		internal static MiResult GetDestinationPort(DestinationOptionsHandle destinationOptionsHandle, out uint port)
		{
			port = 80;
			/*
			_MI_Result _MIResult;
			DangerousHandleAccessor dangerousHandleAccessor = null;
			port = 0;
			DangerousHandleAccessor modopt(System.Runtime.CompilerServices.IsConst) dangerousHandleAccessor modopt(System.Runtime.CompilerServices.IsConst) = new DangerousHandleAccessor(destinationOptionsHandle);
			try
			{
				dangerousHandleAccessor = dangerousHandleAccessor modopt(System.Runtime.CompilerServices.IsConst);
				uint num = 0;
				_MIResult = (_MI_Result)<Module>.?A0x5fa54d02.MI_DestinationOptions_GetDestinationPort((void*)dangerousHandleAccessor.DangerousGetHandle(), ref num);
				if (_MIResult == 0)
				{
					port = num;
				}
			}
			dangerousHandleAccessor.Dispose();
			return (MiResult)_MIResult;
			*/
			return MiResult.NOT_SUPPORTED;
		}
		internal static unsafe MiResult Clone (DestinationOptionsHandle destinationOptionsHandle, out DestinationOptionsHandle newDestinationOptionsHandle)
		{
			if (destinationOptionsHandle != null) {
				newDestinationOptionsHandle = destinationOptionsHandle;
			} else {
				NativeDestinationOptions options = new NativeDestinationOptions();
				IntPtr optionsPtr = (IntPtr)CimNativeApi.MarshalledObject.Create<NativeDestinationOptions>(options);
				newDestinationOptionsHandle = new DestinationOptionsHandle(optionsPtr);
			}

			/*
			DangerousHandleAccessor dangerousHandleAccessor = null;
			DangerousHandleAccessor modopt(System.Runtime.CompilerServices.IsConst) dangerousHandleAccessor modopt(System.Runtime.CompilerServices.IsConst) = new DangerousHandleAccessor(destinationOptionsHandle);
			try
			{
				dangerousHandleAccessor = dangerousHandleAccessor modopt(System.Runtime.CompilerServices.IsConst);
				_MI_DestinationOptions* _MIDestinationOptionsPointer = (_MI_DestinationOptions*)((void*)dangerousHandleAccessor.DangerousGetHandle());
				if (_MIDestinationOptionsPointer != null)
				{
					if ((long)(*(_MIDestinationOptionsPointer + (long)16)) != 0)
					{
						newDestinationOptionsHandle = null;
						_MI_DestinationOptions* _MIDestinationOptionsPointer1 = (_MI_DestinationOptions*)<Module>.Microsoft.Management.Infrastructure.Native.MI_CLI_malloc_core((long)24);
						_MI_Result _MIResult = (_MI_Result)<Module>.?A0x5fa54d02.MI_DestinationOptions_Clone(_MIDestinationOptionsPointer, _MIDestinationOptionsPointer1);
						if (_MIResult != 0)
						{
							<Module>.free(_MIDestinationOptionsPointer1);
							dangerousHandleAccessor.Dispose();
							return (MiResult)_MIResult;
						}
						else
						{
							IntPtr intPtr = (IntPtr)_MIDestinationOptionsPointer1;
							newDestinationOptionsHandle = new DestinationOptionsHandle(intPtr);
							dangerousHandleAccessor.Dispose();
							return (MiResult)_MIResult;
						}
					}
				}
			}
			dangerousHandleAccessor.Dispose();
			*/
			return MiResult.OK;
		}
        internal static MiResult NewSession(ApplicationHandle handle, string protocol, string str1, DestinationOptionsHandle destinationOptionsHandle, out InstanceHandle instanceHandle, out SessionHandle sessionHandle)
        {
            string p1 = string.IsNullOrEmpty(str1) ? "localhost" : str1;              //.Substring(1, str1.Length - 2);

            NewInstance(handle, p1, null, out instanceHandle);
            NativeCimSession session = new NativeCimSession();

            session.Protocol           = protocol;
            session.ServerName         = p1;
            session.DestinationOptions = destinationOptionsHandle == null ? IntPtr.Zero : destinationOptionsHandle.DangerousGetHandle();
            IntPtr sessionPtr = (IntPtr)CimNativeApi.MarshalledObject.Create <NativeCimSession>(session);

            sessionHandle = new SessionHandle(sessionPtr);
            return(MiResult.OK);
        }