|
//------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//------------------------------------------------------------
namespace System.ServiceModel.Administration
{
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Runtime.InteropServices;
using System.Runtime.Serialization;
using System.Security;
using System.Text;
using System.Threading;
[SuppressUnmanagedCodeSecurity]
internal class WbemNative
{
internal enum WbemStatus
{
WBEM_NO_ERROR = unchecked((int)0x00000000),
WBEM_S_NO_ERROR = unchecked((int)0x00000000),
WBEM_S_SAME = unchecked((int)0x00000000),
WBEM_S_FALSE = unchecked((int)0x00000001),
WBEM_S_ALREADY_EXISTS = unchecked((int)0x00040001),
WBEM_S_RESET_TO_DEFAULT = unchecked((int)0x00040002),
WBEM_S_DIFFERENT = unchecked((int)0x00040003),
WBEM_S_TIMEDOUT = unchecked((int)0x00040004),
WBEM_S_NO_MORE_DATA = unchecked((int)0x00040005),
WBEM_S_OPERATION_CANCELLED = unchecked((int)0x00040006),
WBEM_S_PENDING = unchecked((int)0x00040007),
WBEM_S_DUPLICATE_OBJECTS = unchecked((int)0x00040008),
WBEM_S_ACCESS_DENIED = unchecked((int)0x00040009),
WBEM_S_PARTIAL_RESULTS = unchecked((int)0x00040010),
WBEM_S_NO_POSTHOOK = unchecked((int)0x00040011),
WBEM_S_POSTHOOK_WITH_BOTH = unchecked((int)0x00040012),
WBEM_S_POSTHOOK_WITH_NEW = unchecked((int)0x00040013),
WBEM_S_POSTHOOK_WITH_STATUS = unchecked((int)0x00040014),
WBEM_S_POSTHOOK_WITH_OLD = unchecked((int)0x00040015),
WBEM_S_REDO_PREHOOK_WITH_ORIGINAL_OBJECT = unchecked((int)0x00040016),
WBEM_S_SOURCE_NOT_AVAILABLE = unchecked((int)0x00040017),
WBEM_E_FAILED = unchecked((int)0x80041001),
WBEM_E_NOT_FOUND = unchecked((int)0x80041002),
WBEM_E_ACCESS_DENIED = unchecked((int)0x80041003),
WBEM_E_PROVIDER_FAILURE = unchecked((int)0x80041004),
WBEM_E_TYPE_MISMATCH = unchecked((int)0x80041005),
WBEM_E_OUT_OF_MEMORY = unchecked((int)0x80041006),
WBEM_E_INVALID_CONTEXT = unchecked((int)0x80041007),
WBEM_E_INVALID_PARAMETER = unchecked((int)0x80041008),
WBEM_E_NOT_AVAILABLE = unchecked((int)0x80041009),
WBEM_E_CRITICAL_ERROR = unchecked((int)0x8004100A),
WBEM_E_INVALID_STREAM = unchecked((int)0x8004100B),
WBEM_E_NOT_SUPPORTED = unchecked((int)0x8004100C),
WBEM_E_INVALID_SUPERCLASS = unchecked((int)0x8004100D),
WBEM_E_INVALID_NAMESPACE = unchecked((int)0x8004100E),
WBEM_E_INVALID_OBJECT = unchecked((int)0x8004100F),
WBEM_E_INVALID_CLASS = unchecked((int)0x80041010),
WBEM_E_PROVIDER_NOT_FOUND = unchecked((int)0x80041011),
WBEM_E_INVALID_PROVIDER_REGISTRATION = unchecked((int)0x80041012),
WBEM_E_PROVIDER_LOAD_FAILURE = unchecked((int)0x80041013),
WBEM_E_INITIALIZATION_FAILURE = unchecked((int)0x80041014),
WBEM_E_TRANSPORT_FAILURE = unchecked((int)0x80041015),
WBEM_E_INVALID_OPERATION = unchecked((int)0x80041016),
WBEM_E_INVALID_QUERY = unchecked((int)0x80041017),
WBEM_E_INVALID_QUERY_TYPE = unchecked((int)0x80041018),
WBEM_E_ALREADY_EXISTS = unchecked((int)0x80041019),
WBEM_E_OVERRIDE_NOT_ALLOWED = unchecked((int)0x8004101A),
WBEM_E_PROPAGATED_QUALIFIER = unchecked((int)0x8004101B),
WBEM_E_PROPAGATED_PROPERTY = unchecked((int)0x8004101C),
WBEM_E_UNEXPECTED = unchecked((int)0x8004101D),
WBEM_E_ILLEGAL_OPERATION = unchecked((int)0x8004101E),
WBEM_E_CANNOT_BE_KEY = unchecked((int)0x8004101F),
WBEM_E_INCOMPLETE_CLASS = unchecked((int)0x80041020),
WBEM_E_INVALID_SYNTAX = unchecked((int)0x80041021),
WBEM_E_NONDECORATED_OBJECT = unchecked((int)0x80041022),
WBEM_E_READ_ONLY = unchecked((int)0x80041023),
WBEM_E_PROVIDER_NOT_CAPABLE = unchecked((int)0x80041024),
WBEM_E_CLASS_HAS_CHILDREN = unchecked((int)0x80041025),
WBEM_E_CLASS_HAS_INSTANCES = unchecked((int)0x80041026),
WBEM_E_QUERY_NOT_IMPLEMENTED = unchecked((int)0x80041027),
WBEM_E_ILLEGAL_NULL = unchecked((int)0x80041028),
WBEM_E_INVALID_QUALIFIER_TYPE = unchecked((int)0x80041029),
WBEM_E_INVALID_PROPERTY_TYPE = unchecked((int)0x8004102A),
WBEM_E_VALUE_OUT_OF_RANGE = unchecked((int)0x8004102B),
WBEM_E_CANNOT_BE_SINGLETON = unchecked((int)0x8004102C),
WBEM_E_INVALID_CIM_TYPE = unchecked((int)0x8004102D),
WBEM_E_INVALID_METHOD = unchecked((int)0x8004102E),
WBEM_E_INVALID_METHOD_PARAMETERS = unchecked((int)0x8004102F),
WBEM_E_SYSTEM_PROPERTY = unchecked((int)0x80041030),
WBEM_E_INVALID_PROPERTY = unchecked((int)0x80041031),
WBEM_E_CALL_CANCELLED = unchecked((int)0x80041032),
WBEM_E_SHUTTING_DOWN = unchecked((int)0x80041033),
WBEM_E_PROPAGATED_METHOD = unchecked((int)0x80041034),
WBEM_E_UNSUPPORTED_PARAMETER = unchecked((int)0x80041035),
WBEM_E_MISSING_PARAMETER_ID = unchecked((int)0x80041036),
WBEM_E_INVALID_PARAMETER_ID = unchecked((int)0x80041037),
WBEM_E_NONCONSECUTIVE_PARAMETER_IDS = unchecked((int)0x80041038),
WBEM_E_PARAMETER_ID_ON_RETVAL = unchecked((int)0x80041039),
WBEM_E_INVALID_OBJECT_PATH = unchecked((int)0x8004103A),
WBEM_E_OUT_OF_DISK_SPACE = unchecked((int)0x8004103B),
WBEM_E_BUFFER_TOO_SMALL = unchecked((int)0x8004103C),
WBEM_E_UNSUPPORTED_PUT_EXTENSION = unchecked((int)0x8004103D),
WBEM_E_UNKNOWN_OBJECT_TYPE = unchecked((int)0x8004103E),
WBEM_E_UNKNOWN_PACKET_TYPE = unchecked((int)0x8004103F),
WBEM_E_MARSHAL_VERSION_MISMATCH = unchecked((int)0x80041040),
WBEM_E_MARSHAL_INVALID_SIGNATURE = unchecked((int)0x80041041),
WBEM_E_INVALID_QUALIFIER = unchecked((int)0x80041042),
WBEM_E_INVALID_DUPLICATE_PARAMETER = unchecked((int)0x80041043),
WBEM_E_TOO_MUCH_DATA = unchecked((int)0x80041044),
WBEM_E_SERVER_TOO_BUSY = unchecked((int)0x80041045),
WBEM_E_INVALID_FLAVOR = unchecked((int)0x80041046),
WBEM_E_CIRCULAR_REFERENCE = unchecked((int)0x80041047),
WBEM_E_UNSUPPORTED_CLASS_UPDATE = unchecked((int)0x80041048),
WBEM_E_CANNOT_CHANGE_KEY_INHERITANCE = unchecked((int)0x80041049),
WBEM_E_CANNOT_CHANGE_INDEX_INHERITANCE = unchecked((int)0x80041050),
WBEM_E_TOO_MANY_PROPERTIES = unchecked((int)0x80041051),
WBEM_E_UPDATE_TYPE_MISMATCH = unchecked((int)0x80041052),
WBEM_E_UPDATE_OVERRIDE_NOT_ALLOWED = unchecked((int)0x80041053),
WBEM_E_UPDATE_PROPAGATED_METHOD = unchecked((int)0x80041054),
WBEM_E_METHOD_NOT_IMPLEMENTED = unchecked((int)0x80041055),
WBEM_E_METHOD_DISABLED = unchecked((int)0x80041056),
WBEM_E_REFRESHER_BUSY = unchecked((int)0x80041057),
WBEM_E_UNPARSABLE_QUERY = unchecked((int)0x80041058),
WBEM_E_NOT_EVENT_CLASS = unchecked((int)0x80041059),
WBEM_E_MISSING_GROUP_WITHIN = unchecked((int)0x8004105A),
WBEM_E_MISSING_AGGREGATION_LIST = unchecked((int)0x8004105B),
WBEM_E_PROPERTY_NOT_AN_OBJECT = unchecked((int)0x8004105C),
WBEM_E_AGGREGATING_BY_OBJECT = unchecked((int)0x8004105D),
WBEM_E_UNINTERPRETABLE_PROVIDER_QUERY = unchecked((int)0x8004105F),
WBEM_E_BACKUP_RESTORE_WINMGMT_RUNNING = unchecked((int)0x80041060),
WBEM_E_QUEUE_OVERFLOW = unchecked((int)0x80041061),
WBEM_E_PRIVILEGE_NOT_HELD = unchecked((int)0x80041062),
WBEM_E_INVALID_OPERATOR = unchecked((int)0x80041063),
WBEM_E_LOCAL_CREDENTIALS = unchecked((int)0x80041064),
WBEM_E_CANNOT_BE_ABSTRACT = unchecked((int)0x80041065),
WBEM_E_AMENDED_OBJECT = unchecked((int)0x80041066),
WBEM_E_CLIENT_TOO_SLOW = unchecked((int)0x80041067),
WBEM_E_NULL_SECURITY_DESCRIPTOR = unchecked((int)0x80041068),
WBEM_E_TIMED_OUT = unchecked((int)0x80041069),
WBEM_E_INVALID_ASSOCIATION = unchecked((int)0x8004106A),
WBEM_E_AMBIGUOUS_OPERATION = unchecked((int)0x8004106B),
WBEM_E_QUOTA_VIOLATION = unchecked((int)0x8004106C),
WBEM_E_RESERVED_001 = unchecked((int)0x8004106D),
WBEM_E_RESERVED_002 = unchecked((int)0x8004106E),
WBEM_E_UNSUPPORTED_LOCALE = unchecked((int)0x8004106F),
WBEM_E_HANDLE_OUT_OF_DATE = unchecked((int)0x80041070),
WBEM_E_CONNECTION_FAILED = unchecked((int)0x80041071),
WBEM_E_INVALID_HANDLE_REQUEST = unchecked((int)0x80041072),
WBEM_E_PROPERTY_NAME_TOO_WIDE = unchecked((int)0x80041073),
WBEM_E_CLASS_NAME_TOO_WIDE = unchecked((int)0x80041074),
WBEM_E_METHOD_NAME_TOO_WIDE = unchecked((int)0x80041075),
WBEM_E_QUALIFIER_NAME_TOO_WIDE = unchecked((int)0x80041076),
WBEM_E_RERUN_COMMAND = unchecked((int)0x80041077),
WBEM_E_DATABASE_VER_MISMATCH = unchecked((int)0x80041078),
WBEM_E_VETO_DELETE = unchecked((int)0x80041079),
WBEM_E_VETO_PUT = unchecked((int)0x8004107A),
WBEM_E_INVALID_LOCALE = unchecked((int)0x80041080),
WBEM_E_PROVIDER_SUSPENDED = unchecked((int)0x80041081),
WBEM_E_SYNCHRONIZATION_REQUIRED = unchecked((int)0x80041082),
WBEM_E_NO_SCHEMA = unchecked((int)0x80041083),
WBEM_E_PROVIDER_ALREADY_REGISTERED = unchecked((int)0x80041084),
WBEM_E_PROVIDER_NOT_REGISTERED = unchecked((int)0x80041085),
WBEM_E_FATAL_TRANSPORT_ERROR = unchecked((int)0x80041086),
WBEM_E_ENCRYPTED_CONNECTION_REQUIRED = unchecked((int)0x80041087),
WBEM_E_PROVIDER_TIMED_OUT = unchecked((int)0x80041088),
WBEM_E_NO_KEY = unchecked((int)0x80041089),
WBEMESS_E_REGISTRATION_TOO_BROAD = unchecked((int)0x80042001),
WBEMESS_E_REGISTRATION_TOO_PRECISE = unchecked((int)0x80042002),
WBEMMOF_E_EXPECTED_QUALIFIER_NAME = unchecked((int)0x80044001),
WBEMMOF_E_EXPECTED_SEMI = unchecked((int)0x80044002),
WBEMMOF_E_EXPECTED_OPEN_BRACE = unchecked((int)0x80044003),
WBEMMOF_E_EXPECTED_CLOSE_BRACE = unchecked((int)0x80044004),
WBEMMOF_E_EXPECTED_CLOSE_BRACKET = unchecked((int)0x80044005),
WBEMMOF_E_EXPECTED_CLOSE_PAREN = unchecked((int)0x80044006),
WBEMMOF_E_ILLEGAL_CONSTANT_VALUE = unchecked((int)0x80044007),
WBEMMOF_E_EXPECTED_TYPE_IDENTIFIER = unchecked((int)0x80044008),
WBEMMOF_E_EXPECTED_OPEN_PAREN = unchecked((int)0x80044009),
WBEMMOF_E_UNRECOGNIZED_TOKEN = unchecked((int)0x8004400A),
WBEMMOF_E_UNRECOGNIZED_TYPE = unchecked((int)0x8004400B),
WBEMMOF_E_EXPECTED_PROPERTY_NAME = unchecked((int)0x8004400C),
WBEMMOF_E_TYPEDEF_NOT_SUPPORTED = unchecked((int)0x8004400D),
WBEMMOF_E_UNEXPECTED_ALIAS = unchecked((int)0x8004400E),
WBEMMOF_E_UNEXPECTED_ARRAY_INIT = unchecked((int)0x8004400F),
WBEMMOF_E_INVALID_AMENDMENT_SYNTAX = unchecked((int)0x80044010),
WBEMMOF_E_INVALID_DUPLICATE_AMENDMENT = unchecked((int)0x80044011),
WBEMMOF_E_INVALID_PRAGMA = unchecked((int)0x80044012),
WBEMMOF_E_INVALID_NAMESPACE_SYNTAX = unchecked((int)0x80044013),
WBEMMOF_E_EXPECTED_CLASS_NAME = unchecked((int)0x80044014),
WBEMMOF_E_TYPE_MISMATCH = unchecked((int)0x80044015),
WBEMMOF_E_EXPECTED_ALIAS_NAME = unchecked((int)0x80044016),
WBEMMOF_E_INVALID_CLASS_DECLARATION = unchecked((int)0x80044017),
WBEMMOF_E_INVALID_INSTANCE_DECLARATION = unchecked((int)0x80044018),
WBEMMOF_E_EXPECTED_DOLLAR = unchecked((int)0x80044019),
WBEMMOF_E_CIMTYPE_QUALIFIER = unchecked((int)0x8004401A),
WBEMMOF_E_DUPLICATE_PROPERTY = unchecked((int)0x8004401B),
WBEMMOF_E_INVALID_NAMESPACE_SPECIFICATION = unchecked((int)0x8004401C),
WBEMMOF_E_OUT_OF_RANGE = unchecked((int)0x8004401D),
WBEMMOF_E_INVALID_FILE = unchecked((int)0x8004401E),
WBEMMOF_E_ALIASES_IN_EMBEDDED = unchecked((int)0x8004401F),
WBEMMOF_E_NULL_ARRAY_ELEM = unchecked((int)0x80044020),
WBEMMOF_E_DUPLICATE_QUALIFIER = unchecked((int)0x80044021),
WBEMMOF_E_EXPECTED_FLAVOR_TYPE = unchecked((int)0x80044022),
WBEMMOF_E_INCOMPATIBLE_FLAVOR_TYPES = unchecked((int)0x80044023),
WBEMMOF_E_MULTIPLE_ALIASES = unchecked((int)0x80044024),
WBEMMOF_E_INCOMPATIBLE_FLAVOR_TYPES2 = unchecked((int)0x80044025),
WBEMMOF_E_NO_ARRAYS_RETURNED = unchecked((int)0x80044026),
WBEMMOF_E_MUST_BE_IN_OR_OUT = unchecked((int)0x80044027),
WBEMMOF_E_INVALID_FLAGS_SYNTAX = unchecked((int)0x80044028),
WBEMMOF_E_EXPECTED_BRACE_OR_BAD_TYPE = unchecked((int)0x80044029),
WBEMMOF_E_UNSUPPORTED_CIMV22_QUAL_VALUE = unchecked((int)0x8004402A),
WBEMMOF_E_UNSUPPORTED_CIMV22_DATA_TYPE = unchecked((int)0x8004402B),
WBEMMOF_E_INVALID_DELETEINSTANCE_SYNTAX = unchecked((int)0x8004402C),
WBEMMOF_E_INVALID_QUALIFIER_SYNTAX = unchecked((int)0x8004402D),
WBEMMOF_E_QUALIFIER_USED_OUTSIDE_SCOPE = unchecked((int)0x8004402E),
WBEMMOF_E_ERROR_CREATING_TEMP_FILE = unchecked((int)0x8004402F),
WBEMMOF_E_ERROR_INVALID_INCLUDE_FILE = unchecked((int)0x80044030),
WBEMMOF_E_INVALID_DELETECLASS_SYNTAX = unchecked((int)0x80044031),
}
public enum CIMTYPE : int
{
CIM_ILLEGAL = 4095, // 0xFFF
CIM_EMPTY = 0, // 0x0
CIM_SINT8 = 16, // 0x10
CIM_UINT8 = 17, // 0x11
CIM_SINT16 = 2, // 0x2
CIM_UINT16 = 18, // 0x12
CIM_SINT32 = 3, // 0x3
CIM_UINT32 = 19, // 0x13
CIM_SINT64 = 20, // 0x14
CIM_UINT64 = 21, // 0x15
CIM_REAL32 = 4, // 0x4
CIM_REAL64 = 5, // 0x5
CIM_BOOLEAN = 11, // 0xB
CIM_STRING = 8, // 0x8
CIM_DATETIME = 101, // 0x65
CIM_REFERENCE = 102, // 0x66
CIM_CHAR16 = 103, // 0x67
CIM_OBJECT = 13, // 0xD
CIM_FLAG_ARRAY = 8192 // 0x2000
}
internal enum tag_WBEM_STATUS_TYPE
{
WBEM_STATUS_COMPLETE = unchecked((int)0x00000000),
WBEM_STATUS_REQUIREMENTS = unchecked((int)0x00000001),
WBEM_STATUS_PROGRESS = unchecked((int)0x00000002),
}
internal enum tag_WBEM_EXTRA_RETURN_CODES
{
WBEM_S_INITIALIZED = unchecked((int)0x00000000),
WBEM_S_LIMITED_SERVICE = unchecked((int)0x00043001),
WBEM_S_INDIRECTLY_UPDATED = unchecked((int)0x00043002),
WBEM_S_SUBJECT_TO_SDS = unchecked((int)0x00043003),
WBEM_E_RETRY_LATER = unchecked((int)0x80043001),
WBEM_E_RESOURCE_CONTENTION = unchecked((int)0x80043002),
}
[ComImport, Guid("4CFC7932-0F9D-4BEF-9C32-8EA2A6B56FCB")]
internal class WbemDecoupledRegistrar
{
}
[ComImport,
GuidAttribute("1BE41572-91DD-11D1-AEB2-00C04FB68820"),
InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
internal interface IWbemProviderInit
{
[PreserveSig]
int Initialize(
[In][MarshalAs(UnmanagedType.LPWStr)] string wszUser,
[In] Int32 lFlags,
[In][MarshalAs(UnmanagedType.LPWStr)] string wszNamespace,
[In][MarshalAs(UnmanagedType.LPWStr)] string wszLocale,
[In][MarshalAs(UnmanagedType.Interface)] IWbemServices pNamespace,
[In][MarshalAs(UnmanagedType.Interface)] IWbemContext pCtx,
[In][MarshalAs(UnmanagedType.Interface)] IWbemProviderInitSink pInitSink
);
}
[ComImport,
GuidAttribute("1005CBCF-E64F-4646-BCD3-3A089D8A84B4"),
InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
internal interface IWbemDecoupledRegistrar
{
[PreserveSig]
int Register(
[In] Int32 flags,
[In][MarshalAs(UnmanagedType.Interface)] IWbemContext context,
[In][MarshalAs(UnmanagedType.LPWStr)] string user,
[In][MarshalAs(UnmanagedType.LPWStr)] string locale,
[In][MarshalAs(UnmanagedType.LPWStr)] string scope,
[In][MarshalAs(UnmanagedType.LPWStr)] string registration,
[In][MarshalAs(UnmanagedType.IUnknown)] object unknown
);
[PreserveSig]
int UnRegister();
}
[ComImport,
GuidAttribute("9556DC99-828C-11CF-A37E-00AA003240C7"),
InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
internal interface IWbemServices
{
[PreserveSig]
int OpenNamespace(
[In][MarshalAs(UnmanagedType.BStr)] string strNamespace,
[In] Int32 lFlags,
[In][MarshalAs(UnmanagedType.Interface)] IWbemContext pCtx,
[In][Out][MarshalAs(UnmanagedType.Interface)] ref IWbemServices ppWorkingNamespace,
[In] IntPtr ppCallResult
);
[PreserveSig]
int CancelAsyncCall(
[In][MarshalAs(UnmanagedType.Interface)] IWbemObjectSink pSink
);
[PreserveSig]
int QueryObjectSink(
[In] Int32 lFlags,
[Out][MarshalAs(UnmanagedType.Interface)] out IWbemObjectSink ppResponseHandler
);
[PreserveSig]
int GetObject(
[In][MarshalAs(UnmanagedType.BStr)] string strObjectPath,
[In] Int32 lFlags,
[In][MarshalAs(UnmanagedType.Interface)] IWbemContext pCtx,
[In][Out][MarshalAs(UnmanagedType.Interface)] ref IWbemClassObject ppObject,
[In] IntPtr ppCallResult
);
[PreserveSig]
int GetObjectAsync(
[In][MarshalAs(UnmanagedType.BStr)] string strObjectPath,
[In] Int32 lFlags,
[In][MarshalAs(UnmanagedType.Interface)] IWbemContext pCtx,
[In][MarshalAs(UnmanagedType.Interface)] IWbemObjectSink pResponseHandler
);
[PreserveSig]
int PutClass(
[In][MarshalAs(UnmanagedType.Interface)] IWbemClassObject pObject,
[In] Int32 lFlags,
[In][MarshalAs(UnmanagedType.Interface)] IWbemContext pCtx,
[In] IntPtr ppCallResult
);
[PreserveSig]
int PutClassAsync(
[In][MarshalAs(UnmanagedType.Interface)] IWbemClassObject pObject,
[In] Int32 lFlags,
[In][MarshalAs(UnmanagedType.Interface)] IWbemContext pCtx,
[In][MarshalAs(UnmanagedType.Interface)] IWbemObjectSink pResponseHandler
);
[PreserveSig]
int DeleteClass(
[In][MarshalAs(UnmanagedType.BStr)] string strClass,
[In] Int32 lFlags,
[In][MarshalAs(UnmanagedType.Interface)] IWbemContext pCtx,
[In] IntPtr ppCallResult
);
[PreserveSig]
int DeleteClassAsync(
[In][MarshalAs(UnmanagedType.BStr)] string strClass,
[In] Int32 lFlags,
[In][MarshalAs(UnmanagedType.Interface)] IWbemContext pCtx,
[In][MarshalAs(UnmanagedType.Interface)] IWbemObjectSink pResponseHandler
);
[PreserveSig]
int CreateClassEnum(
[In][MarshalAs(UnmanagedType.BStr)] string strSuperclass,
[In] Int32 lFlags,
[In][MarshalAs(UnmanagedType.Interface)] IWbemContext pCtx,
[Out][MarshalAs(UnmanagedType.Interface)] out IEnumWbemClassObject ppEnum
);
[PreserveSig]
int CreateClassEnumAsync(
[In][MarshalAs(UnmanagedType.BStr)] string strSuperclass,
[In] Int32 lFlags,
[In][MarshalAs(UnmanagedType.Interface)] IWbemContext pCtx,
[In][MarshalAs(UnmanagedType.Interface)] IWbemObjectSink pResponseHandler
);
[PreserveSig]
int PutInstance(
[In][MarshalAs(UnmanagedType.Interface)] IWbemClassObject pInst,
[In] Int32 lFlags,
[In][MarshalAs(UnmanagedType.Interface)] IWbemContext pCtx,
[In] IntPtr ppCallResult
);
[PreserveSig]
int PutInstanceAsync(
[In][MarshalAs(UnmanagedType.Interface)] IWbemClassObject pInst,
[In] Int32 lFlags,
[In][MarshalAs(UnmanagedType.Interface)] IWbemContext pCtx,
[In][MarshalAs(UnmanagedType.Interface)] IWbemObjectSink pResponseHandler
);
[PreserveSig]
int DeleteInstance(
[In][MarshalAs(UnmanagedType.BStr)] string strObjectPath,
[In] Int32 lFlags,
[In][MarshalAs(UnmanagedType.Interface)] IWbemContext pCtx,
[In] IntPtr ppCallResult
);
[PreserveSig]
int DeleteInstanceAsync(
[In][MarshalAs(UnmanagedType.BStr)] string strObjectPath,
[In] Int32 lFlags,
[In][MarshalAs(UnmanagedType.Interface)] IWbemContext pCtx,
[In][MarshalAs(UnmanagedType.Interface)] IWbemObjectSink pResponseHandler
);
[PreserveSig]
int CreateInstanceEnum(
[In][MarshalAs(UnmanagedType.BStr)] string strFilter,
[In] Int32 lFlags,
[In][MarshalAs(UnmanagedType.Interface)] IWbemContext pCtx,
[Out][MarshalAs(UnmanagedType.Interface)] out IEnumWbemClassObject ppEnum
);
[PreserveSig]
int CreateInstanceEnumAsync(
[In][MarshalAs(UnmanagedType.BStr)] string strFilter,
[In] Int32 lFlags,
[In][MarshalAs(UnmanagedType.Interface)] IWbemContext pCtx,
[In][MarshalAs(UnmanagedType.Interface)] IWbemObjectSink pResponseHandler
);
[PreserveSig]
int ExecQuery(
[In][MarshalAs(UnmanagedType.BStr)] string strQueryLanguage,
[In][MarshalAs(UnmanagedType.BStr)] string strQuery,
[In] Int32 lFlags,
[In][MarshalAs(UnmanagedType.Interface)] IWbemContext pCtx,
[Out][MarshalAs(UnmanagedType.Interface)] out IEnumWbemClassObject ppEnum
);
[PreserveSig]
int ExecQueryAsync(
[In][MarshalAs(UnmanagedType.BStr)] string strQueryLanguage,
[In][MarshalAs(UnmanagedType.BStr)] string strQuery,
[In] Int32 lFlags,
[In][MarshalAs(UnmanagedType.Interface)] IWbemContext pCtx,
[In][MarshalAs(UnmanagedType.Interface)] IWbemObjectSink pResponseHandler
);
[PreserveSig]
int ExecNotificationQuery(
[In][MarshalAs(UnmanagedType.BStr)] string strQueryLanguage,
[In][MarshalAs(UnmanagedType.BStr)] string strQuery,
[In] Int32 lFlags,
[In][MarshalAs(UnmanagedType.Interface)] IWbemContext pCtx,
[Out][MarshalAs(UnmanagedType.Interface)] out IEnumWbemClassObject ppEnum
);
[PreserveSig]
int ExecNotificationQueryAsync(
[In][MarshalAs(UnmanagedType.BStr)] string strQueryLanguage,
[In][MarshalAs(UnmanagedType.BStr)] string strQuery,
[In] Int32 lFlags,
[In][MarshalAs(UnmanagedType.Interface)] IWbemContext pCtx,
[In][MarshalAs(UnmanagedType.Interface)] IWbemObjectSink pResponseHandler
);
[PreserveSig]
int ExecMethod(
[In][MarshalAs(UnmanagedType.BStr)] string strObjectPath,
[In][MarshalAs(UnmanagedType.BStr)] string strMethodName,
[In] Int32 lFlags,
[In][MarshalAs(UnmanagedType.Interface)] IWbemContext pCtx,
[In][MarshalAs(UnmanagedType.Interface)] IWbemClassObject pInParams,
[In][Out][MarshalAs(UnmanagedType.Interface)] ref IWbemClassObject ppOutParams,
[In] IntPtr ppCallResult
);
[PreserveSig]
int ExecMethodAsync(
[In][MarshalAs(UnmanagedType.BStr)] string strObjectPath,
[In][MarshalAs(UnmanagedType.BStr)] string strMethodName,
[In] Int32 lFlags,
[In][MarshalAs(UnmanagedType.Interface)] IWbemContext pCtx,
[In][MarshalAs(UnmanagedType.Interface)] IWbemClassObject pInParams,
[In][MarshalAs(UnmanagedType.Interface)] IWbemObjectSink pResponseHandler
);
}
[ComImport,
GuidAttribute("DC12A681-737F-11CF-884D-00AA004B2E24"),
InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
internal interface IWbemClassObject
{
[PreserveSig]
int GetQualifierSet(
[Out][MarshalAs(UnmanagedType.Interface)] out IWbemQualifierSet ppQualSet
);
[PreserveSig]
int Get(
[In][MarshalAs(UnmanagedType.LPWStr)] string wszName,
[In] Int32 lFlags,
[In][Out] ref object pVal,
[In][Out] ref Int32 pType,
[In][Out] ref Int32 plFlavor
);
[PreserveSig]
int Put(
[In][MarshalAs(UnmanagedType.LPWStr)] string wszName,
[In] Int32 lFlags,
[In] ref object pVal,
[In] Int32 Type
);
[PreserveSig]
int Delete(
[In][MarshalAs(UnmanagedType.LPWStr)] string wszName
);
[PreserveSig]
int GetNames(
[In][MarshalAs(UnmanagedType.LPWStr)] string wszQualifierName,
[In] Int32 lFlags,
[In] ref object pQualifierVal,
[Out][MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_BSTR)] out string[] pNames
);
[PreserveSig]
int BeginEnumeration(
[In] Int32 lEnumFlags
);
[PreserveSig]
int Next(
[In] Int32 lFlags,
[In][Out][MarshalAs(UnmanagedType.BStr)] ref string strName,
[In][Out] ref object pVal,
[In][Out] ref Int32 pType,
[In][Out] ref Int32 plFlavor
);
[PreserveSig]
int EndEnumeration();
[PreserveSig]
int GetPropertyQualifierSet(
[In][MarshalAs(UnmanagedType.LPWStr)] string wszProperty,
[Out][MarshalAs(UnmanagedType.Interface)] out IWbemQualifierSet ppQualSet
);
[PreserveSig]
int Clone(
[Out][MarshalAs(UnmanagedType.Interface)] out IWbemClassObject ppCopy
);
[PreserveSig]
int GetObjectText(
[In] Int32 lFlags,
[Out][MarshalAs(UnmanagedType.BStr)] out string pstrObjectText
);
[PreserveSig]
int SpawnDerivedClass(
[In] Int32 lFlags,
[Out][MarshalAs(UnmanagedType.Interface)] out IWbemClassObject ppNewClass
);
[PreserveSig]
int SpawnInstance(
[In] Int32 lFlags,
[Out][MarshalAs(UnmanagedType.Interface)] out IWbemClassObject ppNewInstance
);
[PreserveSig]
int CompareTo([In] Int32 lFlags,
[In][MarshalAs(UnmanagedType.Interface)] IWbemClassObject pCompareTo
);
[PreserveSig]
int GetPropertyOrigin(
[In][MarshalAs(UnmanagedType.LPWStr)] string wszName,
[Out][MarshalAs(UnmanagedType.BStr)] out string pstrClassName
);
[PreserveSig]
int InheritsFrom(
[In][MarshalAs(UnmanagedType.LPWStr)] string strAncestor
);
[PreserveSig]
int GetMethod(
[In][MarshalAs(UnmanagedType.LPWStr)] string wszName,
[In] Int32 lFlags,
[In] IntPtr ppInSignature,
[Out][MarshalAs(UnmanagedType.Interface)] out IWbemClassObject ppOutSignature
);
[PreserveSig]
int PutMethod(
[In][MarshalAs(UnmanagedType.LPWStr)] string wszName,
[In] Int32 lFlags,
[In][MarshalAs(UnmanagedType.Interface)] IWbemClassObject pInSignature,
[In][MarshalAs(UnmanagedType.Interface)] IWbemClassObject pOutSignature
);
[PreserveSig]
int DeleteMethod(
[In][MarshalAs(UnmanagedType.LPWStr)] string wszName
);
[PreserveSig]
int BeginMethodEnumeration(
[In] Int32 lEnumFlags
);
[PreserveSig]
int NextMethod(
[In] Int32 lFlags,
[In][Out][MarshalAs(UnmanagedType.BStr)] ref string pstrName,
[In][Out][MarshalAs(UnmanagedType.Interface)] ref IWbemClassObject ppInSignature,
[In][Out][MarshalAs(UnmanagedType.Interface)] ref IWbemClassObject ppOutSignature
);
[PreserveSig]
int EndMethodEnumeration();
[PreserveSig]
int GetMethodQualifierSet(
[In][MarshalAs(UnmanagedType.LPWStr)] string wszMethod,
[Out][MarshalAs(UnmanagedType.Interface)] out IWbemQualifierSet ppQualSet
);
[PreserveSig]
int GetMethodOrigin(
[In][MarshalAs(UnmanagedType.LPWStr)] string wszMethodName,
[Out][MarshalAs(UnmanagedType.BStr)] out string pstrClassName
);
}
[ComImport,
GuidAttribute("44ACA674-E8FC-11D0-A07C-00C04FB68820"),
InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
internal interface IWbemContext
{
[PreserveSig]
int Clone(
[Out][MarshalAs(UnmanagedType.Interface)] out IWbemContext ppNewCopy
);
[PreserveSig]
int GetNames(
[In] Int32 lFlags,
[Out][MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_BSTR)] out string[] pNames
);
[PreserveSig]
int BeginEnumeration(
[In] Int32 lFlags
);
[PreserveSig]
int Next(
[In] Int32 lFlags,
[Out][MarshalAs(UnmanagedType.BStr)] out string pstrName,
[Out] out object pValue
);
[PreserveSig]
int EndEnumeration();
[PreserveSig]
int SetValue(
[In][MarshalAs(UnmanagedType.LPWStr)] string wszName,
[In] Int32 lFlags,
[In] ref object pValue
);
[PreserveSig]
int GetValue(
[In][MarshalAs(UnmanagedType.LPWStr)] string wszName,
[In] Int32 lFlags,
[Out] out object pValue
);
[PreserveSig]
int DeleteValue(
[In][MarshalAs(UnmanagedType.LPWStr)] string wszName,
[In] Int32 lFlags
);
[PreserveSig]
int DeleteAll();
}
[ComImport,
GuidAttribute("1BE41571-91DD-11D1-AEB2-00C04FB68820"),
InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
internal interface IWbemProviderInitSink
{
[PreserveSig]
int SetStatus(
[In] Int32 lStatus,
[In] Int32 lFlags
);
}
[ComImport,
GuidAttribute("7C857801-7381-11CF-884D-00AA004B2E24"),
InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
internal interface IWbemObjectSink
{
[PreserveSig]
int Indicate(
[In] Int32 lObjectCount,
//[In][MarshalAs(UnmanagedType.Interface)] ref
[In][MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 0)] IWbemClassObject[] apObjArray
);
[PreserveSig]
int SetStatus(
[In] Int32 lFlags,
[In][MarshalAs(UnmanagedType.Error)] Int32 hResult,
[In][MarshalAs(UnmanagedType.BStr)] string strParam,
[In][MarshalAs(UnmanagedType.Interface)] IWbemClassObject pObjParam
);
}
[ComImport,
GuidAttribute("027947E1-D731-11CE-A357-000000000001"),
InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
internal interface IEnumWbemClassObject
{
[PreserveSig]
int Reset();
[PreserveSig]
int Next(
[In] Int32 lTimeout,
[In] UInt32 uCount,
[In][Out][MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 1)] IWbemClassObject[] apObjects,
[Out] out UInt32 puReturned
);
[PreserveSig]
int NextAsync(
[In] UInt32 uCount,
[In][MarshalAs(UnmanagedType.Interface)] IWbemObjectSink pSink
);
[PreserveSig]
int Clone(
[Out][MarshalAs(UnmanagedType.Interface)] out IEnumWbemClassObject ppEnum
);
[PreserveSig]
int Skip(
[In] Int32 lTimeout,
[In] UInt32 nCount
);
}
[ComImport,
GuidAttribute("DC12A680-737F-11CF-884D-00AA004B2E24"),
InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
internal interface IWbemQualifierSet
{
[PreserveSig]
int Get(
[In][MarshalAs(UnmanagedType.LPWStr)] string wszName,
[In] Int32 lFlags,
[In][Out] ref object pVal,
[In][Out] ref Int32 plFlavor
);
[PreserveSig]
int Put(
[In][MarshalAs(UnmanagedType.LPWStr)] string wszName,
[In] ref object pVal,
[In] Int32 lFlavor
);
[PreserveSig]
int Delete(
[In][MarshalAs(UnmanagedType.LPWStr)] string wszName
);
[PreserveSig]
int GetNames(
[In] Int32 lFlags,
[Out][MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_BSTR)] out string[] pNames
);
[PreserveSig]
int BeginEnumeration(
[In] Int32 lFlags
);
[PreserveSig]
int Next(
[In] Int32 lFlags,
[In][Out][MarshalAs(UnmanagedType.BStr)] ref string pstrName,
[In][Out] ref object pVal, [In][Out] ref Int32 plFlavor
);
[PreserveSig]
int EndEnumeration();
}
}
}
|