WbemNative.cs 36 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818
  1. //------------------------------------------------------------
  2. // Copyright (c) Microsoft Corporation. All rights reserved.
  3. //------------------------------------------------------------
  4. namespace System.ServiceModel.Administration
  5. {
  6. using System;
  7. using System.Collections.Generic;
  8. using System.Globalization;
  9. using System.Runtime.InteropServices;
  10. using System.Runtime.Serialization;
  11. using System.Security;
  12. using System.Text;
  13. using System.Threading;
  14. [SuppressUnmanagedCodeSecurity]
  15. internal class WbemNative
  16. {
  17. internal enum WbemStatus
  18. {
  19. WBEM_NO_ERROR = unchecked((int)0x00000000),
  20. WBEM_S_NO_ERROR = unchecked((int)0x00000000),
  21. WBEM_S_SAME = unchecked((int)0x00000000),
  22. WBEM_S_FALSE = unchecked((int)0x00000001),
  23. WBEM_S_ALREADY_EXISTS = unchecked((int)0x00040001),
  24. WBEM_S_RESET_TO_DEFAULT = unchecked((int)0x00040002),
  25. WBEM_S_DIFFERENT = unchecked((int)0x00040003),
  26. WBEM_S_TIMEDOUT = unchecked((int)0x00040004),
  27. WBEM_S_NO_MORE_DATA = unchecked((int)0x00040005),
  28. WBEM_S_OPERATION_CANCELLED = unchecked((int)0x00040006),
  29. WBEM_S_PENDING = unchecked((int)0x00040007),
  30. WBEM_S_DUPLICATE_OBJECTS = unchecked((int)0x00040008),
  31. WBEM_S_ACCESS_DENIED = unchecked((int)0x00040009),
  32. WBEM_S_PARTIAL_RESULTS = unchecked((int)0x00040010),
  33. WBEM_S_NO_POSTHOOK = unchecked((int)0x00040011),
  34. WBEM_S_POSTHOOK_WITH_BOTH = unchecked((int)0x00040012),
  35. WBEM_S_POSTHOOK_WITH_NEW = unchecked((int)0x00040013),
  36. WBEM_S_POSTHOOK_WITH_STATUS = unchecked((int)0x00040014),
  37. WBEM_S_POSTHOOK_WITH_OLD = unchecked((int)0x00040015),
  38. WBEM_S_REDO_PREHOOK_WITH_ORIGINAL_OBJECT = unchecked((int)0x00040016),
  39. WBEM_S_SOURCE_NOT_AVAILABLE = unchecked((int)0x00040017),
  40. WBEM_E_FAILED = unchecked((int)0x80041001),
  41. WBEM_E_NOT_FOUND = unchecked((int)0x80041002),
  42. WBEM_E_ACCESS_DENIED = unchecked((int)0x80041003),
  43. WBEM_E_PROVIDER_FAILURE = unchecked((int)0x80041004),
  44. WBEM_E_TYPE_MISMATCH = unchecked((int)0x80041005),
  45. WBEM_E_OUT_OF_MEMORY = unchecked((int)0x80041006),
  46. WBEM_E_INVALID_CONTEXT = unchecked((int)0x80041007),
  47. WBEM_E_INVALID_PARAMETER = unchecked((int)0x80041008),
  48. WBEM_E_NOT_AVAILABLE = unchecked((int)0x80041009),
  49. WBEM_E_CRITICAL_ERROR = unchecked((int)0x8004100A),
  50. WBEM_E_INVALID_STREAM = unchecked((int)0x8004100B),
  51. WBEM_E_NOT_SUPPORTED = unchecked((int)0x8004100C),
  52. WBEM_E_INVALID_SUPERCLASS = unchecked((int)0x8004100D),
  53. WBEM_E_INVALID_NAMESPACE = unchecked((int)0x8004100E),
  54. WBEM_E_INVALID_OBJECT = unchecked((int)0x8004100F),
  55. WBEM_E_INVALID_CLASS = unchecked((int)0x80041010),
  56. WBEM_E_PROVIDER_NOT_FOUND = unchecked((int)0x80041011),
  57. WBEM_E_INVALID_PROVIDER_REGISTRATION = unchecked((int)0x80041012),
  58. WBEM_E_PROVIDER_LOAD_FAILURE = unchecked((int)0x80041013),
  59. WBEM_E_INITIALIZATION_FAILURE = unchecked((int)0x80041014),
  60. WBEM_E_TRANSPORT_FAILURE = unchecked((int)0x80041015),
  61. WBEM_E_INVALID_OPERATION = unchecked((int)0x80041016),
  62. WBEM_E_INVALID_QUERY = unchecked((int)0x80041017),
  63. WBEM_E_INVALID_QUERY_TYPE = unchecked((int)0x80041018),
  64. WBEM_E_ALREADY_EXISTS = unchecked((int)0x80041019),
  65. WBEM_E_OVERRIDE_NOT_ALLOWED = unchecked((int)0x8004101A),
  66. WBEM_E_PROPAGATED_QUALIFIER = unchecked((int)0x8004101B),
  67. WBEM_E_PROPAGATED_PROPERTY = unchecked((int)0x8004101C),
  68. WBEM_E_UNEXPECTED = unchecked((int)0x8004101D),
  69. WBEM_E_ILLEGAL_OPERATION = unchecked((int)0x8004101E),
  70. WBEM_E_CANNOT_BE_KEY = unchecked((int)0x8004101F),
  71. WBEM_E_INCOMPLETE_CLASS = unchecked((int)0x80041020),
  72. WBEM_E_INVALID_SYNTAX = unchecked((int)0x80041021),
  73. WBEM_E_NONDECORATED_OBJECT = unchecked((int)0x80041022),
  74. WBEM_E_READ_ONLY = unchecked((int)0x80041023),
  75. WBEM_E_PROVIDER_NOT_CAPABLE = unchecked((int)0x80041024),
  76. WBEM_E_CLASS_HAS_CHILDREN = unchecked((int)0x80041025),
  77. WBEM_E_CLASS_HAS_INSTANCES = unchecked((int)0x80041026),
  78. WBEM_E_QUERY_NOT_IMPLEMENTED = unchecked((int)0x80041027),
  79. WBEM_E_ILLEGAL_NULL = unchecked((int)0x80041028),
  80. WBEM_E_INVALID_QUALIFIER_TYPE = unchecked((int)0x80041029),
  81. WBEM_E_INVALID_PROPERTY_TYPE = unchecked((int)0x8004102A),
  82. WBEM_E_VALUE_OUT_OF_RANGE = unchecked((int)0x8004102B),
  83. WBEM_E_CANNOT_BE_SINGLETON = unchecked((int)0x8004102C),
  84. WBEM_E_INVALID_CIM_TYPE = unchecked((int)0x8004102D),
  85. WBEM_E_INVALID_METHOD = unchecked((int)0x8004102E),
  86. WBEM_E_INVALID_METHOD_PARAMETERS = unchecked((int)0x8004102F),
  87. WBEM_E_SYSTEM_PROPERTY = unchecked((int)0x80041030),
  88. WBEM_E_INVALID_PROPERTY = unchecked((int)0x80041031),
  89. WBEM_E_CALL_CANCELLED = unchecked((int)0x80041032),
  90. WBEM_E_SHUTTING_DOWN = unchecked((int)0x80041033),
  91. WBEM_E_PROPAGATED_METHOD = unchecked((int)0x80041034),
  92. WBEM_E_UNSUPPORTED_PARAMETER = unchecked((int)0x80041035),
  93. WBEM_E_MISSING_PARAMETER_ID = unchecked((int)0x80041036),
  94. WBEM_E_INVALID_PARAMETER_ID = unchecked((int)0x80041037),
  95. WBEM_E_NONCONSECUTIVE_PARAMETER_IDS = unchecked((int)0x80041038),
  96. WBEM_E_PARAMETER_ID_ON_RETVAL = unchecked((int)0x80041039),
  97. WBEM_E_INVALID_OBJECT_PATH = unchecked((int)0x8004103A),
  98. WBEM_E_OUT_OF_DISK_SPACE = unchecked((int)0x8004103B),
  99. WBEM_E_BUFFER_TOO_SMALL = unchecked((int)0x8004103C),
  100. WBEM_E_UNSUPPORTED_PUT_EXTENSION = unchecked((int)0x8004103D),
  101. WBEM_E_UNKNOWN_OBJECT_TYPE = unchecked((int)0x8004103E),
  102. WBEM_E_UNKNOWN_PACKET_TYPE = unchecked((int)0x8004103F),
  103. WBEM_E_MARSHAL_VERSION_MISMATCH = unchecked((int)0x80041040),
  104. WBEM_E_MARSHAL_INVALID_SIGNATURE = unchecked((int)0x80041041),
  105. WBEM_E_INVALID_QUALIFIER = unchecked((int)0x80041042),
  106. WBEM_E_INVALID_DUPLICATE_PARAMETER = unchecked((int)0x80041043),
  107. WBEM_E_TOO_MUCH_DATA = unchecked((int)0x80041044),
  108. WBEM_E_SERVER_TOO_BUSY = unchecked((int)0x80041045),
  109. WBEM_E_INVALID_FLAVOR = unchecked((int)0x80041046),
  110. WBEM_E_CIRCULAR_REFERENCE = unchecked((int)0x80041047),
  111. WBEM_E_UNSUPPORTED_CLASS_UPDATE = unchecked((int)0x80041048),
  112. WBEM_E_CANNOT_CHANGE_KEY_INHERITANCE = unchecked((int)0x80041049),
  113. WBEM_E_CANNOT_CHANGE_INDEX_INHERITANCE = unchecked((int)0x80041050),
  114. WBEM_E_TOO_MANY_PROPERTIES = unchecked((int)0x80041051),
  115. WBEM_E_UPDATE_TYPE_MISMATCH = unchecked((int)0x80041052),
  116. WBEM_E_UPDATE_OVERRIDE_NOT_ALLOWED = unchecked((int)0x80041053),
  117. WBEM_E_UPDATE_PROPAGATED_METHOD = unchecked((int)0x80041054),
  118. WBEM_E_METHOD_NOT_IMPLEMENTED = unchecked((int)0x80041055),
  119. WBEM_E_METHOD_DISABLED = unchecked((int)0x80041056),
  120. WBEM_E_REFRESHER_BUSY = unchecked((int)0x80041057),
  121. WBEM_E_UNPARSABLE_QUERY = unchecked((int)0x80041058),
  122. WBEM_E_NOT_EVENT_CLASS = unchecked((int)0x80041059),
  123. WBEM_E_MISSING_GROUP_WITHIN = unchecked((int)0x8004105A),
  124. WBEM_E_MISSING_AGGREGATION_LIST = unchecked((int)0x8004105B),
  125. WBEM_E_PROPERTY_NOT_AN_OBJECT = unchecked((int)0x8004105C),
  126. WBEM_E_AGGREGATING_BY_OBJECT = unchecked((int)0x8004105D),
  127. WBEM_E_UNINTERPRETABLE_PROVIDER_QUERY = unchecked((int)0x8004105F),
  128. WBEM_E_BACKUP_RESTORE_WINMGMT_RUNNING = unchecked((int)0x80041060),
  129. WBEM_E_QUEUE_OVERFLOW = unchecked((int)0x80041061),
  130. WBEM_E_PRIVILEGE_NOT_HELD = unchecked((int)0x80041062),
  131. WBEM_E_INVALID_OPERATOR = unchecked((int)0x80041063),
  132. WBEM_E_LOCAL_CREDENTIALS = unchecked((int)0x80041064),
  133. WBEM_E_CANNOT_BE_ABSTRACT = unchecked((int)0x80041065),
  134. WBEM_E_AMENDED_OBJECT = unchecked((int)0x80041066),
  135. WBEM_E_CLIENT_TOO_SLOW = unchecked((int)0x80041067),
  136. WBEM_E_NULL_SECURITY_DESCRIPTOR = unchecked((int)0x80041068),
  137. WBEM_E_TIMED_OUT = unchecked((int)0x80041069),
  138. WBEM_E_INVALID_ASSOCIATION = unchecked((int)0x8004106A),
  139. WBEM_E_AMBIGUOUS_OPERATION = unchecked((int)0x8004106B),
  140. WBEM_E_QUOTA_VIOLATION = unchecked((int)0x8004106C),
  141. WBEM_E_RESERVED_001 = unchecked((int)0x8004106D),
  142. WBEM_E_RESERVED_002 = unchecked((int)0x8004106E),
  143. WBEM_E_UNSUPPORTED_LOCALE = unchecked((int)0x8004106F),
  144. WBEM_E_HANDLE_OUT_OF_DATE = unchecked((int)0x80041070),
  145. WBEM_E_CONNECTION_FAILED = unchecked((int)0x80041071),
  146. WBEM_E_INVALID_HANDLE_REQUEST = unchecked((int)0x80041072),
  147. WBEM_E_PROPERTY_NAME_TOO_WIDE = unchecked((int)0x80041073),
  148. WBEM_E_CLASS_NAME_TOO_WIDE = unchecked((int)0x80041074),
  149. WBEM_E_METHOD_NAME_TOO_WIDE = unchecked((int)0x80041075),
  150. WBEM_E_QUALIFIER_NAME_TOO_WIDE = unchecked((int)0x80041076),
  151. WBEM_E_RERUN_COMMAND = unchecked((int)0x80041077),
  152. WBEM_E_DATABASE_VER_MISMATCH = unchecked((int)0x80041078),
  153. WBEM_E_VETO_DELETE = unchecked((int)0x80041079),
  154. WBEM_E_VETO_PUT = unchecked((int)0x8004107A),
  155. WBEM_E_INVALID_LOCALE = unchecked((int)0x80041080),
  156. WBEM_E_PROVIDER_SUSPENDED = unchecked((int)0x80041081),
  157. WBEM_E_SYNCHRONIZATION_REQUIRED = unchecked((int)0x80041082),
  158. WBEM_E_NO_SCHEMA = unchecked((int)0x80041083),
  159. WBEM_E_PROVIDER_ALREADY_REGISTERED = unchecked((int)0x80041084),
  160. WBEM_E_PROVIDER_NOT_REGISTERED = unchecked((int)0x80041085),
  161. WBEM_E_FATAL_TRANSPORT_ERROR = unchecked((int)0x80041086),
  162. WBEM_E_ENCRYPTED_CONNECTION_REQUIRED = unchecked((int)0x80041087),
  163. WBEM_E_PROVIDER_TIMED_OUT = unchecked((int)0x80041088),
  164. WBEM_E_NO_KEY = unchecked((int)0x80041089),
  165. WBEMESS_E_REGISTRATION_TOO_BROAD = unchecked((int)0x80042001),
  166. WBEMESS_E_REGISTRATION_TOO_PRECISE = unchecked((int)0x80042002),
  167. WBEMMOF_E_EXPECTED_QUALIFIER_NAME = unchecked((int)0x80044001),
  168. WBEMMOF_E_EXPECTED_SEMI = unchecked((int)0x80044002),
  169. WBEMMOF_E_EXPECTED_OPEN_BRACE = unchecked((int)0x80044003),
  170. WBEMMOF_E_EXPECTED_CLOSE_BRACE = unchecked((int)0x80044004),
  171. WBEMMOF_E_EXPECTED_CLOSE_BRACKET = unchecked((int)0x80044005),
  172. WBEMMOF_E_EXPECTED_CLOSE_PAREN = unchecked((int)0x80044006),
  173. WBEMMOF_E_ILLEGAL_CONSTANT_VALUE = unchecked((int)0x80044007),
  174. WBEMMOF_E_EXPECTED_TYPE_IDENTIFIER = unchecked((int)0x80044008),
  175. WBEMMOF_E_EXPECTED_OPEN_PAREN = unchecked((int)0x80044009),
  176. WBEMMOF_E_UNRECOGNIZED_TOKEN = unchecked((int)0x8004400A),
  177. WBEMMOF_E_UNRECOGNIZED_TYPE = unchecked((int)0x8004400B),
  178. WBEMMOF_E_EXPECTED_PROPERTY_NAME = unchecked((int)0x8004400C),
  179. WBEMMOF_E_TYPEDEF_NOT_SUPPORTED = unchecked((int)0x8004400D),
  180. WBEMMOF_E_UNEXPECTED_ALIAS = unchecked((int)0x8004400E),
  181. WBEMMOF_E_UNEXPECTED_ARRAY_INIT = unchecked((int)0x8004400F),
  182. WBEMMOF_E_INVALID_AMENDMENT_SYNTAX = unchecked((int)0x80044010),
  183. WBEMMOF_E_INVALID_DUPLICATE_AMENDMENT = unchecked((int)0x80044011),
  184. WBEMMOF_E_INVALID_PRAGMA = unchecked((int)0x80044012),
  185. WBEMMOF_E_INVALID_NAMESPACE_SYNTAX = unchecked((int)0x80044013),
  186. WBEMMOF_E_EXPECTED_CLASS_NAME = unchecked((int)0x80044014),
  187. WBEMMOF_E_TYPE_MISMATCH = unchecked((int)0x80044015),
  188. WBEMMOF_E_EXPECTED_ALIAS_NAME = unchecked((int)0x80044016),
  189. WBEMMOF_E_INVALID_CLASS_DECLARATION = unchecked((int)0x80044017),
  190. WBEMMOF_E_INVALID_INSTANCE_DECLARATION = unchecked((int)0x80044018),
  191. WBEMMOF_E_EXPECTED_DOLLAR = unchecked((int)0x80044019),
  192. WBEMMOF_E_CIMTYPE_QUALIFIER = unchecked((int)0x8004401A),
  193. WBEMMOF_E_DUPLICATE_PROPERTY = unchecked((int)0x8004401B),
  194. WBEMMOF_E_INVALID_NAMESPACE_SPECIFICATION = unchecked((int)0x8004401C),
  195. WBEMMOF_E_OUT_OF_RANGE = unchecked((int)0x8004401D),
  196. WBEMMOF_E_INVALID_FILE = unchecked((int)0x8004401E),
  197. WBEMMOF_E_ALIASES_IN_EMBEDDED = unchecked((int)0x8004401F),
  198. WBEMMOF_E_NULL_ARRAY_ELEM = unchecked((int)0x80044020),
  199. WBEMMOF_E_DUPLICATE_QUALIFIER = unchecked((int)0x80044021),
  200. WBEMMOF_E_EXPECTED_FLAVOR_TYPE = unchecked((int)0x80044022),
  201. WBEMMOF_E_INCOMPATIBLE_FLAVOR_TYPES = unchecked((int)0x80044023),
  202. WBEMMOF_E_MULTIPLE_ALIASES = unchecked((int)0x80044024),
  203. WBEMMOF_E_INCOMPATIBLE_FLAVOR_TYPES2 = unchecked((int)0x80044025),
  204. WBEMMOF_E_NO_ARRAYS_RETURNED = unchecked((int)0x80044026),
  205. WBEMMOF_E_MUST_BE_IN_OR_OUT = unchecked((int)0x80044027),
  206. WBEMMOF_E_INVALID_FLAGS_SYNTAX = unchecked((int)0x80044028),
  207. WBEMMOF_E_EXPECTED_BRACE_OR_BAD_TYPE = unchecked((int)0x80044029),
  208. WBEMMOF_E_UNSUPPORTED_CIMV22_QUAL_VALUE = unchecked((int)0x8004402A),
  209. WBEMMOF_E_UNSUPPORTED_CIMV22_DATA_TYPE = unchecked((int)0x8004402B),
  210. WBEMMOF_E_INVALID_DELETEINSTANCE_SYNTAX = unchecked((int)0x8004402C),
  211. WBEMMOF_E_INVALID_QUALIFIER_SYNTAX = unchecked((int)0x8004402D),
  212. WBEMMOF_E_QUALIFIER_USED_OUTSIDE_SCOPE = unchecked((int)0x8004402E),
  213. WBEMMOF_E_ERROR_CREATING_TEMP_FILE = unchecked((int)0x8004402F),
  214. WBEMMOF_E_ERROR_INVALID_INCLUDE_FILE = unchecked((int)0x80044030),
  215. WBEMMOF_E_INVALID_DELETECLASS_SYNTAX = unchecked((int)0x80044031),
  216. }
  217. public enum CIMTYPE : int
  218. {
  219. CIM_ILLEGAL = 4095, // 0xFFF
  220. CIM_EMPTY = 0, // 0x0
  221. CIM_SINT8 = 16, // 0x10
  222. CIM_UINT8 = 17, // 0x11
  223. CIM_SINT16 = 2, // 0x2
  224. CIM_UINT16 = 18, // 0x12
  225. CIM_SINT32 = 3, // 0x3
  226. CIM_UINT32 = 19, // 0x13
  227. CIM_SINT64 = 20, // 0x14
  228. CIM_UINT64 = 21, // 0x15
  229. CIM_REAL32 = 4, // 0x4
  230. CIM_REAL64 = 5, // 0x5
  231. CIM_BOOLEAN = 11, // 0xB
  232. CIM_STRING = 8, // 0x8
  233. CIM_DATETIME = 101, // 0x65
  234. CIM_REFERENCE = 102, // 0x66
  235. CIM_CHAR16 = 103, // 0x67
  236. CIM_OBJECT = 13, // 0xD
  237. CIM_FLAG_ARRAY = 8192 // 0x2000
  238. }
  239. internal enum tag_WBEM_STATUS_TYPE
  240. {
  241. WBEM_STATUS_COMPLETE = unchecked((int)0x00000000),
  242. WBEM_STATUS_REQUIREMENTS = unchecked((int)0x00000001),
  243. WBEM_STATUS_PROGRESS = unchecked((int)0x00000002),
  244. }
  245. internal enum tag_WBEM_EXTRA_RETURN_CODES
  246. {
  247. WBEM_S_INITIALIZED = unchecked((int)0x00000000),
  248. WBEM_S_LIMITED_SERVICE = unchecked((int)0x00043001),
  249. WBEM_S_INDIRECTLY_UPDATED = unchecked((int)0x00043002),
  250. WBEM_S_SUBJECT_TO_SDS = unchecked((int)0x00043003),
  251. WBEM_E_RETRY_LATER = unchecked((int)0x80043001),
  252. WBEM_E_RESOURCE_CONTENTION = unchecked((int)0x80043002),
  253. }
  254. [ComImport, Guid("4CFC7932-0F9D-4BEF-9C32-8EA2A6B56FCB")]
  255. internal class WbemDecoupledRegistrar
  256. {
  257. }
  258. [ComImport,
  259. GuidAttribute("1BE41572-91DD-11D1-AEB2-00C04FB68820"),
  260. InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
  261. internal interface IWbemProviderInit
  262. {
  263. [PreserveSig]
  264. int Initialize(
  265. [In][MarshalAs(UnmanagedType.LPWStr)] string wszUser,
  266. [In] Int32 lFlags,
  267. [In][MarshalAs(UnmanagedType.LPWStr)] string wszNamespace,
  268. [In][MarshalAs(UnmanagedType.LPWStr)] string wszLocale,
  269. [In][MarshalAs(UnmanagedType.Interface)] IWbemServices pNamespace,
  270. [In][MarshalAs(UnmanagedType.Interface)] IWbemContext pCtx,
  271. [In][MarshalAs(UnmanagedType.Interface)] IWbemProviderInitSink pInitSink
  272. );
  273. }
  274. [ComImport,
  275. GuidAttribute("1005CBCF-E64F-4646-BCD3-3A089D8A84B4"),
  276. InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
  277. internal interface IWbemDecoupledRegistrar
  278. {
  279. [PreserveSig]
  280. int Register(
  281. [In] Int32 flags,
  282. [In][MarshalAs(UnmanagedType.Interface)] IWbemContext context,
  283. [In][MarshalAs(UnmanagedType.LPWStr)] string user,
  284. [In][MarshalAs(UnmanagedType.LPWStr)] string locale,
  285. [In][MarshalAs(UnmanagedType.LPWStr)] string scope,
  286. [In][MarshalAs(UnmanagedType.LPWStr)] string registration,
  287. [In][MarshalAs(UnmanagedType.IUnknown)] object unknown
  288. );
  289. [PreserveSig]
  290. int UnRegister();
  291. }
  292. [ComImport,
  293. GuidAttribute("9556DC99-828C-11CF-A37E-00AA003240C7"),
  294. InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
  295. internal interface IWbemServices
  296. {
  297. [PreserveSig]
  298. int OpenNamespace(
  299. [In][MarshalAs(UnmanagedType.BStr)] string strNamespace,
  300. [In] Int32 lFlags,
  301. [In][MarshalAs(UnmanagedType.Interface)] IWbemContext pCtx,
  302. [In][Out][MarshalAs(UnmanagedType.Interface)] ref IWbemServices ppWorkingNamespace,
  303. [In] IntPtr ppCallResult
  304. );
  305. [PreserveSig]
  306. int CancelAsyncCall(
  307. [In][MarshalAs(UnmanagedType.Interface)] IWbemObjectSink pSink
  308. );
  309. [PreserveSig]
  310. int QueryObjectSink(
  311. [In] Int32 lFlags,
  312. [Out][MarshalAs(UnmanagedType.Interface)] out IWbemObjectSink ppResponseHandler
  313. );
  314. [PreserveSig]
  315. int GetObject(
  316. [In][MarshalAs(UnmanagedType.BStr)] string strObjectPath,
  317. [In] Int32 lFlags,
  318. [In][MarshalAs(UnmanagedType.Interface)] IWbemContext pCtx,
  319. [In][Out][MarshalAs(UnmanagedType.Interface)] ref IWbemClassObject ppObject,
  320. [In] IntPtr ppCallResult
  321. );
  322. [PreserveSig]
  323. int GetObjectAsync(
  324. [In][MarshalAs(UnmanagedType.BStr)] string strObjectPath,
  325. [In] Int32 lFlags,
  326. [In][MarshalAs(UnmanagedType.Interface)] IWbemContext pCtx,
  327. [In][MarshalAs(UnmanagedType.Interface)] IWbemObjectSink pResponseHandler
  328. );
  329. [PreserveSig]
  330. int PutClass(
  331. [In][MarshalAs(UnmanagedType.Interface)] IWbemClassObject pObject,
  332. [In] Int32 lFlags,
  333. [In][MarshalAs(UnmanagedType.Interface)] IWbemContext pCtx,
  334. [In] IntPtr ppCallResult
  335. );
  336. [PreserveSig]
  337. int PutClassAsync(
  338. [In][MarshalAs(UnmanagedType.Interface)] IWbemClassObject pObject,
  339. [In] Int32 lFlags,
  340. [In][MarshalAs(UnmanagedType.Interface)] IWbemContext pCtx,
  341. [In][MarshalAs(UnmanagedType.Interface)] IWbemObjectSink pResponseHandler
  342. );
  343. [PreserveSig]
  344. int DeleteClass(
  345. [In][MarshalAs(UnmanagedType.BStr)] string strClass,
  346. [In] Int32 lFlags,
  347. [In][MarshalAs(UnmanagedType.Interface)] IWbemContext pCtx,
  348. [In] IntPtr ppCallResult
  349. );
  350. [PreserveSig]
  351. int DeleteClassAsync(
  352. [In][MarshalAs(UnmanagedType.BStr)] string strClass,
  353. [In] Int32 lFlags,
  354. [In][MarshalAs(UnmanagedType.Interface)] IWbemContext pCtx,
  355. [In][MarshalAs(UnmanagedType.Interface)] IWbemObjectSink pResponseHandler
  356. );
  357. [PreserveSig]
  358. int CreateClassEnum(
  359. [In][MarshalAs(UnmanagedType.BStr)] string strSuperclass,
  360. [In] Int32 lFlags,
  361. [In][MarshalAs(UnmanagedType.Interface)] IWbemContext pCtx,
  362. [Out][MarshalAs(UnmanagedType.Interface)] out IEnumWbemClassObject ppEnum
  363. );
  364. [PreserveSig]
  365. int CreateClassEnumAsync(
  366. [In][MarshalAs(UnmanagedType.BStr)] string strSuperclass,
  367. [In] Int32 lFlags,
  368. [In][MarshalAs(UnmanagedType.Interface)] IWbemContext pCtx,
  369. [In][MarshalAs(UnmanagedType.Interface)] IWbemObjectSink pResponseHandler
  370. );
  371. [PreserveSig]
  372. int PutInstance(
  373. [In][MarshalAs(UnmanagedType.Interface)] IWbemClassObject pInst,
  374. [In] Int32 lFlags,
  375. [In][MarshalAs(UnmanagedType.Interface)] IWbemContext pCtx,
  376. [In] IntPtr ppCallResult
  377. );
  378. [PreserveSig]
  379. int PutInstanceAsync(
  380. [In][MarshalAs(UnmanagedType.Interface)] IWbemClassObject pInst,
  381. [In] Int32 lFlags,
  382. [In][MarshalAs(UnmanagedType.Interface)] IWbemContext pCtx,
  383. [In][MarshalAs(UnmanagedType.Interface)] IWbemObjectSink pResponseHandler
  384. );
  385. [PreserveSig]
  386. int DeleteInstance(
  387. [In][MarshalAs(UnmanagedType.BStr)] string strObjectPath,
  388. [In] Int32 lFlags,
  389. [In][MarshalAs(UnmanagedType.Interface)] IWbemContext pCtx,
  390. [In] IntPtr ppCallResult
  391. );
  392. [PreserveSig]
  393. int DeleteInstanceAsync(
  394. [In][MarshalAs(UnmanagedType.BStr)] string strObjectPath,
  395. [In] Int32 lFlags,
  396. [In][MarshalAs(UnmanagedType.Interface)] IWbemContext pCtx,
  397. [In][MarshalAs(UnmanagedType.Interface)] IWbemObjectSink pResponseHandler
  398. );
  399. [PreserveSig]
  400. int CreateInstanceEnum(
  401. [In][MarshalAs(UnmanagedType.BStr)] string strFilter,
  402. [In] Int32 lFlags,
  403. [In][MarshalAs(UnmanagedType.Interface)] IWbemContext pCtx,
  404. [Out][MarshalAs(UnmanagedType.Interface)] out IEnumWbemClassObject ppEnum
  405. );
  406. [PreserveSig]
  407. int CreateInstanceEnumAsync(
  408. [In][MarshalAs(UnmanagedType.BStr)] string strFilter,
  409. [In] Int32 lFlags,
  410. [In][MarshalAs(UnmanagedType.Interface)] IWbemContext pCtx,
  411. [In][MarshalAs(UnmanagedType.Interface)] IWbemObjectSink pResponseHandler
  412. );
  413. [PreserveSig]
  414. int ExecQuery(
  415. [In][MarshalAs(UnmanagedType.BStr)] string strQueryLanguage,
  416. [In][MarshalAs(UnmanagedType.BStr)] string strQuery,
  417. [In] Int32 lFlags,
  418. [In][MarshalAs(UnmanagedType.Interface)] IWbemContext pCtx,
  419. [Out][MarshalAs(UnmanagedType.Interface)] out IEnumWbemClassObject ppEnum
  420. );
  421. [PreserveSig]
  422. int ExecQueryAsync(
  423. [In][MarshalAs(UnmanagedType.BStr)] string strQueryLanguage,
  424. [In][MarshalAs(UnmanagedType.BStr)] string strQuery,
  425. [In] Int32 lFlags,
  426. [In][MarshalAs(UnmanagedType.Interface)] IWbemContext pCtx,
  427. [In][MarshalAs(UnmanagedType.Interface)] IWbemObjectSink pResponseHandler
  428. );
  429. [PreserveSig]
  430. int ExecNotificationQuery(
  431. [In][MarshalAs(UnmanagedType.BStr)] string strQueryLanguage,
  432. [In][MarshalAs(UnmanagedType.BStr)] string strQuery,
  433. [In] Int32 lFlags,
  434. [In][MarshalAs(UnmanagedType.Interface)] IWbemContext pCtx,
  435. [Out][MarshalAs(UnmanagedType.Interface)] out IEnumWbemClassObject ppEnum
  436. );
  437. [PreserveSig]
  438. int ExecNotificationQueryAsync(
  439. [In][MarshalAs(UnmanagedType.BStr)] string strQueryLanguage,
  440. [In][MarshalAs(UnmanagedType.BStr)] string strQuery,
  441. [In] Int32 lFlags,
  442. [In][MarshalAs(UnmanagedType.Interface)] IWbemContext pCtx,
  443. [In][MarshalAs(UnmanagedType.Interface)] IWbemObjectSink pResponseHandler
  444. );
  445. [PreserveSig]
  446. int ExecMethod(
  447. [In][MarshalAs(UnmanagedType.BStr)] string strObjectPath,
  448. [In][MarshalAs(UnmanagedType.BStr)] string strMethodName,
  449. [In] Int32 lFlags,
  450. [In][MarshalAs(UnmanagedType.Interface)] IWbemContext pCtx,
  451. [In][MarshalAs(UnmanagedType.Interface)] IWbemClassObject pInParams,
  452. [In][Out][MarshalAs(UnmanagedType.Interface)] ref IWbemClassObject ppOutParams,
  453. [In] IntPtr ppCallResult
  454. );
  455. [PreserveSig]
  456. int ExecMethodAsync(
  457. [In][MarshalAs(UnmanagedType.BStr)] string strObjectPath,
  458. [In][MarshalAs(UnmanagedType.BStr)] string strMethodName,
  459. [In] Int32 lFlags,
  460. [In][MarshalAs(UnmanagedType.Interface)] IWbemContext pCtx,
  461. [In][MarshalAs(UnmanagedType.Interface)] IWbemClassObject pInParams,
  462. [In][MarshalAs(UnmanagedType.Interface)] IWbemObjectSink pResponseHandler
  463. );
  464. }
  465. [ComImport,
  466. GuidAttribute("DC12A681-737F-11CF-884D-00AA004B2E24"),
  467. InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
  468. internal interface IWbemClassObject
  469. {
  470. [PreserveSig]
  471. int GetQualifierSet(
  472. [Out][MarshalAs(UnmanagedType.Interface)] out IWbemQualifierSet ppQualSet
  473. );
  474. [PreserveSig]
  475. int Get(
  476. [In][MarshalAs(UnmanagedType.LPWStr)] string wszName,
  477. [In] Int32 lFlags,
  478. [In][Out] ref object pVal,
  479. [In][Out] ref Int32 pType,
  480. [In][Out] ref Int32 plFlavor
  481. );
  482. [PreserveSig]
  483. int Put(
  484. [In][MarshalAs(UnmanagedType.LPWStr)] string wszName,
  485. [In] Int32 lFlags,
  486. [In] ref object pVal,
  487. [In] Int32 Type
  488. );
  489. [PreserveSig]
  490. int Delete(
  491. [In][MarshalAs(UnmanagedType.LPWStr)] string wszName
  492. );
  493. [PreserveSig]
  494. int GetNames(
  495. [In][MarshalAs(UnmanagedType.LPWStr)] string wszQualifierName,
  496. [In] Int32 lFlags,
  497. [In] ref object pQualifierVal,
  498. [Out][MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_BSTR)] out string[] pNames
  499. );
  500. [PreserveSig]
  501. int BeginEnumeration(
  502. [In] Int32 lEnumFlags
  503. );
  504. [PreserveSig]
  505. int Next(
  506. [In] Int32 lFlags,
  507. [In][Out][MarshalAs(UnmanagedType.BStr)] ref string strName,
  508. [In][Out] ref object pVal,
  509. [In][Out] ref Int32 pType,
  510. [In][Out] ref Int32 plFlavor
  511. );
  512. [PreserveSig]
  513. int EndEnumeration();
  514. [PreserveSig]
  515. int GetPropertyQualifierSet(
  516. [In][MarshalAs(UnmanagedType.LPWStr)] string wszProperty,
  517. [Out][MarshalAs(UnmanagedType.Interface)] out IWbemQualifierSet ppQualSet
  518. );
  519. [PreserveSig]
  520. int Clone(
  521. [Out][MarshalAs(UnmanagedType.Interface)] out IWbemClassObject ppCopy
  522. );
  523. [PreserveSig]
  524. int GetObjectText(
  525. [In] Int32 lFlags,
  526. [Out][MarshalAs(UnmanagedType.BStr)] out string pstrObjectText
  527. );
  528. [PreserveSig]
  529. int SpawnDerivedClass(
  530. [In] Int32 lFlags,
  531. [Out][MarshalAs(UnmanagedType.Interface)] out IWbemClassObject ppNewClass
  532. );
  533. [PreserveSig]
  534. int SpawnInstance(
  535. [In] Int32 lFlags,
  536. [Out][MarshalAs(UnmanagedType.Interface)] out IWbemClassObject ppNewInstance
  537. );
  538. [PreserveSig]
  539. int CompareTo([In] Int32 lFlags,
  540. [In][MarshalAs(UnmanagedType.Interface)] IWbemClassObject pCompareTo
  541. );
  542. [PreserveSig]
  543. int GetPropertyOrigin(
  544. [In][MarshalAs(UnmanagedType.LPWStr)] string wszName,
  545. [Out][MarshalAs(UnmanagedType.BStr)] out string pstrClassName
  546. );
  547. [PreserveSig]
  548. int InheritsFrom(
  549. [In][MarshalAs(UnmanagedType.LPWStr)] string strAncestor
  550. );
  551. [PreserveSig]
  552. int GetMethod(
  553. [In][MarshalAs(UnmanagedType.LPWStr)] string wszName,
  554. [In] Int32 lFlags,
  555. [In] IntPtr ppInSignature,
  556. [Out][MarshalAs(UnmanagedType.Interface)] out IWbemClassObject ppOutSignature
  557. );
  558. [PreserveSig]
  559. int PutMethod(
  560. [In][MarshalAs(UnmanagedType.LPWStr)] string wszName,
  561. [In] Int32 lFlags,
  562. [In][MarshalAs(UnmanagedType.Interface)] IWbemClassObject pInSignature,
  563. [In][MarshalAs(UnmanagedType.Interface)] IWbemClassObject pOutSignature
  564. );
  565. [PreserveSig]
  566. int DeleteMethod(
  567. [In][MarshalAs(UnmanagedType.LPWStr)] string wszName
  568. );
  569. [PreserveSig]
  570. int BeginMethodEnumeration(
  571. [In] Int32 lEnumFlags
  572. );
  573. [PreserveSig]
  574. int NextMethod(
  575. [In] Int32 lFlags,
  576. [In][Out][MarshalAs(UnmanagedType.BStr)] ref string pstrName,
  577. [In][Out][MarshalAs(UnmanagedType.Interface)] ref IWbemClassObject ppInSignature,
  578. [In][Out][MarshalAs(UnmanagedType.Interface)] ref IWbemClassObject ppOutSignature
  579. );
  580. [PreserveSig]
  581. int EndMethodEnumeration();
  582. [PreserveSig]
  583. int GetMethodQualifierSet(
  584. [In][MarshalAs(UnmanagedType.LPWStr)] string wszMethod,
  585. [Out][MarshalAs(UnmanagedType.Interface)] out IWbemQualifierSet ppQualSet
  586. );
  587. [PreserveSig]
  588. int GetMethodOrigin(
  589. [In][MarshalAs(UnmanagedType.LPWStr)] string wszMethodName,
  590. [Out][MarshalAs(UnmanagedType.BStr)] out string pstrClassName
  591. );
  592. }
  593. [ComImport,
  594. GuidAttribute("44ACA674-E8FC-11D0-A07C-00C04FB68820"),
  595. InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
  596. internal interface IWbemContext
  597. {
  598. [PreserveSig]
  599. int Clone(
  600. [Out][MarshalAs(UnmanagedType.Interface)] out IWbemContext ppNewCopy
  601. );
  602. [PreserveSig]
  603. int GetNames(
  604. [In] Int32 lFlags,
  605. [Out][MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_BSTR)] out string[] pNames
  606. );
  607. [PreserveSig]
  608. int BeginEnumeration(
  609. [In] Int32 lFlags
  610. );
  611. [PreserveSig]
  612. int Next(
  613. [In] Int32 lFlags,
  614. [Out][MarshalAs(UnmanagedType.BStr)] out string pstrName,
  615. [Out] out object pValue
  616. );
  617. [PreserveSig]
  618. int EndEnumeration();
  619. [PreserveSig]
  620. int SetValue(
  621. [In][MarshalAs(UnmanagedType.LPWStr)] string wszName,
  622. [In] Int32 lFlags,
  623. [In] ref object pValue
  624. );
  625. [PreserveSig]
  626. int GetValue(
  627. [In][MarshalAs(UnmanagedType.LPWStr)] string wszName,
  628. [In] Int32 lFlags,
  629. [Out] out object pValue
  630. );
  631. [PreserveSig]
  632. int DeleteValue(
  633. [In][MarshalAs(UnmanagedType.LPWStr)] string wszName,
  634. [In] Int32 lFlags
  635. );
  636. [PreserveSig]
  637. int DeleteAll();
  638. }
  639. [ComImport,
  640. GuidAttribute("1BE41571-91DD-11D1-AEB2-00C04FB68820"),
  641. InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
  642. internal interface IWbemProviderInitSink
  643. {
  644. [PreserveSig]
  645. int SetStatus(
  646. [In] Int32 lStatus,
  647. [In] Int32 lFlags
  648. );
  649. }
  650. [ComImport,
  651. GuidAttribute("7C857801-7381-11CF-884D-00AA004B2E24"),
  652. InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
  653. internal interface IWbemObjectSink
  654. {
  655. [PreserveSig]
  656. int Indicate(
  657. [In] Int32 lObjectCount,
  658. //[In][MarshalAs(UnmanagedType.Interface)] ref
  659. [In][MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 0)] IWbemClassObject[] apObjArray
  660. );
  661. [PreserveSig]
  662. int SetStatus(
  663. [In] Int32 lFlags,
  664. [In][MarshalAs(UnmanagedType.Error)] Int32 hResult,
  665. [In][MarshalAs(UnmanagedType.BStr)] string strParam,
  666. [In][MarshalAs(UnmanagedType.Interface)] IWbemClassObject pObjParam
  667. );
  668. }
  669. [ComImport,
  670. GuidAttribute("027947E1-D731-11CE-A357-000000000001"),
  671. InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
  672. internal interface IEnumWbemClassObject
  673. {
  674. [PreserveSig]
  675. int Reset();
  676. [PreserveSig]
  677. int Next(
  678. [In] Int32 lTimeout,
  679. [In] UInt32 uCount,
  680. [In][Out][MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 1)] IWbemClassObject[] apObjects,
  681. [Out] out UInt32 puReturned
  682. );
  683. [PreserveSig]
  684. int NextAsync(
  685. [In] UInt32 uCount,
  686. [In][MarshalAs(UnmanagedType.Interface)] IWbemObjectSink pSink
  687. );
  688. [PreserveSig]
  689. int Clone(
  690. [Out][MarshalAs(UnmanagedType.Interface)] out IEnumWbemClassObject ppEnum
  691. );
  692. [PreserveSig]
  693. int Skip(
  694. [In] Int32 lTimeout,
  695. [In] UInt32 nCount
  696. );
  697. }
  698. [ComImport,
  699. GuidAttribute("DC12A680-737F-11CF-884D-00AA004B2E24"),
  700. InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
  701. internal interface IWbemQualifierSet
  702. {
  703. [PreserveSig]
  704. int Get(
  705. [In][MarshalAs(UnmanagedType.LPWStr)] string wszName,
  706. [In] Int32 lFlags,
  707. [In][Out] ref object pVal,
  708. [In][Out] ref Int32 plFlavor
  709. );
  710. [PreserveSig]
  711. int Put(
  712. [In][MarshalAs(UnmanagedType.LPWStr)] string wszName,
  713. [In] ref object pVal,
  714. [In] Int32 lFlavor
  715. );
  716. [PreserveSig]
  717. int Delete(
  718. [In][MarshalAs(UnmanagedType.LPWStr)] string wszName
  719. );
  720. [PreserveSig]
  721. int GetNames(
  722. [In] Int32 lFlags,
  723. [Out][MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_BSTR)] out string[] pNames
  724. );
  725. [PreserveSig]
  726. int BeginEnumeration(
  727. [In] Int32 lFlags
  728. );
  729. [PreserveSig]
  730. int Next(
  731. [In] Int32 lFlags,
  732. [In][Out][MarshalAs(UnmanagedType.BStr)] ref string pstrName,
  733. [In][Out] ref object pVal, [In][Out] ref Int32 plFlavor
  734. );
  735. [PreserveSig]
  736. int EndEnumeration();
  737. }
  738. }
  739. }