 /************************************************************************
*                                                                       *
*               INTEL CORPORATION PROPRIETARY INFORMATION               *
*  This software is supplied under the terms of a license agreement or  *
*  nondisclosure agreement with Intel Corporation and may not be copied *
*   or disclosed except in accordance with the terms of that agreement. *
*        Copyright (c) 2005 Intel Corporation. All Rights Reserved.     *
*                                                                       *
************************************************************************/
/***********************************************************************\
*
* NAME:	C2ICr.mof	
* 
* DESCRIPTION: Master MOF file with class definitions for the 
*			   Intel PRO Network Adapters WMI Provider (802.3 schema).
*
* PREREQUISITE:  C2Cm.mof
*
* NOTE:	This file generates language neutral MOF for cimv2 namespace.
*		This file also generates ENU language specific MFL. 
*
\***********************************************************************/

#pragma namespace ("\\\\.\\Root\\cimv2")

instance of __Win32Provider as $P
{
    Name    = "Ncs2" ;
    ClsId   = "{AF7799A5-A3E7-455C-92B5-8F9D7C127B15}" ;
	Pure = FALSE;
	ImpersonationLevel = 3;
    PerUserInitialization = TRUE;
    UnloadTimeout = "00000000000500.000000:000";
};    

instance of __MethodProviderRegistration
{
    Provider = $P;
};

instance of __InstanceProviderRegistration
{
    Provider = $P;
    SupportsPut = TRUE;
    SupportsGet = TRUE;
    SupportsDelete = TRUE;
    SupportsEnumeration = TRUE;
	QuerySupportLevels = { "WQL:UnarySelect" };
};


// ============================================================================
// Ethernet Adapter Base Class
// ============================================================================
[Abstract, Aggregation,Description("IANet_EthernetAdapter abstract base class objectifies "
"the general network characteristics of the Intel NIC. In this class, "
"the lower level networking properties are presented. Note that only the "
"network relationships are in this class. The controller characteristics "
"are presented separately."): Amended,  LOCALE(0x409)
]
class IANet_EthernetAdapter : CIM_EthernetAdapter
{
	[Override("NetworkAddresses"), MaxLen (64), 
	Description (
	"An array of strings indicating the network addresses for an adapter."):ToSubclass Amended,
	ArrayType ("Indexed"),
	MappingStrings {"MIF.DMTF|Network Adapter 802 Port|001.3"}:ToSubclass,
	ModelCorrespondence {"IANet_EthernetAdapter.NetworkAddressDescription"}:ToSubclass
	]
    string NetworkAddresses[];
    		

	[ Description (
	"MiniPortName represents the Win32 kernel mode service name of the adapter."):ToSubclass Amended
	]
	string MiniPortName;

	[Description (
	"MiniPortInstance distinguishes a network device from other devices of "
	"the same type on a machine. It is a unique string without any "
	"path-separator characters that contains serial-number information, "
	"if supported by the underlying bus, or some kind of location "
	"information. The format of the string is bus specific. "
	"It is persistent across system boots."):ToSubclass Amended
	]
	string MiniPortInstance;	
	 
};






// ============================================================================
// Physical Ethernet Adapter Class
// ============================================================================
[dynamic, provider("Ncs2"), IANet_ModuleIdentifier("Ncs2Core.dll"),  
Description("IANet_PhysicalEthernetAdapter concrete class objectifies "
"the general network characteristics of the Intel NIC. In this class, "
"the lower level networking properties are presented. Note that only the "
"network relationships are in this class. The controller characteristics "
"are presented separately."):Amended,  LOCALE(0x409)
]
class IANet_PhysicalEthernetAdapter : IANet_EthernetAdapter
{

// For CIMv2
		[Propagated("CIM_System.CreationClassName"), 
        MaxLen (256): ToSubclass,
        Description ("The scoping System's CreationClassName."): ToSubclass Amended ]
   string SystemCreationClassName;

