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.
 
 
 
 
 
 

238 lines
7.7 KiB

/*
* Copyright (c) 1997-2001 Microsoft Corporation, All Rights Reserved
*/
/*****************************************************
* MOF File for registering the DS PRovider
******************************************************/
//////////////////////////////////////////////////////////////////
// Create the namespace in which the DS Provider provides classes
//////////////////////////////////////////////////////////////////
#pragma namespace("\\\\.\\root")
instance of __Namespace
{
Name = "directory" ;
} ;
//////////////////////////////////////////////////////////////////
// Create the namespace for the LDAP ADSI Provider
//////////////////////////////////////////////////////////////////
#pragma namespace("\\\\.\\root\\directory")
instance of __Namespace
{
Name = "LDAP" ;
} ;
#pragma namespace("\\\\.\\root\\directory\\LDAP")
///////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////
////// DS Class Provider ////////////////////////////////
///////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////
[
Description("This is the class used to model the AD Syntax Octet String") : Amended
]
Class Uint8Array
{
uint8 value[];
};
[
Description("This is the class used to model the AD Syntax DN_With_String") : Amended
]
Class DN_With_String
{
string dnString;
string value;
};
[
Description("This is the class used to model the AD Syntax DN_With_Binary") : Amended
]
Class DN_With_Binary
{
string dnString;
uint8 value[];
};
[ singleton,
dynamic,
Description("This is the class used to model the LDAP RootDSE object") : Amended,
provider("Microsoft|DSLDAPInstanceProvider|V1.0")
]
Class RootDSE
{
string subschemaSubentry;
string currentTime;
string serverName;
string namingContexts[];
string defaultNamingContext;
string schemaNamingContext;
string configurationNamingContext;
string rootDomainNamingContext;
string supportedControl[];
string supportedLDAPVersion[];
string dnsHostName;
string dsServiceName;
string highestCommittedUSN;
string LDAPServiceName;
string supportedCapabilities;
string supportedLDAPPolicies[];
string supportedSASLMechanisms[];
};
[
Abstract,
Description("This acts as the base class of all the classes provides by the DS Provider") : Amended
]
class DS_LDAP_Root_Class
{
[KEY, Description("This is the key for any DS Object") : Amended] string ADSIPath;
};
///////////////////////////////////////////////////////////////////////
// Create an instance of the provider class for registration
///////////////////////////////////////////////////////////////////////
instance of __Win32Provider as $ClassProvider
{
Name = "Microsoft|DSLDAPClassProvider|V1.0";
Clsid = "{1EF94880-01A8-11d2-A90B-00AA00BF3363}";
ImpersonationLevel = 1;
PerUserInitialization = TRUE;
};
///////////////////////////////////////////////////////////////////////
// Specification of the classes and operation provided by the provider
///////////////////////////////////////////////////////////////////////
instance of __ClassProviderRegistration
{
Provider = $ClassProvider;
SupportsGet = TRUE;
SupportsPut = FALSE;
SupportsDelete = FALSE;
SupportsEnumeration = TRUE;
ResultSetQueries = { "Select * From meta_class Where __this isa DS_LDAP_Root_Class" } ; // Provide all classes derived from the base class
UnsupportedQueries = { "Select * From meta_class Where __Class = \"DS_LDAP_Root_Class\"" }; // Except the base class itself which is static
};
///////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////
////// DS Class Associations Provider ////////////////////////////////
///////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////
[
Association : ToInstance,
Description("This class models the possible superiors of a DS class") : Amended,
dynamic,
HasClassRefs,
provider("Microsoft|DSLDAPClassAssociationsProvider|V1.0")
]
class DS_LDAP_Class_Containment
{
[key, Description("The child DS Class") : Amended, classref{"DS_LDAP_Root_Class"}: ToInstance ToSubClass ] object ref ChildClass;
[key, Description("The parent DS Class") : Amended, classref{"DS_LDAP_Root_Class"}: ToInstance ToSubClass] object ref ParentClass;
};
///////////////////////////////////////////////////////////////////////
// Create an instance of the provider class for registration
///////////////////////////////////////////////////////////////////////
instance of __Win32Provider as $AssociationsProvider
{
Name = "Microsoft|DSLDAPClassAssociationsProvider|V1.0";
Clsid = "{33831ED4-42B8-11d2-93AD-00805F853771}";
ImpersonationLevel = 1;
};
///////////////////////////////////////////////////////////////////////
// Specification of the instances and operation provided by the provider
///////////////////////////////////////////////////////////////////////
instance of __InstanceProviderRegistration
{
Provider = $AssociationsProvider;
SupportsGet = TRUE;
SupportsPut = FALSE;
SupportsDelete = FALSE;
SupportsEnumeration = TRUE;
};
///////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////
////// DS Instance Provider ////////////////////////////////
///////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////
[
Association : ToInstance,
Description("This class models the parent-child container relationship of instances in the DS") : Amended,
dynamic,
provider("Microsoft|DSLDAPInstanceProvider|V1.0")
]
class DS_LDAP_Instance_Containment
{
[KEY, Description("The child DS instance") : Amended] DS_LDAP_Root_Class ref ChildInstance;
[KEY, Description("The child DS instance") : Amended] DS_LDAP_Root_Class ref ParentInstance;
};
///////////////////////////////////////////////////////////////////////
// Create an instance of the provider class for registration
///////////////////////////////////////////////////////////////////////
instance of __Win32Provider as $InstanceProvider
{
Name = "Microsoft|DSLDAPInstanceProvider|V1.0";
Clsid = "{AA527A40-4D9A-11d2-93AD-00805F853771}";
PerUserInitialization = TRUE;
ImpersonationLevel = 1;
};
///////////////////////////////////////////////////////////////////////
// Specification of the instances and operation provided by the provider
///////////////////////////////////////////////////////////////////////
instance of __InstanceProviderRegistration
{
Provider = $InstanceProvider;
SupportsGet = TRUE;
SupportsPut = TRUE;
SupportsDelete = TRUE;
SupportsEnumeration = TRUE;
QuerySupportLevels = { "WQL:UnarySelect" };
};
[
Description("A class to encapsulate a DN") : Amended
]
class DN_Class
{
[KEY, Description("The ADSI Path to the object in the DS") : Amended ] string DN;
};
[
Association : ToInstance,
Description(" Use an instance of this class to allow the client to give a hint to the \
DS Instance Provider to scope enumerations and queries to a particular \
sub-tree or a naming context. \
The client should create instances of this class if it wants the \
DS Provider to do enumerations and queries of a specific DS class \
from a specific DS Object as the root") : Amended
]
class DSClass_To_DNInstance
{
[KEY, Description("The Name of the class for which scoping is to be used") : Amended, classref("DS_LDAP_Root_Class") : ToInstance ToSubClass ] string DSClass;
[KEY, Description("The reference to an instance of DN_Class that gives the ADSI path of the object below which the search should be scoped") : Amended] DN_Class ref RootDNForSearchAndQuery;
};