#pragma autorecover
#pragma classflags(32)
#pragma namespace("\\\\.\\Root\\Microsoft\\Windows\\PS_MMAgent")

instance of __namespace
{
 name="MS_804";
};

#pragma namespace("\\\\.\\Root\\Microsoft\\Windows\\PS_MMAgent\\MS_804")

[Description("Memory Management Agent Component Configuration") : Amended, AMENDMENT, LOCALE(0x0804)] 
class MMAgentComponents
{
  [Description("Whether Application Launch Prefetching is enabled")] boolean ApplicationLaunchPrefetching;
  [Description("Whether Operation API Prefetching Functionality is enabled")] boolean OperationAPI;
  [Description("Whether Page Combining is enabled")] boolean PageCombining;
  [Description("Whether Application PreLaunch is enabled")] boolean ApplicationPreLaunch;
  [Description("The maximum number of prefetch files for scenarios recorded by the Operation Recorder API")] uint32 MaxOperationAPIFiles;
};

[Description("Memory Management Agent") : Amended, AMENDMENT, LOCALE(0x0804)]
class PS_MMAgent
{
  [Description("Provides the capability to enable any combination of the following:\n\n    1. Application Launch Prefetching\n    2. Operation API Prefetching Functionality\n    3. Page Combining\n    4. Application PreLaunch\n    5. Memory Compression\n" )] uint32 Enable([In, Description("Whether to enable Application Launch Prefetching. Application launch prefetching would would speed up app startup by monitoring the data and code accessed in these cases and use that information to preload the data and code into physical memory for subsequent app startups.\r\n")] boolean ApplicationLaunchPrefetching, [In, Description("Whether to enable Operation Recorder API Functionality. Operation Recorder enables applications to speed up operations that repeatedly access the same file data by exposing the Windows prefetching mechanism as a public interface.
\r\n")] boolean OperationAPI, [In, Description("Whether to enable Page Combining. Page Combining helps reduce the physical memory usage of the operating system by periodically combining pages in physical memory that have identical content.  
\r\n")] boolean PageCombining, [In, Description("Whether to disable Application PreLaunch. Application PreLaunch can speculatively launch applications that the user is likely to use in the near future, thus reducing application switch time.\r\n")] boolean ApplicationPreLaunch, [In, Description("Whether to enable Memory Compression. Memory compression is a Windows feature which compresses unused memory to keep more data resident in RAM. It also reduces the amount of data written to and read from the pagefile, thus improving performance.\r\n")] boolean MemoryCompression);

  [Description("Provides the capability to disable any combination of the following:\n\n    1. Application Launch Prefetching\n    2. Operation API Prefetching Functionality\n    3. Page Combining\n    4. Application PreLaunch\n    5. Memory Compression\n" )] uint32 Disable([In, Description("Whether to enable Application Launch Prefetching. Application launch prefetching would would speed up app startup by monitoring the data and code accessed in these cases and use that information to preload the data and code into physical memory for subsequent app startups.\r\n")] boolean ApplicationLaunchPrefetching, [In, Description("Whether to enable Operation Recorder API Functionality. Operation Recorder enables applications to speed up operations that repeatedly access the same file data by exposing the Windows prefetching mechanism as a public interface.
\r\n")] boolean OperationAPI, [In, Description("Whether to enable Page Combining. Page Combining helps reduce the physical memory usage of the operating system by periodically combining pages in physical memory that have identical content.  
\r\n")] boolean PageCombining, [In, Description("Whether to disable Application PreLaunch. Application PreLaunch can speculatively launch applications that the user is likely to use in the near future, thus reducing application switch time.\r\n")] boolean ApplicationPreLaunch, [In, Description("Whether to disable Memory Compression (disabling will take effect after the system is restarted). Memory compression is a Windows feature which compresses unused memory to keep more data resident in RAM. It also reduces the amount of data written to and read from the pagefile, thus improving performance.\r\n")] boolean MemoryCompression);

  [Description("Provides the ability to set the maximum number of prefetch files for scenarios recorded by the Operation Recorder API.")] uint32 Set([In, Description("Provides the ability to set the maximum number of prefetch files for scenarios recorded by the Operation Recorder API.")] uint32 MaxOperationAPIFiles);

  [Description("Returns whether any combination of the following are enabled:\n\n    1. Application Launch Prefetching\n    2. Operation API Prefetching Functionality\n    3. Page Combining\n    4. Application PreLaunch\n    5. Memory Compression\n\nand also returns the maximum number of prefetch files for scenarios recorded by the Operation Recorder API.")] uint32 Get([Out, Description("The set of components enabled and the maximum number of prefetch files for scenarios recorded by the Operation Recorder API.")] string cmdletOutput);

  [Description("Provides the ability to debug the application prelaunch of a specific application by triggering the prelaunch to occur and to exit debug mode for the application." )] uint32 Debug([In, Description("Specifies the package full name of the application.")] string PackageFullName, [In, Description("If this parameter is specified, the specified application will no longer be in debug mode. If not specified, the application will be prelaunched in debug mode.")] boolean DisableDebugMode, [In, Description("Specifies the string identifying the app in the package.")] string PackageRelativeAppId);
};