        [Propagated("CIM_System.Name"),
        MaxLen (256): ToSubclass,
        Description ("The scoping System's Name.") : ToSubclass Amended]
   string SystemName;

        [MaxLen (256): ToSubclass,
        Description (
        "CreationClassName indicates the name of the class or "
        "the subclass used in the creation of an instance. When "
        "used with the other key properties of this class, this "
        "property allows all instances of this class and its "
        "subclasses to be uniquely identified.") : ToSubclass Amended]
   string CreationClassName;

        [Key, MaxLen (64): ToSubclass,
        Description (
        "An address or other identifying information to uniquely "
        "name the LogicalDevice.") : ToSubclass Amended]
   string DeviceID;

	[Description (
       "Boolean indicating that the Adapter is operating in "
       "full duplex mode."): ToSubclass Amended ]
   boolean FullDuplex;
	
	[Description (
        "Additional availability and status of the Device, beyond that "
        "specified in the Availability property. The Availability "
        "property denotes the primary status and availability of the "
        "Device. In some cases, this will not be sufficient to denote "
        "the complete status of the Device. In those cases, the "
        "AdditionalAvailability property can be used to provide further "
        "information. For example, a Device's primary Availability may "
        "be \"Off line\" (value=8), but it may also be in a low power "
        "state (AdditonalAvailability value=14), or the Device could be "
        "running Diagnostics (AdditionalAvailability value=5, \"In "
        "Test\")."): ToSubclass Amended,
       ValueMap {"1", "2", "3", "4", "5", "6", "7", "8", "9",
                 "10", "11", "12", "13", "14", "15", "16", "17", "18",  
                 "19", "20", "21"}: ToSubclass Amended,
       Values {"Other", "Unknown", "Running/Full Power", "Warning", 
               "In Test", "Not Applicable", "Power Off", "Off Line", 
               "Off Duty", "Degraded", "Not Installed", "Install Error",
               "Power Save - Unknown", "Power Save - Low Power Mode", 
               "Power Save - Standby", "Power Cycle", 
               "Power Save - Warning", "Paused", "Not Ready",
               "Not Configured", "Quiesced"}: ToSubclass Amended, 
       ModelCorrespondence {"CIM_LogicalDevice.Availability"}: ToSubclass]
   uint16 AdditionalAvailability[];
   
   // End For CIMv2

[Description (
		 "PartNumber is the NIC's PBA manufacturing part number"):Amended
	]
   string PartNumber;

	[Description (
		 "PHYDevice indicates the particular PHY used on this NIC"):Amended,
		 ValueMap{"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12",
			"13", "14", "15", "16", "50", "60", "70" }:Amended,
		 Values {
		 /* 0 */ "No PHY detected", 
		 /* 1 */ "Intel 82553 (PHY 100) A or B step",
		 /* 2 */ "Intel 82553 (PHY 100) C step",
		 /* 3 */ "Intel 82503 10Mps",
		 /* 4 */ "National DP83840A (10BaseT and 100Base-TX)", 
		 /* 5 */ "Seeq 80C240 - 100BASE-T4",
		 /* 6 */ "Seeq 80C24 - 10Mps",
	     /* 7 */ "Intel 82555 100Base-TX PHY", 
		 /* 8 */ "Microlinear 10Mps", 
		 /* 9 */ "Level One 10Mbps", 
		 /* 10*/ "National DP83840 100Base-TX, C step", 
		 /* 11*/ "ICS 100Base-TX PHY", 
		 /* 12*/ "Gilad",
		 /* 13*/ "Kinnereth", 
		 /* 14*/ "Kinnereth Plus",
		 /* 15*/ "Other",
		 /* 16*/ "Unknown",
		 /**********/
		 /* 50*/ "Intel 82562 EH Phoneline PLC",
		 /* 60*/ "Intel 82562 ET 100 Base-TX PHY",
		 /* 70*/ "Intel 82562 EM 100 Base-TX PHY"
		 }:Amended
		]
    uint16 PHYDevice;

