// Copyright (c) 1997-2003 Microsoft Corporation, All Rights Reserved

#pragma autorecover
#pragma classflags(64)
#pragma namespace("\\\\.\\root\\cimv2")
instance of __namespace{ name="ms_804";};
#pragma namespace("\\\\.\\root\\cimv2\\ms_804")

[description("Represents an arbitrary SID -- CANNOT BE ENUMERATED") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804) : ToInstance] 
class Win32_SID
{
  [Description("The SID in string format") : Amended ToSubclass,Key : ToInstance ToSubclass DisableOverride] string SID;
  [Description("The SID in binary format") : Amended ToSubclass] uint8 BinaryRepresentation[];
  [Description("The name of the account associated with the SID") : Amended ToSubclass] string AccountName;
  [Description("The domain of the account associated with the SID") : Amended ToSubclass] string ReferencedDomainName;
  [Description("The SidLength property indicates the length of the SID in bytes") : Amended ToSubclass,Units("bytes") : Amended ToSubclass] uint32 SidLength;
};

[description("The SID of an account") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804) : ToInstance] 
class Win32_AccountSID
{
  [Description("The account") : Amended ToSubclass,Key : ToInstance ToSubclass DisableOverride] Win32_Account Ref Element;
  [Description("The SID of the account") : Amended ToSubclass,Key : ToInstance ToSubclass DisableOverride] Win32_SID Ref Setting;
};

[description("Represents security settings for a managed element") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804) : ToInstance] 
class Win32_SecuritySetting : CIM_Setting
{
  [description("Inheritance-related flags.  See SECURITY_DESCRIPTOR_CONTROL") : Amended ToSubclass] uint32 ControlFlags;
  [description("Retrieves a structural representation of the object's security descriptor") : Amended ToSubclass] uint32 GetSecurityDescriptor([OUT] Win32_SecurityDescriptor Descriptor);
  [description("Sets security descriptor to the specified structure") : Amended ToSubclass] uint32 SetSecurityDescriptor([IN] Win32_SecurityDescriptor Descriptor);
};

[description("Associates an object to its security settings") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804) : ToInstance] 
class Win32_SecuritySettingOfObject : CIM_ElementSetting
{
  [Description("The object with security settings") : Amended ToSubclass] CIM_LogicalElement Ref Element;
  [Description("The security settings of the object") : Amended ToSubclass] Win32_SecuritySetting Ref Setting;
};

[description("Association between the security settings of an object and its owner") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804) : ToInstance] 
class Win32_SecuritySettingOwner
{
  [Description("The security settings of an object") : Amended ToSubclass,key : ToInstance ToSubclass DisableOverride] Win32_SecuritySetting Ref SecuritySetting;
  [Description("The Win32_SID of the object's owner") : Amended ToSubclass,key : ToInstance ToSubclass DisableOverride] Win32_SID Ref Owner;
};

[description("Association between the security of an object and its group") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804) : ToInstance] 
class Win32_SecuritySettingGroup
{
  [Description("The security settings of an object") : Amended ToSubclass,key : ToInstance ToSubclass DisableOverride] Win32_SecuritySetting Ref SecuritySetting;
  [Description("The Win32_SID of the object's group") : Amended ToSubclass,key : ToInstance ToSubclass DisableOverride] Win32_SID Ref Group;
};

[description("Specifies the rights granted and denied to a trustee for a given object. Modeled after EXPLICIT_ACCESS") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804) : ToInstance] 
class Win32_SecuritySettingAccess
{
  [Description("The security settings of an object") : Amended ToSubclass,key : ToInstance ToSubclass DisableOverride] Win32_SecuritySetting Ref SecuritySetting;
  [Description("The Win32_SID of the trustee for this access entry") : Amended ToSubclass,key : ToInstance ToSubclass DisableOverride] Win32_SID Ref Trustee;
  [Description("The type of access specified for the trustee") : Amended ToSubclass,Values{"Set", "Deny"} : Amended ToSubclass] uint32 Type;
  [Description("Bit flags specifying how the access rights are inherited") : Amended ToSubclass] uint32 Inheritance;
  [Description("Bit flags specifying what permissions are affected") : Amended ToSubclass] uint32 AccessMask;
  [Description("The guid of the type of object the security settings are applied to") : Amended ToSubclass] string GuidObjectType;
  [Description("The guid of the type of object this object inherits from") : Amended ToSubclass] string GuidInheritedObjectType;
};

