// Copyright (c) 2006 Microsoft Corporation, All Rights Reserved

#pragma autorecover
#pragma classflags(64)
#pragma namespace("\\\\.\\ROOT\\CIMV2")

Instance of __Win32Provider as $P1
{
  Name = "UserProfileConfigurationProvider";
  CLSID = "{20E25881-F081-448e-85C9-4707A9400593}";
  ImpersonationLevel = "1";
  PerUserInitialization = "TRUE";
  HostingModel = "LocalSystemHost";
};

Instance of __InstanceProviderRegistration
{
  provider = $P1;
  SupportsEnumeration = "TRUE";
  SupportsGet = "TRUE";
  SupportsDelete = "TRUE";
  SupportsPut = "TRUE";
};

Instance of __MethodProviderRegistration
{
  provider = $P1;
};

[Dynamic : ToInstance DisableOverride,provider("UserProfileConfigurationProvider"),description(""),singleton,inpartition{"local-system"}] 
class Win32_FolderRedirectionHealthConfiguration
{
  [read,write,description("Cautious threshold, in hours. If the number of hours since the last attempted synchronization is greater than or equal to this threshold, the HealthStatus property of the Win32_FolderRedirectionHealth class is set to Caution.")] uint32 LastSyncDurationCautionInHours;
  [read,write,description("Unhealthy threshold, in hours. If the number of hours since the last attempted synchronization is greater than or equal to this threshold, the HealthStatus property of the Win32_FolderRedirectionHealth class is set to Unhealthy.")] uint32 LastSyncDurationUnhealthyInHours;
};

[Dynamic : ToInstance DisableOverride,provider("UserProfileConfigurationProvider"),description(""),singleton,inpartition{"local-user"}] 
class Win32_RoamingProfileUserConfiguration
{
  [read,write,description("An array of strings containing directories to exclude from the roaming profile.")] string ExcludedProfileDirs[];
  [read,write,description("An array of strings containing network directories to synchronize at when the user logs on to or off of a local computer.")] string DirectoriesToSyncAtLogonLogoff[];
  [read,description("Indicates if the settings configured through this WMI class are taking affect.")] boolean IsConfiguredByWMI;
};

[Dynamic : ToInstance DisableOverride,provider("UserProfileConfigurationProvider"),description("")] 
class Win32_RoamingProfileSlowLinkParams
{
  [read,write,description("The slow-network connection timeout, in milliseconds. This threshold is used to determine if the connection is a slow link. If the delay in milliseconds is greater than this threshold, the connection is considered to be slow. This property applies to non-IP networks."),Max(20000)] uint16 TimeOut;
  [read,write,description("The connection speed, in kilobytes per second (kbps). This threshold is used to determine if the connection is a slow link. If the server's transfer rate in kbps is less than this threshold, the connection is considered to be slow. This property applies to IP networks.")] uint32 ConnectionTransferRate;
};

[Dynamic : ToInstance DisableOverride,provider("UserProfileConfigurationProvider"),description("")] 
class Win32_RoamingProfileBackgroundUploadParams
{
  [read,write,description("Indicates when a background upload should be performed. One of the following values can be specified. SpecificTime - Perform the background upload at the time of day specified in the Time property. SetInterval  - Perform the background upload at the interval specified in the Interval property."),Values{"SpecificTime", "SetInterval"},ValueMap{"1", "2"}] uint8 SchedulingMethod;
  [read,write,description("The time interval, in hours."),Max(720)] uint16 Interval;
  [read,write,description("An integer value that represents the hour, in 24-hour time, for the time of day when they sync should occur. This must be an integer value from 0 to 23."),Max(23)] uint16 Time;
};