	[Description (
	"OtherPhyDevice contains the name of the device if the PHYDevice has the value "
	 "'Other'."):Amended
	]
    string OtherPhyDevice;
	
	[Description (
	"Bus Type indicates the bus type"):Amended,
	ValueMap{"0","1","2","3","4","5","6","7"}:Amended,
	Values {"Unknown","ISA","EISA","PCMCIA","CardBus","PCI","PCI-X","PCI Express"}:Amended
	]
	uint16 BusType;
	
	[Description (
	"Negotiated Link Width specifies the negotiated link width of the bus"):Amended,
	ValueMap{"0","1","2","4"}:Amended,
	Values{"Unknown","x1","x2","x4"}:Amended
	]
	uint16 NegotiatedLinkWidth;
	
	[Description (
	"PortNumber indicates the port number on PCIe Quad port adapters"):Amended,
	ValueMap{"0","1","2","3"}:Amended,
	Values{"A","B","C","D"}:Amended
	]
	uint16 PortNumber;
	
	[Description (
	"MediaType indicates the media which interfaces to this phy"):Amended,
	ValueMap{"0", "1", "2", "3", "4", "5"}:Amended,
	Values {"Unknown", "Copper", "Fiber", "Phone Line", "CX4 Copper", "Other"} : Amended
	]
    uint16 MediaType;

	[Description (
	"OtherMediaType contains the media type name of the device if the MediaType "
	"has the value 'Other'."):Amended
	]
    string OtherMediaType;

