#pragma namespace("\\root")


/////////////////////////////////////////////////////////////////////
// Declare an instance of the __Win32Provider

instance of __Win32Provider as $P
{
    Name = "Provider Class" ;
        // TODO : Place the GUID of ntfrsprv.dll here.
    ClsId = "{39143F73-FDB1-4CF5-8CB7-C8439E3F5C20}" ;
} ;

instance of __InstanceProviderRegistration
{
    Provider = $P;
    SupportsPut = FALSE;
    SupportsGet = TRUE;
    SupportsDelete = FALSE;
    SupportsEnumeration = TRUE;
};

//
// This class defines an object embedded in the Microsoft_NtFrsStatusSummery class.
//
[dynamic, provider("Provider Class")]

class Microsoft_NtFrsMemberStatus
{
        [key]
        String          ReplicaSetGUID;

        String          ReplicaSetName;
        String          ReplicaMemberRoot;
        String          ReplicaMemberStage;
        String          FileFilter;
        String          DirFilter;
        String          ReplicaMemberState;
        String          ReplicaSetType;
};


/////////////////////////////////////////////////////////////////////
//
// Declare a class, whose instance is dynamically generated by the
// provider. The class is indexed by the replica-set GUID, and
// provdes a list of inbound partners for this node. The information
// includes connection information, queue lengths and so on.
//

[dynamic, provider("Provider Class")]

class Microsoft_NtFrsConnectionStatus
{
        [key]
        String          ReplicaSetGUID;

        [key]
        String          PartnerGUID;

        String          ConnectionName;
        String          ConnectionGUID;
        String          PartnerDnsName;
        String          ConnectionState;
        String          LastJoinTime;
        boolean         Inbound;

        String          OBPartnerState;
        uint32          OBPartnerLeadIndex;
        uint32          OBPartnerTrailIndex;
        uint32          OBPartnerOutstandingCOs;
        uint32          OBPartnerOutstandingQuota;
};