Schema del provider WMI di Controlli genitori

Il provider WMI di Controlli genitori è un'istanza e un provider di metodi. La creazione di istanze di nuove istanze di classe, la lettura o la modifica delle proprietà dell'istanza esistenti e la chiamata dei metodi è controllata dal file Wpcsprov.mof.

La sintassi seguente deriva da Namespace.mof

#pragma autorecover

#pragma namespace("\\\\.\\ROOT\\CIMV2")

instance of __Namespace
{
    Name = "Applications";
};

#pragma namespace("\\\\.\\ROOT\\CIMV2\\Applications")

//**************************************************************************
//* Windows Parental Controls Namespace 
//**************************************************************************
instance of __NAMESPACE
{
    Name = "WindowsParentalControls";
};

La sintassi seguente deriva da Ratings.mof

//**************************************************************************
//* MOF describing Ratings Systems
//**************************************************************************
#pragma namespace("\\\\.\\ROOT\\CIMV2\\Applications\\WindowsParentalControls")

//**************************************************************************
//* Class: WpcRating
//* Derived from: 
//**************************************************************************
[Description("A rating within a ratings system"): ToInstance ToSubClass, dynamic: DisableOverride ToInstance, provider("WpcSProv"): ToInstance ToSubClass]
class WpcRating
{
    [read: ToInstance ToSubClass, Description("Rating ID"): ToInstance ToSubClass, key, Not_null: ToInstance ToSubClass] string ID;
    [read: ToInstance ToSubClass, Description("Long Name for this Rating"): ToInstance ToSubClass] string LongName;
    [Description("ID of the Ratings System this rating belongs to"): ToInstance ToSubClass, read: ToInstance ToSubClass, key, Not_null: ToInstance ToSubClass] string SystemID;
    [read: ToInstance ToSubClass, Description("Short Name for this Rating"): ToInstance ToSubClass] string ShortName;
    [read: ToInstance ToSubClass, Description("Description of this rating"): ToInstance ToSubClass] string Description;
    [read: ToInstance ToSubClass, Description("Has this rating been deprecated"): ToInstance ToSubClass, Not_null: ToInstance ToSubClass] string IsDeprecated = "false";
    [read: ToInstance ToSubClass, Description("Link to updated rating"): ToInstance ToSubClass] string UpdatedRating;
    [read: ToInstance ToSubClass, Description("Relative level index of this rating"): ToInstance ToSubClass, Not_null: ToInstance ToSubClass] uint32 Level;
    [read: ToInstance ToSubClass, Description("Recommended minimum age"): ToInstance ToSubClass] uint32 MinAge = 0;
    [read: ToInstance ToSubClass, Description("Path to the logo for the ratings system"): ToInstance ToSubClass] string IconPath;
    [read: ToInstance ToSubClass, Description("Resource ID of the logo for the ratings system"): ToInstance ToSubClass] string IconResourceID;
    [read: ToInstance ToSubClass, Description("Resource Type of the logo for the ratings system"): ToInstance ToSubClass] string IconType;
};

//**************************************************************************
//* Class: WpcRatingsDescriptor
//* Derived from: 
//**************************************************************************
[Description("Optional textual descriptor for a rating system"): ToInstance ToSubClass, dynamic: DisableOverride ToInstance, provider("WpcSProv"): ToInstance ToSubClass]
class WpcRatingsDescriptor
{
    [read: ToInstance ToSubClass, Description("ID for descriptor"): ToInstance ToSubClass, key, Not_null: ToInstance ToSubClass] string ID;
    [key, Description("GUID representing the ratings system the descriptor belongs to"): ToInstance ToSubClass, read: ToInstance ToSubClass, Not_null: ToInstance ToSubClass] string SystemID;
    [read: ToInstance ToSubClass, Description("Name of the descriptor"): ToInstance ToSubClass, Not_null: ToInstance ToSubClass] string Name;
    [read: ToInstance ToSubClass, Description("Description of the descriptor"): ToInstance ToSubClass] string Description;
    [read: ToInstance ToSubClass, Description("Has the description been deprecated"): ToInstance ToSubClass, Not_null: ToInstance ToSubClass] boolean IsDeprecated = FALSE;
    [read: ToInstance ToSubClass, Description("Link to updated descriptor"): ToInstance ToSubClass] string UpdatedDescriptor;
    [read: ToInstance ToSubClass, Description("Path to the logo for the ratings system"): ToInstance ToSubClass] string IconPath;
    [read: ToInstance ToSubClass, Description("Resource ID of the logo for the ratings system"): ToInstance ToSubClass] string IconResourceID;
    [read: ToInstance ToSubClass, Description("Resource Type of the logo for the ratings system"): ToInstance ToSubClass] string IconType;
    [read: ToInstance ToSubClass, Description("Extended properties for this descriptor"): ToInstance ToSubClass] uint32 Properties;
};

