Example #1
0
        //This private function is used to refresh the information from the Wmi object before returning the requested data
        private void RefreshQualifierInfo()
        {
            qualifierSet = null;
            int status = qualifierType switch
            {
                QualifierType.ObjectQualifier => parent.wbemObject.GetQualifierSet_(out qualifierSet),
                QualifierType.PropertyQualifier => parent.wbemObject.GetPropertyQualifierSet_(propertyOrMethodName, out qualifierSet),
                QualifierType.MethodQualifier => parent.wbemObject.GetMethodQualifierSet_(propertyOrMethodName, out qualifierSet),
                _ => throw new ManagementException(ManagementStatus.Unexpected, null, null), //is this the best fit error ??
            };

            if ((status & 0x80000000) == 0) //success
            {
                qualifierValue = null;      //Make sure it's null so that we don't leak !
                if (qualifierSet != null)
                {
                    status = qualifierSet.Get_(qualifierName, 0, ref qualifierValue, ref qualifierFlavor);
                }
            }

            if ((status & 0xfffff000) == 0x80041000) //WMI error
            {
                ManagementException.ThrowWithExtendedInfo((ManagementStatus)status);
            }
            else if ((status & 0x80000000) != 0) //any failure
            {
                Marshal.ThrowExceptionForHR(status, WmiNetUtilsHelper.GetErrorInfo_f());
            }
        }
Example #2
0
        //This private function is used to refresh the information from the Wmi object before returning the requested data
        private void RefreshQualifierInfo()
        {
            int status = (int)ManagementStatus.Failed;

            qualifierSet = null;
            switch (qualifierType)
            {
            case QualifierType.ObjectQualifier:
                try {
                    status = parent.wbemObject.GetQualifierSet_(out qualifierSet);
                } catch (Exception e) {
                    ManagementException.ThrowWithExtendedInfo(e);
                }
                break;

            case QualifierType.PropertyQualifier:
                try {
                    status = parent.wbemObject.GetPropertyQualifierSet_(propertyOrMethodName, out qualifierSet);
                } catch (Exception e) {
                    ManagementException.ThrowWithExtendedInfo(e);
                }
                break;

            case QualifierType.MethodQualifier:
                try {
                    status = parent.wbemObject.GetMethodQualifierSet_(propertyOrMethodName, out qualifierSet);
                } catch (Exception e) {
                    ManagementException.ThrowWithExtendedInfo(e);
                }
                break;

            default:
                throw new ManagementException(ManagementStatus.Unexpected, null, null);                         //is this the best fit error ??
            }

            if ((status & 0x80000000) == 0)
            {
                try {
                    qualifierValue = null;                     //Make sure it's null so that we don't leak !
                    if (qualifierSet != null)
                    {
                        status = qualifierSet.Get_(qualifierName, 0, ref qualifierValue, ref qualifierFlavor);
                    }
                }
                catch (Exception e) {
                    ManagementException.ThrowWithExtendedInfo(e);
                }
            }

            if ((status & 0xfffff000) == 0x80041000)
            {
                ManagementException.ThrowWithExtendedInfo((ManagementStatus)status);
            }
            else if ((status & 0x80000000) != 0)
            {
                Marshal.ThrowExceptionForHR(status);
            }
        }
		//This private function is used to refresh the information from the Wmi object before returning the requested data
		private void RefreshQualifierInfo()
		{
			int status = (int)ManagementStatus.Failed;

			qualifierSet = null;
			switch (qualifierType) {
				case QualifierType.ObjectQualifier :
					status = parent.wbemObject.GetQualifierSet_(out qualifierSet);
					break;
				case QualifierType.PropertyQualifier :
					status = parent.wbemObject.GetPropertyQualifierSet_(propertyOrMethodName, out qualifierSet);
					break;
				case QualifierType.MethodQualifier :
					status = parent.wbemObject.GetMethodQualifierSet_(propertyOrMethodName, out qualifierSet);
					break;
				default :
					throw new ManagementException(ManagementStatus.Unexpected, null, null); //is this the best fit error ??
			}

			if ((status & 0x80000000) == 0) //success
			{
				qualifierValue = null; //Make sure it's null so that we don't leak !
				if (qualifierSet != null)
					status = qualifierSet.Get_(qualifierName, 0, ref qualifierValue, ref qualifierFlavor);
			}

			if ((status & 0xfffff000) == 0x80041000) //WMI error
				ManagementException.ThrowWithExtendedInfo((ManagementStatus)status);
			else if ((status & 0x80000000) != 0) //any failure
				Marshal.ThrowExceptionForHR(status);
		}