[description("Specifies the auditing for a given trustee on a given object. Modeled after EXPLICIT_ACCESS") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804) : ToInstance] 
class Win32_SecuritySettingAuditing
{
  [Description("The security settings of an object") : Amended ToSubclass,key : ToInstance ToSubclass DisableOverride] Win32_SecuritySetting Ref SecuritySetting;
  [Description("The Win32_SID of the trustee for this audit entry") : Amended ToSubclass,key : ToInstance ToSubclass DisableOverride] Win32_SID Ref Trustee;
  [Description("The type of access specified for the trustee") : Amended ToSubclass,Values{"Audit success", "Audit failure"} : Amended ToSubclass] uint32 Type;
  [Description("Bit flags specifying how the audit policies are inherited") : Amended ToSubclass] uint32 Inheritance;
  [Description("Bit flags specifying what activities are audited") : Amended ToSubclass] uint32 AuditedAccessMask;
  [Description("The guid of the type of object the security settings are applied to") : Amended ToSubclass] string GuidObjectType;
  [Description("The guid of the type of object this object inherits from") : Amended ToSubclass] string GuidInheritedObjectType;
};

[description("Specifies a trustee. Either a name or a SID (byte array) can be used") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804) : ToInstance] 
class Win32_Trustee : __Trustee
{
  [Description("The SID of the trustee") : Amended ToSubclass] uint8 SID[];
  [Description("The SID of the trustee in string format (e.g., S-1-1-0)") : Amended ToSubclass] string SIDString;
  [Description("The name portion of the account") : Amended ToSubclass] string Name;
  [Description("The domain portion of the account") : Amended ToSubclass] string Domain;
  [Description("The length of the SID in BYTES") : Amended ToSubclass] uint32 SidLength;
};

[description("Specifies an access control entry") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804) : ToInstance] 
class Win32_ACE : __ACE
{
  [Description("The trustee of this ACE entry") : Amended ToSubclass] Win32_Trustee Trustee;
  [Description("The type of ACE entry this is") : Amended ToSubclass,Values{"Access Allowed", "Access Denied", "Audit"} : Amended ToSubclass] uint32 AceType;
  [Description("Bit flags specifying inheritance of the ACE") : Amended ToSubclass] uint32 AceFlags;
  [Description("Bit flags representing rights granted/denied to the trustee") : Amended ToSubclass] uint32 AccessMask;
  [Description("The guid associated with the type of object these rights apply to") : Amended ToSubclass] string GuidObjectType;
  [Description("The guid associated with the parent of the object these rights apply to") : Amended ToSubclass] string GuidInheritedObjectType;
};

[description("Structural representation of a SECURITY_DESCRIPTOR") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804) : ToInstance] 
class Win32_SecurityDescriptor : __SecurityDescriptor
{
  [Description("The trustee representing the owner of the object") : Amended ToSubclass] Win32_Trustee Owner;
  [Description("The trustee representing the group of the object") : Amended ToSubclass] Win32_Trustee Group;
  [Description("An array of Win32_ACE entries that specify access to the object") : Amended ToSubclass] Win32_ACE DACL[];
  [Description("An array of Win32_ACE entries that specify which users/groups auditing information is gathered for") : Amended ToSubclass] Win32_ACE SACL[];
  [Description("Bit flags that provide information about the descriptor's contents and format") : Amended ToSubclass] uint32 ControlFlags;
};

[Description("The Win32_SecurityDescriptorHelper class provides the basic functionality for converting a security descriptor between three different representations:    1) __SecurityDescriptor   2) SDDL - string representation of a security descriptor   3) Binary representation of a security descriptor") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804) : ToInstance] 
class Win32_SecurityDescriptorHelper
{
  [Description("This method converts a __SecurityDescriptor instance to SDDL string format.") : Amended ToSubclass] uint32 Win32SDToSDDL([in] __SecurityDescriptor Descriptor,[out] string SDDL);
  [Description("This method converts a __SecurityDescriptor instance to a binary blob security descriptor format.") : Amended ToSubclass] uint32 Win32SDToBinarySD([in] __SecurityDescriptor Descriptor,[out] uint8 BinarySD[]);
  [Description("This method converts a SDDL string security descriptor format to a __SecurityDescriptor instance.") : Amended ToSubclass] uint32 SDDLToWin32SD([in] string SDDL,[out] __SecurityDescriptor Descriptor);
  [Description("This method converts a SDDL string security descriptor format to a binary blob security descriptor format.") : Amended ToSubclass] uint32 SDDLToBinarySD([in] string SDDL,[out] uint8 BinarySD[]);
  [Description("This method converts a binary blob security descriptor format to a __SecurityDescriptor instance.") : Amended ToSubclass] uint32 BinarySDToWin32SD([in] uint8 BinarySD[],[out] __SecurityDescriptor Descriptor);
  [Description("This method converts a binary blob security descriptor formatto a SDDL string security descriptor format.") : Amended ToSubclass] uint32 BinarySDToSDDL([in] uint8 BinarySD[],[out] string SDDL);
};

