static void FillOperation(IWmiInstance operation, OperationDescription operationDescription) { operation.SetProperty(AdministrationStrings.Name, operationDescription.Name); operation.SetProperty(AdministrationStrings.Action, FixWildcardAction(operationDescription.Messages[0].Action)); if (operationDescription.Messages.Count > 1) { operation.SetProperty(AdministrationStrings.ReplyAction, FixWildcardAction(operationDescription.Messages[1].Action)); } operation.SetProperty(AdministrationStrings.IsOneWay, operationDescription.IsOneWay); operation.SetProperty(AdministrationStrings.IsInitiating, operationDescription.IsInitiating); operation.SetProperty(AdministrationStrings.IsTerminating, operationDescription.IsTerminating); operation.SetProperty(AdministrationStrings.AsyncPattern, null != operationDescription.BeginMethod); if (null != operationDescription.SyncMethod) { if (null != operationDescription.SyncMethod.ReturnType) { operation.SetProperty(AdministrationStrings.ReturnType, operationDescription.SyncMethod.ReturnType.Name); } operation.SetProperty(AdministrationStrings.MethodSignature, operationDescription.SyncMethod.ToString()); ParameterInfo[] parameterInfo = operationDescription.SyncMethod.GetParameters(); string[] parameterTypes = new string[parameterInfo.Length]; for (int i = 0; i < parameterInfo.Length; i++) { parameterTypes[i] = parameterInfo[i].ParameterType.ToString(); } operation.SetProperty(AdministrationStrings.ParameterTypes, parameterTypes); } operation.SetProperty(AdministrationStrings.IsCallback, operationDescription.Messages[0].Direction == MessageDirection.Output); FillBehaviorsInfo(operation, operationDescription.Behaviors); }
private static void FillBehaviorInfo(IContractBehavior behavior, IWmiInstance existingInstance, out IWmiInstance instance) { instance = null; if (behavior is DeliveryRequirementsAttribute) { instance = existingInstance.NewInstance("DeliveryRequirementsAttribute"); DeliveryRequirementsAttribute attribute = (DeliveryRequirementsAttribute) behavior; instance.SetProperty("QueuedDeliveryRequirements", attribute.QueuedDeliveryRequirements.ToString()); instance.SetProperty("RequireOrderedDelivery", attribute.RequireOrderedDelivery); if (null != attribute.TargetContract) { instance.SetProperty("TargetContract", attribute.TargetContract.ToString()); } } else if (behavior is IWmiInstanceProvider) { IWmiInstanceProvider provider = (IWmiInstanceProvider) behavior; instance = existingInstance.NewInstance(provider.GetInstanceType()); provider.FillInstance(instance); } else { instance = existingInstance.NewInstance("Behavior"); } if (instance != null) { instance.SetProperty("Type", behavior.GetType().FullName); } }
static void FillContract(IWmiInstance contract, ContractDescription contractDescription) { Fx.Assert(null != contractDescription, "contractDescription cannot be null"); contract.SetProperty(AdministrationStrings.Type, contractDescription.ContractType.Name); if (null != contractDescription.CallbackContractType) { contract.SetProperty(AdministrationStrings.CallbackContract, ContractReference(contractDescription.CallbackContractType.Name)); } contract.SetProperty(AdministrationStrings.Name, contractDescription.Name); contract.SetProperty(AdministrationStrings.Namespace, contractDescription.Namespace); contract.SetProperty(AdministrationStrings.SessionMode, contractDescription.SessionMode.ToString()); IWmiInstance[] operations = new IWmiInstance[contractDescription.Operations.Count]; for (int j = 0; j < operations.Length; ++j) { OperationDescription operationDescription = contractDescription.Operations[j]; Fx.Assert(operationDescription.Messages.Count > 0, ""); IWmiInstance operation = contract.NewInstance(AdministrationStrings.Operation); FillOperation(operation, operationDescription); operations[j] = operation; } contract.SetProperty(AdministrationStrings.Operations, operations); FillBehaviorsInfo(contract, contractDescription.Behaviors); }
bool IWmiProvider.GetInstance(IWmiInstance instance) { string serviceRef = instance.GetProperty(AdministrationStrings.Service) as string; string endpointRef = instance.GetProperty(AdministrationStrings.Endpoint) as string; return !String.IsNullOrEmpty(serviceRef) && !String.IsNullOrEmpty(endpointRef); }
bool IWmiProvider.GetInstance(IWmiInstance instance) { Fx.Assert(null != instance, ""); string serviceRef = instance.GetProperty(AdministrationStrings.Service) as string; string appDomainInfoRef = instance.GetProperty(AdministrationStrings.AppDomainInfo) as string; return !String.IsNullOrEmpty(serviceRef) && !String.IsNullOrEmpty(appDomainInfoRef); }
bool IWmiProvider.GetInstance(IWmiInstance instance) { Fx.Assert(null != instance, ""); string serviceRef = instance.GetProperty(AdministrationStrings.Service) as string; string appDomainInfoRef = instance.GetProperty(AdministrationStrings.AppDomainInfo) as string; return !String.IsNullOrEmpty(serviceRef) && !String.IsNullOrEmpty(appDomainInfoRef); }
void IWmiProvider.EnumInstances(IWmiInstances instances) { Fx.Assert(null != instances, ""); IWmiInstance instance = instances.NewInstance(null); FillAppDomainInfo(instance); instances.AddInstance(instance); }
private static void FillBehaviorInfo(IOperationBehavior behavior, IWmiInstance existingInstance, out IWmiInstance instance) { instance = null; if (behavior is DataContractSerializerOperationBehavior) { instance = existingInstance.NewInstance("DataContractSerializerOperationBehavior"); DataContractSerializerOperationBehavior behavior2 = (DataContractSerializerOperationBehavior) behavior; instance.SetProperty("IgnoreExtensionDataObject", behavior2.IgnoreExtensionDataObject); instance.SetProperty("MaxItemsInObjectGraph", behavior2.MaxItemsInObjectGraph); if (behavior2.DataContractFormatAttribute != null) { instance.SetProperty("Style", behavior2.DataContractFormatAttribute.Style.ToString()); } } else if (behavior is OperationBehaviorAttribute) { instance = existingInstance.NewInstance("OperationBehaviorAttribute"); OperationBehaviorAttribute attribute = (OperationBehaviorAttribute) behavior; instance.SetProperty("AutoDisposeParameters", attribute.AutoDisposeParameters); instance.SetProperty("Impersonation", attribute.Impersonation.ToString()); instance.SetProperty("ReleaseInstanceMode", attribute.ReleaseInstanceMode.ToString()); instance.SetProperty("TransactionAutoComplete", attribute.TransactionAutoComplete); instance.SetProperty("TransactionScopeRequired", attribute.TransactionScopeRequired); } else if (behavior is TransactionFlowAttribute) { instance = existingInstance.NewInstance("TransactionFlowAttribute"); TransactionFlowAttribute attribute2 = (TransactionFlowAttribute) behavior; instance.SetProperty("TransactionFlowOption", attribute2.Transactions.ToString()); } else if (behavior is XmlSerializerOperationBehavior) { instance = existingInstance.NewInstance("XmlSerializerOperationBehavior"); XmlSerializerOperationBehavior behavior3 = (XmlSerializerOperationBehavior) behavior; if (behavior3.XmlSerializerFormatAttribute != null) { instance.SetProperty("Style", behavior3.XmlSerializerFormatAttribute.Style.ToString()); instance.SetProperty("Use", behavior3.XmlSerializerFormatAttribute.Use.ToString()); instance.SetProperty("SupportFaults", behavior3.XmlSerializerFormatAttribute.SupportFaults.ToString()); } } else if (behavior is IWmiInstanceProvider) { IWmiInstanceProvider provider = (IWmiInstanceProvider) behavior; instance = existingInstance.NewInstance(provider.GetInstanceType()); provider.FillInstance(instance); } else { instance = existingInstance.NewInstance("Behavior"); } if (instance != null) { instance.SetProperty("Type", behavior.GetType().FullName); } }
public static void FillCollectionInfo(ICollection info, IWmiInstance instance, string propertyName) { string[] strArray = new string[info.Count]; int num = 0; foreach (object obj2 in info) { strArray[num++] = obj2.ToString(); } instance.SetProperty(propertyName, strArray); }
internal static IWmiInstance GetAppDomainInfo(IWmiInstance instance) { Fx.Assert(null != instance, ""); IWmiInstance appDomainInfo = instance.NewInstance(AdministrationStrings.AppDomainInfo); if (null != appDomainInfo) { AppDomainInstanceProvider.FillAppDomainInfo(appDomainInfo); } return appDomainInfo; }
private static void FillReaderQuotas(IWmiInstance instance, XmlDictionaryReaderQuotas readerQuotas) { IWmiInstance instance2 = instance.NewInstance("XmlDictionaryReaderQuotas"); instance2.SetProperty("MaxArrayLength", readerQuotas.MaxArrayLength); instance2.SetProperty("MaxBytesPerRead", readerQuotas.MaxBytesPerRead); instance2.SetProperty("MaxDepth", readerQuotas.MaxDepth); instance2.SetProperty("MaxNameTableCharCount", readerQuotas.MaxNameTableCharCount); instance2.SetProperty("MaxStringContentLength", readerQuotas.MaxStringContentLength); instance.SetProperty("ReaderQuotas", instance2); }
void IWmiProvider.EnumInstances(IWmiInstances instances) { Fx.Assert(null != instances, ""); foreach (ServiceInfo info in new ServiceInfoCollection(ManagementExtension.Services)) { IWmiInstance instance = instances.NewInstance(null); instance.SetProperty(AdministrationStrings.AppDomainInfo, AppDomainInstanceProvider.GetReference()); instance.SetProperty(AdministrationStrings.Service, ServiceInstanceProvider.GetReference(info)); instances.AddInstance(instance); } }
bool IWmiProvider.GetInstance(IWmiInstance instance) { Fx.Assert(null != instance, ""); bool bFound = false; if ((int)instance.GetProperty(AdministrationStrings.ProcessId) == AppDomainInfo.Current.ProcessId && String.Equals((string)instance.GetProperty(AdministrationStrings.Name), AppDomainInfo.Current.Name, StringComparison.Ordinal)) { FillAppDomainInfo(instance); bFound = true; } return bFound; }
private static void FillAddressInfo(System.ServiceModel.Administration.EndpointInfo endpoint, IWmiInstance instance) { string[] info = new string[endpoint.Headers.Count]; int num = 0; foreach (AddressHeader header in endpoint.Headers) { PlainXmlWriter writer = new PlainXmlWriter(); header.WriteAddressHeader(writer); info[num++] = writer.ToString(); } ProviderBase.FillCollectionInfo(info, instance, "AddressHeaders"); instance.SetProperty("Address", (endpoint.Address == null) ? string.Empty : endpoint.Address.ToString()); instance.SetProperty("ListenUri", (endpoint.ListenUri == null) ? string.Empty : endpoint.ListenUri.ToString()); instance.SetProperty("AddressIdentity", (endpoint.Identity == null) ? string.Empty : endpoint.Identity.ToString()); }
void FillBehaviorsInfo(ServiceInfo info, IWmiInstance instance) { Fx.Assert(null != instance, ""); List<IWmiInstance> behaviors = new List<IWmiInstance>(info.Behaviors.Count); foreach (IServiceBehavior behavior in info.Behaviors) { IWmiInstance behaviorInstance; FillBehaviorInfo(behavior, instance, out behaviorInstance); if (null != behaviorInstance) { behaviors.Add(behaviorInstance); } } instance.SetProperty(AdministrationStrings.Behaviors, behaviors.ToArray()); }
internal static void FillAppDomainInfo(IWmiInstance instance) { Fx.Assert(null != instance, ""); AppDomainInfo domainInfo = AppDomainInfo.Current; instance.SetProperty(AdministrationStrings.Name, domainInfo.Name); instance.SetProperty(AdministrationStrings.AppDomainId, domainInfo.Id); instance.SetProperty(AdministrationStrings.PerformanceCounters, PerformanceCounters.Scope.ToString()); instance.SetProperty(AdministrationStrings.IsDefault, domainInfo.IsDefaultAppDomain); instance.SetProperty(AdministrationStrings.ProcessId, domainInfo.ProcessId); instance.SetProperty(AdministrationStrings.TraceLevel, DiagnosticUtility.Level.ToString()); instance.SetProperty(AdministrationStrings.LogMalformedMessages, MessageLogger.LogMalformedMessages); instance.SetProperty(AdministrationStrings.LogMessagesAtServiceLevel, MessageLogger.LogMessagesAtServiceLevel); instance.SetProperty(AdministrationStrings.LogMessagesAtTransportLevel, MessageLogger.LogMessagesAtTransportLevel); instance.SetProperty(AdministrationStrings.ServiceConfigPath, AspNetEnvironment.Current.ConfigurationPath); FillListenersInfo(instance); }
public static void FillCollectionInfo(ICollection info, IWmiInstance instance, string propertyName) { Fx.Assert(null != info, ""); Fx.Assert(null != instance, ""); //warning 56507 : Prefer 'string.IsNullOrEmpty(action)' over checks for null and/or emptiness. #pragma warning suppress 56507 //[....]; Asserting non-null object for marshalling reasons. Empty string may be valid input. Fx.Assert(null != propertyName, ""); string[] data = new string[info.Count]; int i = 0; foreach (object o in info) { data[i++] = o.ToString(); } instance.SetProperty(propertyName, data); }
public static void FillCollectionInfo(IEnumerable info, IWmiInstance instance, string propertyName) { int num = 0; using (IEnumerator enumerator = info.GetEnumerator()) { while (enumerator.MoveNext()) { object current = enumerator.Current; num++; } } string[] strArray = new string[num]; num = 0; foreach (object obj2 in info) { strArray[num++] = obj2.ToString(); } instance.SetProperty(propertyName, strArray); }
bool IWmiProvider.GetInstance(IWmiInstance instance) { Fx.Assert(null != instance, ""); bool bFound = false; if ((int)instance.GetProperty(AdministrationStrings.ProcessId) == AppDomainInfo.Current.ProcessId) { foreach (ServiceInfo info in new ServiceInfoCollection(ManagementExtension.Services)) { if (String.Equals((string)instance.GetProperty(AdministrationStrings.DistinguishedName), info.DistinguishedName, StringComparison.OrdinalIgnoreCase)) { FillServiceInfo(info, instance); bFound = true; break; } } } return bFound; }
static IWmiInstance[] CreateListenersInfo(TraceSource traceSource, IWmiInstance instance) { Fx.Assert(null != traceSource, ""); Fx.Assert(null != instance, ""); IWmiInstance[] traceListeners = new IWmiInstance[traceSource.Listeners.Count]; for (int i = 0; i < traceSource.Listeners.Count; i++) { TraceListener traceListener = traceSource.Listeners[i]; IWmiInstance traceListenerWmiInstance = instance.NewInstance(AdministrationStrings.TraceListener); traceListenerWmiInstance.SetProperty(AdministrationStrings.Name, traceListener.Name); List<IWmiInstance> traceListenerArguments = new List<IWmiInstance>(1); Type type = traceListener.GetType(); string initializeData = (string)type.InvokeMember(AdministrationStrings.InitializeData, BindingFlags.GetField | BindingFlags.NonPublic | BindingFlags.Instance, null, traceListener, null, CultureInfo.InvariantCulture); string[] supportedAttributes = (string[])type.InvokeMember(AdministrationStrings.GetSupportedAttributes, BindingFlags.InvokeMethod | BindingFlags.NonPublic | BindingFlags.Instance, null, traceListener, null, CultureInfo.InvariantCulture); IWmiInstance argumentWmiInstance = instance.NewInstance(AdministrationStrings.TraceListenerArgument); argumentWmiInstance.SetProperty(AdministrationStrings.Name, AdministrationStrings.InitializeData); argumentWmiInstance.SetProperty(AdministrationStrings.Value, initializeData); traceListenerArguments.Add(argumentWmiInstance); if (null != supportedAttributes) { foreach (string attribute in supportedAttributes) { argumentWmiInstance = instance.NewInstance(AdministrationStrings.TraceListenerArgument); argumentWmiInstance.SetProperty(AdministrationStrings.Name, attribute); argumentWmiInstance.SetProperty(AdministrationStrings.Value, traceListener.Attributes[attribute]); traceListenerArguments.Add(argumentWmiInstance); } } traceListenerWmiInstance.SetProperty(AdministrationStrings.TraceListenerArguments, traceListenerArguments.ToArray()); traceListeners[i] = traceListenerWmiInstance; } return traceListeners; }
static void FillBindingInfo(EndpointInfo endpoint, IWmiInstance instance) { Fx.Assert(null != endpoint, ""); Fx.Assert(null != instance, ""); IWmiInstance binding = instance.NewInstance(AdministrationStrings.Binding); IWmiInstance[] bindings = new IWmiInstance[endpoint.Binding.Elements.Count]; for (int j = 0; j < bindings.Length; ++j) { bindings[j] = binding; FillBindingInfo(endpoint.Binding.Elements[j], ref bindings[j]); } binding.SetProperty(AdministrationStrings.BindingElements, bindings); binding.SetProperty(AdministrationStrings.Name, endpoint.Binding.Name); binding.SetProperty(AdministrationStrings.Namespace, endpoint.Binding.Namespace); binding.SetProperty(AdministrationStrings.CloseTimeout, endpoint.Binding.CloseTimeout); binding.SetProperty(AdministrationStrings.Scheme, endpoint.Binding.Scheme); binding.SetProperty(AdministrationStrings.OpenTimeout, endpoint.Binding.OpenTimeout); binding.SetProperty(AdministrationStrings.ReceiveTimeout, endpoint.Binding.ReceiveTimeout); binding.SetProperty(AdministrationStrings.SendTimeout, endpoint.Binding.SendTimeout); instance.SetProperty(AdministrationStrings.Binding, binding); }
bool IWmiProvider.GetInstance(IWmiInstance contract) { bool flag = false; if ((((int) contract.GetProperty("ProcessId")) == AppDomainInfo.Current.ProcessId) && (((int) contract.GetProperty("AppDomainId")) == AppDomainInfo.Current.Id)) { ContractDescription description; string property = (string) contract.GetProperty("Name"); UpdateContracts(); if (knownContracts.TryGetValue(property, out description)) { flag = true; FillContract(contract, description); } } return flag; }
private static void FillBehaviorInfo(IEndpointBehavior behavior, IWmiInstance existingInstance, out IWmiInstance instance) { instance = null; if (behavior is ClientCredentials) { instance = existingInstance.NewInstance("ClientCredentials"); ClientCredentials credentials = (ClientCredentials) behavior; instance.SetProperty("SupportInteractive", credentials.SupportInteractive); if ((credentials.ClientCertificate != null) && (credentials.ClientCertificate.Certificate != null)) { instance.SetProperty("ClientCertificate", credentials.ClientCertificate.Certificate.ToString()); } if (credentials.IssuedToken != null) { string str = string.Format(CultureInfo.InvariantCulture, "{0}: {1}", new object[] { "CacheIssuedTokens", credentials.IssuedToken.CacheIssuedTokens }); instance.SetProperty("IssuedToken", str); } if (credentials.HttpDigest != null) { string str2 = string.Format(CultureInfo.InvariantCulture, "{0}: {1}", new object[] { "AllowedImpersonationLevel", credentials.HttpDigest.AllowedImpersonationLevel.ToString() }); instance.SetProperty("HttpDigest", str2); } if ((credentials.Peer != null) && (credentials.Peer.Certificate != null)) { instance.SetProperty("Peer", credentials.Peer.Certificate.ToString(true)); } if (credentials.UserName != null) { instance.SetProperty("UserName", "********"); } if (credentials.Windows != null) { string str3 = string.Format(CultureInfo.InvariantCulture, "{0}: {1}, {2}: {3}", new object[] { "AllowedImpersonationLevel", credentials.Windows.AllowedImpersonationLevel.ToString(), "AllowNtlm", credentials.Windows.AllowNtlm }); instance.SetProperty("Windows", str3); } } else if (behavior is MustUnderstandBehavior) { instance = existingInstance.NewInstance("MustUnderstandBehavior"); } else if (behavior is SynchronousReceiveBehavior) { instance = existingInstance.NewInstance("SynchronousReceiveBehavior"); } else if (behavior is DispatcherSynchronizationBehavior) { instance = existingInstance.NewInstance("DispatcherSynchronizationBehavior"); } else if (behavior is TransactedBatchingBehavior) { instance = existingInstance.NewInstance("TransactedBatchingBehavior"); instance.SetProperty("MaxBatchSize", ((TransactedBatchingBehavior) behavior).MaxBatchSize); } else if (behavior is ClientViaBehavior) { instance = existingInstance.NewInstance("ClientViaBehavior"); instance.SetProperty("Uri", ((ClientViaBehavior) behavior).Uri.ToString()); } else if (behavior is IWmiInstanceProvider) { IWmiInstanceProvider provider = (IWmiInstanceProvider) behavior; instance = existingInstance.NewInstance(provider.GetInstanceType()); provider.FillInstance(instance); } else { instance = existingInstance.NewInstance("Behavior"); } if (instance != null) { instance.SetProperty("Type", behavior.GetType().FullName); } }
private static void FillOperation(IWmiInstance operation, OperationDescription operationDescription) { operation.SetProperty("Name", operationDescription.Name); operation.SetProperty("Action", FixWildcardAction(operationDescription.Messages[0].Action)); if (operationDescription.Messages.Count > 1) { operation.SetProperty("ReplyAction", FixWildcardAction(operationDescription.Messages[1].Action)); } operation.SetProperty("IsOneWay", operationDescription.IsOneWay); operation.SetProperty("IsInitiating", operationDescription.IsInitiating); operation.SetProperty("IsTerminating", operationDescription.IsTerminating); operation.SetProperty("AsyncPattern", null != operationDescription.BeginMethod); if (null != operationDescription.SyncMethod) { if (null != operationDescription.SyncMethod.ReturnType) { operation.SetProperty("ReturnType", operationDescription.SyncMethod.ReturnType.Name); } operation.SetProperty("MethodSignature", operationDescription.SyncMethod.ToString()); ParameterInfo[] parameters = operationDescription.SyncMethod.GetParameters(); string[] strArray = new string[parameters.Length]; for (int i = 0; i < parameters.Length; i++) { strArray[i] = parameters[i].ParameterType.ToString(); } operation.SetProperty("ParameterTypes", strArray); } operation.SetProperty("IsCallback", operationDescription.Messages[0].Direction == MessageDirection.Output); FillBehaviorsInfo(operation, operationDescription.Behaviors); }
private static void FillReaderQuotas(IWmiInstance instance, XmlDictionaryReaderQuotas readerQuotas) { IWmiInstance instance2 = instance.NewInstance("XmlDictionaryReaderQuotas"); instance2.SetProperty("MaxArrayLength", readerQuotas.MaxArrayLength); instance2.SetProperty("MaxBytesPerRead", readerQuotas.MaxBytesPerRead); instance2.SetProperty("MaxDepth", readerQuotas.MaxDepth); instance2.SetProperty("MaxNameTableCharCount", readerQuotas.MaxNameTableCharCount); instance2.SetProperty("MaxStringContentLength", readerQuotas.MaxStringContentLength); instance.SetProperty("ReaderQuotas", instance2); }
private static void FillBehaviorsInfo(IWmiInstance operation, KeyedByTypeCollection<IOperationBehavior> behaviors) { List<IWmiInstance> list = new List<IWmiInstance>(behaviors.Count); foreach (IOperationBehavior behavior in behaviors) { IWmiInstance instance; FillBehaviorInfo(behavior, operation, out instance); if (instance != null) { list.Add(instance); } } operation.SetProperty("Behaviors", list.ToArray()); }
private static void FillContract(IWmiInstance contract, ContractDescription contractDescription) { contract.SetProperty("Type", contractDescription.ContractType.Name); if (null != contractDescription.CallbackContractType) { contract.SetProperty("CallbackContract", ContractReference(contractDescription.CallbackContractType.Name)); } contract.SetProperty("Name", contractDescription.Name); contract.SetProperty("Namespace", contractDescription.Namespace); contract.SetProperty("SessionMode", contractDescription.SessionMode.ToString()); IWmiInstance[] instanceArray = new IWmiInstance[contractDescription.Operations.Count]; for (int i = 0; i < instanceArray.Length; i++) { OperationDescription operationDescription = contractDescription.Operations[i]; IWmiInstance operation = contract.NewInstance("Operation"); FillOperation(operation, operationDescription); instanceArray[i] = operation; } contract.SetProperty("Operations", instanceArray); FillBehaviorsInfo(contract, contractDescription.Behaviors); }
bool IWmiProvider.DeleteInstance(IWmiInstance instance) { return false; }
bool IWmiProvider.PutInstance(IWmiInstance instance) { return false; }
internal MethodContext(WbemProvider.ParameterContext parms, string methodName, WbemNative.IWbemClassObject wbemInParms, WbemProvider.WbemInstance wbemInstance) { this.parms = parms; this.methodName = methodName; this.wbemInParms = wbemInParms; this.instance = new WbemProvider.InstanceContext(wbemInstance); WbemNative.IWbemClassObject ppObject = null; WbemException.ThrowIfFail(parms.WbemServices.GetObject(parms.ClassName, 0, parms.WbemContext, ref ppObject, IntPtr.Zero)); WbemNative.IWbemClassObject ppOutSignature = null; WbemException.ThrowIfFail(ppObject.GetMethod(methodName, 0, IntPtr.Zero, out ppOutSignature)); WbemException.ThrowIfFail(ppOutSignature.SpawnInstance(0, out this.wbemOutParms)); }
void IWmiInstances.AddInstance(IWmiInstance inst) { WbemException.ThrowIfFail(this.parms.WbemSink.Indicate(1, new WbemNative.IWbemClassObject[] { ((WbemProvider.InstanceContext) inst).WbemObject })); }
bool IWmiProvider.GetInstance(IWmiInstance instance) { bool flag = false; if (this.OwnInstance(instance)) { string property = (string) instance.GetProperty("ListenUri"); string contractName = (string) instance.GetProperty("ContractName"); System.ServiceModel.Administration.EndpointInfo endpoint = this.FindEndpoint(property, contractName); if (endpoint != null) { FillEndpointInfo(endpoint, instance); flag = true; } } return flag; }
private bool OwnInstance(IWmiInstance instance) { return ((((int) instance.GetProperty("ProcessId")) == AppDomainInfo.Current.ProcessId) && (((int) instance.GetProperty("AppDomainId")) == AppDomainInfo.Current.Id)); }
private string GetOperationCounterInstanceName(string operationName, IWmiInstance endpointInstance) { string property = (string) endpointInstance.GetProperty("ListenUri"); string contractName = (string) endpointInstance.GetProperty("ContractName"); System.ServiceModel.Administration.EndpointInfo info = this.FindEndpoint(property, contractName); string str3 = string.Empty; if (PerformanceCounters.PerformanceCountersEnabled && (info != null)) { str3 = OperationPerformanceCountersBase.CreateFriendlyInstanceName(info.ServiceName, info.Contract.Name, operationName, info.Address.AbsoluteUri.ToUpperInvariant()); } return str3; }