Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

278 lines
10 KiB

  1. /*
  2. * Copyright (c) 1997-2001 Microsoft Corporation, All Rights Reserved
  3. */
  4. /*****************************************************
  5. * MOF File for registering the DS PRovider
  6. ******************************************************/
  7. #pragma autorecover
  8. //////////////////////////////////////////////////////////////////
  9. // Create the namespace in which the DS Provider provides classes
  10. //////////////////////////////////////////////////////////////////
  11. #pragma namespace("\\\\.\\root")
  12. instance of __Namespace
  13. {
  14. Name = "directory" ;
  15. } ;
  16. //////////////////////////////////////////////////////////////////
  17. // Create the namespace for the LDAP ADSI Provider
  18. //////////////////////////////////////////////////////////////////
  19. #pragma namespace("\\\\.\\root\\directory")
  20. instance of __Namespace
  21. {
  22. Name = "LDAP" ;
  23. } ;
  24. #pragma namespace("\\\\.\\root\\directory\\LDAP")
  25. ///////////////////////////////////////////////////////////////////////
  26. ///////////////////////////////////////////////////////////////////////
  27. ////// DS Class Provider ////////////////////////////////
  28. ///////////////////////////////////////////////////////////////////////
  29. ///////////////////////////////////////////////////////////////////////
  30. [Description("This is the class used to model the AD Syntax Octet String") : Amended
  31. ]
  32. Class Uint8Array
  33. {
  34. [Read, Description("This is array of uint8 values that for the Octet String") : Amended]
  35. uint8 value[];
  36. };
  37. [Description("This is the class used to model the AD Syntax DN_With_String") : Amended
  38. ]
  39. Class DN_With_String
  40. {
  41. [Read, Description("This is the DN string component of the tuple") : Amended]
  42. string dnString;
  43. [Read, Description("This is the Value component of the tuple") : Amended]
  44. string value;
  45. };
  46. [Description("This is the class used to model the AD Syntax DN_With_Binary") : Amended
  47. ]
  48. Class DN_With_Binary
  49. {
  50. [Read, Description("This is the DN string component of the tuple") : Amended]
  51. string dnString;
  52. [Read, Description("This is the Value component of the tuple") : Amended]
  53. uint8 value[];
  54. };
  55. [singleton,
  56. dynamic,
  57. Description("This is the class used to model the LDAP RootDSE object") : Amended,
  58. provider("Microsoft|DSLDAPInstanceProvider|V1.0")
  59. ]
  60. Class RootDSE
  61. {
  62. [Read, Description("Distinguished name for the subSchema object. The "
  63. "subschemaSubentry property and subschema are defined in LDAP 3.0 "
  64. "(see RFC 2251).") : Amended]
  65. string subschemaSubentry;
  66. [Read, Description("Current time set on this directory server") : Amended]
  67. string currentTime;
  68. [Read, Description("Distinguished name for the server object for "
  69. "this directory server in the configuration container") : Amended]
  70. string serverName;
  71. [Read, Description("DISTINGUISHED NAMEs for all naming contexts "
  72. "stored on this directory server. By default, a Windows 2000 domain "
  73. "controller contains at least three namespaces: Schema, Configuration, "
  74. "and one for the domain of which the server is a member") : Amended]
  75. string namingContexts[];
  76. [Read, Description("The distinguished name for the domain of which "
  77. "this directory server is a member") : Amended]
  78. string defaultNamingContext;
  79. [Read, Description("Distinguished name for the schema container") : Amended]
  80. string schemaNamingContext;
  81. [Read, Description("Distinguished name for the configuration container") : Amended]
  82. string configurationNamingContext;
  83. [Read, Description("Distinguished name for the first domain in the forest "
  84. "that contains the domain of which this directory server is a member") : Amended]
  85. string rootDomainNamingContext;
  86. [Read, Description("OIDs for extension controls supported by this directory server") : Amended]
  87. string supportedControl[];
  88. [Read, Description("LDAP versions (specified by major version number) "
  89. "supported by this directory server") : Amended]
  90. string supportedLDAPVersion[];
  91. [Read, Description("DNS address for this directory server") : Amended]
  92. string dnsHostName;
  93. [Read, Description("The distinguished name of the NTDS settings object "
  94. "for this directory server") : Amended]
  95. string dsServiceName;
  96. [Read, Description("Highest USN used on this directory server. Used by "
  97. "directory replication") : Amended]
  98. string highestCommittedUSN;
  99. [Read, Description("Service Principal Name (SPN) for the LDAP server. "
  100. "Used for mutual authentication") : Amended]
  101. string LDAPServiceName;
  102. [Read, Description("The OBJECT IDENTIFIERs (OIDs) identifying the supported "
  103. "capabilities of the server") : Amended]
  104. string supportedCapabilities;
  105. [Read, Description("Supported LDAP management policies.") : Amended]
  106. string supportedLDAPPolicies[];
  107. [Read, Description("Security mechanisms supported for SASL negotiation "
  108. "(see LDAP RFCs). By default, GSSAPI is supported") : Amended]
  109. string supportedSASLMechanisms[];
  110. };
  111. [Abstract,
  112. Description("This acts as the base class of all the classes provides by the DS Provider") : Amended
  113. ]
  114. class DS_LDAP_Root_Class
  115. {
  116. [Read, KEY, Description("This is the key for any DS Object") : Amended]
  117. string ADSIPath;
  118. };
  119. ///////////////////////////////////////////////////////////////////////
  120. // Create an instance of the provider class for registration
  121. ///////////////////////////////////////////////////////////////////////
  122. instance of __Win32Provider as $ClassProvider
  123. {
  124. Name = "Microsoft|DSLDAPClassProvider|V1.0";
  125. Clsid = "{1EF94880-01A8-11d2-A90B-00AA00BF3363}";
  126. ImpersonationLevel = 1;
  127. PerUserInitialization = TRUE;
  128. HostingModel = "NetworkServiceHost";
  129. };
  130. ///////////////////////////////////////////////////////////////////////
  131. // Specification of the classes and operation provided by the provider
  132. ///////////////////////////////////////////////////////////////////////
  133. instance of __ClassProviderRegistration
  134. {
  135. Provider = $ClassProvider;
  136. SupportsGet = TRUE;
  137. SupportsPut = FALSE;
  138. SupportsDelete = FALSE;
  139. SupportsEnumeration = TRUE;
  140. ResultSetQueries = { "Select * From meta_class Where __this isa \"DS_LDAP_Root_Class\"" } ; // Provide all classes derived from the base class
  141. UnsupportedQueries = { "Select * From meta_class Where __Class = \"DS_LDAP_Root_Class\"" }; // Except the base class itself which is static
  142. };
  143. ///////////////////////////////////////////////////////////////////////
  144. ///////////////////////////////////////////////////////////////////////
  145. ////// DS Class Associations Provider ////////////////////////////////
  146. ///////////////////////////////////////////////////////////////////////
  147. ///////////////////////////////////////////////////////////////////////
  148. [
  149. Association : ToInstance,
  150. Description("This class models the possible superiors of a DS class") : Amended,
  151. dynamic,
  152. HasClassRefs,
  153. provider("Microsoft|DSLDAPClassAssociationsProvider|V1.0")
  154. ]
  155. class DS_LDAP_Class_Containment
  156. {
  157. [Read, key, Description("The child DS Class") : Amended, classref{"DS_LDAP_Root_Class"}: ToInstance ToSubClass ]
  158. object ref ChildClass;
  159. [Read, key, Description("The parent DS Class") : Amended, classref{"DS_LDAP_Root_Class"}: ToInstance ToSubClass]
  160. object ref ParentClass;
  161. };
  162. ///////////////////////////////////////////////////////////////////////
  163. // Create an instance of the provider class for registration
  164. ///////////////////////////////////////////////////////////////////////
  165. instance of __Win32Provider as $AssociationsProvider
  166. {
  167. Name = "Microsoft|DSLDAPClassAssociationsProvider|V1.0";
  168. Clsid = "{33831ED4-42B8-11d2-93AD-00805F853771}";
  169. ImpersonationLevel = 1;
  170. HostingModel = "NetworkServiceHost";
  171. };
  172. ///////////////////////////////////////////////////////////////////////
  173. // Specification of the instances and operation provided by the provider
  174. ///////////////////////////////////////////////////////////////////////
  175. instance of __InstanceProviderRegistration
  176. {
  177. Provider = $AssociationsProvider;
  178. SupportsGet = TRUE;
  179. SupportsPut = FALSE;
  180. SupportsDelete = FALSE;
  181. SupportsEnumeration = TRUE;
  182. };
  183. ///////////////////////////////////////////////////////////////////////
  184. ///////////////////////////////////////////////////////////////////////
  185. ////// DS Instance Provider ////////////////////////////////
  186. ///////////////////////////////////////////////////////////////////////
  187. ///////////////////////////////////////////////////////////////////////
  188. [Association : ToInstance,
  189. Description("This class models the parent-child container relationship of instances in the DS") : Amended,
  190. dynamic, provider("Microsoft|DSLDAPInstanceProvider|V1.0")
  191. ]
  192. class DS_LDAP_Instance_Containment
  193. {
  194. [Read, KEY, Description("The child DS instance") : Amended]
  195. DS_LDAP_Root_Class ref ChildInstance;
  196. [Read, KEY, Description("The child DS instance") : Amended]
  197. DS_LDAP_Root_Class ref ParentInstance;
  198. };
  199. ///////////////////////////////////////////////////////////////////////
  200. // Create an instance of the provider class for registration
  201. ///////////////////////////////////////////////////////////////////////
  202. instance of __Win32Provider as $InstanceProvider
  203. {
  204. Name = "Microsoft|DSLDAPInstanceProvider|V1.0";
  205. Clsid = "{AA527A40-4D9A-11d2-93AD-00805F853771}";
  206. PerUserInitialization = TRUE;
  207. ImpersonationLevel = 1;
  208. HostingModel = "NetworkServiceHost";
  209. };
  210. ///////////////////////////////////////////////////////////////////////
  211. // Specification of the instances and operation provided by the provider
  212. ///////////////////////////////////////////////////////////////////////
  213. instance of __InstanceProviderRegistration
  214. {
  215. Provider = $InstanceProvider;
  216. SupportsGet = TRUE;
  217. SupportsPut = TRUE;
  218. SupportsDelete = TRUE;
  219. SupportsEnumeration = TRUE;
  220. QuerySupportLevels = { "WQL:UnarySelect" };
  221. };
  222. [Description("A class to encapsulate a DN") : Amended
  223. ]
  224. class DN_Class
  225. {
  226. [Read, KEY, Description("The ADSI Path to the object in the DS") : Amended ]
  227. string DN;
  228. };
  229. [Association : ToInstance,
  230. Description(" Use an instance of this class to allow the client to give a "
  231. "hint to the DS Instance Provider to scope enumerations and queries to a "
  232. "particular sub-tree or a naming context. The client should create instances "
  233. "of this class if it wants the DS Provider to do enumerations and queries of "
  234. "a specific DS class from a specific DS Object as the root") : Amended
  235. ]
  236. class DSClass_To_DNInstance
  237. {
  238. [Read, KEY, Description("The Name of the class for which scoping is to "
  239. "be used") : Amended, classref("DS_LDAP_Root_Class") : ToInstance ToSubClass ]
  240. string DSClass;
  241. [Read, KEY, Description("The reference to an instance of DN_Class that gives "
  242. "the ADSI path of the object below which the search should be scoped") : Amended]
  243. DN_Class ref RootDNForSearchAndQuery;
  244. };