//**************************************************************************
//* Class: WpcRatingsSystem
//* Derived from: 
//**************************************************************************
[Description("Third Party Ratings System"): ToInstance ToSubClass, dynamic: DisableOverride ToInstance, provider("WPCSprov"): ToInstance ToSubClass]
class WpcRatingsSystem
{
    [key, read: ToInstance ToSubClass, Description("GUID identifying the ratings system"): ToInstance ToSubClass] string ID;
    [read: ToInstance ToSubClass, Description("Type of the ratings system"): ToInstance ToSubClass] uint32 Type;
    [read: ToInstance ToSubClass, Description("Long name for the system"): ToInstance ToSubClass] string LongName;
    [read: ToInstance ToSubClass, Description("Short name for the ratings system"): ToInstance ToSubClass] string ShortName;
    [read: ToInstance ToSubClass, Description("Description of the ratings system"): ToInstance ToSubClass, Not_null: ToInstance ToSubClass] string Description;
    [read: ToInstance ToSubClass, Description("Web address for the ratings system"): ToInstance ToSubClass] string WebAddress;
    [read: ToInstance ToSubClass, Description("Path to the logo for the ratings system"): ToInstance ToSubClass] string LogoPath;
    [read: ToInstance ToSubClass, Description("Resource ID of the logo for the ratings system"): ToInstance ToSubClass] string LogoResourceID;
    [read: ToInstance ToSubClass, Description("Resource type of the logo for the ratings system"): ToInstance ToSubClass] string LogoResourceType;
    [read: ToInstance ToSubClass, Description("Version of this data"): ToInstance ToSubClass] string Version;
};

La sintassi seguente deriva da WpcSettings.mof

// WPC Class definitions

#pragma namespace("\\\\.\\ROOT\\CIMV2\\Applications\\WindowsParentalControls")

//**************************************************************************
//* Class: WpcSystemSettings
//* Derived from: 
//**************************************************************************
[Singleton: DisableOverride ToInstance ToSubClass, Description("Stores system-wide Wpc settings"): ToInstance ToSubClass, provider("WpcSProv"): ToInstance, dynamic: ToInstance]
class WpcSystemSettings
{
    [read: ToInstance ToSubClass, write: ToInstance ToSubClass, Description("Link to the current games rating system in force for the computer"): ToInstance ToSubClass] string CurrentGamesRatingSystem;
    [read: ToInstance ToSubClass, write: ToInstance ToSubClass, Description("HTTP app filter exemption list"): ToInstance ToSubClass] string HTTPExemptionList[];
    [read: ToInstance ToSubClass, Description("Windows HTTP app filter exemption list"): ToInstance ToSubClass] string WinHTTPExemptionList[];
    [read: ToInstance ToSubClass, write: ToInstance ToSubClass, Description("HTTP URL filter exemption list"): ToInstance ToSubClass] string URLExemptionList[];
    [read: ToInstance ToSubClass, Description("Windows HTTP URL filter exemption list"): ToInstance ToSubClass] string WinURLExemptionList[];
    [read: ToInstance ToSubClass, write: ToInstance ToSubClass, Description("Number of days until a balloon reminder for checking the logs"): ToInstance ToSubClass] uint32 LogViewReminderInterval;
    [read: ToInstance ToSubClass, write: ToInstance ToSubClass, Description("Last time the admin checked the log viewer"): ToInstance ToSubClass] DateTime LastLogView;
    [read: ToInstance ToSubClass, write: ToInstance ToSubClass, Description("ID of current web filter"): ToInstance ToSubClass] string FilterID;
    [read: ToInstance ToSubClass, write: ToInstance ToSubClass, Description("Name of current web filter"): ToInstance ToSubClass] string FilterName;
    [Description("Creates settings for a new User SID"): ToInstance ToSubClass, Implemented: ToInstance ToSubClass, Static: ToInstance ToSubClass] uint32 AddUser([Description("SID to create settings for"): ToInstance ToSubClass, IN] string strSID);
    [Description("Removes settings for a user account"): ToInstance ToSubClass, Implemented: ToInstance ToSubClass, Static: ToInstance ToSubClass] uint32 RemoveUser([Description("SID of the account to delete settings for"): ToInstance ToSubClass, IN] string strSID);
};