[Dynamic : ToInstance DisableOverride,provider("UserProfileConfigurationProvider"),description(""),singleton,inpartition{"local-system"}] 
class Win32_RoamingProfileMachineConfiguration
{
  [read,description("Indicates if the settings configured through this WMI class are taking affect.")] boolean IsConfiguredByWMI;
  [read,write,description("If true, a configured roaming profile will only be downloaded if the machine is a primary computer for the user.")] boolean PrimaryComputerEnabled;
  [read,write,description("If true, add the Administrator group to roaming user profiles.")] boolean AddAdminGroupToRUPEnabled;
  [read,write,description("Contains the parameter for the background upload of a roaming user profile's registry file while the user is logged on.")] Win32_RoamingProfileBackgroundUploadParams BackgroundUploadParams;
  [read,write,description("If true, cached copies of the roaming profile are deleted at log off")] boolean DeleteRoamingCacheEnabled;
  [read,write,description("If the DeleteRoamingCache property is true, this property specifies the number of days after which a user profile should be deleted. User profiles older than this number of days are deleted when the computer is restarted."),Max(99999)] uint16 DeleteProfilesOlderDays;
  [read,write,description("If true, do not detect slow network connections. If false, use the SlowLinkTimeOutParams property to determine whether the computer has a slow network connection.")] boolean DetectSlowLinkDisabled;
  [read,write,description("If true, do not forcibly unload the user's registry when the user logs off.")] boolean ForceUnloadDisabled;
  [read,write,description("If true, do not allow users to log in with temporary profiles.")] boolean TempProfileLogonBlocked;
  [read,write,description("If true, allow only local user profiles.")] boolean OnlyAllowLocalProfiles;
  [read,write,description("If true, prevent roaming profile changes from being copied to the server.")] boolean ProfileUploadDisabled;
  [read,write,description("If true, the user is prompted to specify whether his or her profile should be downloaded even when the network connection is slow.")] boolean SlowLinkUIEnabled;
  [read,write,description("The maximum time, in seconds, to wait for the network transport to be available if a user has a roaming user profile. If the network is unavailable after this time has elapsed, the user is logged on, but the profile is not synchronized."),Max(300)] uint16 WaitForNetworkInSec;
  [read,write,description("The roaming profile path to be set for all users that log on to this computer. The path should be in the form of \\\\ComputerName\\ShareName\\%USERNAME%."),MaxLen(260)] string MachineProfilePath;
  [read,write,description("Contains slow network connection timeout parameters to be used for user profiles.")] Win32_RoamingProfileSlowLinkParams SlowLinkTimeOutParams;
  [read,write,description("If true, wait for a remote user profile.")] boolean WaitForRemoteProfile;
  [read,write,description("If true, allow cross-forest user policy and roaming user profiles. If false, a roaming profile user receives a local profile when logged on to a cross-forest domain.")] boolean AllowCrossForestUserPolicy;
  [read,write,description("If true, don't check the owners of user profiles.")] boolean OwnerCheckDisabled;
};

[Dynamic : ToInstance DisableOverride,provider("UserProfileConfigurationProvider"),description(""),singleton,inpartition{"local-system"}] 
class Win32_RoamingUserHealthConfiguration
{
  [read,write,description("Configure how the Win32_UserProfile::HealthStatus property should reflect the use of temporary profiles."),Values{"Healthy", "Unhealthy", "Caution"},ValueMap{"0", "1", "2"}] uint8 HealthStatusForTempProfiles;
  [read,write,description("This is the time threshold, in hours, after which the profile health is reported as Caution when the profile has not been uploaded yet")] uint16 LastProfileUploadIntervalCautionInHours;
  [read,write,description("This is the time threshold, in hours, after which the profile health is reported as Caution when the profile has not been downloaded yet")] uint16 LastProfileDownloadIntervalCautionInHours;
  [read,write,description("This is the time threshold, in hours, after which the profile health is reported as Unhealthy when the profile has not been downloaded yet")] uint16 LastProfileUploadIntervalUnhealthyInHours;
  [read,write,description("This is the time threshold, in hours, after which the profile health is reported as Unhealthy when the profile has not been uploaded yet")] uint16 LastProfileDownloadIntervalUnhealthyInHours;
};

[Dynamic : ToInstance DisableOverride,provider("UserProfileConfigurationProvider"),description("Private Interface"),singleton,inpartition{"local-system"}] 
class Win32_OfflineFilesHealth
{
  [read,description("If true, the Offline Files feature is enabled for this folder.")] boolean OfflineAccessEnabled;
  [read,description("If true, the share is working in Online mode")] boolean OnlineMode;
  [read,description("A DATETIME value, in string format, that represents the last time this folder was successfully synchronized to the Offline Files cache.")] string LastSuccessfulSyncTime;
  [read,description("A DATETIME value, in string format, that represents the last time an attempt was made to synchronized this folder to the Offline Files cache, even if it was unsuccessful.")] string LastSyncTime;
  [read,description("The status of the last attempt to synchronize this folder to the Offline Files cache.")] uint8 LastSyncStatus;
};
#pragma autorecover
