internal static unsafe MiResult GetClassName(ClassHandle handle, out string className) { /* _MI_Result _MIResult; DangerousHandleAccessor dangerousHandleAccessor = null; className = null; DangerousHandleAccessor dangerousHandleAccessor = new DangerousHandleAccessor(handle); try { dangerousHandleAccessor = dangerousHandleAccessor; UInt16* uInt16Pointer = (UInt16*)((long)0); _MIResult = (_MI_Result)<Module>.?A0x37ea71e9.MI_Class_GetClassName((void*)dangerousHandleAccessor.DangerousGetHandle(), ref (UInt16*)((long)0)); if (_MIResult == 0) { IntPtr intPtr = (IntPtr)uInt16Pointer; className = Marshal.PtrToStringUni(intPtr); } } dangerousHandleAccessor.Dispose(); return (MiResult)_MIResult; */ NativeCimClass classObj = CimNativeApi.MarshalledObject.FromPointer<NativeCimClass>(handle.DangerousGetHandle ()); className = classObj.ClassName; return MiResult.OK; }
internal static int GetClassHashCode(ClassHandle handle) { /* int hashCode; DangerousHandleAccessor dangerousHandleAccessor = null; DangerousHandleAccessor dangerousHandleAccessor = new DangerousHandleAccessor(handle); try { dangerousHandleAccessor = dangerousHandleAccessor; IntPtr intPtr = (IntPtr)((long)(*((void*)dangerousHandleAccessor.DangerousGetHandle() + (long)8))); hashCode = intPtr.GetHashCode(); } dangerousHandleAccessor.Dispose(); return hashCode; */ NativeCimClass classObj = CimNativeApi.MarshalledObject.FromPointer<NativeCimClass>(handle.DangerousGetHandle ()); return classObj.GetHashCode (); }
internal static unsafe MiResult GetMethodParametersCount(ClassHandle handle, int index, out int parameterCount) { /* _MI_Result _MIResult; uint num = 0; _MI_ParameterSet _MIParameterSet; UInt16* uInt16Pointer = null; DangerousHandleAccessor dangerousHandleAccessor = null; parameterCount = 0; DangerousHandleAccessor dangerousHandleAccessor = new DangerousHandleAccessor(handle); try { dangerousHandleAccessor = dangerousHandleAccessor; _MIResult = (_MI_Result)<Module>.?A0x37ea71e9.MI_Class_GetMethodAt((void*)dangerousHandleAccessor.DangerousGetHandle(), index, ref uInt16Pointer, (long)0, ref _MIParameterSet); if (_MIResult == 0) { _MIResult = (_MI_Result)<Module>.?A0x37ea71e9.MI_ParameterSet_GetParameterCount(ref _MIParameterSet, ref num); if (_MIResult == 0) { parameterCount = num; } } } dangerousHandleAccessor.Dispose(); return (MiResult)_MIResult; */ NativeCimClass instance = CimNativeApi.MarshalledObject.FromPointer<NativeCimClass>(handle.DangerousGetHandle ()); var methods = NativeCimMethodsHelper.Deserialize (instance.Methods); var method = methods.ElementAt (index); var properties = NativeCimPropertiesHelper.Deserialize (method.InSignature); parameterCount = properties.Count; return MiResult.OK; }
internal static unsafe MiResult GetMethodElementAt_GetName(ClassHandle handle, int index, out string name) { /* _MI_Result _MIResult; DangerousHandleAccessor dangerousHandleAccessor = null; name = null; DangerousHandleAccessor dangerousHandleAccessor = new DangerousHandleAccessor(handle); try { dangerousHandleAccessor = dangerousHandleAccessor; UInt16* uInt16Pointer = (UInt16*)((long)0); _MIResult = (_MI_Result)<Module>.?A0x37ea71e9.MI_Class_GetMethodAt((void*)dangerousHandleAccessor.DangerousGetHandle(), index, ref (UInt16*)((long)0), (long)0, (long)0); if (_MIResult == 0) { IntPtr intPtr = (IntPtr)uInt16Pointer; name = Marshal.PtrToStringUni(intPtr); } } dangerousHandleAccessor.Dispose(); return (MiResult)_MIResult; */ NativeCimClass instance = CimNativeApi.MarshalledObject.FromPointer<NativeCimClass>(handle.DangerousGetHandle ()); var methods = NativeCimMethodsHelper.Deserialize (instance.Methods); name = methods.ElementAt (index).Name; return MiResult.OK; }
internal static unsafe MiResult GetMethodElement_GetIndex (ClassHandle handle, int methodIndex, string name, out int index) { /* _MI_Result _MIResult; uint num = 0; _MI_QualifierSet _MIQualifierSet; _MI_Type _MIType = 0; _MI_ParameterSet _MIParameterSet; UInt16* uInt16Pointer = null; DangerousHandleAccessor dangerousHandleAccessor = null; index = -1; DangerousHandleAccessor dangerousHandleAccessor = new DangerousHandleAccessor(handle); try { dangerousHandleAccessor = dangerousHandleAccessor; _MIResult = (_MI_Result)<Module>.?A0x37ea71e9.MI_Class_GetMethodAt((void*)dangerousHandleAccessor.DangerousGetHandle(), methodIndex, ref uInt16Pointer, (long)0, ref _MIParameterSet); if (_MIResult == 0) { IntPtr hGlobalUni = Marshal.StringToHGlobalUni(name); IntPtr intPtr = hGlobalUni; try { _MIResult = (_MI_Result)<Module>.?A0x37ea71e9.MI_ParameterSet_GetParameter(ref _MIParameterSet, (void*)hGlobalUni, (_MI_Type*)(&_MIType), (long)0, ref _MIQualifierSet, ref num); if (_MIResult == 0) { index = num; } } finally { if (intPtr != IntPtr.Zero) { Marshal.FreeHGlobal(intPtr); } } } } dangerousHandleAccessor.Dispose(); return (MiResult)_MIResult; */ index = -1; NativeCimClass instance = CimNativeApi.MarshalledObject.FromPointer<NativeCimClass> (handle.DangerousGetHandle ()); var methods = NativeCimMethodsHelper.Deserialize (instance.Methods); var method = methods.ElementAt (methodIndex); var properties = NativeCimPropertiesHelper.Deserialize (method.InSignature); int i = 0; foreach (var property in properties) { if (name.Equals (property.Name, StringComparison.OrdinalIgnoreCase)) { index = i; break; } i++; } return index == -1 ? MiResult.METHOD_NOT_FOUND : MiResult.OK; }
internal static MiResult GetMethodCount(ClassHandle handle, out int methodCount) { /* _MI_Result _MIResult; uint num = 0; DangerousHandleAccessor dangerousHandleAccessor = null; methodCount = 0; DangerousHandleAccessor dangerousHandleAccessor = new DangerousHandleAccessor(handle); try { dangerousHandleAccessor = dangerousHandleAccessor; _MIResult = (_MI_Result)<Module>.?A0x37ea71e9.MI_Class_GetMethodCount((void*)dangerousHandleAccessor.DangerousGetHandle(), ref num); if (_MIResult == 0) { methodCount = num; } } dangerousHandleAccessor.Dispose(); return (MiResult)_MIResult; */ NativeCimClass instance = CimNativeApi.MarshalledObject.FromPointer<NativeCimClass>(handle.DangerousGetHandle ()); var methods = NativeCimMethodsHelper.Deserialize (instance.Methods); methodCount = methods.Count; return MiResult.OK; }
internal static unsafe MiResult GetMethodAt_GetType (ClassHandle handle, int methodIndex, int parameterIndex, out MiType type) { /* _MI_Result _MIResult; _MI_Type _MIType = 0; _MI_QualifierSet _MIQualifierSet; UInt16* uInt16Pointer = null; _MI_ParameterSet _MIParameterSet; UInt16* uInt16Pointer1 = null; DangerousHandleAccessor dangerousHandleAccessor = null; DangerousHandleAccessor dangerousHandleAccessor = new DangerousHandleAccessor(handle); try { dangerousHandleAccessor = dangerousHandleAccessor; _MIResult = (_MI_Result)<Module>.?A0x37ea71e9.MI_Class_GetMethodAt((void*)dangerousHandleAccessor.DangerousGetHandle(), methodIndex, ref uInt16Pointer1, (long)0, ref _MIParameterSet); if (_MIResult == 0) { _MIResult = (_MI_Result)<Module>.?A0x37ea71e9.MI_ParameterSet_GetParameterAt(ref _MIParameterSet, parameterIndex, ref uInt16Pointer, (_MI_Type*)(&_MIType), (long)0, ref _MIQualifierSet); if (_MIResult == 0) { type = (MiType)_MIType; } } } dangerousHandleAccessor.Dispose(); return (MiResult)_MIResult; */ NativeCimClass instance = CimNativeApi.MarshalledObject.FromPointer<NativeCimClass> (handle.DangerousGetHandle ()); var methods = NativeCimMethodsHelper.Deserialize (instance.Methods); var method = methods.ElementAt (methodIndex); var properties = NativeCimPropertiesHelper.Deserialize (method.InSignature); type = MiType.Instance; int i = 0; foreach (var property in properties) { if (i == parameterIndex) { type = property.Type.ToMiType(); break; } } return MiResult.OK; }
internal static unsafe MiResult GetMethodAt_GetName(ClassHandle handle, int methodIndex, int parameterIndex, out string name) { /* _MI_Result _MIResult; UInt16* uInt16Pointer = null; _MI_QualifierSet _MIQualifierSet; _MI_Type _MIType = 0; _MI_ParameterSet _MIParameterSet; UInt16* uInt16Pointer1 = null; DangerousHandleAccessor dangerousHandleAccessor = null; name = null; DangerousHandleAccessor dangerousHandleAccessor = new DangerousHandleAccessor(handle); try { dangerousHandleAccessor = dangerousHandleAccessor; _MIResult = (_MI_Result)<Module>.?A0x37ea71e9.MI_Class_GetMethodAt((void*)dangerousHandleAccessor.DangerousGetHandle(), methodIndex, ref uInt16Pointer1, (long)0, ref _MIParameterSet); if (_MIResult == 0) { _MIResult = (_MI_Result)<Module>.?A0x37ea71e9.MI_ParameterSet_GetParameterAt(ref _MIParameterSet, parameterIndex, ref uInt16Pointer, (_MI_Type*)(&_MIType), (long)0, ref _MIQualifierSet); if (_MIResult == 0) { IntPtr intPtr = (IntPtr)uInt16Pointer; name = Marshal.PtrToStringUni(intPtr); } } } dangerousHandleAccessor.Dispose(); return (MiResult)_MIResult; */ NativeCimClass instance = CimNativeApi.MarshalledObject.FromPointer<NativeCimClass>(handle.DangerousGetHandle ()); var methods = NativeCimMethodsHelper.Deserialize (instance.Methods); var method = methods.ElementAt (methodIndex); var properties = NativeCimPropertiesHelper.Deserialize (method.InSignature); int i = 0; name = null; foreach (var key in properties) { if (i == parameterIndex) { name = key.Name; break; } i++; } return name == null ? MiResult.METHOD_NOT_FOUND : MiResult.OK; }
internal static unsafe MiResult GetMethod_GetIndex (ClassHandle handle, string name, out int index) { /* _MI_Result _MIResult; uint num = 0; DangerousHandleAccessor dangerousHandleAccessor = null; index = -1; DangerousHandleAccessor dangerousHandleAccessor = new DangerousHandleAccessor(handle); try { dangerousHandleAccessor = dangerousHandleAccessor; _MI_Class* _MIClassPointer = (_MI_Class*)((void*)dangerousHandleAccessor.DangerousGetHandle()); IntPtr hGlobalUni = Marshal.StringToHGlobalUni(name); IntPtr intPtr = hGlobalUni; _MIResult = 0; try { _MIResult = (_MI_Result)<Module>.?A0x37ea71e9.MI_Class_GetMethod(_MIClassPointer, (void*)hGlobalUni, (long)0, (long)0, ref num); if (_MIResult == 0) { index = num; } } finally { if (intPtr != IntPtr.Zero) { Marshal.FreeHGlobal(intPtr); } } } dangerousHandleAccessor.Dispose(); return (MiResult)_MIResult; */ NativeCimClass instance = CimNativeApi.MarshalledObject.FromPointer<NativeCimClass>(handle.DangerousGetHandle ()); var methods = NativeCimMethodsHelper.Deserialize (instance.Methods); int i = 0; index = -1; foreach (var key in methods) { if (key.Name.Equals (name, StringComparison.OrdinalIgnoreCase)) { index = i; break; } i++; } return index == -1 ? MiResult.METHOD_NOT_FOUND : MiResult.OK; }
internal static MiResult GetElementAt_GetType (ClassHandle handle, int index, out MiType type) { /* _MI_Result _MIResult; _MI_Type _MIType = 0; DangerousHandleAccessor dangerousHandleAccessor = null; DangerousHandleAccessor dangerousHandleAccessor = new DangerousHandleAccessor(handle); try { dangerousHandleAccessor = dangerousHandleAccessor; _MIResult = (_MI_Result)<Module>.?A0x37ea71e9.MI_Class_GetElementAt((void*)dangerousHandleAccessor.DangerousGetHandle(), index, (long)0, (long)0, (long)0, (_MI_Type*)(&_MIType), (long)0, (long)0, (long)0); if (_MIResult == 0) { type = (MiType)_MIType; } } dangerousHandleAccessor.Dispose(); return (MiResult)_MIResult; */ NativeCimClass instance = CimNativeApi.MarshalledObject.FromPointer<NativeCimClass> (handle.DangerousGetHandle ()); NativeCimProperties properties = NativeCimPropertiesHelper.Deserialize (instance.Properties); var ctype = properties.ElementAt (index).Type; if (ctype == CimType.Unknown) { Type propType = properties.ElementAt (index).Value.GetType (); ctype = CimConverter.GetCimType (propType); } type = ctype.ToMiType (); return MiResult.OK; }
internal static MiResult GetElementAt_GetValue(ClassHandle handle, int index, out object value) { /* _MI_Result _MIResult; uint num = 0; _MI_Type _MIType = 0; _MI_Value _MIValue; DangerousHandleAccessor dangerousHandleAccessor = null; value = null; DangerousHandleAccessor dangerousHandleAccessor = new DangerousHandleAccessor(handle); try { dangerousHandleAccessor = dangerousHandleAccessor; _MIResult = (_MI_Result)<Module>.?A0x37ea71e9.MI_Class_GetElementAt((void*)dangerousHandleAccessor.DangerousGetHandle(), index, (long)0, ref _MIValue, (long)0, (_MI_Type*)(&_MIType), (long)0, (long)0, ref num); if (_MIResult == 0) { if (0x20000000 == (num & 0x20000000)) { value = null; } else { value = InstanceMethods.ConvertFromMiValue((MiType)_MIType, ref _MIValue); } } } dangerousHandleAccessor.Dispose(); return (MiResult)_MIResult; */ NativeCimClass instance = CimNativeApi.MarshalledObject.FromPointer<NativeCimClass>(handle.DangerousGetHandle ()); NativeCimProperties properties = NativeCimPropertiesHelper.Deserialize (instance.Properties); value = properties.ElementAt (index).Value; return MiResult.OK; }
internal static unsafe MiResult GetQualifierElementAt_GetValue(ClassHandle handle, int index, out object value) { /* _MI_Result _MIResult; uint num = 0; _MI_Type _MIType = 0; _MI_Value _MIValue; _MI_QualifierSet _MIQualifierSet; DangerousHandleAccessor dangerousHandleAccessor = null; value = null; DangerousHandleAccessor dangerousHandleAccessor = new DangerousHandleAccessor(handle); try { dangerousHandleAccessor = dangerousHandleAccessor; _MIResult = (_MI_Result)<Module>.?A0x37ea71e9.MI_Class_GetClassQualifierSet((void*)dangerousHandleAccessor.DangerousGetHandle(), ref _MIQualifierSet); if (_MIResult == 0) { _MIResult = (_MI_Result)<Module>.?A0x37ea71e9.MI_QualifierSet_GetQualifierAt(ref _MIQualifierSet, index, ref (UInt16*)((long)0), (_MI_Type*)(&_MIType), ref num, ref _MIValue); if (_MIResult == 0) { if (0x20000000 == (num & 0x20000000)) { value = null; } else { value = InstanceMethods.ConvertFromMiValue((MiType)_MIType, ref _MIValue); } } } } dangerousHandleAccessor.Dispose(); return (MiResult)_MIResult; */ NativeCimClass instance = CimNativeApi.MarshalledObject.FromPointer<NativeCimClass> (handle.DangerousGetHandle ()); var qualifiers = NativeCimQualifiersHelper.Deserialize (instance.Qualifiers); value = qualifiers.ElementAt (index).Value; return MiResult.OK; }
internal static unsafe MiResult GetQualifierElementAt_GetName(ClassHandle handle, int index, out string name) { /* _MI_Result _MIResult; _MI_Value _MIValue; uint num = 0; _MI_Type _MIType = 0; _MI_QualifierSet _MIQualifierSet; DangerousHandleAccessor dangerousHandleAccessor = null; name = null; DangerousHandleAccessor dangerousHandleAccessor = new DangerousHandleAccessor(handle); try { dangerousHandleAccessor = dangerousHandleAccessor; _MIResult = (_MI_Result)<Module>.?A0x37ea71e9.MI_Class_GetClassQualifierSet((void*)dangerousHandleAccessor.DangerousGetHandle(), ref _MIQualifierSet); if (_MIResult == 0) { UInt16* uInt16Pointer = (UInt16*)((long)0); _MIResult = (_MI_Result)<Module>.?A0x37ea71e9.MI_QualifierSet_GetQualifierAt(ref _MIQualifierSet, index, ref (UInt16*)((long)0), (_MI_Type*)(&_MIType), ref num, ref _MIValue); if (_MIResult == 0) { IntPtr intPtr = (IntPtr)uInt16Pointer; name = Marshal.PtrToStringUni(intPtr); } } } dangerousHandleAccessor.Dispose(); return (MiResult)_MIResult; */ NativeCimClass instance = CimNativeApi.MarshalledObject.FromPointer<NativeCimClass> (handle.DangerousGetHandle ()); var qualifiers = NativeCimQualifiersHelper.Deserialize (instance.Qualifiers); name = qualifiers.ElementAt (index).Name; return MiResult.OK; }
internal static MiResult GetQualifier_Count(ClassHandle handle, out int qualifierCount) { /* _MI_Result _MIResult; uint num = 0; _MI_QualifierSet _MIQualifierSet; DangerousHandleAccessor dangerousHandleAccessor = null; qualifierCount = 0; DangerousHandleAccessor dangerousHandleAccessor = new DangerousHandleAccessor(handle); try { dangerousHandleAccessor = dangerousHandleAccessor; _MIResult = (_MI_Result)<Module>.?A0x37ea71e9.MI_Class_GetClassQualifierSet((void*)dangerousHandleAccessor.DangerousGetHandle(), ref _MIQualifierSet); if (_MIResult == 0) { _MIResult = (_MI_Result)<Module>.?A0x37ea71e9.MI_QualifierSet_GetQualifierCount(ref _MIQualifierSet, ref num); if (_MIResult == 0) { qualifierCount = num; } } } dangerousHandleAccessor.Dispose(); return (MiResult)_MIResult; */ NativeCimClass instance = CimNativeApi.MarshalledObject.FromPointer<NativeCimClass> (handle.DangerousGetHandle ()); var qualifiers = NativeCimQualifiersHelper.Deserialize (instance.Qualifiers); qualifierCount = qualifiers.Count; return MiResult.OK; }
internal static unsafe MiResult GetParentClassName(ClassHandle handle, out string className) { /* _MI_Result _MIResult; DangerousHandleAccessor dangerousHandleAccessor = null; className = null; DangerousHandleAccessor dangerousHandleAccessor = new DangerousHandleAccessor(handle); try { dangerousHandleAccessor = dangerousHandleAccessor; UInt16* uInt16Pointer = (UInt16*)((long)0); _MIResult = (_MI_Result)<Module>.?A0x37ea71e9.MI_Class_GetParentClassName((void*)dangerousHandleAccessor.DangerousGetHandle(), ref (UInt16*)((long)0)); if (_MIResult == 0) { IntPtr intPtr = (IntPtr)uInt16Pointer; className = Marshal.PtrToStringUni(intPtr); } } dangerousHandleAccessor.Dispose(); return (MiResult)_MIResult; */ NativeCimClass instance = CimNativeApi.MarshalledObject.FromPointer<NativeCimClass> (handle.DangerousGetHandle ()); var properties = NativeCimPropertiesHelper.Deserialize (instance.SystemProperties); var derivations = properties.FirstOrDefault (x => x.Name == "__DERIVATION"); if (derivations == null) className = ""; else { string[] classes = derivations.Value as string[]; if (classes == null) className = ""; else { className = classes[0]; } } return MiResult.OK; }
internal static unsafe MiResult GetParentClass (ClassHandle handle, out ClassHandle superClass) { /* _MI_Result _MIResult; _MI_Class* _MIClassPointer = null; DangerousHandleAccessor dangerousHandleAccessor = null; superClass = null; DangerousHandleAccessor dangerousHandleAccessor = new DangerousHandleAccessor(handle); try { dangerousHandleAccessor = dangerousHandleAccessor; _MIResult = (_MI_Result)<Module>.?A0x37ea71e9.MI_Class_GetParentClass((void*)dangerousHandleAccessor.DangerousGetHandle(), ref _MIClassPointer); if (_MIResult == 0) { IntPtr intPtr = (IntPtr)_MIClassPointer; superClass = new ClassHandle(intPtr, true); } } dangerousHandleAccessor.Dispose(); return (MiResult)_MIResult; */ if (handle == null) { superClass = null; } else { NativeCimClass instance = CimNativeApi.MarshalledObject.FromPointer<NativeCimClass> (handle.DangerousGetHandle ()); if (instance.SystemProperties == null) { superClass = null; } else { var properties = NativeCimPropertiesHelper.Deserialize (instance.SystemProperties); var derivations = properties.FirstOrDefault (x => x.Name == "__DERIVATION"); if (derivations == null) superClass = null; else { string[] classes = derivations.Value as string[]; if (classes == null || classes.Length == 0) superClass = null; else { string className = classes [0]; var options = CimNativeApi.GetDestinationOptions (new SessionHandle (instance.SessionHandle)); var superNativeClass = CimNativeApi.QueryClasses (options, instance.Namespace, CimNativeApi.WQLNamespace, "SELECT * FROM Meta_Class WHERE ClassName = '" + className + "'").FirstOrDefault (); superNativeClass.SessionHandle = instance.SessionHandle; superClass = new ClassHandle ((IntPtr)CimNativeApi.MarshalledObject.Create<NativeCimClass> (superNativeClass), true); } } } } return superClass == null ? MiResult.INVALID_SUPERCLASS : MiResult.OK; }