//**************************************************************************
//* Class: WpcUserSettings
//* Derived from: 
//**************************************************************************
[Description("Per-account Windows Parental Controls Settings"): ToInstance ToSubClass, provider("WpcSprov"): ToInstance, dynamic: ToInstance]
class WpcUserSettings
{
    [key, read: ToInstance ToSubClass, Description("SID of the user account owning these settings"): ToInstance ToSubClass] string SID;
    [read: ToInstance ToSubClass, write: ToInstance ToSubClass, Description("Is WPC enabled for this user"): ToInstance ToSubClass] boolean WpcEnabled;
    [write: ToInstance ToSubClass, Description("Is logging enabled for this user"): ToInstance ToSubClass, read: ToInstance ToSubClass] boolean LoggingRequired;
    [write: ToInstance ToSubClass, Description("Are hourly restrictions enabled for this user"): ToInstance ToSubClass, read: ToInstance ToSubClass] boolean HourlyRestrictions;
    [write: ToInstance ToSubClass, Description("Are override requests enabled for this user"): ToInstance ToSubClass, read: ToInstance ToSubClass] boolean OverrideRequests;
    [write: ToInstance ToSubClass, Description("Logon Hours mask for this user"): ToInstance ToSubClass, read: ToInstance ToSubClass] uint32 LogonHours[7];
    [write: ToInstance ToSubClass, Description("Are application restrictions enabled for this user"): ToInstance ToSubClass, read: ToInstance ToSubClass] boolean AppRestrictions;
};

//**************************************************************************
//* Class: WpcExtension
//* Derived from: 
//**************************************************************************
[Description("Windows Parental Controls Extension"): ToInstance ToSubClass, provider("WpcSprov"): ToInstance, dynamic: ToInstance]
class WpcExtension
{
    [key, read: ToInstance ToSubClass, Description("GUID ID for the extension"): ToInstance ToSubClass] string ID;
    [key, read: ToInstance ToSubClass, Description("SiloID for the extension"): ToInstance ToSubClass, MinValue(0): ToInstance ToSubClass, MaxValue(6): ToInstance ToSubClass] uint32 Subsystem;
    [read: ToInstance ToSubClass, write: ToInstance ToSubClass, Description("Image resource path for the icon for the extension"): ToInstance ToSubClass] string ImagePath;
    [read: ToInstance ToSubClass, write: ToInstance ToSubClass, Description("Image resource path for the disabled icon for the extension"): ToInstance ToSubClass] string DisabledImagePath;
    [write: ToInstance ToSubClass, read: ToInstance ToSubClass, Description("Path to the extension executable"): ToInstance ToSubClass] string Path;
    [write: ToInstance ToSubClass, Description("Display name for the extension"): ToInstance ToSubClass, read: ToInstance ToSubClass] string Name;
    [write: ToInstance ToSubClass, Description("Subtitle for the extension"): ToInstance ToSubClass, read: ToInstance ToSubClass] string SubTitle;
};

//**************************************************************************
//* Class: WpcGameOverride
//* Derived from: 
//**************************************************************************
[Description("Entry in game silo override list for Windows Parental Controls"): ToInstance ToSubClass, dynamic: DisableOverride ToInstance, provider("WpcSProv"): ToInstance ToSubClass]
class WpcGameOverride
{
    [key, read: ToInstance ToSubClass, Description("Application ID identifying the game"): ToInstance ToSubClass] string AppID;
    [key, read: ToInstance ToSubClass, Description("SID of the account owning this entry"): ToInstance ToSubClass] string SID;
    [Description("Whether the entry is allowed or denied"): ToInstance ToSubClass, read: ToInstance ToSubClass, write: ToInstance ToSubClass, MinValue(0): ToInstance ToSubClass, MaxValue(2): ToInstance ToSubClass] uint32 Allowed;
};