		[ Description (
		"The Controller ID identifies the Ethernet controller that the adapter uses. "
		"Adapters with different DeviceIDs can have the same Controller ID"):Amended,
		ValueMap{
			"0", 
			"100", "101", "102", "103", "104", "105",
			"200", "201", "202",
			"1000", "1001", "1002","1003", "1004", "1005", "1006", "1007", 
			"1008", "1009", "1010", "1011", "1012", "1013", "1014", "1015", 
			"1016", "1017", "1018", "1019","1020","1021",
			"10000"
			}:Amended,
			Values {
				"Unknown", 

				/* 100 */
				"8255X Controller",
				"Intel 82557 Controller",
				"Intel 82558 Controller", 
				"Intel 82559 Controller", 
				"Intel 82550 Controller",
				"Intel 82551 Controller",

				/* 200 */
				"Intel(R) 82801BA I/O Controller Hub 2",
				"ICH2",
				"Intel(R) 82801BA I/O Controller Hub 2",

				/* 1000 */
				"8254X Controller",
				"Intel 82542 Controller", 
				"Intel 82543 Controller", 
				"Intel 82543 PC Controller",
				"Intel 82544 EI Controller",
				"Intel 82544 PD Controller",
				"Intel 82544 GC Controller",
				"Intel 82540 EM Controller", 
				"Intel 82545 EM Controller", 
				"Intel 82546 EB Controller",
				"Intel 82541 IE Controller",
				"Intel 82540 EP Controller",
				"Intel 82545 GM Controller",
				"Intel 82541 ER Controller",
				"Intel 82547 EI Controller",
				"Intel 82547 GI Controller",
				"Intel 82541 GI Controller",
				"Intel 82546 GB Controller",
				"Intel 82570 EI Controller",
				"Intel 82571 EB Controller",
				"Intel 82572 E1 Controller",
				"Intel 82573 E Controller",

				/* 10000 */
				"Intel 82597 EX Controller"
			}:Amended
		]
	uint32 ControllerID;



[Description (
 	"Adapter status specifies the current status of the adapter."):Amended,
	Bitmap{"1", "2", "4", "16", "32", "1024", "2048"}:Amended,
	Bitvalues {"Installed", "DriverLoaded", "HardwareMissing", 
    "HasDiag", "HasLink", "HasTCOEnabled", "DeviceError"}:Amended,
	ModelCorrespondence {"IANet_PhysicalEthernetAdapter.AdapterStatus"}
	]
    uint32 AdapterStatus;

[Override ("Capabilities"), Description (
	"Capabilities of the PhysicalEthernetAdapter. For example, the "
	"Device may support AlertOnLan, WakeOnLan, Load Balancing "
	"and/or FailOver. If failover or load balancing "
	"capabilities are listed, a SpareGroup (failover) or "
	"ExtraCapacityGroup (load balancing) should also be defined "
	"to completely describe the capability."):Amended, 
	ArrayType ("Indexed"),
	Values {
	/* 0 */ "Unknown", "Other", "AlertOnLan", "WakeOnLan", 
	/* 4 */ "Adapter Fault Tolerance", "Adaptive Load Balancing", 
	/* 6 */ "IPSec Offload", "ASF",
	/* 8 */  "GEC/802.3ad Static Link Aggregation", "Static Link Aggregation",
	/* 10 */ "IEEE 802.3ad Dynamic Link Aggregation", "Checksum Offload",
	/* 12 */ "Switch Fault Tolerance", "Basic AlertOnLan", "AlertOnLan 2",
	/* 15 */ "Security Offload AH", "Security Offload ESP", "Security Payload Tunnel",
	/* 18 */ "Security Payload Transport", "Security IPV4 Packets",
	/* 20 */ "Authentication Algorithm MD5", "Authentication Algorithm SHA1",
	/* 22 */ "Encryption Algorithm EAS", "Encryption Algorithm DES",	
	/* 24 */ "Encryption Algorithm 3DES",
	/* 25 */ "ESP Xmit Checksum Encryption", "ESP Xmit Checksum Authentication",
	/* 27 */ "ESP Receive Checksum Encryption", "ESP Receive Checksum Authentication",
	/* 29 */ "TCO Capability", "Wake Up Capabilities", "IP Checksum Offload",
	/* 32 */ "10 Mbps", "100 Mbps", "1000 Mbps", "10000 Mbps",
	/* 36 */ "Teaming", "VLAN", "IEEE VLAN", "ISL VLAN", "Uninstallable",
	/* 41 */ "Identify Adapter Support", "Cable Test Support", "Diagnostic Support",
	/* 44 */ "Flash support", "ICH Support", "Usage Server", "Vendor Intel", "Phoneline PHY",
	/* 49 */ "Mobile", "PowerManagement Support", "ExpressTeam",
	/* 52 */ "MFO", "Pass Through", "Quad-Port Support", "Dedicated MAC Address",
	/* 56 */ "Jumbo Frame Support","VLAN over Express Team","Signal Quality Test", 
	/* 59 */ "Cable Offline Test", "Adapter is LOM", "Scalable Networking Pack Capability", 
	/* 62 */ "CB Platform Capability",
	/* 63 */ "iSCSI Capability"
	} : Amended, 
	ModelCorrespondence {"IANet_PhysicalEthernetAdapter.CapabilityDescriptions"}
	]
    uint16 Capabilities[];

[Override ("CapabilityDescriptions"), Description (
	"An array of free-form strings providing more detailed "
	"explanations for any of the Physical Ethernet Adapter features "
	"indicated in the Capabilities array. Note, each entry of "
	"this array is related to the entry in the Capabilities "
	"array that is located at the same index."):Amended, 
	ArrayType ("Indexed"), 
	ModelCorrespondence {"IANet_PhysicalEthernetAdapter.Capabilities"}
	]
    string CapabilityDescriptions[];


[Override ("EnabledCapabilities"), Description (
	"Specifies which capabilities are enabled from the list "
	"of all supported ones, defined in the Capabilities array."):Amended, 
	Values {"Unknown", "Other", "AlertOnLan", "WakeOnLan", 
	"FailOver", "LoadBalancing", "IPSec Offload", "ASF",
	"GEC", "FEC", "802.3ad", "Checksum Offload",
	"Switched Fault Tolerant", "Basic AlertOnLan", "AlertOnLan 2"
	"Security Offload AH", "Security Offload ESP", "Security Payload Tunnel",
	"Security Payload Transport", "Security IPV4 Packets",
	"Authentication Algorithm MD5", "Authentication Algorithm SHA1",
	"Encryption Algorithm EAS", "Encryption Algorithm DES",	"Encryption Algorithm 3DES",
	"ESP Xmit Checksum Encryption", "ESP Xmit Checksum Authentication",
	"ESP Receive Checksum Encryption", "ESP Receive Checksum Authentication",
	"TCO Capability", "Wake Up Capabilities", "IP Checksum Offload"}:Amended, 
	ModelCorrespondence {"IANet_PhysicalEthernetAdapter.Capabilities"}
	]
    uint16 EnabledCapabilities[];


[ Description (
	"Hardware status specifies the current status of the hardware"):Amended,
	Values {"Unknown", "Ready", "Initializing", "Reset", 
	"Closing", "Not Ready" }: Amended
	]
	uint32 HardwareStatus;

[Description (
	"An array of IDs of other capabilities.  There is no value map for these - the "
	"meaning can be ascertained from the OtherEnabledCapabilities string array."):Amended,
	ModelCorrespondence {"IANet_PhysicalEthernetAdapter.OtherEnabledCapabilityIDs"}
	]
	uint16 OtherEnabledCapabilityIDs[];

