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

#pragma namespace("\\\\.\\root")

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

#pragma namespace("//./root/perfmonScriptExample")

instance of __Win32Provider as $PMPInst
{
    Name  = "PerfProv";
    ClsId = "{f00b4404-f8f1-11ce-a5b6-00aa00680c3f}";
};    

instance of __InstanceProviderRegistration
{
    Provider = "__Win32Provider.Name=\"PerfProv\"";
    SupportsPut = FALSE;
    SupportsGet = TRUE;
    SupportsDelete = FALSE;
    SupportsEnumeration = TRUE;
};
 
[dynamic, provider("PerfProv"), ClassContext("local|Process")]
class NTProcesses
{
    [key]
       String Process;
    [PropertyContext("ID Process")]
         uint32 ID;
    [PropertyContext("Elapsed Time")]
         real32 Time;
    [PropertyContext("Handle Count")]
         uint32 Handles;
    [PropertyContext("Working Set")]
         uint32 WorkingSet;
    [PropertyContext("Working Set Peak")]
         uint32 WorkingSetPeak;
    [PropertyContext("Virtual Bytes")]
         uint32 VirtualBytes;
    [PropertyContext("Virtual Bytes Peak")]
         uint32 VirtualBytesPeak;
    [PropertyContext("Thread Count")]
         uint32 Threads;
    [PropertyContext("Priority Base")]
         uint32 Base;
};

[dynamic, provider("PerfProv"), ClassContext("local|Memory")]
class NTMemory
{
    [key]
       String Memory;
    [PropertyContext("Committed Bytes")]
         uint32 CommittedBytes;
    [PropertyContext("Page Reads/sec")]
         real32 PageReads;
    [PropertyContext("Page Faults/sec")]
         uint32 PageFaults;
};