//**************************************************************************
//* Class: WpcAppOverride
//* Derived from: 
//**************************************************************************
[Description("Entry in user silo application override list for Windows Parental Controls"): ToInstance ToSubClass, dynamic: DisableOverride ToInstance, provider("WpcSProv"): ToInstance ToSubClass]
class WpcAppOverride
{
    [key, read: ToInstance ToSubClass, Description("Rule ID for this entry"): ToInstance ToSubClass] string RuleID;
    [key, read: ToInstance ToSubClass, Description("SID of the account owning this entry"): ToInstance ToSubClass] string SID;
    [read: ToInstance ToSubClass, Description("Path to the overridden app"): ToInstance ToSubClass] string Path;
};

//**************************************************************************
//* Class: WpcGamesSettings
//* Derived from: 
//**************************************************************************
[Description("Games silo settings for Windows Parental Controls"): ToInstance ToSubClass, dynamic: DisableOverride ToInstance, provider("WpcSProv"): ToInstance ToSubClass]
class WpcGamesSettings
{
    [key, read: ToInstance ToSubClass, Description("SID of the account owning these settings"): ToInstance ToSubClass] string SID;
    [read: ToInstance ToSubClass, write: ToInstance ToSubClass, Description("Whether games are permitted"): ToInstance ToSubClass] boolean Blocked;
    [read: ToInstance ToSubClass, Description("GUID of the rating system these settings are for"): ToInstance ToSubClass] string SystemID;
    [read: ToInstance ToSubClass, Description("Whether to allow unrated games"): ToInstance ToSubClass, write: ToInstance ToSubClass] boolean AllowUnrated;
    [read: ToInstance ToSubClass, Description("ID of the maximum rating allowed under the current system"): ToInstance ToSubClass, write: ToInstance ToSubClass] string MaxAllowed;
    [read: ToInstance ToSubClass, Description("Collection of denied descriptors"): ToInstance ToSubClass, write: ToInstance ToSubClass] string DeniedDescriptors[];
};

//**************************************************************************
//* Class: WpcURLOverride
//* Derived from: 
//**************************************************************************
[Description("Entry in web silo URL override list for Windows Parental Controls"): ToInstance ToSubClass, dynamic: DisableOverride ToInstance, provider("WpcSProv"): ToInstance ToSubClass]
class WpcURLOverride
{
    [key, read: ToInstance ToSubClass, Description("URL to be affected"): ToInstance ToSubClass] string URL;
    [key, read: ToInstance ToSubClass, Description("SID of the account owning this entry"): ToInstance ToSubClass] string SID;
    [Description("Whether the entry is allowed or denied"): ToInstance ToSubClass, read: ToInstance ToSubClass, write: ToInstance ToSubClass, MinValue(0): ToInstance ToSubClass, MaxValue(2): ToInstance ToSubClass] uint32 Allowed;
};

//**************************************************************************
//* Class: WpcCustomEvent
//* Derived from: 
//**************************************************************************
[Description("The registered custom events to be used in the log viewer"): ToInstance ToSubClass, dynamic: DisableOverride ToInstance, provider("WpcSProv"): ToInstance ToSubClass]
class WpcCustomEvent
{
    [key, read: ToInstance ToSubClass, Description("Publisher of the event"): ToInstance ToSubClass] string Publisher;
    [key, read: ToInstance ToSubClass, Description("Application making the event"): ToInstance ToSubClass] string Application;
    [key, read: ToInstance ToSubClass, Description("Event name to use"): ToInstance ToSubClass] string Event;
    [read: ToInstance ToSubClass, Description("Collection of headers"): ToInstance ToSubClass, write: ToInstance ToSubClass] string Headers[];
};


//**************************************************************************
//* Class: WpcWebSettings
//* Derived from: 
//**************************************************************************
[Description("Per-account Windows Parental Controls Web Settings"): ToInstance ToSubClass, provider("WpcSprov"): ToInstance, dynamic: ToInstance]
class WpcWebSettings
{
    [key, Description("SID of the user account owning these settings"): ToInstance ToSubClass, read: ToInstance ToSubClass] string SID;
    [Description("Is filter on for this user"): ToInstance ToSubClass, read: ToInstance ToSubClass, write: ToInstance ToSubClass] boolean FilterOn;
    [Description("Filter level for this user"): ToInstance ToSubClass, read: ToInstance ToSubClass, write: ToInstance ToSubClass, MinValue(0): ToInstance ToSubClass, MaxValue(5): ToInstance ToSubClass] Uint32 FilterLevel;
    [Description("Are file downloads blocked for this user"): ToInstance ToSubClass, read: ToInstance ToSubClass, write: ToInstance ToSubClass] boolean FileDownloadsBlocked;
    [Description("Are unrated sites blocked for this user"): ToInstance ToSubClass, read: ToInstance ToSubClass, write: ToInstance ToSubClass] boolean BlockUnrated;
    [Description("Blocked Category list"): ToInstance ToSubClass, read: ToInstance ToSubClass, write: ToInstance ToSubClass] uint32 BlockedCategoryList[];
};