	[Description ("An array of free-form strings used to state "
	"Other Capabilities of the Ethernet Adapter."):Amended,
	ModelCorrespondence {"IANet_PhysicalEthernetAdapter.OtherEnabledCapabilities"}
	]
	string OtherEnabledCapabilities[];

	[Description ("An array of free-form strings used to state "
	"Other Capabilities of the Ethernet Adapter."):Amended,
	ModelCorrespondence {"IANet_PhysicalEthernetAdapter.OtherEnabledCapabilities"}
	]
	string OtherCapabilityDescriptions[];


[Description (
        "SlotID field of the System Slot structure provides a mechanism to correlate the "
	"physical attributes of the slot to its logical access method."):Amended
	]
   	string SlotID;

	[Description (
	"EEPROMVersion contains the EEPROM version of the device."):Amended
	]
	string EEPROMVersion;
	
	[Description("Determines if Express teaming is enabled on this adapter."):Amended,
	ValueMap {"0", "1", "2"}, 
	Values {"Express teaming is not enabled on this adapter",
			"Express teaming is enabled and this adapter is the primary port (initiator) of Express Team",
			"Express teaming is enabled and this adapter is member of an Express Team"}:Amended 
	] 	 
	uint32 ExpressTeaming;

	[Description(
	 "If Express teaming is enabled on this adapter OriginalDisplayName will contain the "
	 "original display name of the adapter. "):Amended]
	string OriginalDisplayName;

	[Description (
	"PCI device Id of the device."):Amended
	]
	string PCIDeviceID ;

	[Description (
        "StaticIPAddress shows the static IP address if Static IP Address is configured, "
	"else this is set to 0.0.0.0."):Amended
	]
   	string StaticIPAddress;
	
	[Description (
        "SubnetMask shows the current conffigured SubnetMask. This field is "
	"populated only if the adapter has a static IP Address configured or "
	"else this is set to 0.0.0.0."):Amended
	]
   	string SubnetMask;
	
