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.
 
 
 
 
 
 

629 lines
22 KiB

// © 1998-1999 Microsoft Corporation. All rights reserved.
#pragma autorecover
#pragma classflags("forceupdate")
Qualifier Description : ToSubClass Amended;
Qualifier Values : ToSubClass Amended;
Qualifier DisplayName : Amended;
Qualifier BitValues:ToSubClass Amended ;
Qualifier Aggregate : ToSubClass ;
Qualifier Aggregation : ToSubClass ;
Qualifier ArrayType : ToSubClass ;
Qualifier Association : ToInstance ToSubClass DisableOverride ;
Qualifier BitMap : ToSubClass ;
Qualifier CIM_Key : ToSubClass ;
Qualifier CIMTYPE : ToSubClass ;
Qualifier Deprecated : ToSubClass ;
Qualifier Enumeration : ToSubClass ;
Qualifier EnumPrivileges : ToSubClass ;
Qualifier ImplementationSource : ToSubClass ;
Qualifier Key : ToInstance ToSubClass DisableOverride ;
Qualifier Locale : ToInstance ;
Qualifier MappingStrings : ToSubClass ;
Qualifier Max : ToSubClass ;
Qualifier MaxLen : ToSubClass ;
Qualifier Min : ToSubClass ;
Qualifier ModelCorrespondence : ToSubClass ;
Qualifier Not_Null : ToSubClass ;
Qualifier Override : Restricted ;
Qualifier Privileges : ToSubClass ;
Qualifier Propagated : ToSubClass ;
Qualifier provider : ToInstance ;
Qualifier Range : ToSubClass ;
Qualifier Read : ToSubClass ;
Qualifier Schema : ToInstance ;
Qualifier Singleton : ToSubClass ToInstance ;
Qualifier SUBTYPE : ToSubClass ;
Qualifier Units : ToSubClass ;
Qualifier UUID : ToInstance ;
Qualifier Volatile : ToSubClass ;
Qualifier Weak : ToSubClass ;
Qualifier Write : ToSubClass ;
Qualifier WritePrivileges : ToSubClass ;
#pragma namespace ("\\\\.\\root\\cimv2")
instance of __Win32Provider as $P
{
Name = "SECRCW32";
ClsId = "{d63a5850-8f16-11cf-9f47-00aa00bf345c}";
ImpersonationLevel = 1;
PerUserInitialization = "FALSE";
HostingModel = "NetworkServiceHost";
};
instance of __InstanceProviderRegistration
{
Provider = $P;
SupportsGet = "TRUE";
SupportsPut = "TRUE";
SupportsDelete = "TRUE";
SupportsEnumeration = "TRUE";
QuerySupportLevels = {"WQL:UnarySelect"};
};
instance of __MethodProviderRegistration
{
Provider = $P;
};
////////////////// GENERIC READ-ONLY MODEL ///////////////////////////////////
[Dynamic, Provider ("SECRCW32"),
description("Represents an arbitrary SID -- CANNOT BE ENUMERATED"),
Locale (0x409), UUID ("{8502C581-5FBB-11D2-AAC1-006008C78BC7}")]
class Win32_SID
{
[Description (
"The SID in string format"
) , Read, Key]
string SID;
[Description (
"The SID in binary format"
) , Read]
uint8 BinaryRepresentation[];
[Description (
"The name of the account associated with the SID"
) , Read]
string AccountName;
[Description (
"The domain of the account associated with the SID"
) , Read]
string ReferencedDomainName;
[Description("The SidLength property indicates the length of the "
"SID in bytes"), Units("Bytes"),
Read]
uint32 SidLength;
};
//RuleBased("Select * From "
// "Win32_Account As A "
// "Join "
// "Win32_SID As B "
// "On A.SID = B.SID")
[Dynamic, Provider ("SECRCW32"), Association,
description("The SID of an account"),
Locale (0x409), UUID ("{8502C582-5FBB-11D2-AAC1-006008C78BC7}")]
class Win32_AccountSID
{
[Description (
"The account"
) , Read, Key]
Win32_Account ref Element;
[Description (
"The SID of the account"
) , Read, Key]
Win32_SID ref Setting;
};
[abstract,
description("Represents security settings for a managed element"),
Locale (0x409), UUID ("{8502C583-5FBB-11D2-AAC1-006008C78BC7}")]
class Win32_SecuritySetting : CIM_Setting
{
[description("Inheritance-related flags. "
"See SECURITY_DESCRIPTOR_CONTROL"),
read]
uint32 ControlFlags;
[description("Retrieves a structural representation of the object's "
"security descriptor"),
Privileges{"SeSecurityPrivilege","SeRestorePrivilege"}]
uint32 GetSecurityDescriptor([OUT] Win32_SecurityDescriptor Descriptor);
[description("Sets security descriptor to the specified structure"),
Privileges{"SeSecurityPrivilege","SeRestorePrivilege"}]
uint32 SetSecurityDescriptor([IN] Win32_SecurityDescriptor Descriptor);
};
[Abstract, description("Associates an object to its security settings"),
Locale (0x409), UUID ("{8502C584-5FBB-11D2-AAC1-006008C78BC7}")]
class Win32_SecuritySettingOfObject : CIM_ElementSetting
{
[Override ("Element"): ToSubClass, Description (
"The object with security settings"
)]
CIM_LogicalElement ref Element;
[Override ("Setting"): ToSubClass, Description (
"The security settings of the object"
)]
Win32_SecuritySetting ref Setting;
};
[abstract, Association,
description("Association between the security settings of an object and "
"its owner"), Locale (0x409), UUID ("{8502C585-5FBB-11D2-AAC1-006008C78BC7}")]
class Win32_SecuritySettingOwner
{
[Description ("The security settings of an object"), key, read]
Win32_SecuritySetting ref SecuritySetting;
[Description ("The Win32_SID of the object's owner"), key, read]
Win32_SID ref Owner;
};
[abstract, Association,
description("Association between the security of an object and its group"),
Locale (0x409), UUID ("{8502C586-5FBB-11D2-AAC1-006008C78BC7}")]
class Win32_SecuritySettingGroup
{
[Description (
"The security settings of an object"
) , key, read]
Win32_SecuritySetting ref SecuritySetting;
[Description (
"The Win32_SID of the object's group"
) , key, read]
Win32_SID ref Group;
};
[abstract, Association,
description("Specifies the rights granted and denied to a trustee "
"for a given object. Modeled after EXPLICIT_ACCESS"),
Locale (0x409), UUID ("{8502C587-5FBB-11D2-AAC1-006008C78BC7}")]
class Win32_SecuritySettingAccess
{
[Description (
"The security settings of an object"
) , key, read]
Win32_SecuritySetting ref SecuritySetting;
[Description (
"The Win32_SID of the trustee for this access entry"
) , key, read]
Win32_SID ref Trustee;
[Description ("The type of access specified for the trustee"),
Values {"Set", "Deny"}, read]
uint32 Type;
[Description (
"Bit flags specifying how the access rights are inherited"
), read]
uint32 Inheritance;
[Description (
"Bit flags specifying what permissions are affected"
),read]
uint32 AccessMask;
[Description (
"The guid of the type of object the security settings are applied to"
),read]
string GuidObjectType;
[Description (
"The guid of the type of object this object inherits from"
),read]
string GuidInheritedObjectType;
};
[abstract, Association,
description("Specifies the auditing for a given trustee on a given object."
" Modeled after EXPLICIT_ACCESS"),
Locale (0x409), UUID ("{8502C588-5FBB-11D2-AAC1-006008C78BC7}")]
class Win32_SecuritySettingAuditing
{
[Description (
"The security settings of an object"
) , key,read]
Win32_SecuritySetting ref SecuritySetting;
[Description (
"The Win32_SID of the trustee for this audit entry"
) , key,read]
Win32_SID ref Trustee;
[Description ("The type of access specified for the trustee"),
Values{"Audit success", "Audit failure"},read]
uint32 Type;
[Description (
"Bit flags specifying how the audit policies are inherited"
),read]
uint32 Inheritance;
[Description (
"Bit flags specifying what activities are audited"
),read]
uint32 AuditedAccessMask;
[Description (
"The guid of the type of object the security settings are applied to"
),read]
string GuidObjectType;
[Description (
"The guid of the type of object this object inherits from"
),read]
string GuidInheritedObjectType;
};
////////////////// WRITABLE SCHEMA ////////////////////////////////////////////
[abstract,
description("Specifies a trustee. Either a name or "
"a SID (byte array) can be used"),
Locale (0x409), UUID ("{8502C589-5FBB-11D2-AAC1-006008C78BC7}")]
class Win32_Trustee : Win32_MethodParameterClass
{
[Description (
"The SID of the trustee"),
write, WritePrivileges{"SeSecurityPrivilege", "SeRestorePrivilege"} ]
uint8 SID[];
[Description (
"The SID of the trustee in string format (e.g., S-1-1-0)"),
write, WritePrivileges{"SeSecurityPrivilege", "SeRestorePrivilege"} ]
string SIDString;
[Description (
"The name portion of the account"),
write, WritePrivileges{"SeSecurityPrivilege", "SeRestorePrivilege"} ]
string Name;
[Description (
"The domain portion of the account"),
write, WritePrivileges{"SeSecurityPrivilege", "SeRestorePrivilege"} ]
string Domain;
[Description (
"The length of the SID in BYTES"),
write, WritePrivileges{"SeSecurityPrivilege", "SeRestorePrivilege"} ]
uint32 SidLength;
};
[abstract,
description("Specifies an access control entry"),
Locale (0x409), UUID ("{8502C58A-5FBB-11D2-AAC1-006008C78BC7}")]
class Win32_ACE : Win32_MethodParameterClass
{
[Description (
"The trustee of this ACE entry"),
write, WritePrivileges{"SeSecurityPrivilege", "SeRestorePrivilege"} ]
Win32_Trustee Trustee;
[Description (
"The type of ACE entry this is"),
write, WritePrivileges{"SeSecurityPrivilege", "SeRestorePrivilege"},
Values {"Access Allowed", "Access Denied", "Audit"}]
uint32 AceType;
[Description (
"Bit flags specifying inheritance of the ACE"),
write, WritePrivileges{"SeSecurityPrivilege", "SeRestorePrivilege"} ]
uint32 AceFlags;
[Description (
"Bit flags representing rights granted/denied to the trustee"),
write, WritePrivileges{"SeSecurityPrivilege", "SeRestorePrivilege"} ]
uint32 AccessMask;
[Description (
"The guid associated with the type of object these rights apply to"),
write, WritePrivileges{"SeSecurityPrivilege", "SeRestorePrivilege"} ]
string GuidObjectType;
[Description (
"The guid associated with the parent of the object these rights apply to"),
write, WritePrivileges{"SeSecurityPrivilege", "SeRestorePrivilege"} ]
string GuidInheritedObjectType;
};
[abstract,
description("Structural representation of a SECURITY_DESCRIPTOR"),
Locale (0x409), UUID ("{8502C58B-5FBB-11D2-AAC1-006008C78BC7}")]
class Win32_SecurityDescriptor : Win32_MethodParameterClass
{
[Description (
"The trustee representing the owner of the object"),
read, write, WritePrivileges{"SeSecurityPrivilege", "SeRestorePrivilege"} ]
Win32_Trustee Owner;
[Description (
"The trustee representing the group of the object"),
read, write, WritePrivileges{"SeSecurityPrivilege", "SeRestorePrivilege"} ]
Win32_Trustee Group;
[Description (
"An array of Win32_ACE entries that specify access to the object"),
read, write, WritePrivileges{"SeSecurityPrivilege", "SeRestorePrivilege"} ]
Win32_ACE DACL[];
[Description (
"An array of Win32_ACE entries that specify which users/groups auditing information is gathered for"),
read, write, WritePrivileges{"SeSecurityPrivilege", "SeRestorePrivilege"} ]
Win32_ACE SACL[];
[Description (
"Bit flags that provide information about the descriptor's contents and format"),
read, WritePrivileges{"SeSecurityPrivilege", "SeRestorePrivilege"} ]
uint32 ControlFlags;
};
///////////// SPECIALIZATION OF READ-ONLY MODEL FOR FILES /////////////////////
[Dynamic, Provider ("SECRCW32") , Description("security settings for a logical file"),
Locale (0x409), UUID ("{8502C58C-5FBB-11D2-AAC1-006008C78BC7}")]
class Win32_LogicalFileSecuritySetting : Win32_SecuritySetting
{
[read, key, Description("The full pathname of the file or directory")]
string Path;
[description("Indicates whether the caller has Owner permissions "
"to the object. "),
read]
boolean OwnerPermissions;
[implemented, description("Retrieves a structural representation of the object's "
"security descriptor.\n"
"The method returns an integer value that can be "
"interpretted as follows: \n"
"0 - Successful completion.\n"
"2 - The user does not have access to the requested information.\n"
"8 - Unknown failure.\n"
"9 - The user does not have adequate privileges.\n"
"21 - The specified parameter is invalid.\n"
"Other - For integer values other than those listed above, "
"refer to Win32 error code documentation."),
Values{ "Success",
"Access denied",
"Unknown failure",
"Privilege missing",
"Invalid parameter",
"Other" },
ValueMap{ "0", "2", "8", "9", "21", ".." },
Privileges{"SeSecurityPrivilege","SeRestorePrivilege"}]
uint32 GetSecurityDescriptor([out] Win32_SecurityDescriptor Descriptor);
[implemented, description("Sets security descriptor to the specified structure. \n"
"The method returns an integer value that can be "
"interpretted as follows: \n"
"0 - Successful completion.\n"
"2 - The user does not have access to the requested information.\n"
"8 - Unknown failure.\n"
"9 - The user does not have adequate privileges.\n"
"21 - The specified parameter is invalid.\n"
"Other - For integer values other than those listed above, "
"refer to Win32 error code documentation."),
Values{ "Success",
"Access denied",
"Unknown failure",
"Privilege missing",
"Invalid parameter",
"Other" },
ValueMap{ "0", "2", "8", "9", "21", ".." },
Privileges{"SeSecurityPrivilege","SeRestorePrivilege"}]
uint32 SetSecurityDescriptor([in] Win32_SecurityDescriptor Descriptor);
};
[Dynamic, Provider ("SECRCW32"),
Description("Security settings of a file or directory object"),
Locale (0x409), UUID ("{8502C58D-5FBB-11D2-AAC1-006008C78BC7}")]
class Win32_SecuritySettingOfLogicalFile : Win32_SecuritySettingOfObject
{
[Override ("Element"): ToSubClass, Description("The file or directory"), key]
CIM_LogicalFile ref Element;
[Override ("Setting"): ToSubClass, Description("The security settings of the file or directory"), key]
Win32_LogicalFileSecuritySetting ref Setting;
};
[Dynamic, Provider ("SECRCW32"), Description("Association between the "
"security settings of a file/directory and its owner"),
Locale (0x409), UUID ("{8502C58E-5FBB-11D2-AAC1-006008C78BC7}")]
class Win32_LogicalFileOwner : Win32_SecuritySettingOwner
{
[Override ("SecuritySetting"): ToSubClass, Description("The security settings of the file/directory object "
"-- CANNOT BE ENUMERATED")]
Win32_LogicalFileSecuritySetting ref SecuritySetting;
[Override ("Owner"): ToSubClass, Description("The owner of the file/directory object")]
Win32_SID ref Owner;
};
[Dynamic, Provider ("SECRCW32"), Description("Association between the "
"security settings of a file/directory and its group"),
Locale (0x409), UUID ("{8502C58F-5FBB-11D2-AAC1-006008C78BC7}")]
class Win32_LogicalFileGroup : Win32_SecuritySettingGroup
{
[Override ("SecuritySetting"): ToSubClass, Description("The security settings of the file/directory object "
"-- CANNOT BE ENUMERATED")]
Win32_LogicalFileSecuritySetting ref SecuritySetting;
[Override ("Group"): ToSubClass, Description("The group of the file/directory object")]
Win32_SID ref Group;
};
[Dynamic, Provider ("SECRCW32"), Description("Association between the "
"security settings of a file/directory and one member of its DACL"),
Locale (0x409), UUID ("{8502C590-5FBB-11D2-AAC1-006008C78BC7}")]
class Win32_LogicalFileAccess : Win32_SecuritySettingAccess
{
[Override ("SecuritySetting"): ToSubClass, Description("The security settings of the file/directory object "
"-- CANNOT BE ENUMERATED")]
Win32_LogicalFileSecuritySetting ref SecuritySetting;
[Override ("Trustee"): ToSubClass, Description("An entry on the object's DACL")]
Win32_SID ref Trustee;
};
[Dynamic, Provider ("SECRCW32"),
Locale (0x409) , UUID ( "{FCC86599-DB20-11d2-85FC-0000F8102E5F}" ),
Description ("Association between the "
"security settings of a file/directory one member of its SACL.") ]
class Win32_LogicalFileAuditing : Win32_SecuritySettingAuditing
{
[Override ("SecuritySetting"): ToSubClass, Description("The security settings of the file/directory object "
"-- CANNOT BE ENUMERATED")]
Win32_LogicalFileSecuritySetting ref SecuritySetting;
[Override ("Trustee"): ToSubClass, Description("An entry on the object's SACL")]
Win32_SID ref Trustee;
};
///////////// ASSOCIATION CLASSES FOR NT SHARES /////////////////////
[Dynamic, Provider ("SECRCW32") , Description("security settings for a logical file"),
Locale (0x409), UUID ("{8502C591-5FBB-11D2-AAC1-006008C78BC7}")]
class Win32_LogicalShareSecuritySetting : Win32_SecuritySetting
{
[key, Description("The name of the share"), read]
string Name;
[implemented, description("Retrieves a structural representation of the object's "
"security descriptor.\n"
"The method returns an integer value that can be "
"interpretted as follows: \n"
"0 - Successful completion.\n"
"2 - The user does not have access to the requested information.\n"
"8 - Unknown failure.\n"
"9 - The user does not have adequate privileges.\n"
"21 - The specified parameter is invalid.\n"
"Other - For integer values other than those listed above, "
"refer to Win32 error code documentation."),
Values{ "Success",
"Access denied",
"Unknown failure",
"Privilege missing",
"Invalid parameter",
"Other" },
ValueMap{ "0", "2", "8", "9", "21", ".." },
Privileges{"SeSecurityPrivilege","SeRestorePrivilege"}]
uint32 GetSecurityDescriptor([out] Win32_SecurityDescriptor Descriptor);
[implemented, description("Sets security descriptor to the specified structure.\n"
"The method returns an integer value that can be "
"interpretted as follows: \n"
"0 - Successful completion.\n"
"2 - The user does not have access to the requested information.\n"
"8 - Unknown failure.\n"
"9 - The user does not have adequate privileges.\n"
"21 - The specified parameter is invalid.\n"
"Other - For integer values other than those listed above, "
"refer to Win32 error code documentation."),
Values{ "Success",
"Access denied",
"Unknown failure",
"Privilege missing",
"Invalid parameter",
"Other" },
ValueMap{ "0", "2", "8", "9", "21", ".." },
Privileges{"SeSecurityPrivilege","SeRestorePrivilege"}]
uint32 SetSecurityDescriptor([in] Win32_SecurityDescriptor Descriptor);
};
//RuleBased("Select * From "
// "Win32_LogicalShareSecuritySetting As A "
// "Join "
// "Win32_Share As B "
// "On A.Name = B.Name")
[Dynamic, Provider("SECRCW32"),
Description("Security settings of a share object"),
Locale (0x409), UUID ("{8502C592-5FBB-11D2-AAC1-006008C78BC7}")]
class Win32_SecuritySettingOfLogicalShare : Win32_SecuritySettingOfObject
{
[Override ("Element"): ToSubClass, Description("The share"), key,read]
Win32_Share ref Element;
[read,Override ("Setting"): ToSubClass, Description("The security settings of the share"), key]
Win32_LogicalShareSecuritySetting ref Setting;
};
[Dynamic, Provider("SECRCW32"), Description("Association between the "
"security settings of a share and one member of its DACL"),
Locale (0x409), UUID ("{8502C593-5FBB-11D2-AAC1-006008C78BC7}")]
class Win32_LogicalShareAccess : Win32_SecuritySettingAccess
{
[read,Override ("SecuritySetting"): ToSubClass, Description("The security settings of the share object")]
Win32_LogicalShareSecuritySetting ref SecuritySetting;
[read,Override ("Trustee"): ToSubClass, Description("An entry on the object's DACL")]
Win32_SID ref Trustee;
};
[Dynamic, Provider("SECRCW32"),
Locale (0x409), UUID ("{8502C594-5FBB-11D2-AAC1-006008C78BC7}"),
Description ("Association between the "
"security settings of a share and one member of its SACL.")]
class Win32_LogicalShareAuditing : Win32_SecuritySettingAuditing
{
[read,Override ("SecuritySetting"): ToSubClass, Description("The security settings of the share object")]
Win32_LogicalShareSecuritySetting ref SecuritySetting;
[read,Override ("Trustee"): ToSubClass, Description("An entry on the object's SACL")]
Win32_SID ref Trustee;
};
[Association, Dynamic, Provider ("CIMWin32"), Description(
"The Win32_DCOMApplicationLaunchAllowedSetting class is an association between the Win32_DCOMApplication"
"and the user sid's that can launch it" ),
Locale(0x409), UUID("{0F73ED55-8ED9-11d2-B340-00105A1F8569}") ]
class Win32_DCOMApplicationLaunchAllowedSetting
{
[read, Key, Override ("Element"): ToSubClass, Description(
"The Element reference represents the role of the Win32_DCOMApplication" ),
MappingStrings {" Microsoft CIM Win32|Win32_DCOMApplication|AppID"} ]
Win32_DCOMApplication ref Element;
[read, Key, Override ("Setting"): ToSubClass, Description(
"The Setting reference represents the role of a user that can launch a component grouped under "
"the associated Win32_DCOMApplication" ),
MappingStrings {" Microsoft CIM Win32|Win32_SID|SID"} ]
Win32_SID ref Setting;
};
[Association,Dynamic, Provider ("CIMWin32"), Description(
"The Win32_DCOMApplicationAccessAllowedSetting class is an association between the Win32_DCOMApplication"
"and the user sid's that can access it" ),
Locale(0x409), UUID("{0F73ED59-8ED9-11d2-B340-00105A1F8569}") ]
class Win32_DCOMApplicationAccessAllowedSetting
{
[read, Key, Override ("Element"): ToSubClass, Description(
"The Element reference represents the role of the Win32_DCOMApplication" ),
MappingStrings {" Microsoft CIM Win32|Win32_DCOMApplication|AppID"} ]
Win32_DCOMApplication ref Element;
[read, Key, Override ("Setting"): ToSubClass, Description(
"The Setting reference represents the role of a user that can access a component grouped under "
"the associated Win32_DCOMApplication" ),
MappingStrings {" Microsoft CIM Win32|Win32_SID|SID"} ]
Win32_SID ref Setting;
};