[Description("security settings for a logical file") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804) : ToInstance] 
class Win32_LogicalFileSecuritySetting : Win32_SecuritySetting
{
  [key : ToInstance ToSubclass DisableOverride,Description("The full pathname of the file or directory") : Amended ToSubclass] string Path;
  [description("Indicates whether the caller has Owner permissions to the object.  ") : Amended ToSubclass] boolean OwnerPermissions;
  [description("Retrieves a structural representation of the object's security descriptor.\nThe method returns an integer value that can be interpreted as follows: \n0 - Successful completion.\n2 - The user does not have access to the requested information.\n8 - Unknown failure.\n9 - The user does not have adequate privileges.\n21 - The specified parameter is invalid.\nOther - For integer values other than those listed above, refer to Win32 error code documentation.") : Amended ToSubclass,Values{"Success", "Access denied", "Unknown failure", "Privilege missing", "Invalid parameter", "Other"} : Amended ToSubclass] uint32 GetSecurityDescriptor([out] Win32_SecurityDescriptor Descriptor);
  [description("Sets security descriptor to the specified structure. \nThe method returns an integer value that can be interpreted as follows: \n0 - Successful completion.\n2 - The user does not have access to the requested information.\n8 - Unknown failure.\n9 - The user does not have adequate privileges.\n21 - The specified parameter is invalid.\nOther - For integer values other than those listed above, refer to Win32 error code documentation.") : Amended ToSubclass,Values{"Success", "Access denied", "Unknown failure", "Privilege missing", "Invalid parameter", "Other"} : Amended ToSubclass] uint32 SetSecurityDescriptor([in] Win32_SecurityDescriptor Descriptor);
};

[Description("Security settings of a file or directory object") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804) : ToInstance] 
class Win32_SecuritySettingOfLogicalFile : Win32_SecuritySettingOfObject
{
  [Description("The file or directory") : Amended ToSubclass,key : ToInstance ToSubclass DisableOverride] CIM_LogicalFile Ref Element;
  [Description("The security settings of the file or directory") : Amended ToSubclass,key : ToInstance ToSubclass DisableOverride] Win32_LogicalFileSecuritySetting Ref Setting;
};

[Description("Association between the security settings of a file/directory and its owner") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804) : ToInstance] 
class Win32_LogicalFileOwner : Win32_SecuritySettingOwner
{
  [Description("The security settings of the file/directory object -- CANNOT BE ENUMERATED") : Amended ToSubclass] Win32_LogicalFileSecuritySetting Ref SecuritySetting;
  [Description("The owner of the file/directory object") : Amended ToSubclass] Win32_SID Ref Owner;
};

[Description("Association between the security settings of a file/directory and its group") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804) : ToInstance] 
class Win32_LogicalFileGroup : Win32_SecuritySettingGroup
{
  [Description("The security settings of the file/directory object -- CANNOT BE ENUMERATED") : Amended ToSubclass] Win32_LogicalFileSecuritySetting Ref SecuritySetting;
  [Description("The group of the file/directory object") : Amended ToSubclass] Win32_SID Ref Group;
};

[Description("Association between the security settings of a file/directory and one member of its DACL") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804) : ToInstance] 
class Win32_LogicalFileAccess : Win32_SecuritySettingAccess
{
  [Description("The security settings of the file/directory object -- CANNOT BE ENUMERATED") : Amended ToSubclass] Win32_LogicalFileSecuritySetting Ref SecuritySetting;
  [Description("An entry on the object's DACL") : Amended ToSubclass] Win32_SID Ref Trustee;
};

