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.
 
 
 
 
 
 

279 lines
10 KiB

/*
* Copyright (c) 1997-2001 Microsoft Corporation, All Rights Reserved
*/
/*****************************************************
* MOF File for registering the DS PRovider
******************************************************/
#pragma autorecover
//////////////////////////////////////////////////////////////////
// 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
{
[Read, Description("This is array of uint8 values that for the Octet String") : Amended]
uint8 value[];
};
[Description("This is the class used to model the AD Syntax DN_With_String") : Amended
]
Class DN_With_String
{
[Read, Description("This is the DN string component of the tuple") : Amended]
string dnString;
[Read, Description("This is the Value component of the tuple") : Amended]
string value;
};
[Description("This is the class used to model the AD Syntax DN_With_Binary") : Amended
]
Class DN_With_Binary
{
[Read, Description("This is the DN string component of the tuple") : Amended]
string dnString;
[Read, Description("This is the Value component of the tuple") : Amended]
uint8 value[];
};
[singleton,
dynamic,
Description("This is the class used to model the LDAP RootDSE object") : Amended,
provider("Microsoft|DSLDAPInstanceProvider|V1.0")
]
Class RootDSE
{
[Read, Description("Distinguished name for the subSchema object. The "
"subschemaSubentry property and subschema are defined in LDAP 3.0 "
"(see RFC 2251).") : Amended]
string subschemaSubentry;
[Read, Description("Current time set on this directory server") : Amended]
string currentTime;
[Read, Description("Distinguished name for the server object for "
"this directory server in the configuration container") : Amended]
string serverName;
[Read, Description("DISTINGUISHED NAMEs for all naming contexts "
"stored on this directory server. By default, a Windows 2000 domain "
"controller contains at least three namespaces: Schema, Configuration, "
"and one for the domain of which the server is a member") : Amended]
string namingContexts[];
[Read, Description("The distinguished name for the domain of which "
"this directory server is a member") : Amended]
string defaultNamingContext;
[Read, Description("Distinguished name for the schema container") : Amended]
string schemaNamingContext;
[Read, Description("Distinguished name for the configuration container") : Amended]
string configurationNamingContext;
[Read, Description("Distinguished name for the first domain in the forest "
"that contains the domain of which this directory server is a member") : Amended]
string rootDomainNamingContext;
[Read, Description("OIDs for extension controls supported by this directory server") : Amended]
string supportedControl[];
[Read, Description("LDAP versions (specified by major version number) "
"supported by this directory server") : Amended]
string supportedLDAPVersion[];
[Read, Description("DNS address for this directory server") : Amended]
string dnsHostName;
[Read, Description("The distinguished name of the NTDS settings object "
"for this directory server") : Amended]
string dsServiceName;
[Read, Description("Highest USN used on this directory server. Used by "
"directory replication") : Amended]
string highestCommittedUSN;
[Read, Description("Service Principal Name (SPN) for the LDAP server. "
"Used for mutual authentication") : Amended]
string LDAPServiceName;
[Read, Description("The OBJECT IDENTIFIERs (OIDs) identifying the supported "
"capabilities of the server") : Amended]
string supportedCapabilities;
[Read, Description("Supported LDAP management policies.") : Amended]
string supportedLDAPPolicies[];
[Read, Description("Security mechanisms supported for SASL negotiation "
"(see LDAP RFCs). By default, GSSAPI is supported") : Amended]
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
{
[Read, 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;
HostingModel = "NetworkServiceHost";
};
///////////////////////////////////////////////////////////////////////
// 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
{
[Read, key, Description("The child DS Class") : Amended, classref{"DS_LDAP_Root_Class"}: ToInstance ToSubClass ]
object ref ChildClass;
[Read, 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;
HostingModel = "NetworkServiceHost";
};
///////////////////////////////////////////////////////////////////////
// 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
{
[Read, KEY, Description("The child DS instance") : Amended]
DS_LDAP_Root_Class ref ChildInstance;
[Read, 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;
HostingModel = "NetworkServiceHost";
};
///////////////////////////////////////////////////////////////////////
// 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
{
[Read, 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
{
[Read, KEY, Description("The Name of the class for which scoping is to "
"be used") : Amended, classref("DS_LDAP_Root_Class") : ToInstance ToSubClass ]
string DSClass;
[Read, 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;
};