238 lines
8.0 KiB
Plaintext
238 lines
8.0 KiB
Plaintext
/*
|
|
|
|
* 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;
|
|
}; |