[Description("Association between the security settings of a file/directory one member of its SACL.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804) : ToInstance] 
class Win32_LogicalFileAuditing : Win32_SecuritySettingAuditing
{
  [Description("The security settings of the file/directory object -- CANNOT BE ENUMERATED") : Amended ToSubclass] Win32_LogicalFileSecuritySetting Ref SecuritySetting;
  [Description("An entry on the object's SACL") : Amended ToSubclass] Win32_SID Ref Trustee;
};

[Description("security settings for a logical file") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804) : ToInstance] 
class Win32_LogicalShareSecuritySetting : Win32_SecuritySetting
{
  [key : ToInstance ToSubclass DisableOverride,Description("The name of the share") : Amended ToSubclass] string Name;
  [description("Retrieves a structural representation of the object's security descriptor.\nThe method returns an integer value that can be interpreted as follows: \n0 - Successful completion.\n2 - The user does not have access to the requested information.\n8 - Unknown failure.\n9 - The user does not have adequate privileges.\n21 - The specified parameter is invalid.\nOther - For integer values other than those listed above, refer to Win32 error code documentation.") : Amended ToSubclass,Values{"Success", "Access denied", "Unknown failure", "Privilege missing", "Invalid parameter", "Other"} : Amended ToSubclass] uint32 GetSecurityDescriptor([out] Win32_SecurityDescriptor Descriptor);
  [description("Sets security descriptor to the specified structure.\nThe method returns an integer value that can be interpreted as follows: \n0 - Successful completion.\n2 - The user does not have access to the requested information.\n8 - Unknown failure.\n9 - The user does not have adequate privileges.\n21 - The specified parameter is invalid.\nOther - For integer values other than those listed above, refer to Win32 error code documentation.") : Amended ToSubclass,Values{"Success", "Access denied", "Unknown failure", "Privilege missing", "Invalid parameter", "Other"} : Amended ToSubclass] uint32 SetSecurityDescriptor([in] Win32_SecurityDescriptor Descriptor);
};

[Description("Security settings of a share object") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804) : ToInstance] 
class Win32_SecuritySettingOfLogicalShare : Win32_SecuritySettingOfObject
{
  [Description("The share") : Amended ToSubclass,key : ToInstance ToSubclass DisableOverride] Win32_Share Ref Element;
  [Description("The security settings of the share") : Amended ToSubclass,key : ToInstance ToSubclass DisableOverride] Win32_LogicalShareSecuritySetting Ref Setting;
};

[Description("Association between the security settings of a share and one member of its DACL") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804) : ToInstance] 
class Win32_LogicalShareAccess : Win32_SecuritySettingAccess
{
  [Description("The security settings of the share object") : Amended ToSubclass] Win32_LogicalShareSecuritySetting Ref SecuritySetting;
  [Description("An entry on the object's DACL") : Amended ToSubclass] Win32_SID Ref Trustee;
};

[Description("Association between the security settings of a share and one member of its SACL.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804) : ToInstance] 
class Win32_LogicalShareAuditing : Win32_SecuritySettingAuditing
{
  [Description("The security settings of the share object") : Amended ToSubclass] Win32_LogicalShareSecuritySetting Ref SecuritySetting;
  [Description("An entry on the object's SACL") : Amended ToSubclass] Win32_SID Ref Trustee;
};

[Description("The Win32_DCOMApplicationLaunchAllowedSetting class is an association between the Win32_DCOMApplication and the user sid's that can launch it") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804) : ToInstance] 
class Win32_DCOMApplicationLaunchAllowedSetting
{
  [Key : ToInstance ToSubclass DisableOverride,Description("The Element reference represents the role of the Win32_DCOMApplication") : Amended ToSubclass] Win32_DCOMApplication Ref Element;
  [Key : ToInstance ToSubclass DisableOverride,Description("The Setting reference represents the role of a user that can launch a component grouped under the associated Win32_DCOMApplication") : Amended ToSubclass] Win32_SID Ref Setting;
};

[Description("The Win32_DCOMApplicationAccessAllowedSetting class is an association between the Win32_DCOMApplication and the user sid's that can access it") : Amended ToSubclass,AMENDMENT, LOCALE(0x0804) : ToInstance] 
class Win32_DCOMApplicationAccessAllowedSetting
{
  [Key : ToInstance ToSubclass DisableOverride,Description("The Element reference represents the role of the Win32_DCOMApplication") : Amended ToSubclass] Win32_DCOMApplication Ref Element;
  [Key : ToInstance ToSubclass DisableOverride,Description("The Setting reference represents the role of a user that can access a component grouped under the associated Win32_DCOMApplication") : Amended ToSubclass] Win32_SID Ref Setting;
};