	[Description (
	"AdvancedTestCable performs a set of advanced cable tests on a particular "
	"adapter. This test suit is available with 1000 adapters. This method "
	"returns with names of tests and their respective results. "
	"The link can also be down because the 'SpeedDuplex' setting is not set to "
	"'Auto Negotiate'.  The  'bSpeedAndDuplexNotAutomatic' out parameter "
	"will be TRUE if this situation occurs."
	):Amended, implemented 
	]
	uint32 AdvancedTestCable(
		[OUT] boolean		bSpeedAndDuplexNotAutomatic,
	  	[OUT] string	strTestName[],		// for 1000 adapters
		[OUT] string	strTestResult[]	// for 1000 adapters	
	);


[Description (
	"IdentifyAdapter will flash the light on the adapter for a few "
	"seconds to enable the user to identify it.  This method will only "
	"work for physical adapters."):Amended, implemented 
	]
	uint32 IdentifyAdapter( [in] uint16 nSeconds );

	[Description (
	"TestCable performs some diagnostic tests on a particular adapter. "
	"In case of failure this method will return with possible problems, "
	"causes and solutions."
	):Amended, implemented 
	]
	uint32 TestCable( 
		[OUT] string strProblems[],	// for 10/100 adapters
		[OUT] string strCauses[],		// for 10/100 adapters
		[OUT] string strSolutions[]	// for 10/100 adapters
	);	


	[Description (
	"GetPowerUsageOptions detects any optional power usage settings. "
	"For example, power usage for standby, battery operation etc."  
	):Amended, implemented, 
	ModelCorrespondence {"IANet_PhysicalEthernetAdapter.GetPowerUsageOptions"}
	]
	uint32 GetPowerUsageOptions(
	  	[OUT,
        ValueMap {"0","1"}: Amended , 
        Values {"Disabled", "Enabled"}: Amended
	] 
		uint32 AutoPowerSaveModeEnabled,
		[OUT,
        ValueMap {"0","1"}: Amended , 
        Values {"Disabled", "Enabled"}: Amended
	] 
		uint32 ReduceSpeedOnPowerDown,
		[OUT,
        ValueMap {"0","1"} : Amended, 
        Values {"Disabled", "Enabled"}: Amended
	] 
		uint32 SmartPowerDown,
		[OUT,
        ValueMap {"1","2"}: Amended , 
        Values {"Normal Power", "Low Power"}: Amended
	]
		 uint32 SavePowerNowEnabled,
	[OUT,
		 ValueMap {"0","1"}: Amended , 
        Values {"Disabled", "Enabled"}: Amended
	]
		 uint32 EnhancedASPMPowerSaver,
	[OUT,
        ValueMap {"0","1"} : Amended, 
        Values {"Disabled", "BatteryMode"}: Amended
	] 
		uint32 ACBSMode,
	
	[OUT,
        ValueMap {"0","1"} : Amended, 
        Values {"Disabled", "Enabled"}: Amended
	] 
		uint32 LinkSpeedBatterySaver
	);

	[Description (
	"This method can be used to makes changes to the power usage options. "
	"For example, this method could be used to reduce power usage for "
	"standby, battery operation etc. Note power usage settings are "
	"stored and used for every boot."
	):Amended, implemented, 
	ModelCorrespondence {"IANet_PhysicalEthernetAdapter.SetPowerUsageOptions"} 
	]
	uint32 SetPowerUsageOptions(
	 	[IN,
        ValueMap {"0","1"}: Amended , 
        Values {"Disabled", "Enabled"}: Amended
	] 
		uint32 AutoPowerSaveModeEnabled,
		[IN,
        ValueMap {"0","1"}: Amended , 
        Values {"Disabled", "Enabled"}: Amended
	] 
		uint32 ReduceSpeedOnPowerDown,
		[IN,
        ValueMap {"0","1"}: Amended , 
        Values {"Disabled", "Enabled"}: Amended
	] 
		uint32 SmartPowerDown,
		[IN,
        ValueMap {"1","2"}: Amended , 
        Values {"Normal Power", "Low Power"}: Amended
	]
		 uint32 SavePowerNowEnabled,
		[IN,
		 ValueMap {"0","1"}: Amended , 
        Values {"Disabled", "Enabled"}: Amended
	]
		 uint32 EnhancedASPMPowerSaver,
	[IN,
		 ValueMap {"0","1"}: Amended , 
        Values {"Disabled", "BatteryMode"}: Amended
	]
		 uint32 ACBSMode,		 
	[IN,
		 ValueMap {"0","1"}: Amended , 
        Values {"Disabled", "Enabled"}: Amended
	]
		 uint32 LinkSpeedBatterySaver
	);
	