[Description("Games Clamper for Windows Parental Controls Media Settings"): ToInstance ToSubClass, 
 provider("WpcClamperProv"): ToInstance, 
 dynamic: ToInstance]
class WpcClamper      
{                                                                  
    [
    Description("Creates settings for a new User SID"): ToInstance ToSubClass, 
    Implemented: ToInstance ToSubClass, 
    Static: ToInstance ToSubClass
    ] 
    uint32 LockDownGameInstance([Description("Instance ID to lock down"): ToInstance ToSubClass, IN] string guidInstanceID);
    [
    Description("Removes settings for any admin users"): ToInstance ToSubClass, 
    Implemented: ToInstance ToSubClass, 
    Static: ToInstance ToSubClass
    ] 
    uint32 CleanupUsers();
};                                                                 

// End of WPC Class Definitions

La sintassi seguente deriva da WpcProvider.mof

#pragma namespace ("\\\\.\\root\\CIMV2\\Applications\\WindowsParentalControls")

class Win32_ProviderEx : __Win32Provider
{
    [Description ( "Hosting Model, provides compatibility with Windows XP and Windows Server 2003. Do not override." ) , Override("HostingModel")]
    string HostingModel = "NetworkServiceHost";
    [Description("..."),Override("SecurityDescriptor")] 
    string SecurityDescriptor; 
    UInt32 version = 1;
} ;

instance of Win32_ProviderEx as $WpcSProv
{
    Name    = "WpcSProv" ;  //Name is the key property for __Provider objects.
                            //vendor|provider|version is the suggested format
                            //to prevent name collisions.

    ClsId   = "{355DFFAA-3B9F-435c-B428-5D44290BC5F2}" ;     //provider GUID

    DefaultMachineName = NULL;       //NULL for local computer

    ClientLoadableCLSID = NULL;      //reserved

    ImpersonationLevel = 0;          //reserved

    InitializationReentrancy = 0;       //Set of flags that provide information about serialization:
                                        //0 = all initialization of this provider must be serialized
                                        //1 = all initializations of this provider in the same namespace must be serialized
                                        //2 = no initialization serialization is necessary

    InitializeAsAdminFirst = FALSE;     //Request to be fully initialized as "Admin" before 
                                        //initializations begin for users

    PerLocaleInitialization = FALSE;    //Indicates whether the provider is initialized for each 
                                        //locale if a user connects to the same namespace more 
                                        //than once using different locales.

    PerUserInitialization = FALSE;      //Indicates whether the provider is initialized once for each actual 
                                        //Windows 2000 NTLM user making requests of the provider. 
                                        //If set to FALSE, the provider is initialized once for all users

    Pure = TRUE;                        //A pure provider exists only to service requests from 
                                        //applications and WMI. Most providers are pure providers
                                        //Non-pure providers transition to the role of client after they have 
                                        //finished servicing requests. 


    UnloadTimeout = NULL;               //Currently ignored
                                        //Use __CacheControl class in the root namespace to control provider unloading
                                        //A string in the DMTF date/time format that specifies how long WMI 
                                        //allows the provider to remain idle before it is unloaded.
                                        

} ;    

instance of __InstanceProviderRegistration
{
    Provider = $WpcSProv;

    SupportsPut = "TRUE"; 
    SupportsGet = "TRUE"; 
    SupportsDelete = "TRUE"; 
    SupportsEnumeration = "TRUE"; 

};

instance of __MethodProviderRegistration
{
    Provider = $WpcSProv;
};

instance of __Win32Provider as $WpcClamperProv
{
    Name    = "WpcClamperProv" ;
    ClsId   = "{355DFFAA-3B9F-435c-B428-5D44290BC5F2}" ;
    HostingModel = "LocalSystemHost" ;
};    

instance of __MethodProviderRegistration
{
    Provider = $WpcClamperProv;
};