//
// Wmi internal classes


class WMIEvent : __ExtrinsicEvent
{
};

//
// NDIS classes
[WMI,
  guid("{B5BD98B7-0201-11d1-A50E-00A0C9062910}")]
class NetworkAddress
{
    [read, WmiDataId(1)]
      uint8    Address[6];
};

[WMI,
 guid("{B5BD98B8-0201-11d1-A50E-00A0C9062910}")]
class NetworkShortAddress
{
    [read, WmiDataId(1)]
      uint8    Address[2];
};

[WMI,
 guid("{60fc6b57-0f66-11d1-96a7-00c04fc3358c}")]
class NetworkLinkSpeed
{
    [read, WmiDataId(1)]    uint32  Outbound;
    [read, WmiDataId(2)]    uint32  Inbound;
};

///
/// GUIDs that do not translate to OIDs
///
///

[WMI, Dynamic, Provider("WMIProv"),
 guid("{981f2d7f-b1f3-11d0-8dd7-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("NDIS Enumerate Adapter")]
class NdisEnumerateAdapter
{
    [key, read]
    string      InstanceName;

    [read]
    boolean     Active;

    [read,
     Description("Device name."),
     WmiDataId(1)]    string    DeviceName;
};

[WMI, Dynamic, Provider("WMIProv"),
 guid("{981f2d80-b1f3-11d0-8dd7-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("NDIS Notify Adapter Removal")]
class NdisNotifyAdapterRemoval : WMIEvent
{
    [key, read]
    string      InstanceName;

    [read]
    boolean     Active;

    [read,
     Description("Device name."),
     WmiDataId(1)]    string    DeviceName;
};

[WMI, Dynamic, Provider("WMIProv"),
 guid("{981f2d81-b1f3-11d0-8dd7-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("NDIS Notify Adapter Arrival")]
class NdisNotifyAdapterArrival : WMIEvent
{
    [key, read]
    string      InstanceName;

    [read]
    boolean     Active;

    [read,
     Description("Device name."),
     WmiDataId(1)]    string    DeviceName;
};


[WMI, Dynamic, Provider("WMIProv"),
 guid("{981f2d82-b1f3-11d0-8dd7-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("NDIS Enumerate VC")]
class NdisEnumerateVc
{
    [key, read]
    string      InstanceName;

    [read]
    boolean     Active;
};

[WMI, Dynamic, Provider("WMIProv"),
 guid("{981f2d79-b1f3-11d0-8dd7-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("NDIS Notify VC Removal")]
class NdisNotifyVcRemoval : WmiEvent
{
    [key, read]
    string      InstanceName;

    [read]
    boolean     Active;
};

[WMI, Dynamic, Provider("WMIProv"),
 guid("{182f9e0c-b1f3-11d0-8dd7-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("NDIS Notify VC Arrival")]
class NdisNotifyVcArrival : WMIEvent
{
    [key, read]
    string      InstanceName;

    [read]
    boolean     Active;
};


///
///
///     General GUIDs
///
///
[WMI, Dynamic, Provider("WMIProv"),
 guid("{5ec10354-a61a-11d0-8dd4-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("NDIS Hardware Status")]
class NdisHardwareStatus
{
    [key, read]
    string      InstanceName;

    [read]
    boolean     Active;

    [read,
     Description("Current hardware status of the underlying NIC."),
     WmiEnum{"0=NdisHardwareStatusReady",
             "1=NdisHardwareStatusInitializing",
             "2=NdisHardwareStatusReset",
             "3=NdisHardwareStatusClosing",
             "4=NdisHardwarestatusNotReady"},
     WmiDataId(1)]    uint32    NdisHardwareStatus;

//
//  This is of the type:
//  typedef enum _NDIS_HARDWARE_STATUS
//  {
//      NdisHardwareStatusReady,
//      NdisHardwareStatusInitializing,
//      NdisHardwareStatusReset,
//      NdisHardwareStatusClosing,
//      NdisHardwarestatusNotReady
//  } NDIS_HARDWARE_STATUS, *PNDIS_HARDWARE_STATUS;
//
};

[WMI,Dynamic, Provider("WMIProv"),
 guid("{5ec10355-a61a-11d0-8dd4-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("NDIS Media Types Supported")]
class  NdisMediaSupported
{
    [key, read]
    string      InstanceName;

    [read]
    boolean     Active;

    [read,
        Description("Number of media types supported."),
        WmiDataId(1)]    uint32  NumberElements;
    [read,
        Description("List of media types the NIC supports."),
        WmiDataId(2),
        WmiSizeIs("NumberElements")]    uint32    NdisMediaSupported[];
};

[WMI,Dynamic, Provider("WMIProv"),
 guid("{5ec10356-a61a-11d0-8dd4-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("NDIS Media Types In Use")]
class  NdisMediaInUse
{
    [key, read]
    string      InstanceName;

    [read]
    boolean     Active;

    [read,
        Description("Number of media types in use."),
        WmiDataId(1)]    uint32  NumberElements;
    [read,
        Description("List of media types the NIC is currently supporting."),
        WmiDataId(2),
        WmiSizeIs("NumberElements")]    uint32    NdisMediaInUse[];
};

[WMI, Dynamic, Provider("WMIProv"),guid("{5ec10357-a61a-11d0-8dd4-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("NDIS Maximum Lookahead Supported")]
class  NdisMaximumLookahead
{
    [key, read]
    string      InstanceName;

    [read]
    boolean     Active;

    [read,
        Description("The maximum number of bytes the NIC can always provide as lookahead data."),
        WmiDataId(1)]    uint32    NdisMaximumLookahead;
};



[WMI, Dynamic, Provider("WMIProv"),guid("{5ec10358-a61a-11d0-8dd4-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("NDIS Maximum Frame Size")]
class  NdisMaximumFrameSize
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
    
    [read,
        Description("The maximum network packet size in bytes the NIC supports, not including a header."),
        WmiDataId(1)]    uint32    NdisMaximumFrameSize;
};

[WMI, Dynamic, Provider("WMIProv"),guid("{5ec10359-a61a-11d0-8dd4-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("NDIS Link Speed")]
class  NdisLinkSpeed
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
    
    [read,
        Description("The maximum speed of the NIC (kbps)."),
        WmiDataId(1)]    uint32    NdisLinkSpeed;
};

[WMI, Dynamic, Provider("WMIProv"),guid("{5ec1035a-a61a-11d0-8dd4-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("NDIS Transmit Buffer Space")]
class  NdisTransmitBufferSpace
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
    
    [read,
        Description("The amount of memory, in bytes, on the NIC available for buffering transmit data."),
        WmiDataId(1)]    uint32    NdisTransmitBufferSpace;
};

[WMI, Dynamic, Provider("WMIProv"), guid("{5ec1035b-a61a-11d0-8dd4-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("NDIS Receive Buffer Space")]
class  NdisReceiveBufferSpace
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
    
    [read,
        Description("The amount of memory on the NIC available for buffering receive data."),
        WmiDataId(1)]    uint32    NdisReceiveBufferSpace;
};

[WMI, Dynamic, Provider("WMIProv"), guid("{5ec1035c-a61a-11d0-8dd4-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("NDIS Transmit Block Size")]
class  NdisTransmitBlockSize
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
    
    [read,
        Description("The minimum number of bytes that a single net packet occupies in the transmit buffer space of the NIC."),
        WmiDataId(1)]    uint32    NdisTransmitBlockSize;
};

[WMI, Dynamic, Provider("WMIProv"), guid("{5ec1035d-a61a-11d0-8dd4-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("NDIS Receive Block Size")]
class  NdisReceiveBlockSize
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
    
    [read,
        Description("The amount of storage, in bytes, that a single packet occupies in the receive buffer space of the NIC."),
        WmiDataId(1)]    uint32    NdisReceiveBlockSize;
};

[WMI, Dynamic, Provider("WMIProv"), guid("{5ec1035e-a61a-11d0-8dd4-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("NDIS Vendor ID")]
class  NdisVendorID
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
    
    [read,
        Description("A three-byte IEEE-registered vendor code, followed by a single byte the vendor assigns to identify a particular NIC."),
        WmiDataId(1)]    uint32    NdisVendorID;
};

[WMI, Dynamic, Provider("WMIProv"), guid("{5ec1035f-a61a-11d0-8dd4-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("NDIS Vendor Description")]
class  NdisVendorDescription
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
    
    [read,
        Description("Zero-terminated string describing the NIC."),
        WmiDataId(1)]    string    NdisVendorDescription;
};

[WMI, Dynamic, Provider("WMIProv"), guid("{5ec10360-a61a-11d0-8dd4-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("NDIS Current Packet Filter")]
class  NdisCurrentPacketFilter
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
    
    [read,
        Description("Current packet types that will be received and indicated by the NIC."),
        WmiDataId(1)]    uint32    NdisCurrentPacketFilter;

//
//  This is an inclusive OR of the following types:
//
//      NDIS_PACKET_TYPE_DIRECTED               0x00000001
//      NDIS_PACKET_TYPE_MULTICAST              0x00000002
//      NDIS_PACKET_TYPE_ALL_MULTICAST          0x00000004
//      NDIS_PACKET_TYPE_BROADCAST              0x00000008
//      NDIS_PACKET_TYPE_SOURCE_ROUTING         0x00000010
//      NDIS_PACKET_TYPE_PROMISCUOUS            0x00000020
//      NDIS_PACKET_TYPE_SMT                    0x00000040
//      NDIS_PACKET_TYPE_ALL_LOCAL              0x00000080
//      NDIS_PACKET_TYPE_GROUP                  0x00001000
//      NDIS_PACKET_TYPE_ALL_FUNCTIONAL         0x00002000
//      NDIS_PACKET_TYPE_FUNCTIONAL             0x00004000
//      NDIS_PACKET_TYPE_MAC_FRAME              0x00008000
//
};

[WMI, Dynamic, Provider("WMIProv"), guid("{5ec10361-a61a-11d0-8dd4-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("NDIS Current Lookahead")]
class  NdisCurrentLookahead
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
    
    [read,
        Description("The number of bytes of received packet data, excluding the header, that will be indicated to the protocol driver."),
        WmiDataId(1)]    uint32    NdisCurrentLookahead;
};

[WMI, Dynamic, Provider("WMIProv"), guid("{5ec10362-a61a-11d0-8dd4-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("NDIS Driver Version")]
class  NdisDriverVersion
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
    
    [read,
        Description("The NDIS version in use by the NIC driver."),
        WmiDataId(1)]    uint16    NdisDriverVersion;
};

[WMI, Dynamic, Provider("WMIProv"), guid("{5ec10363-a61a-11d0-8dd4-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("NDIS Maximum Packet Total Size")]
class  NdisMaximumTotalSize
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
    
    [read,
        Description("The maximum total packet length, in bytes, the NIC supports, including the header."),
        WmiDataId(1)]    uint32    NdisMaximumTotalSize;
};

//
//  This is an inclusive OR of the following types:
//
//      NDIS_PROT_OPTION_ESTIMATED_LENGTH       0x00000001
//      NDIS_PROT_OPTION_NO_LOOPBACK            0x00000002
//      NDIS_PROT_OPTION_NO_RSVD_ON_RCVPKT      0x00000004
//

[WMI, Dynamic, Provider("WMIProv"), guid("{5ec10365-a61a-11d0-8dd4-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("NDIS MAC Options")]
class  NdisMacOptions
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
    
    [read,
        Description("A bitmask that defines optional properties of the underlying driver or its NIC."),
        WmiDataId(1)]    uint32    NdisMacOptions;

//
//  This is an inclusive OR of the following types:
//  
//      NDIS_MAC_OPTION_COPY_LOOKAHEAD_DATA     0x00000001
//      NDIS_MAC_OPTION_RECEIVE_SERIALIZED      0x00000002
//      NDIS_MAC_OPTION_TRANSFERS_NOT_PEND      0x00000004
//      NDIS_MAC_OPTION_NO_LOOPBACK             0x00000008
//      NDIS_MAC_OPTION_FULL_DUPLEX             0x00000010
//      NDIS_MAC_OPTION_EOTX_INDICATION         0x00000020
//      NDIS_MAC_OPTION_RESERVED                0x80000000
//
};

[WMI, Dynamic, Provider("WMIProv"), guid("{5ec10366-a61a-11d0-8dd4-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("NDIS Media Connect Status")]
class  NdisMediaConnectStatus
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
    
    [read,
        Description("The connection status of the NIC on the network."),
        WmiEnum{"0=NdisMediaStateConnected",
                "1=NdisMediaStateDisconnected"},
        WmiDataId(1)]    uint32    NdisMediaConnectStatus;

//
//
//
// Defines the state of the LAN media
//
//  typedef enum _NDIS_MEDIA_STATE
//  {
//      NdisMediaStateConnected,
//      NdisMediaStateDisconnected
//  } NDIS_MEDIA_STATE, *PNDIS_MEDIA_STATE;
//
//
};

[WMI, Dynamic, Provider("WMIProv"), guid("{5ec10367-a61a-11d0-8dd4-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("NDIS Maximum Send Packets")]
class  NdisMaximumSendPackets
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
    
    [read,
        Description("The maximum number of send packets the MiniportSendPackets function can accept."),
        WmiDataId(1)]    uint32    NdisMaximumSendPackets;
};

[WMI, Dynamic, Provider("WMIProv"), guid("{447956f9-a61b-11d0-8dd4-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("NDIS Vendor's Driver Version")]
class  NdisVendorDriverVersion
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
    
    [read,
        Description("The vendor-assigned version number of the NIC driver."),
        WmiDataId(1)]    uint32    NdisVendorDriverVersion;
};

[WMI, Dynamic, Provider("WMIProv"), guid("{447956fa-a61b-11d0-8dd4-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("NDIS Transmits OK")]
class  NdisTransmitsOk
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
    
    [read,
        Description("The number of frames transmitted without errors"),
        WmiDataId(1)]    uint64    NdisTransmitsOk;
};

[WMI, Dynamic, Provider("WMIProv"), guid("{447956fb-a61b-11d0-8dd4-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("NDIS Receives OK")]
class  NdisReceivesOk
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
    
    [read,
        Description("The number of frames the NIC receives without errors and indicates to bound protocols."),
        WmiDataId(1)]    uint64    NdisReceivesOk;
};

[WMI, Dynamic, Provider("WMIProv"), guid("{447956fc-a61b-11d0-8dd4-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("NDIS Transmit Errors")]
class  NdisTransmitsError
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
    
    [read,
        Description("The number of frames a NIC fails to transmit."),
        WmiDataId(1)]    uint32    NdisTransmitsError;
};

[WMI, Dynamic, Provider("WMIProv"), guid("{447956fd-a61b-11d0-8dd4-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("NDIS Receive Errors")]
class  NdisReceiveError
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
    
    [read,
        Description("The number of frames a NIC receives but does not indicate to the protocols due to errors."),
        WmiDataId(1)]    uint32    NdisReceiveError;
};

[WMI, Dynamic, Provider("WMIProv"), guid("{447956fe-a61b-11d0-8dd4-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("NDIS Receive No Buffer")]
class  NdisReceiveNoBuffer
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
    
    [read,
        Description("The number of frames the NIC cannot receive due to lack of NIC receive buffer space."),
        WmiDataId(1)]    uint32    NdisReceiveNoBuffer;
};

///
///
/// CoNDIS general GUIDs
///
///

[WMI, Dynamic, Provider("WMIProv"), guid("{791ad192-e35c-11d0-9692-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("CoNDIS Hardware Status")]
class  NdisCoHardwareStatus
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
    
    [read,
     Description("Current hardware status of the underlying NIC."),
        WmiDataId(1)]    uint32 NdisCoHardwareStatus;
};


[WMI, Dynamic, Provider("WMIProv"), guid("{791ad193-e35c-11d0-9692-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("CoNDIS Media Types Supported")]
class  NdisCoMediaSupported
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
    
    [read,
        Description("Number of media types supported."),
        WmiDataId(1)]    uint32  NumberElements;
    [read,
        Description("List of media types the NIC supports."),
        WmiDataId(2),
        WmiSizeIs("NumberElements")]    uint32    NdisCoMediaSupported[];
};

[WMI, Dynamic, Provider("WMIProv"), guid("{791ad194-e35c-11d0-9692-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("CoNDIS Media Types In Use")]
class  NdisCoMediaInUse
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
    
    [read,
        Description("Number of media types in use."),
        WmiDataId(1)]    uint32  NumberElements;
    [read,
        Description("List of media types the NIC is currently supporting."),
        WmiDataId(2),
        WmiSizeIs("NumberElements")]    uint32    NdisCoMediaInUse[];
};

[WMI, Dynamic, Provider("WMIProv"), guid("{791ad195-e35c-11d0-9692-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("CoNDIS Link Speed")]
class  NdisCoLinkSpeed
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
    
    [read,
        Description("The maximum inbound and outbound speeds of the NIC (kbps)."),
        WmiDataId(1)]   NetworkLinkSpeed    NdisCoLinkSpeed;
};

[WMI, Dynamic, Provider("WMIProv"), guid("{791ad196-e35c-11d0-9692-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("CoNDIS Vendor ID")]
class  NdisCoVendorId
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
    
    [read,
        Description("A three-byte IEEE-registered vendor code, followed by a single byte the vendor assigns to identify a particular NIC."),
        WmiDataId(1)]    uint32    NdisCoVendorID;
};

[WMI, Dynamic, Provider("WMIProv"), guid("{791ad197-e35c-11d0-9692-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("CoNDIS Vendor Description")]
class  NdisCoVendorDescription
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
    
    [read,
        Description("Zero-terminated string describing the NIC."),
        WmiDataId(1)]    string    NdisCoVendorDescription;
};

[WMI, Dynamic, Provider("WMIProv"), guid("{791ad198-e35c-11d0-9692-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("CoNDIS Driver Version")]
class  NdisCoDriverVersion
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
    
    [read,
        Description("The NDIS version in use by the NIC driver."),
        WmiDataId(1)]    uint32    NdisCoDriverVersion;
};

[WMI, Dynamic, Provider("WMIProv"), guid("{791ad19a-e35c-11d0-9692-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("CoNDIS MAC Options")]
class  NdisCoMacOptions
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
    
    [read,
        Description("A bitmask that defines optional properties of the underlying driver or its NIC."),
        WmiDataId(1)]    uint32    NdisCoMacOptions;
//
//
//  NDIS MAC option bits for OID_GEN_CO_MAC_OPTIONS.
//
//      #define NDIS_CO_MAC_OPTION_DYNAMIC_LINK_SPEED   0x00000001
//
//
};

[WMI, Dynamic, Provider("WMIProv"), guid("{791ad19b-e35c-11d0-9692-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("CoNDIS Media Connect Status")]
class  NdisCoMediaConnectStatus
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
    
    [read,
        Description("The connection status of the NIC on the network."),
        WmiEnum{"0=NdisMediaStateConnected",
                "1=NdisMediaStateDisconnected"},
        WmiDataId(1)]    uint32    NdisCoMediaConnectStatus;
//
//
//
// Defines the state of the LAN media
//
//  typedef enum _NDIS_MEDIA_STATE
//  {
//      NdisMediaStateConnected,
//      NdisMediaStateDisconnected
//  } NDIS_MEDIA_STATE, *PNDIS_MEDIA_STATE;
//
};

[WMI, Dynamic, Provider("WMIProv"), guid("{791ad19c-e35c-11d0-9692-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("CoNDIS Vendor's Driver Version")]
class  NdisCoVendorDriverVersion
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
    
    [read,
        Description("The vendor-assigned version number of the NIC driver."),
        WmiDataId(1)]    uint32    NdisCoVendorDriverVersion;
};

[WMI, Dynamic, Provider("WMIProv"), guid("{791ad19d-e35c-11d0-9692-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("CoNDIS Minimum Link Speed")]
class  NdisCoMinimumLinkSpeed
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
    
    [read,
        Description("The maximum inbound and outbound speeds of the NIC (kbps)."),
        WmiDataId(1)]   NetworkLinkSpeed    NdisCoMinimumLinkSpeed;
};

[WMI, Dynamic, Provider("WMIProv"), guid("{0a214805-e35f-11d0-9692-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("CoNDIS Transmits PDUs OK")]
class  NdisCoTransmitPdusOk
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
    
    [read,
        Description("The number of PDUs transmitted without errors"),
        WmiDataId(1)]    uint64    NdisCoTransmitPdusOk;
};

[WMI, Dynamic, Provider("WMIProv"), guid("{0a214806-e35f-11d0-9692-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("CoNDIS Receive PDUs OK")]
class  NdisCoReceivePdusOk
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
    
    [read,
        Description("The number of PDUs the NIC receives without errors and indicates to bound protocols."),
        WmiDataId(1)]    uint64    NdisCoReceivePdusOk;
};

[WMI, Dynamic, Provider("WMIProv"), guid("{0a214807-e35f-11d0-9692-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("CoNDIS Transmit PDU Errors")]
class  NdisCoTransmitPduErrors
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
    
    [read,
        Description("The number of PDUs a NIC fails to transmit."),
        WmiDataId(1)]    uint32    NdisCoTransmitPduErrors;
};

[WMI, Dynamic, Provider("WMIProv"), guid("{0a214808-e35f-11d0-9692-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("CoNDIS Receive PDU Errors")]
class  NdisCoReceivePduErrors
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
    
    [read,
        Description("The number of PDUs a NIC receives but does not indicate to the protocols due to errors."),
        WmiDataId(1)]    uint32    NdisCoReceivePduErrors;
};

[WMI, Dynamic, Provider("WMIProv"), guid("{0a214809-e35f-11d0-9692-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("CoNDIS Receive PDUs No Buffer")]
class  NdisCoReceivePdusNoBuffer
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
    
    [read,
        Description("The number of PDUs the NIC cannot receive due to lack of NIC receive buffer space."),
        WmiDataId(1)]    uint32    NdisCoReceivePdusNoBuffer;
};

///
///
/// ATM media specific GUIDs
///
///
[WMI, Dynamic, Provider("WMIProv"), guid("{791ad19e-e35c-11d0-9692-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("NDIS ATM Supported VC Rates")]
class  NdisAtmSupportedVcRates
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
    
    [read,
        Description("Minimum cell rate supported."),
        WmiDataId(1)]    uint32 MinCellRate;

    [read,
        Description("Maximum cell rate supported."),
        WmiDataId(2)]   uint32  MaxCellRate;
};

[WMI, Dynamic, Provider("WMIProv"), guid("{791ad19f-e35c-11d0-9692-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("NDIS ATM Supported Service Category")]
class  NdisAtmSupportedServiceCategory
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
    
    [read,
        Description("Bit mask defining the service categories supported by the hardware."),
        WmiDataId(1)]    uint32 NdisAtmSupportedServiceCategory;

//
//  This can be a combination of following defines:
//
//      #define ATM_SERVICE_CATEGORY_CBR    1   // Constant Bit Rate
//      #define ATM_SERVICE_CATEGORY_VBR    2   // Variable Bit Rate
//      #define ATM_SERVICE_CATEGORY_UBR    4   // Unspecified Bit Rate
//      #define ATM_SERVICE_CATEGORY_ABR    8   // Available Bit Rate
//
};

[WMI, Dynamic, Provider("WMIProv"), guid("{791ad1a0-e35c-11d0-9692-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("NDIS ATM Supported AAL Types")]
class  NdisAtmSupportedAalTypes
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
    
    [read,
        Description("Bit mask defining the AAL types supported by the hardware."),
        WmiDataId(1)]    uint32 NdisAtmSupportedAalTypes;
//
//  This can be a combination of the following defines:
//
//      #define AAL_TYPE_AAL0           1
//      #define AAL_TYPE_AAL1           2
//      #define AAL_TYPE_AAL34          4
//      #define AAL_TYPE_AAL5           8
//
};

[WMI, Dynamic, Provider("WMIProv"), guid("{791ad1a1-e35c-11d0-9692-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("NDIS ATM Hardware Current Address")]
class  NdisAtmHardwareCurrentAddress
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
    
    [read,
        Description("The address of the NIC encoded in the hardware."),
        WmiDataId(1)]    NetworkAddress     NdisAtmHardwareCurrentAddress;
};

[WMI, Dynamic, Provider("WMIProv"), guid("{791ad1a2-e35c-11d0-9692-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("NDIS ATM Maximum Active VCs")]
class  NdisAtmMaxActiveVcs
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
    
    [read,
        Description("Maximum number of active VCs the adapter can support."),
        WmiDataId(1)]    uint32 NdisAtmMaxActiveVcs;
};

[WMI, Dynamic, Provider("WMIProv"), guid("{791ad1a3-e35c-11d0-9692-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("NDIS ATM Maximum Active VCI Bits")]
class  NdisAtmMaxActiveVciBits
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
    
    [read,
        Description("The number of bits controllable in the VCI field of the cell header."),
        WmiDataId(1)]    uint32 NdisAtmMaxActiveVciBits;
};

[WMI, Dynamic, Provider("WMIProv"), guid("{791ad1a4-e35c-11d0-9692-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("NDIS ATM Maximum Active VPI Bits")]
class  NdisAtmMaxActiveVpiBits
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
    
    [read,
        Description("The number of bits controllable in the VPI field of the cell header."),
        WmiDataId(1)]   uint32  NdisAtmMaxActiveVpiBits;
};

[WMI, Dynamic, Provider("WMIProv"), guid("{791ad1a5-e35c-11d0-9692-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("NDIS ATM Maximum AAL0 Packet Size")]
class  NdisAtmMaxAal0PacketSize
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
    
    [read,
        Description("Maximum supported size for AAL0 packets."),
        WmiDataId(1)]    uint32 NdisAtmMaxAal0PacketSize;
};

[WMI, Dynamic, Provider("WMIProv"), guid("{791ad1a6-e35c-11d0-9692-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("NDIS ATM Maximum AAL1 Packet Size")]
class  NdisAtmMaxAal1PacketSize
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
    
    [read,
        Description("Maximum supported size for AAL1 packets."),
        WmiDataId(1)]    uint32 NdisAtmMaxAal1PacketSize;
};

[WMI, Dynamic, Provider("WMIProv"), guid("{791ad1a7-e35c-11d0-9692-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("NDIS ATM Maximum AAL3/4 Packet Size")]
class  NdisAtmMaxAal34PacketSize
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
    
    [read,
        Description("Maximum supported size for AAL3/4 packets."),
        WmiDataId(1)]    uint32 NdisAtmMaxAal34PacketSize;
};

[WMI, Dynamic, Provider("WMIProv"), guid("{791ad191-e35c-11d0-9692-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("NDIS ATM Maximum AAL5 Packet Size")]
class  NdisAtmMaxAal5PacketSize
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
    
    [read,
        Description("Maximum supported size for AAL5 packets."),
        WmiDataId(1)]    uint32 NdisAtmMaxAal5PacketSize;
};


[WMI, Dynamic, Provider("WMIProv"), guid("{0a21480a-e35c-11d0-9692-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("NDIS ATM Receive Cells OK")]
class  NdisAtmReceiveCellsOk
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
    
    [read,
        Description("The number of cells the NIC has received without errors."),
        WmiDataId(1)]    uint64 NdisAtmReceiveCellsOk;
};

[WMI, Dynamic, Provider("WMIProv"), guid("{0a21480b-e35c-11d0-9692-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("NDIS ATM Transmit Cells OK")]
class  NdisAtmTransmitCellsOk
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
    
    [read,
        Description("The number of cells the NIC has transmitted without errors."),
        WmiDataId(1)]    uint64 NdisAtmTransmitCellsOk;
};

[WMI, Dynamic, Provider("WMIProv"), guid("{0a21480c-e35c-11d0-9692-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("NDIS ATM Receive Cells Dropped")]
class  NdisAtmReceiveCellsDropped
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
    
    [read,
        Description("The number of receive cells the NIC has dropped."),
        WmiDataId(1)]    uint64 NdisAtmReceiveCellsDropped;
};

///
///
///     Ethernet specific GUIDs
///
///

[WMI, Dynamic, Provider("WMIProv"), guid("{447956ff-a61b-11d0-8dd4-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("NDIS Ethernet Permanent Address")]
class  NdisEthernetPermanentAddress
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
    
    [read,
        Description("The address of the NIC encoded in the hardware."),
        WmiDataId(1)]    NetworkAddress     NdisPermanentAddress;
};

[WMI, Dynamic, Provider("WMIProv"), guid("{44795700-a61b-11d0-8dd4-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("NDIS Ethernet Current Address")]
class  NdisEthernetCurrentAddress
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
    
    [read,
        Description("The address the NIC is currently using."),
        WmiDataId(1)]    NetworkAddress     NdisCurrentAddress;
};

[WMI, Dynamic, Provider("WMIProv"), guid("{44795701-a61b-11d0-8dd4-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("NDIS Ethernet Multicast List")]
class  NdisEthernetMulticastList
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
    
    [read,
        Description("Number of multicast addresses enabled on the NIC."),
        WmiDataId(1)] uint32 NumberElements;

    [read,
        Description("The multicast address list on the NIC enabled for packet reception."),
        WmiDataId(2),
        WmiSizeIs("NumberElements")]    NetworkAddress NdisMulticastList[];
};

[WMI, Dynamic, Provider("WMIProv"), guid("{44795702-a61b-11d0-8dd4-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("Adpater Ethernet Maximum Multicast List Size")]
class  NdisEthernetMaximumMulticastListSize
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
    
    [read,
        Description("The maximum number of multicast addresses the NIC driver can manage."),
        WmiDataId(1)]    uint32    NdisEthernetMaximumMulticastListSize;
};

[WMI, Dynamic, Provider("WMIProv"), guid("{5ec10365-a61b-11d0-8dd4-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("NDIS MAC Options")]
class  NdisMacOptions
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
    
    [read,
        Description("Features supported by the underlying driver."),
        WmiDataId(1)]    uint32    NdisMacOptions;

//
//  Supported values:
//
//              NDIS_MAC_OPTION_COPY_LOOKAHEAD_DATA     0x00000001
//              NDIS_MAC_OPTION_RECEIVE_SERIALIZED      0x00000002
//              NDIS_MAC_OPTION_TRANSFERS_NOT_PEND      0x00000004
//              NDIS_MAC_OPTION_NO_LOOPBACK             0x00000008
//              NDIS_MAC_OPTION_FULL_DUPLEX             0x00000010
//              NDIS_MAC_OPTION_EOTX_INDICATION         0x00000020
//              NDIS_MAC_OPTION_8021P_PRIORITY          0x00000040
//              NDIS_MAC_OPTION_RESERVED                0x80000000
//
};

[WMI, Dynamic, Provider("WMIProv"), guid("{44795703-a61b-11d0-8dd4-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("NDIS Ethernet MAC Options")]
class  NdisEthernetMacOptions
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
    
    [read,
        Description("Features supported by the underlying driver, which could be emulating Ethernet."),
        WmiDataId(1)]    uint32    NdisEthernetMacOptions;

//
//  Supported values:
//
//      NDIS_802_3_MAC_OPTION_PRIORITY      0x00000001
//
};

[WMI, Dynamic, Provider("WMIProv"), guid("{44795704-a61b-11d0-8dd4-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("NDIS Ethernet Receive Error Alignment")]
class  NdisEthernetReceiveErrorAlignment
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
    
    [read,
        Description("The number of frames received with alignment errors."),
        WmiDataId(1)]    uint32    NdisEthernetReceiveErrorAlignment;
};

[WMI, Dynamic, Provider("WMIProv"), guid("{44795705-a61b-11d0-8dd4-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("NDIS Ethernet One Transmit collision")]
class    NdisEthernetOneTransmitCollision
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
    
    [read,
        Description("The number of frames successfully transmitted after exactly one collision."),
        WmiDataId(1)]    uint64    NdisEthernetOneTransmitCollision;
};

[WMI, Dynamic, Provider("WMIProv"), guid("{44795706-a61b-11d0-8dd4-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("NDIS Ethernet More Transmit collisions")]
class  NdisEthernetMoreTransmitCollisions
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
    
    [read,
        Description("The number of frames successfully transmitted after more than one collision."),
        WmiDataId(1)]    uint64    NdisEthernetMoreTransmitCollisions;
};

///
///
///     Token Ring specific GUIDs
///
///
[WMI, Dynamic, Provider("WMIProv"), guid("{44795707-a61b-11d0-8dd4-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("NDIS Token Ring Permanent Address")]
class  NdisTokenRingPermanentAddress
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
    
    [read,
        Description("The address of the NIC encoded in the hardware."),
        WmiDataId(1)]    NetworkAddress  NdisPermanentAddress;
};

[WMI, Dynamic, Provider("WMIProv"), guid("{44795708-a61b-11d0-8dd4-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("NDIS Token Ring Current Address")]
class  NdisTokenRingCurrentAddress
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
    
    [read,
        Description("The address the NIC is currently using."),
        WmiDataId(1)]    NetworkAddress     NdisCurrentAddress;
};

[WMI, Dynamic, Provider("WMIProv"), guid("{44795709-a61b-11d0-8dd4-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("NDIS Token Ring Current Functional Address")]
class  NdisTokenRingCurrentFunctional
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
    
    [read,
        Description("The functional address enabled on the NIC for packet reception."),
        WmiDataId(1)]    uint32    NdisTokenRingCurrentFunctional;
};

[WMI, Dynamic, Provider("WMIProv"), guid("{4479570a-a61b-11d0-8dd4-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("NDIS Token Ring Current Group Address")]
class  NdisTokenRingCurrentGroup
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
    
    [read,
        Description("The group address enabled on the NIC for packet reception."),
        WmiDataId(1)]    uint32    NdisTokenRingCurrentGroup;
};

[WMI, Dynamic, Provider("WMIProv"), guid("{4479570b-a61b-11d0-8dd4-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("NDIS Token Ring Last Open Status")]
class  NdisTokenRingLastOpenStatus
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
    
    [read,
        Description("The last open error status returned for a protocol's call to NdisOpenAdapter."),
        WmiDataId(1)]    uint32    NdisTokenRingLastOpenStatus;
};

[WMI, Dynamic, Provider("WMIProv"), guid("{890a36ec-a61c-11d0-8dd4-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("NDIS Token Ring Current Ring Status")]
class  NdisTokenRingCurrentRingStatus
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
    
    [read,
        Description("The last ring status indicated with an NDIS_RING_XXX status code."),
        WmiDataId(1)]    uint32    NdisTokenRingCurrentRingStatus;

//
//  This can be one of the following values:
//
//  NDIS_RING_SIGNAL_LOSS                   0x00008000
//  NDIS_RING_HARD_ERROR                    0x00004000
//  NDIS_RING_SOFT_ERROR                    0x00002000
//  NDIS_RING_TRANSMIT_BEACON               0x00001000
//  NDIS_RING_LOBE_WIRE_FAULT               0x00000800
//  NDIS_RING_AUTO_REMOVAL_ERROR            0x00000400
//  NDIS_RING_REMOVE_RECEIVED               0x00000200
//  NDIS_RING_COUNTER_OVERFLOW              0x00000100
//  NDIS_RING_SINGLE_STATION                0x00000080
//  NDIS_RING_RING_RECOVERY                 0x00000040
//
};

[WMI, Dynamic, Provider("WMIProv"), guid("{acf14032-a61c-11d0-8dd4-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("NDIS Token Ring Current Ring State.")]
class  NdisTokenRingCurrentRingState
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
    
    [read,
        Description("The state of the NIC driver with repsect to entering the ring."),
                WmiEnum{"1=NdisRingStateOpened",
                        "2=NdisRingStateClosed",
                        "3=NdisRingStateOpening",
                        "4=NdisRingStateClosing",
                        "5=NdisRingStateOpenFailure",
                        "6=NdisRingStateRingFailure"},
        WmiDataId(1)]    uint32    NdisTokenRingCurrentRingState;

//
//  This is defined as follows:
//
//      typedef enum _NDIS_802_5_RING_STATE
//      {
//          NdisRingStateOpened = 1,
//          NdisRingStateClosed,
//          NdisRingStateOpening,
//          NdisRingStateClosing,
//          NdisRingStateOpenFailure,
//          NdisRingStateRingFailure
//      } NDIS_802_5_RING_STATE, *PNDIS_802_5_RING_STATE;
//
};

[WMI, Dynamic, Provider("WMIProv"), guid("{acf14033-a61c-11d0-8dd4-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("NDIS Token Ring Line Errors")]
class  NdisTokenRingLineErrors
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
    
    [read,
        Description("Number of frames with an invalid FCS or a code violation."),
        WmiDataId(1)]    uint32    NdisTokenRingLineErrors;
};

[WMI, Dynamic, Provider("WMIProv"), guid("{acf14034-a61c-11d0-8dd4-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("NDIS Token Ring Lost Frames")]
class  NdisTokenRingLostFrames
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
    
    [read,
        Description("The number of frames transmitted that have not circled the ring within the maximum ring latency."),
        WmiDataId(1)]    uint32    NdisTokenRingLostFrames;
};

///
///
///     FDDI specific GUIDs
///
///

[WMI, Dynamic, Provider("WMIProv"), guid("{acf14035-a61c-11d0-8dd4-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("NDIS FDDI Long Permanent Address")]
class  NdisFddiLongPermanentAddress
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
    
    [read,
        Description("The long address of the NIC encoded in the hardware."),
        WmiDataId(1)]    NetworkAddress     NdisPermanentAddress;
};

[WMI, Dynamic, Provider("WMIProv"), guid("{acf14036-a61c-11d0-8dd4-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("NDIS FDDI Long Current Address")]
class  NdisFddiLongCurrentAddress
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
    
    [read,
        Description("The long address the NIC is currently using."),
        WmiDataId(1)]    NetworkAddress     NdisCurrentAddress;
};

[WMI, Dynamic, Provider("WMIProv"), guid("{acf14037-a61c-11d0-8dd4-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("NDIS FDDI Long Multicast List")]
class  NdisFddiLongMulticastList
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
    
    [read,
        Description("Number of multicast addresses enabled on the NIC."),
        WmiDataId(1)] uint32 NumberElements;
    [read,
        Description("The multicast long address list on the NIC enabled for packet reception."),
        WmiDataId(2), WmiSizeIs("NumberElements")]
                NetworkAddress NdisMulticastList[];
};

[WMI, Dynamic, Provider("WMIProv"), guid("{acf14038-a61c-11d0-8dd4-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("NDIS FDDI Long Maximum List Size")]
class  NdisFddiLongMaximumListSize
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
    
    [read,
        Description("The maximum number of multicast long addresses the NIC driver can manage."),
        WmiDataId(1)]    uint32    NdisFddiLongMaximumListSize;
};

[WMI, Dynamic, Provider("WMIProv"), guid("{acf14039-a61c-11d0-8dd4-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("NDIS FDDI Short Permanent Address")]
class  NdisFddiShortPermanentAddress
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
    
    [read,
        Description("The short address of the NIC encoded in the hardware."),
        WmiDataId(1)]    NetworkShortAddress     NdisPermanentAddress;
};

[WMI, Dynamic, Provider("WMIProv"), guid("{acf1403a-a61c-11d0-8dd4-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("NDIS FDDI Short Current Address")]
class  NdisFddiShortCurrentAddress
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
    
    [read,
        Description("The short address the NIC is currently using."),
        WmiDataId(1)]    NetworkShortAddress     NdisCurrentAddress;
};

[WMI, Dynamic, Provider("WMIProv"), guid("{acf1403b-a61c-11d0-8dd4-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("NDIS FDDI Short Multicast List")]
class  NdisFddiShortMulticastList
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
    
    [read,
        Description("Number of multicast short addresses enabled on the NIC."),
        WmiDataId(1)] uint32 NumberElements;
    [read,
        Description("The multicast short address list on the NIC enabled for packet reception."),
        WmiDataId(2),
        WmiSizeIs("NumberElements")]    NetworkShortAddress NdisMulticastList[];
};

[WMI, Dynamic, Provider("WMIProv"), guid("{acf1403c-a61c-11d0-8dd4-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("NDIS FDDI Short Maximum List Size")]
class  NdisFddiShortMaximumListSize
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
    
    [read,
        Description("The maximum number of multicast short addresses the NIC driver can manage."),
        WmiDataId(1)]    uint32    NdisFddiShortMaximumListSize;
};

[WMI, Dynamic, Provider("WMIProv"), guid("{acf1403d-a61c-11d0-8dd4-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("NDIS FDDI Attachment Type")]
class  NdisFddiAttachmentType
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
    
    [read,
        Description("Defines the attachment of the NIC to the network."),
                WmiEnum{"1=NdisFddiTypeIsolated",
                        "2=NdisFddiTypeLocalA",
                        "3=NdisFddiTypeLocalB",
                        "4=NdisFddiTypeLocalAB",
                        "5=NdisFddiTypeLocalS",
                        "6=NdisFddiTypeWrapA",
                        "7=NdisFddiTypeWrapB",
                        "8=NdisFddiTypeWrapAB",
                        "9=NdisFddiTypeWrapS",
                        "10=NdisFddiTypeCWrapA",
                        "11=NdisFddiTypeCWrapB",
                        "12=NdisFddiTypeCWrapS",
                        "13=NdisFddiTypeThrough"},
        WmiDataId(1)]    uint32    NdisFddiAttachmentType;

//
//  This can be of the following type:
//
//      typedef enum _NDIS_FDDI_ATTACHMENT_TYPE
//      {
//          NdisFddiTypeIsolated = 1,
//          NdisFddiTypeLocalA,
//          NdisFddiTypeLocalB,
//          NdisFddiTypeLocalAB,
//          NdisFddiTypeLocalS,
//          NdisFddiTypeWrapA,
//          NdisFddiTypeWrapB,
//          NdisFddiTypeWrapAB,
//          NdisFddiTypeWrapS,
//          NdisFddiTypeCWrapA,
//          NdisFddiTypeCWrapB,
//          NdisFddiTypeCWrapS,
//          NdisFddiTypeThrough
//      } NDIS_FDDI_ATTACHMENT_TYPE, *PNDIS_FDDI_ATTACHMENT_TYPE;
//
};

[WMI, Dynamic, Provider("WMIProv"), guid("{acf1403e-a61c-11d0-8dd4-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("NDIS FDDI Upstream Node Long")]
class  NdisFddiUpstreamNodeLong
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
    
    [read,
        Description("The long address of the station above this NIC on the ring or zero if the address is unknown."),
        WmiDataId(1)]    NetworkAddress  NdisFddiUpstreamNodeLong;
};

[WMI, Dynamic, Provider("WMIProv"), guid("{acf1403f-a61c-11d0-8dd4-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("NDIS FDDI Downstream Node Long")]
class  NdisFddiDownstreamNodeLong
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
    
    [read,
        Description("The long address of the station below this NIC on the ring or zero if the address is unknown."),
        WmiDataId(1)]    NetworkAddress  NdisFddiDownstreamNodeLong;
};

[WMI, Dynamic, Provider("WMIProv"), guid("{acf14040-a61c-11d0-8dd4-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("NDIS FDDI Frame Errors")]
class  NdisFddiFrameErrors
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
    
    [read,
        Description("The number of frames detected in error by this NIC that have not been detected in error by another device on the ring."),
        WmiDataId(1)]    uint32    NdisFddiFrameErrors;
};

[WMI, Dynamic, Provider("WMIProv"), guid("{acf14041-a61c-11d0-8dd4-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("NDIS FDDI Frames Lost")]
class  NdisFddiFramesLost
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
    
    [read,
        Description("The number of times this NIC detected a format error during frame reception such that the frame was stripped."),
        WmiDataId(1)]    uint32    NdisFddiFramesLost;
};

[WMI, Dynamic, Provider("WMIProv"), guid("{acf14042-a61c-11d0-8dd4-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("NDIS FDDI Ring Management State")]
class  NdisFddiRingManagmentState
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
    
    [read,
        Description("Defines the current state of the Ring Management state machine."),
                WmiEnum{"1=NdisFddiRingIsolated",
                        "2=NdisFddiRingNonOperational",
                        "3=NdisFddiRingOperational",
                        "4=NdisFddiRingDetect",
                        "5=NdisFddiRingNonOperationalDup",
                        "6=NdisFddiRingOperationalDup",
                        "7=NdisFddiRingDirected",
                        "8=NdisFddiRingTrac"},
        WmiDataId(1)]    uint32    NdisFddiRingManagmentState;

//
//  This can be of the following type:
//
//      typedef enum _NDIS_FDDI_RING_MGT_STATE
//      {
//          NdisFddiRingIsolated = 1,
//          NdisFddiRingNonOperational,
//          NdisFddiRingOperational,
//          NdisFddiRingDetect,
//          NdisFddiRingNonOperationalDup,
//          NdisFddiRingOperationalDup,
//          NdisFddiRingDirected,
//          NdisFddiRingTrace
//      } NDIS_FDDI_RING_MGT_STATE, *PNDIS_FDDI_RING_MGT_STATE;
//
};

[WMI, Dynamic, Provider("WMIProv"), guid("{acf14043-a61c-11d0-8dd4-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("NDIS FDDI LCT Failures")]
class  NdisFddiLctFailures
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
    
    [read,
        Description("The count of the consecutive times the link confidence test (LCT) has failed during connection management."),
        WmiDataId(1)]    uint32    NdisFddiLctFailures;
};

[WMI, Dynamic, Provider("WMIProv"), guid("{acf14044-a61c-11d0-8dd4-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("NDIS FDDI LEM Rejects")]
class  NdisFddiLemRejects
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
    
    [read,
        Description("The link error monitor (LEM) count of times that a link was rejected."),
        WmiDataId(1)]    uint32    NdisFddiLemRejects;
};

[WMI, Dynamic, Provider("WMIProv"), guid("{acf14045-a61c-11d0-8dd4-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("NDIS FDDI LConnect State")]
class  NdisFddiLConnectionState
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
    
    [read,
        Description("Defines the state of this port's Physical Connection Management (PCM) state machine."),
                WmiEnum{"1=NdisFddiStateOff",
                        "2=NdisFddiStateBreak",
                        "3=NdisFddiStateTrace",
                        "4=NdisFddiStateConnect",
                        "5=NdisFddiStateNext",
                        "6=NdisFddiStateSignal",
                        "7=NdisFddiStateJoin",
                        "8=NdisFddiStateVerify",
                        "9=NdisFddiStateActive",
                        "10=NdisFddiStateMaintenance"},
        WmiDataId(1)]    uint32    NdisFddiLConnectionState;
//
//  This can be of the following type:
//
//      typedef enum _NDIS_FDDI_LCONNECTION_STATE
//      {
//          NdisFddiStateOff = 1,
//          NdisFddiStateBreak,
//          NdisFddiStateTrace,
//          NdisFddiStateConnect,
//          NdisFddiStateNext,
//          NdisFddiStateSignal,
//          NdisFddiStateJoin,
//          NdisFddiStateVerify,
//          NdisFddiStateActive,
//          NdisFddiStateMaintenance
//      } NDIS_FDDI_LCONNECTION_STATE, *PNDIS_FDDI_LCONNECTION_STATE;
//

};


///
///
///     NDIS status specific GUIDs
///
///


[WMI, Dynamic, Provider("WMIProv"), guid("{981f2d76-b1f3-11d0-8dd7-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("NDIS Status Reset Start")]
class  NdisStatusResetStart : WMIEvent
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
};

[WMI, Dynamic, Provider("WMIProv"), guid("{981f2d77-b1f3-11d0-8dd7-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("NDIS Status Reset End")]
class  NdisStatusResetEnd  : WMIEvent
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
};

[WMI, Dynamic, Provider("WMIProv"), guid("{981f2d7d-b1f3-11d0-8dd7-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("NDIS Status Media Connect")]
class  NdisStatusMediaConnect : WMIEvent
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
};

[WMI, Dynamic, Provider("WMIProv"), guid("{981f2d7e-b1f3-11d0-8dd7-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("NDIS Status Media Disconnect")]
class  NdisStatusMediaDisconnect : WMIEvent
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
};

[WMI, Dynamic, Provider("WMIProv"), guid("{981f2d84-b1f3-11d0-8dd7-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("NDIS Status Media Specific Indication")]
class  NdisStatusMediaSpecificIndication  : WMIEvent
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
    
    [read,
        Description("Number of bytes for media specific status indication"),
        WmiDataId(1)]    uint32    NumberElements;
    [read,
        Description("Media specific status information."),
        WmiDataId(2), WmiSizeIs("NumberElements")]    uint8    NdisStatusMediaSpecificIndication[];
};

[WMI, Dynamic, Provider("WMIProv"), guid("{981f2d85-b1f3-11d0-8dd7-00c04fc3358c}"),
 locale("MS\\0x409"),
 WmiExpense(1),
 Description("NDIS Status Link Speed Change")]
class  NdisStatusLinkSpeedChange  : WMIEvent
{
    [key, read]
    string      InstanceName;
    
    [read]
    boolean     Active;
    
    [read,
        Description("New inbound and outbound link speeds for the adapter."),
        WmiDataId(1)]    NetworkLinkSpeed   NdisStatusLinkSpeedChange;
};