	[Description (
	"EnableExpressTeam method can be used to create Express team on a multi port adapter "
	"by teaming all the ports of this physical adapter when ExpressTeam IN parameter is true."
	"EnableExpressTeam method can be used to delete Express team on a multi port adapter "
	"by removing all the ports of this physical adapter when ExpressTeam IN parameter is false."
	):Amended, implemented, 
	ModelCorrespondence {"IANet_PhysicalEthernetAdapter.EnableExpressTeam"} 
	]
	uint32 ExpressTeam(
	 	[IN,Description("True to create the ExpressTeam, False to delete the ExpressTeam.")
	:Amended] 
		boolean CreateExpressTeam		
	);
	
	[Description (
	"GetExpressTeamInfo method can be used to get the Express team information."
	):Amended, implemented, 
	ModelCorrespondence {"IANet_PhysicalEthernetAdapter.GetExpressTeamInfo"} 
	]
	uint32 GetExpressTeamInfo(
	 	[OUT] 
		boolean ExpressTeam,
		[OUT, 
		 ValueMap {"0", "1", "2"}: Amended , 
		 Values {"Unknown", "Primary", "Secondary"}: Amended]  uint16 TeamPriority,
		[OUT]  uint32 TeamIdentity			
	);	
			
[Description (
	"TestLinkSpeed determines whether adapter is running at full speed. "
	"If the adapter is advertising less than 1 Gigabyte speed this method "
	"states the possible reasons. For example, the Link partner is not capable "
	"of running at 1000 Mbps." 
	):Amended, implemented 
	]
uint32 TestLinkSpeed(
	    [OUT,
        ValueMap {"0","1","2","3","4","5","6","7","8","9"}: Amended , 
        Values {
		/*0*/ "There might be a problem in the device driver preventing 1000Mbs speed. Please attempt to restart the device.",
		/*1*/ "The adapter is running at full speed.",
		/*2*/ "A 1000 Mbps Copper adapter is required for this test.",
		/*3*/ "Autonegotiation is not enabled on the device. The adapter has been configured to force the speed to a low speed.",
		/*4*/ "Autonegotiation has not completed on this device. Either no link is connected to it or the process is not yet completed.",
		/*5*/ "The cable has only two pairs - four are required to run at 1000 Mbps. A Category 5 cable should be used.",
		/*6*/ "The Link partner is not capable of running at 1000 Mbps.",
		/*7*/ "Power Saving mode has been configured and link speed has been reduced.",
		/*8*/ "The adapter is configured to force the speed to a low speed.",
		/*9*/ "The adapter is configured to negotiate the speed with the link partner, but 1000 Mpbs has not been chosen as one of the possible speeds."
		}: Amended
        ]
        uint32 Status,
		[OUT]
        string strStatus
 	);
	[Description (
	"GetWakeOnLanPowerOptions returns WakeOnLan power settings. "
	"For example, information about wakeonlink, wakeonmagicpacket etc.."  
	):Amended, implemented, 
	ModelCorrespondence {"IANet_PhysicalEthernetAdapter.GetWakeOnLanPowerOptions"}
	]
	uint32 GetWakeOnLanPowerOptions(
	  	[OUT,
        ValueMap {"0","1"}: Amended , 
        Values {"Disabled", "Enabled"}: Amended
	] 
		uint32 WakeFromPowerOff,
		[OUT,
        ValueMap {"0","1"}: Amended , 
        Values {"Disabled", "Enabled"}: Amended
	] 
		uint32 WakeOnLink,
		[OUT,
        ValueMap {"0","1"} : Amended, 
        Values {"Disabled", "Enabled"}: Amended
	] 
		uint32 WakeOnMagicPacket,
		[OUT,
        ValueMap {"0","1"}: Amended , 
        Values {"Disabled", "Enabled"}: Amended
	]
		 uint32 WakeOnDirectedPacket
	);
	[Description (
	"This method can be used to makes changes to the WakeOnLan options. "
	"For example, this method could be used to set options like "
	"wakefromPoweroff, wakeOnlink, WakeOnMagicPacket, WakeOnDirectedPacket etc."
	" Note WakeOnLan settings are stored and used for every boot."
	):Amended, implemented, 
	ModelCorrespondence {"IANet_PhysicalEthernetAdapter.SetWakeOnLanPowerOptions"} 
	]
	uint32 SetWakeOnLanPowerOptions(
	 	[IN,
        ValueMap {"0","1"}: Amended , 
        Values {"Disabled", "Enabled"}: Amended
	] 
		uint32 WakeFromPowerOff,
		[IN,
        ValueMap {"0","1"}: Amended , 
        Values {"Disabled", "Enabled"}: Amended
	] 
		uint32 WakeOnLink,
		[IN,
        ValueMap {"0","1"}: Amended , 
        Values {"Disabled", "Enabled"}: Amended
	] 
		uint32 WakeOnMagicPacket,
		[IN,
        ValueMap {"0","1"}: Amended , 
        Values {"Disabled", "Enabled"}: Amended
	]
		 uint32 WakeOnDirectedPacket

	);
	[Description (
	"This method is used to makes changes to the Power management"
	"capabilities during DMIX install so that any upgrade scenarios from "
	"earlier releases will have the right options for all the WakeOnLAN"
	" options and DMIX will not have reinterpret them dynamically"
	):Amended, implemented, 
	ModelCorrespondence {"IANet_PhysicalEthernetAdapter.SetPowerMgmtCapabilities"} 
	]
	uint32 SetPowerMgmtCapabilities();
	[Description (
	"This method can be used to check if SetPowerMgmtCapabilities() needs to be called."
	):Amended, implemented, 
	ModelCorrespondence {"IANet_PhysicalEthernetAdapter.IsSetPowerMgmtCapabilitiesReq"} 
	]
	uint32 IsSetPowerMgmtCapabilitiesReq(
	 	[OUT] 
		boolean bIsSetRequired);
	[Description (
	"This method can be used to check if iSCSI is supported by the OS and iSCSI "
	"patch and hotfix are installed."
	):Amended, implemented, 
	ModelCorrespondence {"IANet_PhysicalEthernetAdapter.IsiSCSISupported"} 
	]
	uint32 IsiSCSISupported(
	 	[OUT] 
		boolean bIsiSCSIOS,
		[OUT]
		boolean bIsiSCSIPatch,
		[OUT]
		boolean bIsiSCSIHotFix);
	[Description (
	"This method can be used to check if iSCSI is enabled on that adapter."

	):Amended, implemented, 
	ModelCorrespondence {"IANet_PhysicalEthernetAdapter.IsiSCSIEnabled"} 
	]
	uint32 IsiSCSIEnabled(
	 	[OUT,
        	Values {"0", "1", "2", "3"}: Amended
	]
		
	uint32 iSCSIStatus);
	
	[Description (
	"This method can be used to get the NDIS version"

	):Amended, implemented, 
	ModelCorrespondence {"IANet_PhysicalEthernetAdapter.GetNDISVersion"} 
	]
	uint32 GetNDISVersion(
	 	[OUT] 
		uint32 dwMajorVersion,
		[OUT]
		uint32 dwMinorVersion);

};



