#pragma autorecover
#pragma classflags(64)
#pragma namespace("\\\\.\\root\\standardcimv2")
instance of __namespace{ name="MS_804";};
#pragma namespace("\\\\.\\root\\standardcimv2\\MS_804")

[Version("2.19.0") : Amended,Description("ManagedElement is an abstract class that provides a common superclass (or top of the inheritance tree) for the non-association classes in the CIM Schema.") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class CIM_ManagedElement
{
  [Description("InstanceID is an optional property that may be used to opaquely and uniquely identify an instance of this class within the scope of the instantiating Namespace. Various subclasses of this class may override this property to make it required, or a key. Such subclasses may also modify the preferred algorithms for ensuring uniqueness that are defined below.\nTo ensure uniqueness within the NameSpace, the value of InstanceID should be constructed using the following \"preferred\" algorithm: \n<OrgID>:<LocalID> \nWhere <OrgID> and <LocalID> are separated by a colon (:), and where <OrgID> must include a copyrighted, trademarked, or otherwise unique name that is owned by the business entity that is creating or defining the InstanceID or that is a registered ID assigned to the business entity by a recognized global authority. (This requirement is similar to the <Schema Name>_<Class Name> structure of Schema class names.) In addition, to ensure uniqueness, <OrgID> must not contain a colon (:). When using this algorithm, the first colon to appear in InstanceID must appear between <OrgID> and <LocalID>. \n<LocalID> is chosen by the business entity and should not be reused to identify different underlying (real-world) elements. If not null and the above \"preferred\" algorithm is not used, the defining entity must assure that the resulting InstanceID is not reused across any InstanceIDs produced by this or other providers for the NameSpace of this instance. \nIf not set to null for DMTF-defined instances, the \"preferred\" algorithm must be used with the <OrgID> set to CIM.") : Amended ToSubclass] string InstanceID;
  [Description("The Caption property is a short textual description (one- line string) of the object.") : Amended ToSubclass] string Caption;
  [Description("The Description property provides a textual description of the object.") : Amended ToSubclass] string Description;
  [Description("A user-friendly name for the object. This property allows each instance to define a user-friendly name in addition to its key properties, identity data, and description information. \nNote that the Name property of ManagedSystemElement is also defined as a user-friendly name. But, it is often subclassed to be a Key. It is not reasonable that the same property can convey both identity and a user-friendly name, without inconsistencies. Where Name exists and is not a Key (such as for instances of LogicalDevice), the same information can be present in both the Name and ElementName properties. Note that if there is an associated instance of CIM_EnabledLogicalElementCapabilities, restrictions on this properties may exist as defined in ElementNameMask and MaxElementNameLen properties defined in that class.") : Amended ToSubclass] string ElementName;
};

[Description("CIM_ManagedSystemElement is the base class for the System Element hierarchy. Any distinguishable component of a System is a candidate for inclusion in this class. Examples of system components include: \n- software components such as application servers, databases, and applications \n- operating system components such as files, processes, and threads \n- device components such as disk drives, controllers, processors, and printers \n- physical components such as chips and cards.") : Amended ToSubclass,Version("2.22.0") : Amended,AMENDMENT, LOCALE("MS_804")] 
class CIM_ManagedSystemElement : CIM_ManagedElement
{
  [Description("A datetime value that indicates when the object was installed. Lack of a value does not indicate that the object is not installed.") : Amended ToSubclass] datetime InstallDate;
  [Description("The Name property defines the label by which the object is known. When subclassed, the Name property can be overridden to be a Key property.") : Amended ToSubclass] string Name;
  [Description("Indicates the current statuses of the element. Various operational statuses are defined. Many of the enumeration\\'s values are self-explanatory. However, a few are not and are described here in more detail. \n\"Stressed\" indicates that the element is functioning, but needs attention. Examples of \"Stressed\" states are overload, overheated, and so on. \n\"Predictive Failure\" indicates that an element is functioning nominally but predicting a failure in the near future. \n\"In Service\" describes an element being configured, maintained, cleaned, or otherwise administered. \n\"No Contact\" indicates that the monitoring system has knowledge of this element, but has never been able to establish communications with it. \n\"Lost Communication\" indicates that the ManagedSystem Element is known to exist and has been contacted successfully in the past, but is currently unreachable. \n\"Stopped\" and \"Aborted\" are similar, although the former implies a clean and orderly stop, while the latter implies an abrupt stop where the state and configuration of the element might need to be updated. \n\"Dormant\" indicates that the element is inactive or quiesced. \n\"Supporting Entity in Error\" indicates that this element might be \"OK\" but that another element, on which it is dependent, is in error. An example is a network service or endpoint that cannot function due to lower-layer networking problems. \n\"Completed\" indicates that the element has completed its operation. This value should be combined with either OK, Error, or Degraded so that a client can tell if the complete operation Completed with OK (passed), Completed with Error (failed), or Completed with Degraded (the operation finished, but it did not complete OK or did not report an error). \n\"Power Mode\" indicates that the element has additional power model information contained in the Associated PowerManagementService association. \nOperationalStatus replaces the Status property on ManagedSystemElement to provide a consistent approach to enumerations, to address implementation needs for an array property, and to provide a migration path from today\\'s environment to the future. This change was not made earlier because it required the deprecated qualifier. Due to the widespread use of the existing Status property in management applications, it is strongly recommended that providers or instrumentation provide both the Status and OperationalStatus properties. Further, the first value of OperationalStatus should contain the primary status for the element. When instrumented, Status (because it is single-valued) should also provide the primary status of the element.") : Amended ToSubclass,Values{"Unknown", "Other", "OK", "Degraded", "Stressed", "Predictive Failure", "Error", "Non-Recoverable Error", "Starting", "Stopping", "Stopped", "In Service", "No Contact", "Lost Communication", "Aborted", "Dormant", "Supporting Entity in Error", "Completed", "Power Mode", "DMTF Reserved", "Vendor Reserved"} : Amended ToSubclass] uint16 OperationalStatus[];
  [Description("Strings describing the various OperationalStatus array values. For example, if \"Stopping\" is the value assigned to OperationalStatus, then this property may contain an explanation as to why an object is being stopped. Note that entries in this array are correlated with those at the same array index in OperationalStatus.") : Amended ToSubclass] string StatusDescriptions[];
  [Description("A string indicating the current status of the object. Various operational and non-operational statuses are defined. This property is deprecated in lieu of OperationalStatus, which includes the same semantics in its enumeration. This change is made for 3 reasons: \n1) Status is more correctly defined as an array. This definition overcomes the limitation of describing status using a single value, when it is really a multi-valued property (for example, an element might be OK AND Stopped. \n2) A MaxLen of 10 is too restrictive and leads to unclear enumerated values. \n3) The change to a uint16 data type was discussed when CIM V2.0 was defined. However, existing V1.0 implementations used the string property and did not want to modify their code. Therefore, Status was grandfathered into the Schema. Use of the deprecated qualifier allows the maintenance of the existing property, but also permits an improved definition using OperationalStatus.") : Amended ToSubclass] string Status;
  [Description("Indicates the current health of the element. This attribute expresses the health of this element but not necessarily that of its subcomponents. The possible values are 0 to 30, where 5 means the element is entirely healthy and 30 means the element is completely non-functional. The following continuum is defined: \n\"Non-recoverable Error\" (30) - The element has completely failed, and recovery is not possible. All functionality provided by this element has been lost. \n\"Critical Failure\" (25) - The element is non-functional and recovery might not be possible. \n\"Major Failure\" (20) - The element is failing. It is possible that some or all of the functionality of this component is degraded or not working. \n\"Minor Failure\" (15) - All functionality is available but some might be degraded. \n\"Degraded/Warning\" (10) - The element is in working order and all functionality is provided. However, the element is not working to the best of its abilities. For example, the element might not be operating at optimal performance or it might be reporting recoverable errors. \n\"OK\" (5) - The element is fully functional and is operating within normal operational parameters and without error. \n\"Unknown\" (0) - The implementation cannot report on HealthState at this time. \nDMTF has reserved the unused portion of the continuum for additional HealthStates in the future.") : Amended ToSubclass,Values{"Unknown", "OK", "Degraded/Warning", "Minor failure", "Major failure", "Critical failure", "Non-recoverable error", "DMTF Reserved"} : Amended ToSubclass] uint16 HealthState;
  [Description("CommunicationStatus indicates the ability of the instrumentation to communicate with the underlying ManagedElement. CommunicationStatus consists of one of the following values: Unknown, None, Communication OK, Lost Communication, or No Contact. \nA Null return indicates the implementation (provider) does not implement this property. \n\"Unknown\" indicates the implementation is in general capable of returning this property, but is unable to do so at this time. \n\"Not Available\" indicates that the implementation (provider) is capable of returning a value for this property, but not ever for this particular piece of hardware/software or the property is intentionally not used because it adds no meaningful information (as in the case of a property that is intended to add additional info to another property). \n\"Communication OK \" indicates communication is established with the element, but does not convey any quality of service. \n\"No Contact\" indicates that the monitoring system has knowledge of this element, but has never been able to establish communications with it. \n\"Lost Communication\" indicates that the Managed Element is known to exist and has been contacted successfully in the past, but is currently unreachable.") : Amended ToSubclass,Values{"Unknown", "Not Available", "Communication OK", "Lost Communication", "No Contact", "DMTF Reserved", "Vendor Reserved"} : Amended ToSubclass] uint16 CommunicationStatus;
  [Description("DetailedStatus compliments PrimaryStatus with additional status detail. It consists of one of the following values: Not Available, No Additional Information, Stressed, Predictive Failure, Error, Non-Recoverable Error, SupportingEntityInError. Detailed status is used to expand upon the PrimaryStatus of the element. \nA Null return indicates the implementation (provider) does not implement this property. \n\"Not Available\" indicates that the implementation (provider) is capable of returning a value for this property, but not ever for this particular piece of hardware/software or the property is intentionally not used because it adds no meaningful information (as in the case of a property that is intended to add additional info to another property). \n\"No Additional Information\" indicates that the element is functioning normally as indicated by PrimaryStatus = \"OK\". \n\"Stressed\" indicates that the element is functioning, but needs attention. Examples of \"Stressed\" states are overload, overheated, and so on. \n\"Predictive Failure\" indicates that an element is functioning normally but a failure is predicted in the near future. \n\"Non-Recoverable Error \" indicates that this element is in an error condition that requires human intervention. \n\"Supporting Entity in Error\" indicates that this element might be \"OK\" but that another element, on which it is dependent, is in error. An example is a network service or endpoint that cannot function due to lower-layer networking problems.") : Amended ToSubclass,Values{"Not Available", "No Additional Information", "Stressed", "Predictive Failure", "Non-Recoverable Error", "Supporting Entity in Error", "DMTF Reserved", "Vendor Reserved"} : Amended ToSubclass] uint16 DetailedStatus;
  [Description("OperatingStatus provides a current status value for the operational condition of the element and can be used for providing more detail with respect to the value of EnabledState. It can also provide the transitional states when an element is transitioning from one state to another, such as when an element is transitioning between EnabledState and RequestedState, as well as other transitional conditions.\nOperatingStatus consists of one of the following values: Unknown, Not Available, In Service, Starting, Stopping, Stopped, Aborted, Dormant, Completed, Migrating, Emmigrating, Immigrating, Snapshotting. Shutting Down, In Test \nA Null return indicates the implementation (provider) does not implement this property. \n\"Unknown\" indicates the implementation is in general capable of returning this property, but is unable to do so at this time. \n\"None\" indicates that the implementation (provider) is capable of returning a value for this property, but not ever for this particular piece of hardware/software or the property is intentionally not used because it adds no meaningful information (as in the case of a property that is intended to add additional info to another property). \n\"Servicing\" describes an element being configured, maintained, cleaned, or otherwise administered. \n\"Starting\" describes an element being initialized. \n\"Stopping\" describes an element being brought to an orderly stop. \n\"Stopped\" and \"Aborted\" are similar, although the former implies a clean and orderly stop, while the latter implies an abrupt stop where the state and configuration of the element might need to be updated. \n\"Dormant\" indicates that the element is inactive or quiesced. \n\"Completed\" indicates that the element has completed its operation. This value should be combined with either OK, Error, or Degraded in the PrimaryStatus so that a client can tell if the complete operation Completed with OK (passed), Completed with Error (failed), or Completed with Degraded (the operation finished, but it did not complete OK or did not report an error). \n\"Migrating\" element is being moved between host elements. \n\"Immigrating\" element is being moved to new host element. \n\"Emigrating\" element is being moved away from host element. \n\"Shutting Down\" describes an element being brought to an abrupt stop. \n\"In Test\" element is performing test functions. \n\"Transitioning\" describes an element that is between states, that is, it is not fully available in either its previous state or its next state. This value should be used if other values indicating a transition to a specific state are not applicable.\n\"In Service\" describes an element that is in service and operational.") : Amended ToSubclass,Values{"Unknown", "Not Available", "Servicing", "Starting", "Stopping", "Stopped", "Aborted", "Dormant", "Completed", "Migrating", "Emigrating", "Immigrating", "Snapshotting", "Shutting Down", "In Test", "Transitioning", "In Service", "DMTF Reserved", "Vendor Reserved"} : Amended ToSubclass] uint16 OperatingStatus;
  [Description("PrimaryStatus provides a high level status value, intended to align with Red-Yellow-Green type representation of status. It should be used in conjunction with DetailedStatus to provide high level and detailed health status of the ManagedElement and its subcomponents. \nPrimaryStatus consists of one of the following values: Unknown, OK, Degraded or Error. \"Unknown\" indicates the implementation is in general capable of returning this property, but is unable to do so at this time. \n\"OK\" indicates the ManagedElement is functioning normally. \n\"Degraded\" indicates the ManagedElement is functioning below normal. \n\"Error\" indicates the ManagedElement is in an Error condition.") : Amended ToSubclass,Values{"Unknown", "OK", "Degraded", "Error", "DMTF Reserved", "Vendor Reserved"} : Amended ToSubclass] uint16 PrimaryStatus;
};

[Description("CIM_LogicalElement is a base class for all the components of a System that represent abstract system components, such as Files, Processes, or LogicalDevices.") : Amended ToSubclass,Version("2.6.0") : Amended,AMENDMENT, LOCALE("MS_804")] 
class CIM_LogicalElement : CIM_ManagedSystemElement
{
};

[Description("A Job is a LogicalElement that represents an executing unit of work, such as a script or a print job. A Job is distinct from a Process in that a Job can be scheduled or queued, and its execution is not limited to a single system.") : Amended ToSubclass,Version("2.10.0") : Amended,AMENDMENT, LOCALE("MS_804")] 
class CIM_Job : CIM_LogicalElement
{
  [Description("A free-form string that represents the status of the job. The primary status is reflected in the inherited OperationalStatus property. JobStatus provides additional, implementation-specific details.") : Amended ToSubclass] string JobStatus;
  [Description("The time that the Job was submitted to execute. A value of all zeroes indicates that the owning element is not capable of reporting a date and time. Therefore, the ScheduledStartTime and StartTime are reported as intervals relative to the time their values are requested.") : Amended ToSubclass] datetime TimeSubmitted;
  [Description("The time that the current Job is scheduled to start. This time can be represented by the actual date and time, or an interval relative to the time that this property is requested. A value of all zeroes indicates that the Job is already executing. The property is deprecated in lieu of the more expressive scheduling properties, RunMonth, RunDay, RunDayOfWeek, and RunStartInterval.") : Amended ToSubclass] datetime ScheduledStartTime;
  [Description("The time that the Job was actually started. This time can be represented by an actual date and time, or by an interval relative to the time that this property is requested. Note that this property is also present in the JobProcessingStatistics class. This class is necessary to capture the processing information for recurring Jobs, because only the \\'last\\' run time can be stored in this single-valued property.") : Amended ToSubclass] datetime StartTime;
  [Description("The time interval that the Job has been executing or the total execution time if the Job is complete. Note that this property is also present in the JobProcessingStatistics class. This class is necessary to capture the processing information for recurring Jobs, because only the \\'last\\' run time can be stored in this single-valued property.") : Amended ToSubclass] datetime ElapsedTime;
  [Description("The number of times that the Job should be run. A value of 1 indicates that the Job is not recurring, while any non-zero value indicates a limit to the number of times that the Job will recur. Zero indicates that there is no limit to the number of times that the Job can be processed, but that it is terminated either after the UntilTime or by manual intervention. By default, a Job is processed once.") : Amended ToSubclass] uint32 JobRunTimes;
  [Description("The month during which the Job should be processed. Specify 0 for January, 1 for February, and so on.") : Amended ToSubclass,Values{"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"} : Amended ToSubclass] uint8 RunMonth;
  [Description("The day in the month on which the Job should be processed. There are two different interpretations for this property, depending on the value of DayOfWeek. In one case, RunDay defines the day-in-month on which the Job is processed. This interpretation is used when the DayOfWeek is 0. A positive or negative integer indicates whether the RunDay should be calculated from the beginning or end of the month. For example, 5 indicates the fifth day in the RunMonth and -1 indicates the last day in the RunMonth. \n\nWhen RunDayOfWeek is not 0, RunDay is the day-in-month on which the Job is processed, defined in conjunction with RunDayOfWeek. For example, if RunDay is 15 and RunDayOfWeek is Saturday, then the Job is processed on the first Saturday on or after the 15th day in the RunMonth (for example, the third Saturday in the month). If RunDay is 20 and RunDayOfWeek is -Saturday, then this indicates the first Saturday on or before the 20th day in the RunMonth. If RunDay is -1 and RunDayOfWeek is -Sunday, then this indicates the last Sunday in the RunMonth.") : Amended ToSubclass] sint8 RunDay;
  [Description("A positive or negative integer used in conjunction with RunDay to indicate the day of the week on which the Job is processed. RunDayOfWeek is set to 0 to indicate an exact day of the month, such as March 1. A positive integer (representing Sunday, Monday, ..., Saturday) means that the day of week is found on or after the specified RunDay. A negative integer (representing -Sunday, -Monday, ..., -Saturday) means that the day of week is found on or BEFORE the RunDay.") : Amended ToSubclass,Values{"-Saturday", "-Friday", "-Thursday", "-Wednesday", "-Tuesday", "-Monday", "-Sunday", "ExactDayOfMonth", "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"} : Amended ToSubclass] sint8 RunDayOfWeek;
  [Description("The time interval after midnight when the Job should be processed. For example, \n00000000020000.000000:000 \nindicates that the Job should be run on or after two o\\'clock, local time or UTC time (distinguished using the LocalOrUtcTime property.") : Amended ToSubclass] datetime RunStartInterval;
  [Description("This property indicates whether the times represented in the RunStartInterval and UntilTime properties represent local times or UTC times. Time values are synchronized worldwide by using the enumeration value 2, \"UTC Time\".") : Amended ToSubclass,Values{"Local Time", "UTC Time"} : Amended ToSubclass] uint16 LocalOrUtcTime;
  [Description("The time after which the Job is invalid or should be stopped. This time can be represented by an actual date and time, or by an interval relative to the time that this property is requested. A value of all nines indicates that the Job can run indefinitely.") : Amended ToSubclass] datetime UntilTime;
  [Description("The User who is to be notified upon the Job completion or failure.") : Amended ToSubclass] string Notify;
  [Description("The User that submitted the Job, or the Service or method name that caused the job to be created.") : Amended ToSubclass] string Owner;
  [Description("Indicates the urgency or importance of execution of the Job. The lower the number, the higher the priority. Note that this property is also present in the JobProcessingStatistics class. This class is necessary to capture the setting information that would influence the results of a job.") : Amended ToSubclass] uint32 Priority;
  [Description("The percentage of the job that has completed at the time that this value is requested. Note that this property is also present in the JobProcessingStatistics class. This class is necessary to capture the processing information for recurring Jobs, because only the \\'last\\' run data can be stored in this single-valued property. \nNote that the value 101 is undefined and will be not be allowed in the next major revision of the specification.") : Amended ToSubclass,Units("Percent") : Amended ToSubclass] uint16 PercentComplete;
  [Description("Indicates whether or not the job should be automatically deleted upon completion. Note that the \\'completion\\' of a recurring job is defined by its JobRunTimes or UntilTime properties, or when the Job is terminated by manual intervention. If this property is set to false and the job completes, then the extrinsic method DeleteInstance must be used to delete the job instead of updating this property.") : Amended ToSubclass] boolean DeleteOnCompletion;
  [Description("A vendor-specific error code. The value must be set to zero if the Job completed without error. Note that this property is also present in the JobProcessingStatistics class. This class is necessary to capture the processing information for recurring Jobs, because only the \\'last\\' run error can be stored in this single-valued property.") : Amended ToSubclass] uint16 ErrorCode;
  [Description("A free-form string that contains the vendor error description. Note that this property is also present in the JobProcessingStatistics class. This class is necessary to capture the processing information for recurring Jobs, because only the \\'last\\' run error can be stored in this single-valued property.") : Amended ToSubclass] string ErrorDescription;
  [Description("Describes the recovery action to be taken for an unsuccessfully run Job. The possible values are: \n0 = \"Unknown\", meaning it is unknown as to what recovery action to take \n1 = \"Other\", indicating that the recovery action will be specified in the OtherRecoveryAction property \n2 = \"Do Not Continue\", meaning stop the execution of the job and appropriately update its status \n3 = \"Continue With Next Job\", meaning continue with the next job in the queue \n4 = \"Re-run Job\", indicating that the job should be re-run \n5 = \"Run Recovery Job\", meaning run the Job associated using the RecoveryJob relationship. Note that the recovery Job must already be in the queue from which it will run.") : Amended ToSubclass,Values{"Unknown", "Other", "Do Not Continue", "Continue With Next Job", "Re-run Job", "Run Recovery Job"} : Amended ToSubclass] uint16 RecoveryAction;
  [Description("A string describing the recovery action when the RecoveryAction property of the instance is 1 (\"Other\").") : Amended ToSubclass] string OtherRecoveryAction;
  [Description("KillJob is being deprecated because there is no distinction made between an orderly shutdown and an immediate kill. CIM_ConcreteJob.RequestStateChange() provides \\'Terminate\\' and \\'Kill\\' options to allow this distinction. \nA method to kill this job and any underlying processes, and to remove any \\'dangling\\' associations.") : Amended ToSubclass,Values{"Success", "Not Supported", "Unknown", "Timeout", "Failed", "Access Denied", "Not Found", "DMTF Reserved", "Vendor Specific"} : Amended ToSubclass] uint32 KillJob([In,Description("Indicates whether or not the Job should be automatically deleted upon termination. This parameter takes precedence over the property, DeleteOnCompletion.") : Amended ToSubclass] boolean DeleteOnKill);
};

[Description("A concrete version of Job. This class represents a generic and instantiable unit of work, such as a batch or a print job.") : Amended ToSubclass,Version("2.22.0") : Amended,AMENDMENT, LOCALE("MS_804")] 
class CIM_ConcreteJob : CIM_Job
{
  [Description("Within the scope of the instantiating Namespace, InstanceID opaquely and uniquely identifies an instance of this class. In order to ensure uniqueness within the NameSpace, the value of InstanceID SHOULD be constructed using the following \\'preferred\\' algorithm: \n<OrgID>:<LocalID> \nWhere <OrgID> and <LocalID> are separated by a colon \\':\\', and where <OrgID> must include a copyrighted, trademarked or otherwise unique name that is owned by the business entity that is creating or defining the InstanceID, or that is a registered ID that is assigned to the business entity by a recognized global authority. (This requirement is similar to the <Schema Name>_<Class Name> structure of Schema class names.) In addition, to ensure uniqueness <OrgID> must not contain a colon (\\':\\'). When using this algorithm, the first colon to appear in InstanceID must appear between <OrgID> and <LocalID>. \n<LocalID> is chosen by the business entity and should not be re-used to identify different underlying (real-world) elements. If the above \\'preferred\\' algorithm is not used, the defining entity must assure that the resulting InstanceID is not re-used across any InstanceIDs produced by this or other providers for the NameSpace of this instance. \nFor DMTF defined instances, the \\'preferred\\' algorithm must be used with the <OrgID> set to \\'CIM\\'.") : Amended ToSubclass,key] string InstanceID;
  [Description("The user-friendly name for this instance of a Job. In addition, the user-friendly name can be used as a property for a search or query. (Note: Name does not have to be unique within a namespace.)") : Amended ToSubclass] string Name;
  [Description("JobState is an integer enumeration that indicates the operational state of a Job. It can also indicate transitions between these states, for example, \\'Shutting Down\\' and \\'Starting\\'. Following is a brief description of the states: \nNew (2) indicates that the job has never been started. \nStarting (3) indicates that the job is moving from the \\'New\\', \\'Suspended\\', or \\'Service\\' states into the \\'Running\\' state. \nRunning (4) indicates that the Job is running. \nSuspended (5) indicates that the Job is stopped, but can be restarted in a seamless manner. \nShutting Down (6) indicates that the job is moving to a \\'Completed\\', \\'Terminated\\', or \\'Killed\\' state. \nCompleted (7) indicates that the job has completed normally. \nTerminated (8) indicates that the job has been stopped by a \\'Terminate\\' state change request. The job and all its underlying processes are ended and can be restarted (this is job-specific) only as a new job. \nKilled (9) indicates that the job has been stopped by a \\'Kill\\' state change request. Underlying processes might have been left running, and cleanup might be required to free up resources. \nException (10) indicates that the Job is in an abnormal state that might be indicative of an error condition. Actual status might be displayed though job-specific objects. \nService (11) indicates that the Job is in a vendor-specific state that supports problem discovery, or resolution, or both.\nQuery pending (12) waiting for a client to resolve a query") : Amended ToSubclass,Values{"New", "Starting", "Running", "Suspended", "Shutting Down", "Completed", "Terminated", "Killed", "Exception", "Service", "Query Pending", "DMTF Reserved", "Vendor Reserved"} : Amended ToSubclass] uint16 JobState;
  [Description("The date or time when the state of the Job last changed. If the state of the Job has not changed and this property is populated, then it must be set to a 0 interval value. If a state change was requested, but rejected or not yet processed, the property must not be updated.") : Amended ToSubclass] datetime TimeOfLastStateChange;
  [Description("The amount of time that the Job is retained after it has finished executing, either succeeding or failing in that execution. The job must remain in existence for some period of time regardless of the value of the DeleteOnCompletion property. \nThe default is five minutes.") : Amended ToSubclass] datetime TimeBeforeRemoval;
  [Description("Requests that the state of the job be changed to the value specified in the RequestedState parameter. Invoking the RequestStateChange method multiple times could result in earlier requests being overwritten or lost. \nIf 0 is returned, then the task completed successfully. Any other return code indicates an error condition.") : Amended ToSubclass,Values{"Completed with No Error", "Not Supported", "Unknown/Unspecified Error", "Can NOT complete within Timeout Period", "Failed", "Invalid Parameter", "In Use", "DMTF Reserved", "Method Parameters Checked - Transition Started", "Invalid State Transition", "Use of Timeout Parameter Not Supported", "Busy", "Method Reserved", "Vendor Specific"} : Amended ToSubclass] uint32 RequestStateChange([In,Description("RequestStateChange changes the state of a job. The possible values are as follows: \nStart (2) changes the state to \\'Running\\'. \nSuspend (3) stops the job temporarily. The intention is to subsequently restart the job with \\'Start\\'. It might be possible to enter the \\'Service\\' state while suspended. (This is job-specific.) \nTerminate (4) stops the job cleanly, saving data, preserving the state, and shutting down all underlying processes in an orderly manner. \nKill (5) terminates the job immediately with no requirement to save data or preserve the state. \nService (6) puts the job into a vendor-specific service state. It might be possible to restart the job.") : Amended ToSubclass,Values{"Start", "Suspend", "Terminate", "Kill", "Service", "DMTF Reserved", "Vendor Reserved"} : Amended ToSubclass] uint16 RequestedState,[In,Description("A timeout period that specifies the maximum amount of time that the client expects the transition to the new state to take. The interval format must be used to specify the TimeoutPeriod. A value of 0 or a null parameter indicates that the client has no time requirements for the transition. \nIf this property does not contain 0 or null and the implementation does not support this parameter, a return code of \\'Use Of Timeout Parameter Not Supported\\' must be returned.") : Amended ToSubclass] datetime TimeoutPeriod);
  [Description("When the job is executing or has terminated without error, then this method returns no CIM_Error instance. However, if the job has failed because of some internal problem or because the job has been terminated by a client, then a CIM_Error instance is returned.") : Amended ToSubclass,Values{"Success", "Not Supported", "Unspecified Error", "Timeout", "Failed", "Invalid Parameter", "Access Denied", "DMTF Reserved", "Vendor Specific"} : Amended ToSubclass] uint32 GetError([Out,Description("If the OperationalStatus on the Job is not \"OK\", then this method will return a CIM Error instance. Otherwise, when the Job is \"OK\", null is returned.") : Amended ToSubclass] CIM_Error Error);
};

[Version("2.19.1") : Amended,Description("ElementSettingData represents the association between ManagedElements and applicable setting data. This association also describes whether this is a default or current setting.") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class CIM_ElementSettingData
{
  [key,Description("The managed element.") : Amended ToSubclass] CIM_ManagedElement Ref ManagedElement;
  [key,Description("The SettingData object associated with the element.") : Amended ToSubclass] CIM_SettingData Ref SettingData;
  [Description("An enumerated integer indicating that the referenced setting is a default setting for the element, or that this information is unknown.") : Amended ToSubclass,Values{"Unknown", "Is Default", "Is Not Default"} : Amended ToSubclass] uint16 IsDefault;
  [Description("An enumerated integer indicating that the referenced setting is currently being used in the operation of the element, or that this information is unknown.") : Amended ToSubclass,Values{"Unknown", "Is Current", "Is Not Current"} : Amended ToSubclass] uint16 IsCurrent;
  [Description("An enumerated integer indicating whether or not the referenced setting is the next setting to be applied. For example, the application could take place on a re-initialization, reset, reconfiguration request. This could be a permanent setting, or a setting used only one time, as indicated by the flag. If it is a permanent setting then the setting is applied every time the managed element reinitializes, until this flag is manually reset. However, if it is single use, then the flag is automatically cleared after the settings are applied. Also note that if this flag is specified (i.e. set to value other than \"Unknown\"), then this takes precedence over any SettingData that may have been specified as Default. For example: If the managed element is a computer system, and the value of this flag is \"Is Next\", then the setting will be effective next time the system resets. And, unless this flag is changed, it will persist for subsequent system resets. However, if this flag is set to \"Is Next For Single Use\", then this setting will only be used once and the flag would be reset after that to \"Is Not Next\". So, in the above example, if the system reboots in a quick succession, the setting will not be used at the second reboot.") : Amended ToSubclass,Values{"Unknown", "Is Next", "Is Not Next", "Is Next For Single Use"} : Amended ToSubclass] uint16 IsNext;
};

[Description("This class extends LogicalElement to abstract the concept of an element that is enabled and disabled, such as a LogicalDevice or a ServiceAccessPoint.") : Amended ToSubclass,Version("2.22.0") : Amended,AMENDMENT, LOCALE("MS_804")] 
class CIM_EnabledLogicalElement : CIM_LogicalElement
{
  [Description("EnabledState is an integer enumeration that indicates the enabled and disabled states of an element. It can also indicate the transitions between these requested states. For example, shutting down (value=4) and starting (value=10) are transient states between enabled and disabled. The following text briefly summarizes the various enabled and disabled states: \nEnabled (2) indicates that the element is or could be executing commands, will process any queued commands, and queues new requests. \nDisabled (3) indicates that the element will not execute commands and will drop any new requests. \nShutting Down (4) indicates that the element is in the process of going to a Disabled state. \nNot Applicable (5) indicates the element does not support being enabled or disabled. \nEnabled but Offline (6) indicates that the element might be completing commands, and will drop any new requests. \nTest (7) indicates that the element is in a test state. \nDeferred (8) indicates that the element might be completing commands, but will queue any new requests. \nQuiesce (9) indicates that the element is enabled but in a restricted mode.\nStarting (10) indicates that the element is in the process of going to an Enabled state. New requests are queued.") : Amended ToSubclass,Values{"Unknown", "Other", "Enabled", "Disabled", "Shutting Down", "Not Applicable", "Enabled but Offline", "In Test", "Deferred", "Quiesce", "Starting", "DMTF Reserved", "Vendor Reserved"} : Amended ToSubclass] uint16 EnabledState;
  [Description("A string that describes the enabled or disabled state of the element when the EnabledState property is set to 1 (\"Other\"). This property must be set to null when EnabledState is any value other than 1.") : Amended ToSubclass] string OtherEnabledState;
  [Description("RequestedState is an integer enumeration that indicates the last requested or desired state for the element, irrespective of the mechanism through which it was requested. The actual state of the element is represented by EnabledState. This property is provided to compare the last requested and current enabled or disabled states. Note that when EnabledState is set to 5 (\"Not Applicable\"), then this property has no meaning. Refer to the EnabledState property description for explanations of the values in the RequestedState enumeration. \n\"Unknown\" (0) indicates the last requested state for the element is unknown.\nNote that the value \"No Change\" (5) has been deprecated in lieu of indicating the last requested state is \"Unknown\" (0). If the last requested or desired state is unknown, RequestedState should have the value \"Unknown\" (0), but may have the value \"No Change\" (5).Offline (6) indicates that the element has been requested to transition to the Enabled but Offline EnabledState. \nIt should be noted that there are two new values in RequestedState that build on the statuses of EnabledState. These are \"Reboot\" (10) and \"Reset\" (11). Reboot refers to doing a \"Shut Down\" and then moving to an \"Enabled\" state. Reset indicates that the element is first \"Disabled\" and then \"Enabled\". The distinction between requesting \"Shut Down\" and \"Disabled\" should also be noted. Shut Down requests an orderly transition to the Disabled state, and might involve removing power, to completely erase any existing state. The Disabled state requests an immediate disabling of the element, such that it will not execute or accept any commands or processing requests. \n\nThis property is set as the result of a method invocation (such as Start or StopService on CIM_Service), or can be overridden and defined as WRITEable in a subclass. The method approach is considered superior to a WRITEable property, because it allows an explicit invocation of the operation and the return of a result code. \n\nIf knowledge of the last RequestedState is not supported for the EnabledLogicalElement, the property shall be NULL or have the value 12 \"Not Applicable\".") : Amended ToSubclass,Values{"Unknown", "Enabled", "Disabled", "Shut Down", "No Change", "Offline", "Test", "Deferred", "Quiesce", "Reboot", "Reset", "Not Applicable", "DMTF Reserved", "Vendor Reserved"} : Amended ToSubclass] uint16 RequestedState;
  [Description("An enumerated value indicating an administrator\\'s default or startup configuration for the Enabled State of an element. By default, the element is \"Enabled\" (value=2).") : Amended ToSubclass,Values{"Enabled", "Disabled", "Not Applicable", "Enabled but Offline", "No Default", "Quiesce", "DMTF Reserved", "Vendor Reserved"} : Amended ToSubclass] uint16 EnabledDefault;
  [Description("The date or time when the EnabledState of the element last changed. If the state of the element has not changed and this property is populated, then it must be set to a 0 interval value. If a state change was requested, but rejected or not yet processed, the property must not be updated.") : Amended ToSubclass] datetime TimeOfLastStateChange;
  [Description("AvailableRequestedStates indicates the possible values for the RequestedState parameter of the method RequestStateChange, used to initiate a state change. The values listed shall be a subset of the values contained in the RequestedStatesSupported property of the associated instance of CIM_EnabledLogicalElementCapabilities where the values selected are a function of the current state of the CIM_EnabledLogicalElement. This property may be non-null if an implementation is able to advertise the set of possible values as a function of the current state. This property shall be null if an implementation is unable to determine the set of possible values as a function of the current state.") : Amended ToSubclass,Values{"Enabled", "Disabled", "Shut Down", "Offline", "Test", "Defer", "Quiesce", "Reboot", "Reset", "DMTF Reserved"} : Amended ToSubclass] uint16 AvailableRequestedStates[];
  [Description("TransitioningToState indicates the target state to which the instance is transitioning. \nA value of 5 \"No Change\" shall indicate that no transition is in progress.A value of 12 \"Not Applicable\" shall indicate the implementation does not support representing ongoing transitions. \nA value other than 5 or 12 shall identify the state to which the element is in the process of transitioning.") : Amended ToSubclass,Values{"Unknown", "Enabled", "Disabled", "Shut Down", "No Change", "Offline", "Test", "Defer", "Quiesce", "Reboot", "Reset", "Not Applicable", "DMTF Reserved"} : Amended ToSubclass] uint16 TransitioningToState;
  [Description("Requests that the state of the element be changed to the value specified in the RequestedState parameter. When the requested state change takes place, the EnabledState and RequestedState of the element will be the same. Invoking the RequestStateChange method multiple times could result in earlier requests being overwritten or lost. \nA return code of 0 shall indicate the state change was successfully initiated. \nA return code of 3 shall indicate that the state transition cannot complete within the interval specified by the TimeoutPeriod parameter. \nA return code of 4096 (0x1000) shall indicate the state change was successfully initiated, a ConcreteJob has been created, and its reference returned in the output parameter Job. Any other return code indicates an error condition.") : Amended ToSubclass,Values{"Completed with No Error", "Not Supported", "Unknown or Unspecified Error", "Cannot complete within Timeout Period", "Failed", "Invalid Parameter", "In Use", "DMTF Reserved", "Method Parameters Checked - Job Started", "Invalid State Transition", "Use of Timeout Parameter Not Supported", "Busy", "Method Reserved", "Vendor Specific"} : Amended ToSubclass] uint32 RequestStateChange([In,Description("The state requested for the element. This information will be placed into the RequestedState property of the instance if the return code of the RequestStateChange method is 0 (\\'Completed with No Error\\'), or 4096 (0x1000) (\\'Job Started\\'). Refer to the description of the EnabledState and RequestedState properties for the detailed explanations of the RequestedState values.") : Amended ToSubclass,Values{"Enabled", "Disabled", "Shut Down", "Offline", "Test", "Defer", "Quiesce", "Reboot", "Reset", "DMTF Reserved", "Vendor Reserved"} : Amended ToSubclass] uint16 RequestedState,[Out,Description("May contain a reference to the ConcreteJob created to track the state transition initiated by the method invocation.") : Amended ToSubclass] CIM_ConcreteJob Ref Job,[In,Description("A timeout period that specifies the maximum amount of time that the client expects the transition to the new state to take. The interval format must be used to specify the TimeoutPeriod. A value of 0 or a null parameter indicates that the client has no time requirements for the transition. \nIf this property does not contain 0 or null and the implementation does not support this parameter, a return code of \\'Use Of Timeout Parameter Not Supported\\' shall be returned.") : Amended ToSubclass] datetime TimeoutPeriod);
};

[Version("2.22.1") : Amended,Description("CIM_Error is a specialized class that contains information about the severity, cause, recommended actions and other data related to the failure of a CIM Operation. Instances of this type MAY be included as part of the response to a CIM Operation.") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class CIM_Error
{
  [Description("Primary classification of the error. The following values are defined: \n2 - Communications Error. Errors of this type are principally associated with the procedures and/or processes required to convey information from one point to another. \n3 - Quality of Service Error. Errors of this type are principally associated with failures that result in reduced functionality or performance. \n4 - Software Error. Error of this type are principally associated with a software or processing fault. \n5 - Hardware Error. Errors of this type are principally associated with an equipment or hardware failure. \n6 - Environmental Error. Errors of this type are principally associated with a failure condition relating the to facility, or other environmental considerations. \n7 - Security Error. Errors of this type are associated with security violations, detection of viruses, and similar issues. \n8 - Oversubscription Error. Errors of this type are principally associated with the failure to allocate sufficient resources to complete the operation. \n9 - Unavailable Resource Error. Errors of this type are principally associated with the failure to access a required resource. \n10 -Unsupported Operation Error. Errors of this type are principally associated with requests that are not supported.") : Amended ToSubclass,Values{"Unknown", "Other", "Communications Error", "Quality of Service Error", "Software Error", "Hardware Error", "Environmental Error", "Security Error", "Oversubscription Error", "Unavailable Resource Error", "Unsupported Operation Error", "DMTF Reserved"} : Amended ToSubclass] uint16 ErrorType;
  [Description("A free-form string describing the ErrorType when 1, \"Other\", is specified as the ErrorType.") : Amended ToSubclass] string OtherErrorType;
  [Description("A string that uniquely identifies the entity that owns the definition of the format of the Message described in this instance. OwningEntity MUST include a copyrighted, trademarked or otherwise unique name that is owned by the business entity or standards body defining the format.") : Amended ToSubclass] string OwningEntity;
  [Description("An opaque string that uniquely identifies, within the scope of the OwningEntity, the format of the Message.") : Amended ToSubclass] string MessageID;
  [Description("The formatted message. This message is constructed by combining some or all of the dynamic elements specified in the MessageArguments property with the static elements uniquely identified by the MessageID in a message registry or other catalog associated with the OwningEntity.") : Amended ToSubclass] string Message;
  [Description("An array containing the dynamic content of the message.") : Amended ToSubclass] string MessageArguments[];
  [Description("An enumerated value that describes the severity of the Indication from the notifier\\'s point of view: \n0 - the Perceived Severity of the indication is unknown or indeterminate. \n1 - Other, by CIM convention, is used to indicate that the Severity\\'s value can be found in the OtherSeverity property. \n2 - Information should be used when providing an informative response. \n3 - Degraded/Warning should be used when its appropriate to let the user decide if action is needed. \n4 - Minor should be used to indicate action is needed, but the situation is not serious at this time. \n5 - Major should be used to indicate action is needed NOW. \n6 - Critical should be used to indicate action is needed NOW and the scope is broad (perhaps an imminent outage to a critical resource will result). \n7 - Fatal/NonRecoverable should be used to indicate an error occurred, but it\\'s too late to take remedial action. \n2 and 0 - Information and Unknown (respectively) follow common usage. Literally, the Error is purely informational or its severity is simply unknown.") : Amended ToSubclass,Values{"Unknown", "Other", "Information", "Degraded/Warning", "Minor", "Major", "Critical", "Fatal/NonRecoverable", "DMTF Reserved"} : Amended ToSubclass] uint16 PerceivedSeverity;
  [Description("An enumerated value that describes the probable cause of the error.") : Amended ToSubclass,Values{"Unknown", "Other", "Adapter/Card Error", "Application Subsystem Failure", "Bandwidth Reduced", "Connection Establishment Error", "Communications Protocol Error", "Communications Subsystem Failure", "Configuration/Customization Error", "Congestion", "Corrupt Data", "CPU Cycles Limit Exceeded", "Dataset/Modem Error", "Degraded Signal", "DTE-DCE Interface Error", "Enclosure Door Open", "Equipment Malfunction", "Excessive Vibration", "File Format Error", "Fire Detected", "Flood Detected", "Framing Error", "HVAC Problem", "Humidity Unacceptable", "I/O Device Error", "Input Device Error", "LAN Error", "Non-Toxic Leak Detected", "Local Node Transmission Error", "Loss of Frame", "Loss of Signal", "Material Supply Exhausted", "Multiplexer Problem", "Out of Memory", "Output Device Error", "Performance Degraded", "Power Problem", "Pressure Unacceptable", "Processor Problem (Internal Machine Error)", "Pump Failure", "Queue Size Exceeded", "Receive Failure", "Receiver Failure", "Remote Node Transmission Error", "Resource at or Nearing Capacity", "Response Time Excessive", "Retransmission Rate Excessive", "Software Error", "Software Program Abnormally Terminated", "Software Program Error (Incorrect Results)", "Storage Capacity Problem", "Temperature Unacceptable", "Threshold Crossed", "Timing Problem", "Toxic Leak Detected", "Transmit Failure", "Transmitter Failure", "Underlying Resource Unavailable", "Version Mismatch", "Previous Alert Cleared", "Login Attempts Failed", "Software Virus Detected", "Hardware Security Breached", "Denial of Service Detected", "Security Credential Mismatch", "Unauthorized Access", "Alarm Received", "Loss of Pointer", "Payload Mismatch", "Transmission Error", "Excessive Error Rate", "Trace Problem", "Element Unavailable", "Element Missing", "Loss of Multi Frame", "Broadcast Channel Failure", "Invalid Message Received", "Routing Failure", "Backplane Failure", "Identifier Duplication", "Protection Path Failure", "Sync Loss or Mismatch", "Terminal Problem", "Real Time Clock Failure", "Antenna Failure", "Battery Charging Failure", "Disk Failure", "Frequency Hopping Failure", "Loss of Redundancy", "Power Supply Failure", "Signal Quality Problem", "Battery Discharging", "Battery Failure", "Commercial Power Problem", "Fan Failure", "Engine Failure", "Sensor Failure", "Fuse Failure", "Generator Failure", "Low Battery", "Low Fuel", "Low Water", "Explosive Gas", "High Winds", "Ice Buildup", "Smoke", "Memory Mismatch", "Out of CPU Cycles", "Software Environment Problem", "Software Download Failure", "Element Reinitialized", "Timeout", "Logging Problems", "Leak Detected", "Protection Mechanism Failure", "Protecting Resource Failure", "Database Inconsistency", "Authentication Failure", "Breach of Confidentiality", "Cable Tamper", "Delayed Information", "Duplicate Information", "Information Missing", "Information Modification", "Information Out of Sequence", "Key Expired", "Non-Repudiation Failure", "Out of Hours Activity", "Out of Service", "Procedural Error", "Unexpected Information", "DMTF Reserved"} : Amended ToSubclass] uint16 ProbableCause;
  [Description("A free-form string describing the probable cause of the error.") : Amended ToSubclass] string ProbableCauseDescription;
  [Description("A free-form string describing recommended actions to take to resolve the error.") : Amended ToSubclass] string RecommendedActions[];
  [Description("The identifying information of the entity (i.e., the instance) generating the error. If this entity is modeled in the CIM Schema, this property contains the path of the instance encoded as a string parameter. If not modeled, the property contains some identifying string that names the entity that generated the error. The path or identifying string is formatted per the ErrorSourceFormat property.") : Amended ToSubclass] string ErrorSource;
  [Description("The format of the ErrorSource property is interpretable based on the value of this property. Values are defined as: \n0 - Unknown. The format is unknown or not meaningfully interpretable by a CIM client application. \n1 - Other. The format is defined by the value of the OtherErrorSourceFormat property.2 - CIMObjectPath. A CIM Object Path as defined in the CIM Infrastructure specification. Note: CIM 2.5 and earlier used the term object names.") : Amended ToSubclass,Values{"Unknown", "Other", "CIMObjectPath", "DMTF Reserved"} : Amended ToSubclass] uint16 ErrorSourceFormat;
  [Description("A string defining \"Other\" values for ErrorSourceFormat. This value MUST be set to a non NULL value when ErrorSourceFormat is set to a value of 1 (\"Other\"). For all other values of ErrorSourceFormat, the value of this string must be set to NULL.") : Amended ToSubclass] string OtherErrorSourceFormat;
  [Description("The CIM status code that characterizes this instance. \nThis property defines the status codes that MAY be return by a conforming CIM Server or Listener. Note that not all status codes are valid for each operation. The specification for each operation SHOULD define the status codes that may be returned by that operation. \nThe following values for CIM status code are defined: \n1 - CIM_ERR_FAILED. A general error occurred that is not covered by a more specific error code. \n2 - CIM_ERR_ACCESS_DENIED. Access to a CIM resource was not available to the client. \n3 - CIM_ERR_INVALID_NAMESPACE. The target namespace does not exist. \n4 - CIM_ERR_INVALID_PARAMETER. One or more parameter values passed to the method were invalid. \n5 - CIM_ERR_INVALID_CLASS. The specified Class does not exist. \n6 - CIM_ERR_NOT_FOUND. The requested object could not be found. \n7 - CIM_ERR_NOT_SUPPORTED. The requested operation is not supported. \n8 - CIM_ERR_CLASS_HAS_CHILDREN. Operation cannot be carried out on this class since it has instances. \n9 - CIM_ERR_CLASS_HAS_INSTANCES. Operation cannot be carried out on this class since it has instances. \n10 - CIM_ERR_INVALID_SUPERCLASS. Operation cannot be carried out since the specified superclass does not exist. \n11 - CIM_ERR_ALREADY_EXISTS. Operation cannot be carried out because an object already exists. \n12 - CIM_ERR_NO_SUCH_PROPERTY. The specified Property does not exist. \n13 - CIM_ERR_TYPE_MISMATCH. The value supplied is incompatible with the type. \n14 - CIM_ERR_QUERY_LANGUAGE_NOT_SUPPORTED. The query language is not recognized or supported. \n15 - CIM_ERR_INVALID_QUERY. The query is not valid for the specified query language. \n16 - CIM_ERR_METHOD_NOT_AVAILABLE. The extrinsic Method could not be executed. \n17 - CIM_ERR_METHOD_NOT_FOUND. The specified extrinsic Method does not exist. \n18 - CIM_ERR_UNEXPECTED_RESPONSE. The returned response to the asynchronous operation was not expected. \n19 - CIM_ERR_INVALID_RESPONSE_DESTINATION. The specified destination for the asynchronous response is not valid. \n20 - CIM_ERR_NAMESPACE_NOT_EMPTY. The specified Namespace is not empty.\n21 - CIM_ERR_INVALID_ENUMERATION_CONTEXT. The enumeration context supplied is not valid.\n22 - CIM_ERR_INVALID_OPERATION_TIMEOUT. The specified Namespace is not empty.\n23 - CIM_ERR_PULL_HAS_BEEN_ABANDONED. The specified Namespace is not empty.\n24 - CIM_ERR_PULL_CANNOT_BE_ABANDONED. The attempt to abandon a pull operation has failed.\n25 - CIM_ERR_FILTERED_ENUMERATION_NOT_SUPPORTED. Filtered Enumeratrions are not supported.\n26 - CIM_ERR_CONTINUATION_ON_ERROR_NOT_SUPPORTED. Continue on error is not supported.\n27 - CIM_ERR_SERVER_LIMITS_EXCEEDED. The WBEM Server limits have been exceeded (e.g. memory, connections, ...).\n28 - CIM_ERR_SERVER_IS_SHUTTING_DOWN. The WBEM Server is shutting down.\n29 - CIM_ERR_QUERY_FEATURE_NOT_SUPPORTED. The specified Query Feature is not supported.") : Amended ToSubclass,Values{"CIM_ERR_FAILED", "CIM_ERR_ACCESS_DENIED", "CIM_ERR_INVALID_NAMESPACE", "CIM_ERR_INVALID_PARAMETER", "CIM_ERR_INVALID_CLASS", "CIM_ERR_NOT_FOUND", "CIM_ERR_NOT_SUPPORTED", "CIM_ERR_CLASS_HAS_CHILDREN", "CIM_ERR_CLASS_HAS_INSTANCES", "CIM_ERR_INVALID_SUPERCLASS", "CIM_ERR_ALREADY_EXISTS", "CIM_ERR_NO_SUCH_PROPERTY", "CIM_ERR_TYPE_MISMATCH", "CIM_ERR_QUERY_LANGUAGE_NOT_SUPPORTED", "CIM_ERR_INVALID_QUERY", "CIM_ERR_METHOD_NOT_AVAILABLE", "CIM_ERR_METHOD_NOT_FOUND", "CIM_ERR_UNEXPECTED_RESPONSE", "CIM_ERR_INVALID_RESPONSE_DESTINATION", "CIM_ERR_NAMESPACE_NOT_EMPTY", "CIM_ERR_INVALID_ENUMERATION_CONTEXT", "CIM_ERR_INVALID_OPERATION_TIMEOUT", "CIM_ERR_PULL_HAS_BEEN_ABANDONED", "CIM_ERR_PULL_CANNOT_BE_ABANDONED", "CIM_ERR_FILTERED_ENUMERATION_NOT_SUPPORTED", "CIM_ERR_CONTINUATION_ON_ERROR_NOT_SUPPORTED", "CIM_ERR_SERVER_LIMITS_EXCEEDED", "CIM_ERR_SERVER_IS_SHUTTING_DOWN", "CIM_ERR_QUERY_FEATURE_NOT_SUPPORTED", "DMTF Reserved"} : Amended ToSubclass] uint32 CIMStatusCode;
  [Description("A free-form string containing a human-readable description of CIMStatusCode. This description MAY extend, but MUST be consistent with, the definition of CIMStatusCode.") : Amended ToSubclass] string CIMStatusCodeDescription;
};

[Description("An abstraction or emulation of a hardware entity, that may or may not be Realized in physical hardware. Any characteristics of a LogicalDevice that are used to manage its operation or configuration are contained in, or associated with, the LogicalDevice object. Examples of the operational properties of a Printer would be paper sizes supported, or detected errors. Examples of the configuration properties of a Sensor Device would be threshold settings. Various configurations could exist for a LogicalDevice. These configurations could be contained in Setting objects and associated with the LogicalDevice.") : Amended ToSubclass,Version("2.8.0") : Amended,AMENDMENT, LOCALE("MS_804")] 
class CIM_LogicalDevice : CIM_EnabledLogicalElement
{
  [key,Description("The scoping System\\'s CreationClassName.") : Amended ToSubclass] string SystemCreationClassName;
  [key,Description("The scoping System\\'s Name.") : Amended ToSubclass] string SystemName;
  [key,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.") : Amended ToSubclass] string CreationClassName;
  [key,Description("An address or other identifying information to uniquely name the LogicalDevice.") : Amended ToSubclass] string DeviceID;
  [Description("Boolean indicating that the Device can be power managed. The use of this property has been deprecated. Instead, the existence of an associated PowerManagementCapabilities class (associated using the ElementCapabilities relationhip) indicates that power management is supported.") : Amended ToSubclass] boolean PowerManagementSupported;
  [Description("An enumerated array describing the power management capabilities of the Device. The use of this property has been deprecated. Instead, the PowerCapabilites property in an associated PowerManagementCapabilities class should be used.") : Amended ToSubclass,Values{"Unknown", "Not Supported", "Disabled", "Enabled", "Power Saving Modes Entered Automatically", "Power State Settable", "Power Cycling Supported", "Timed Power On Supported"} : Amended ToSubclass] uint16 PowerManagementCapabilities[];
  [Description("The primary availability and status of the Device. (Additional status information can be specified using the Additional Availability array property.) For example, the Availability property indicates that the Device is running and has full power (value=3), or is in a warning (4), test (5), degraded (10) or power save state (values 13-15 and 17). Regarding the Power Save states, these are defined as follows: Value 13 (\"Power Save - Unknown\") indicates that the Device is known to be in a power save mode, but its exact status in this mode is unknown; 14 (\"Power Save - Low Power Mode\") indicates that the Device is in a power save state but still functioning, and may exhibit degraded performance; 15 (\"Power Save - Standby\") describes that the Device is not functioning but could be brought to full power \\'quickly\\'; and value 17 (\"Power Save - Warning\") indicates that the Device is in a warning state, though also in a power save mode.") : Amended ToSubclass,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"} : Amended ToSubclass] uint16 Availability;
  [Description("The StatusInfo property indicates whether the Logical Device is in an enabled (value = 3), disabled (value = 4) or some other (1) or unknown (2) state. If this property does not apply to the LogicalDevice, the value, 5 (\"Not Applicable\"), should be used. StatusInfo has been deprecated in lieu of a more clearly named property with additional enumerated values (EnabledState), that is inherited from ManagedSystemElement. \nIf a Device is (\"Enabled\")(value=3), it has been powered up, and is configured and operational. The Device may or may not be functionally active, depending on whether its Availability (or AdditionalAvailability) indicate that it is (\"Running/Full Power\")(value=3) or (\"Off line\") (value=8). In an enabled but offline mode, a Device may be performing out-of-band requests, such as running Diagnostics. If (\"Disabled\") StatusInfo value=4), a Device can only be \"enabled\" or powered off. In a personal computer environment, (\"Disabled\") means that the Device\\'s driver is not available in the stack. In other environments, a Device can be disabled by removing its configuration file. A disabled device is physically present in a System and consuming resources, but can not be communicated with until a load of a driver, a load of a configuration file or some other \"enabling\" activity has occurred.") : Amended ToSubclass,Values{"Other", "Unknown", "Enabled", "Disabled", "Not Applicable"} : Amended ToSubclass] uint16 StatusInfo;
  [Description("LastErrorCode captures the last error code reported by the LogicalDevice.") : Amended ToSubclass] uint32 LastErrorCode;
  [Description("ErrorDescription is a free-form string supplying more information about the error recorded in LastErrorCode, and information on any corrective actions that may be taken.") : Amended ToSubclass] string ErrorDescription;
  [Description("ErrorCleared is a boolean property indicating that the error reported in LastErrorCode is now cleared.") : Amended ToSubclass] boolean ErrorCleared;
  [Description("OtherIdentifyingInfo captures additional data, beyond DeviceID information, that could be used to identify a LogicalDevice. One example would be to hold the Operating System\\'s user friendly name for the Device in this property.") : Amended ToSubclass] string OtherIdentifyingInfo[];
  [Description("The number of consecutive hours that this Device has been powered, since its last power cycle.") : Amended ToSubclass,Units("Hours") : Amended ToSubclass] uint64 PowerOnHours;
  [Description("The total number of hours that this Device has been powered.") : Amended ToSubclass,Units("Hours") : Amended ToSubclass] uint64 TotalPowerOnHours;
  [Description("An array of free-form strings providing explanations and details behind the entries in the OtherIdentifyingInfo array. Note, each entry of this array is related to the entry in OtherIdentifyingInfo that is located at the same index.") : Amended ToSubclass] string IdentifyingDescriptions[];
  [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\").") : Amended ToSubclass,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"} : Amended ToSubclass] uint16 AdditionalAvailability[];
  [Description("The MaxQuiesceTime property has been deprecated. When evaluating the use of Quiesce, it was determine that this single property is not adequate for describing when a device will automatically exit a quiescent state. In fact, the most likely scenario for a device to exit a quiescent state was determined to be based on the number of outstanding requests queued rather than on a maximum time. This will be re-evaluated and repositioned later. \nMaximum time in milliseconds, that a Device can run in a \"Quiesced\" state. A Device\\'s state is defined in its Availability and AdditionalAvailability properties, where \"Quiesced\" is conveyed by the value 21. What occurs at the end of the time limit is device-specific. The Device may unquiesce, may offline or take other action. A value of 0 indicates that a Device can remain quiesced indefinitely.") : Amended ToSubclass,Units("MilliSeconds") : Amended ToSubclass] uint64 MaxQuiesceTime;
  [Description("Sets the power state of the Device. The use of this method has been deprecated. Instead, use the SetPowerState method in the associated PowerManagementService class.") : Amended ToSubclass] uint32 SetPowerState([In,Description("The power state to set.") : Amended ToSubclass,Values{"Full Power", "Power Save - Low Power Mode", "Power Save - Standby", "Power Save - Other", "Power Cycle", "Power Off"} : Amended ToSubclass] uint16 PowerState,[In,Description("Time indicates when the power state should be set, either as a regular date-time value or as an interval value (where the interval begins when the method invocation is received.") : Amended ToSubclass] datetime Time);
  [Description("Requests a reset of the LogicalDevice. The return value should be 0 if the request was successfully executed, 1 if the request is not supported and some other value if an error occurred. In a subclass, the set of possible return codes could be specified, using a ValueMap qualifier on the method. The strings to which the ValueMap contents are \\'translated\\' may also be specified in the subclass as a Values array qualifier.") : Amended ToSubclass] uint32 Reset();
  [Description("The EnableDevice method has been deprecated in lieu of the more general RequestStateChange method that directly overlaps with the functionality provided by this method. \nRequests that the LogicalDevice be enabled (\"Enabled\" input parameter = TRUE) or disabled (= FALSE). If successful, the Device\\'s StatusInfo/EnabledState properties should reflect the desired state (enabled/disabled). Note that this method\\'s function overlaps with the RequestedState property. RequestedState was added to the model to maintain a record (i.e., a persisted value) of the last state request. Invoking the EnableDevice method should set the RequestedState property appropriately. \nThe return code should be 0 if the request was successfully executed, 1 if the request is not supported and some other value if an error occurred. In a subclass, the set of possible return codes could be specified, using a ValueMap qualifier on the method. The strings to which the ValueMap contents are \\'translated\\' may also be specified in the subclass as a Values array qualifier.") : Amended ToSubclass] uint32 EnableDevice([In,Description("If TRUE enable the device, if FALSE disable the device.") : Amended ToSubclass] boolean Enabled);
  [Description("The OnlineDevice method has been deprecated in lieu of the more general RequestStateChange method that directly overlaps with the functionality provided by this method. \nRequests that the LogicalDevice be brought online (\"Online\" input parameter = TRUE) or taken offline (= FALSE). \"Online\" indicates that the Device is ready to accept requests, and is operational and fully functioning. In this case, the Device\\'s Availability property would be set to a value of 3 (\"Running/Full Power\"). \"Offline\" indicates that a Device is powered up and operational, but not processing functional requests. In an offline state, a Device may be capable of running diagnostics or generating operational alerts. For example, when the \"Offline\" button is pushed on a Printer, the Device is no longer available to process print jobs, but could be available for diagnostics or maintenance. \nIf this method is successful, the Device\\'s Availability and AdditionalAvailability properties should reflect the updated status. If a failure occurs trying to bring the Device online or offline, it should remain in its current state. IE, the request, if unsuccessful, should not leave the Device in an indeterminate state. When bringing a Device back \"Online\", from an \"Offline\" mode, the Device should be restored to its last \"Online\" state, if at all possible. Only a Device that has an EnabledState/StatusInfo of \"Enabled\" and has been configured can be brought online or taken offline. \nOnlineDevice should return 0 if successful, 1 if the request is not supported at all, 2 if the request is not supported due to the current state of the Device, and some other value if any other error occurred. In a subclass, the set of possible return codes could be specified, using a ValueMap qualifier on the method. The strings to which the ValueMap contents are \\'translated\\' may also be specified in the subclass as a Values array qualifier. \nNote that this method\\'s function overlaps with the RequestedState property. RequestedState was added to the model to maintain a record (i.e., a persisted value) of the last state request. Invoking the OnlineDevice method should set the RequestedState property appropriately.") : Amended ToSubclass] uint32 OnlineDevice([In,Description("If TRUE, take the device online, if FALSE, take the device OFFLINE.") : Amended ToSubclass] boolean Online);
  [Description("The QuiesceDevice method has been deprecated in lieu of the more general RequestStateChange method that directly overlaps with the functionality provided by this method. \nRequests that the LogicalDevice cleanly cease all current activity (\"Quiesce\" input parameter = TRUE) or resume activity (= FALSE). For this method to quiesce a Device, that Device should have an Availability (or Additional Availability) of \"Running/Full Power\" (value=3) and an EnabledStatus/StatusInfo of \"Enabled\". For example, if quiesced, a Device may then be offlined for diagnostics, or disabled for power off and hot swap. For the method to \"unquiesce\" a Device, that Device should have an Availability (or AdditionalAvailability) of \"Quiesced\" (value=21) and an EnabledStatus/StatusInfo of \"Enabled\". In this case, the Device would be returned to an \"Enabled\" and \"Running/Full Power\" status. \nThe method\\'s return code should indicate the success or failure of the quiesce. It should return 0 if successful, 1 if the request is not supported at all, 2 if the request is not supported due to the current state of the Device, and some other value if any other error occurred. In a subclass, the set of possible return codes could be specified, using a ValueMap qualifier on the method. The strings to which the ValueMap contents are \\'translated\\' may also be specified in the subclass as a Values array qualifier.") : Amended ToSubclass] uint32 QuiesceDevice([In,Description("If set to TRUE then cleanly cease all activity, if FALSE resume activity.") : Amended ToSubclass] boolean Quiesce);
  [Description("Requests that the Device capture its current configuration, setup and/or state information in a backing store. The goal would be to use this information at a later time (via the RestoreProperties method), to return a Device to its present \"condition\". This method may not be supported by all Devices. The method should return 0 if successful, 1 if the request is not supported, and some other value if any other error occurred. In a subclass, the set of possible return codes could be specified, using a ValueMap qualifier on the method. The strings to which the ValueMap contents are \\'translated\\' may also be specified in the subclass as a Values array qualifier.") : Amended ToSubclass] uint32 SaveProperties();
  [Description("Requests that the Device re-establish its configuration, setup and/or state information from a backing store. The intent is to capture this information at an earlier time (via the SaveProperties method), and use it to return a Device to this earlier \"condition\". This method may not be supported by all Devices. The method should return 0 if successful, 1 if the request is not supported, and some other value if any other error occurred. In a subclass, the set of possible return codes could be specified, using a ValueMap qualifier on the method. The strings to which the ValueMap contents are \\'translated\\' may also be specified in the subclass as a Values array qualifier.") : Amended ToSubclass] uint32 RestoreProperties();
};

[Description("The abstraction of a port or connection point of a Device. This object should be instantiated when the Port has independent management characteristics from the Device that includes it. Examples are a Fibre Channel Port and a USB Port.") : Amended ToSubclass,Version("2.10.0") : Amended,AMENDMENT, LOCALE("MS_804")] 
class CIM_LogicalPort : CIM_LogicalDevice
{
  [Description("The bandwidth of the Port in Bits per Second.") : Amended ToSubclass,Units("Bits per Second") : Amended ToSubclass] uint64 Speed;
  [Description("The maximum bandwidth of the Port in Bits per Second.") : Amended ToSubclass,Units("Bits per Second") : Amended ToSubclass] uint64 MaxSpeed;
  [Description("The requested bandwidth of the Port in Bits per Second. The actual bandwidth is reported in LogicalPort.Speed.") : Amended ToSubclass,Units("Bits per Second") : Amended ToSubclass] uint64 RequestedSpeed;
  [Description("In some circumstances, a LogicalPort might be identifiable as a front end or back end port. An example of this situation would be a storage array that might have back end ports to communicate with disk drives and front end ports to communicate with hosts. If there is no restriction on the use of the port, then the value should be set to \\'not restricted\\'.") : Amended ToSubclass,Values{"Unknown", "Front-end only", "Back-end only", "Not restricted"} : Amended ToSubclass] uint16 UsageRestriction;
  [Description("PortType is defined to force consistent naming of the \\'type\\' property in subclasses and to guarantee unique enum values for all instances of NetworkPort. When set to 1 (\"Other\"), related property OtherPortType contains a string description of the type of port. A range of values, DMTF_Reserved, has been defined that allows subclasses to override and define their specific types of ports.") : Amended ToSubclass,Values{"Unknown", "Other", "Not Applicable", "DMTF Reserved", "Vendor Reserved"} : Amended ToSubclass] uint16 PortType;
  [Description("Describes the type of module, when PortType is set to 1 (\"Other\").") : Amended ToSubclass] string OtherPortType;
};

[Description("NetworkPort is the logical representation of network communications hardware such as a physical connector and the setup or operation of the network chips, at the lowest layers of a network stack.") : Amended ToSubclass,Version("2.10.0") : Amended,AMENDMENT, LOCALE("MS_804")] 
class CIM_NetworkPort : CIM_LogicalPort
{
  [Description("The current bandwidth of the Port in Bits per Second. For ports that vary in bandwidth or for those where no accurate estimation can be made, this property should contain the nominal bandwidth.") : Amended ToSubclass,Units("Bits per Second") : Amended ToSubclass] uint64 Speed;
  [Description("Note: The use of this property is deprecated in lieu of CIM_LogicalPort.PortType. \nDeprecated description: The type of module, when PortType is set to 1 (\"Other\".)") : Amended ToSubclass] string OtherNetworkPortType;
  [Description("NetworkPorts are often numbered relative to either a logical module or a network element.") : Amended ToSubclass] uint16 PortNumber;
  [Description("An enumeration of the types of links. When set to 1 (\"Other\"), the related property OtherLinkTechnology contains a string description of the type of link.") : Amended ToSubclass,Values{"Unknown", "Other", "Ethernet", "IB", "FC", "FDDI", "ATM", "Token Ring", "Frame Relay", "Infrared", "BlueTooth", "Wireless LAN"} : Amended ToSubclass] uint16 LinkTechnology;
  [Description("A string value that describes LinkTechnology when it is set to 1, \"Other\".") : Amended ToSubclass] string OtherLinkTechnology;
  [Description("PermanentAddress defines the network address that is hardcoded into a port. This \\'hardcoded\\' address can be changed using a firmware upgrade or a software configuration. When this change is made, the field should be updated at the same time. PermanentAddress should be left blank if no \\'hardcoded\\' address exists for the NetworkAdapter.") : Amended ToSubclass] string PermanentAddress;
  [Description("An array of strings that indicates the network addresses for the port.") : Amended ToSubclass] string NetworkAddresses[];
  [Description("Boolean that indicates that the port is operating in full duplex mode.") : Amended ToSubclass] boolean FullDuplex;
  [Description("A Boolean that indicates whether the NetworkPort is capable of automatically determining the speed or other communications characteristics of the attached network media.") : Amended ToSubclass] boolean AutoSense;
  [Description("The maximum transmission unit (MTU) that can be supported.") : Amended ToSubclass,Units("Bytes") : Amended ToSubclass] uint64 SupportedMaximumTransmissionUnit;
  [Description("The active or negotiated maximum transmission unit (MTU) that can be supported.") : Amended ToSubclass,Units("Bytes") : Amended ToSubclass] uint64 ActiveMaximumTransmissionUnit;
};

[Description("CIM_SettingData is used to represent configuration and and operational parameters for CIM_ManagedElement instances. There are a number of different uses of CIM_SettingData supported in the model today. Additional uses may be defined in the future.\nInstances of CIM_SettingData may represent Aspects of a CIM_ManagedElement instance. This is modeled using the CIM_SettingsDefineState association. CIM_SettingData may be used to define capabilities when associated to an instance of CIM_Capabilities through the CIM_SettingsDefineCapabilities association. \nInstances of CIM_SettingData may represent different types of configurations for a CIM_ManagedElement, including persistent configurations, in progress configuration changes, or requested configurations. The CIM_ElementSettingData association is used to model the relationship between a CIM_SettingData instance and the CIM_ManagedElement for which it is a configuration. \nWhen an instance of CIM_SettingData represents a configuration, the current operational values for the parameters of the element are reflected by properties in the Element itself or by properties in its associations. These properties do not have to be the same values that are present in the SettingData object. For example, a modem might have a SettingData baud rate of 56Kb/sec but be operating at 19.2Kb/sec. \nNote: The CIM_SettingData class is very similar to CIM_Setting, yet both classes are present in the model because many implementations have successfully used CIM_Setting. However, issues have arisen that could not be resolved without defining a new class. Therefore, until a new major release occurs, both classes will exist in the model. Refer to the Core White Paper for additional information. SettingData instances can be aggregated together into higher- level SettingData objects using ConcreteComponent associations.") : Amended ToSubclass,Version("2.19.0") : Amended,AMENDMENT, LOCALE("MS_804")] 
class CIM_SettingData : CIM_ManagedElement
{
  [Description("Within the scope of the instantiating Namespace, InstanceID opaquely and uniquely identifies an instance of this class. To ensure uniqueness within the NameSpace, the value of InstanceID should be constructed using the following \"preferred\" algorithm: \n<OrgID>:<LocalID> \nWhere <OrgID> and <LocalID> are separated by a colon (:), and where <OrgID> must include a copyrighted, trademarked, or otherwise unique name that is owned by the business entity that is creating or defining the InstanceID or that is a registered ID assigned to the business entity by a recognized global authority. (This requirement is similar to the <Schema Name>_<Class Name> structure of Schema class names.) In addition, to ensure uniqueness, <OrgID> must not contain a colon (:). When using this algorithm, the first colon to appear in InstanceID must appear between <OrgID> and <LocalID>. \n<LocalID> is chosen by the business entity and should not be reused to identify different underlying (real-world) elements. If the above \"preferred\" algorithm is not used, the defining entity must assure that the resulting InstanceID is not reused across any InstanceIDs produced by this or other providers for the NameSpace of this instance. \nFor DMTF-defined instances, the \"preferred\" algorithm must be used with the <OrgID> set to CIM.") : Amended ToSubclass,key] string InstanceID;
  [Description("The user-friendly name for this instance of SettingData. In addition, the user-friendly name can be used as an index property for a search or query. (Note: The name does not have to be unique within a namespace.)") : Amended ToSubclass] string ElementName;
};

[Description("A logical network adapters") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetAdapter : CIM_NetworkPort
{
  [Description("Interface Description, a.k.a. ifDescr or friendly name is a unique name assigned to the network adapter during installation. This name cannot be changed and is persisted as long as the network adapter is not uninstalled.") : Amended ToSubclass] string InterfaceDescription;
  [Description("The locally unique identifier for the network interface. in InterfaceType_NetluidIndex format. Ex: Ethernet_2.") : Amended ToSubclass] string InterfaceName;
  [Description("The locally unique identifier (LUID) for the network interface as a 64 bit number.") : Amended ToSubclass] uint64 NetLuid;
  [Description("The GUID for the network interface.") : Amended ToSubclass] string InterfaceGuid;
  [Description("The index that identifies the network interface. This index value may change when a network adapter is disabled and then enabled, and should not be considered persistent.") : Amended ToSubclass] uint32 InterfaceIndex;
  [Description("The name of the device object for this adapter.") : Amended ToSubclass] string DeviceName;
  [Description("An index assigned to the network adapter at the time of installation.\nThis index is unique in the scope of interface type.") : Amended ToSubclass] uint32 NetLuidIndex;
  [Description("Network adapter emulates a physical network card.") : Amended ToSubclass] boolean Virtual;
  [Description("Network adapter is hidden and does not appear in any user interface.") : Amended ToSubclass] boolean Hidden;
  [Description("Network adapter cannot be removed by the user.") : Amended ToSubclass] boolean NotUserRemovable;
  [Description("Network adapter is the adapter edge of an intermediate filter component.") : Amended ToSubclass] boolean IMFilter;
  [Description("The interface type as defined by the Internet Assigned Names Authority (IANA).") : Amended ToSubclass] uint32 InterfaceType;
  [Description("The interface for the network adapter is provided by a hardware device.") : Amended ToSubclass] boolean HardwareInterface;
  [Description("The lower-level interface of the network adapter is a WDM bus driver such as USB.") : Amended ToSubclass] boolean WdmInterface;
  [Description("This interface is an endpoint device and is not a true network interface that connects to a network.") : Amended ToSubclass] boolean EndPointInterface;
  [Description("The interface is used by iSCSI software initiator and is in the paging path.") : Amended ToSubclass] boolean iSCSIInterface;
  [Description("The plug and play state of the network adapter.\n") : Amended ToSubclass,Values{"Unknown", "Present", "Started", "Disabled"} : Amended ToSubclass] uint32 State;
  [Description("Network adapter media type.") : Amended ToSubclass,Values{"802.3", "802.5", "FDDI", "WAN", "Local Talk", "DIX", "Raw Arcnet", "878.2", "ATM", "Wireless WAN", "IRDA", "BPC", "Connection Oriented WAN", "IP 1394", "IB", "Tunnel", "Native 802.11", "Loopback", "WiMAX", "IP"} : Amended ToSubclass] uint32 NdisMedium;
  [Description("The types of physical media that the network adapter supports\n") : Amended ToSubclass,Values{"Unspecified", "Wireless LAN", "Cable Modem", "Phone Line", "Power Line", "DSL", "FC", "1394", "Wireless WAN", "Native 802.11", "BlueTooth", "Infiniband", "WiMAX", "UWB", "802.3", "802.5", "IRDA", "Wired WAN", "Wired Connection Oriented WAN", "Other"} : Amended ToSubclass] uint32 NdisPhysicalMedium;
  [Description("Current network interface operational status.") : Amended ToSubclass,Values{"Up", "Down", "Testing", "Unknown", "Dormant", "Not Present", "Lower layer down"} : Amended ToSubclass] uint32 InterfaceOperationalStatus;
  [Description("The default port of the network adapter is not authenticated.") : Amended ToSubclass] boolean OperationalStatusDownDefaultPortNotAuthenticated;
  [Description("The network adapter is not in a media-connected state.") : Amended ToSubclass] boolean OperationalStatusDownMediaDisconnected;
  [Description("The network adapter is in the paused state.") : Amended ToSubclass] boolean OperationalStatusDownInterfacePaused;
  [Description("The network adapter is in a low power state.") : Amended ToSubclass] boolean OperationalStatusDownLowPowerState;
  [Description("Network adapter administrative status, as described in RFC 2863.") : Amended ToSubclass,Values{"Up", "Down", "Testing"} : Amended ToSubclass] uint32 InterfaceAdminStatus;
  [Description("Specifies the network adapter connection state.") : Amended ToSubclass,Values{"Unknown", "Connected", "Disconnected"} : Amended ToSubclass] uint32 MediaConnectState;
  [Description("The maximum transfer unit (MTU) size the network adapter supports. This value does not include the size of the link-layer header.") : Amended ToSubclass] uint32 MtuSize;
  [Description("The Virtual LAN Identifier set on the network adapter.") : Amended ToSubclass] uint16 VlanID;
  [Description("The transmit link speed in bits per second.") : Amended ToSubclass] uint64 TransmitLinkSpeed;
  [Description("The receive link speed in bits per second.") : Amended ToSubclass] uint64 ReceiveLinkSpeed;
  [Description("TRUE if the interface is in promiscuous mode or FALSE if it is not.") : Amended ToSubclass] boolean PromiscuousMode;
  [Description("TRUE if the network adapter supports wake-on-LAN capability and the capability is enabled, or FALSE if it does not") : Amended ToSubclass] boolean DeviceWakeUpEnable;
  [Description("Indicates if a connector is present on the network adapter. This value is set to TRUE if this is a physical adapter or FALSE if this is not a physical adapter.") : Amended ToSubclass] boolean ConnectorPresent;
  [Description("The media duplex state of the network adapter.") : Amended ToSubclass,Values{"Unknown", "Half", "Full"} : Amended ToSubclass] uint32 MediaDuplexState;
  [Description("The network adapter driver date in YYYY-MM-DD format.") : Amended ToSubclass] string DriverDate;
  [Description("The network adapter driver date in FILETIME format. This is a 64-bit value representing the number of 100-nanosecond intervals since January 1, 1601 (UTC).") : Amended ToSubclass] uint64 DriverDateData;
  [Description("A string representing the network adapter driver version.") : Amended ToSubclass] string DriverVersionString;
  [Description("The name of the network adapter driver.") : Amended ToSubclass] string DriverName;
  [Description("The description for the network adapter driver.") : Amended ToSubclass] string DriverDescription;
  [Description("The major version of network adapter driver.") : Amended ToSubclass] uint16 MajorDriverVersion;
  [Description("The minor version of network adapter driver.") : Amended ToSubclass] uint16 MinorDriverVersion;
  [Description("The major NDIS version the network adapter driver conforms to.") : Amended ToSubclass] uint8 DriverMajorNdisVersion;
  [Description("The minor NDIS version the network adapter driver conforms to.") : Amended ToSubclass] uint8 DriverMinorNdisVersion;
  [Description("The Plug and Play Device ID.") : Amended ToSubclass] string PnPDeviceID;
  [Description("The driver provider name.") : Amended ToSubclass] string DriverProvider;
  [Description("The PnP component ID, a.k.a. Hardware ID of the network adapter.") : Amended ToSubclass] string ComponentID;
  [Description("The interface indices of lower layer interfaces.") : Amended ToSubclass] uint32 LowerLayerInterfaceIndices[];
  [Description("The interface indices of higher layer interfaces.") : Amended ToSubclass] uint32 HigherLayerInterfaceIndices[];
  [Description("The management state of the network adapter. If True, the network adapter is locked and many of its properties cannot be changed unless the adapter is unlocked.") : Amended ToSubclass] boolean AdminLocked;
  [Description("Enables a network adapter") : Amended ToSubclass] uint32 Enable([Out] MSFT_NetAdapter CmdletOutput);
  [Description("Disables a network adapter") : Amended ToSubclass] uint32 Disable([Out] MSFT_NetAdapter CmdletOutput);
  [Description("Restarts a network adapter") : Amended ToSubclass] uint32 Restart([Out] MSFT_NetAdapter CmdletOutput);
  [Description("Locks a network adapter") : Amended ToSubclass] uint32 Lock([Out] MSFT_NetAdapter CmdletOutput);
  [Description("Unlocks a network adapter") : Amended ToSubclass] uint32 Unlock([Out] MSFT_NetAdapter CmdletOutput);
  [Description("Renames a network adapter") : Amended ToSubclass] uint32 Rename([In] string NewName,[Out] MSFT_NetAdapter CmdletOutput);
};

[Description("Associates a network port with its configuration data.") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetAdapterElementSettingData : CIM_ElementSettingData
{
  [key,Description("The managed element.") : Amended ToSubclass] MSFT_NetAdapter Ref ManagedElement;
  [key,Description("The SettingData object associated with the element.") : Amended ToSubclass] MSFT_NetAdapterSettingData Ref SettingData;
};

[Description("Associates a network port with its advanced property configuration stored in the registry.") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetAdapterAdvancedPropertyElementSetting : MSFT_NetAdapterElementSettingData
{
  [key,Description("Advanced properties for the network adapter.") : Amended ToSubclass] MSFT_NetAdapterAdvancedPropertySettingData Ref SettingData;
};

[Description("Superclass SettingData for networking") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetSettingData : CIM_SettingData
{
};

[Description("Represents the base class for network adapter settings.") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetAdapterSettingData : MSFT_NetSettingData
{
  [Description("Name, a.k.a. Connection Name, ifAlias, or InterfaceAlias, is a unique name assigned to the adapter during installation. The Name of the adapter can be changed by the administrator and is persisted across the boot or network adapter restart.") : Amended ToSubclass] string Name;
  [Description("Interface Description, a.k.a. ifDescr or friendly name is a unique name assigned to the network adapter during installation. This name cannot be changed and is persisted as long as the network adapter is not uninstalled.") : Amended ToSubclass] string InterfaceDescription;
  [Description("The source of the setting data.\n") : Amended ToSubclass,Values{"Unknown", "Other", "Device", "Persistent storage"} : Amended ToSubclass] uint32 Source;
  [Description("The scoping System\\'s Name.") : Amended ToSubclass] string SystemName;
};

[Description("This class represents the advanced properties of a network adapter stored in the registry.") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetAdapterAdvancedPropertySettingData : MSFT_NetAdapterSettingData
{
  [Description("The property description in user interface.\nThis property is only valid if the parameter is displayed in user interface.") : Amended ToSubclass] string DisplayName;
  [Description("The description for the current value of the property.\nThis property is only valid if the parameter is displayed in user interface.") : Amended ToSubclass] string DisplayValue;
  [Description("The description for the default value of the parameter.\nThis property is only valid if the parameter is displayed in user interface.") : Amended ToSubclass] string DefaultDisplayValue;
  [Description("This property specifies the type of the parameter. The \"int\", \"long\", \"word\", and \"dword\" types specify a numeric parameter; \"edit\" and \"enum\" types specify a text parameter. Note that the values for all the parameters that are displayed in the user interface, including numeric parameters, are stored in the registry as REG_SZ (null terminated string) data type.\nThis property is only valid if the parameter is displayed in user interface.") : Amended ToSubclass,Values{"int", "long", "word", "dword", "enum", "edit"} : Amended ToSubclass] uint32 DisplayParameterType;
  [Description("If True, specifying this parameter is optional. Otherwise it is mandatory.\nThis property is only valid if the parameter is displayed in user interface.") : Amended ToSubclass] boolean Optional;
  [Description("An array of integers specifying the registry keyword values used to represent a parameter of the \"enum\" type.\nThis property is only valid if the parameter is displayed in user interface.") : Amended ToSubclass] string ValidRegistryValues[];
  [Description("An array of strings representing the descriptions for the registry keyword values used in EnumParameterRegistryValues.\nThis property is only valid if the parameter is displayed in user interface.") : Amended ToSubclass] string ValidDisplayValues[];
  [Description("The \"Base\" used in representing a numeric parameter.\nThis property is only valid if the parameter is displayed in user interface.") : Amended ToSubclass] string NumericParameterBaseValue;
  [Description("The minimum value of a numeric parameter.\nThis property is only valid if the parameter is displayed in user interface.") : Amended ToSubclass] string NumericParameterMinValue;
  [Description("The maximum value of a numeric parameter.\nThis property is only valid if the parameter is displayed in user interface.") : Amended ToSubclass] string NumericParameterMaxValue;
  [Description("The \"Step\" value of a numeric parameter.\nThis property is only valid if the parameter is displayed in user interface.") : Amended ToSubclass] string NumericParameterStepValue;
  [Description("Registry keyword name of the parameter.\nRegistry keywords may be associated with a parameter displayed in user interface. Some registry keywords are not associated to any parameter displayed in user interface.") : Amended ToSubclass] string RegistryKeyword;
  [Description("Registry keyword data type. For parameters displayed in user interface, this value is always REG_SZ even if the parameter is a numeric parameter.") : Amended ToSubclass,Values{"REG_SZ", "REG_DWORD", "REG_MULTI_SZ", "REG_QWORD"} : Amended ToSubclass] uint32 RegistryDataType;
  [Description("Current value of the registry keyword. For a parameter that is displayed in user interface and is of \"enum\" type, this is a value in EnumParameterRegistryValues array and not the description for the current value of the parameter.") : Amended ToSubclass] string RegistryValue[];
  [Description("Default registry value for the parameter.\nThis property is only valid if the parameter is displayed in user interface.") : Amended ToSubclass] string DefaultRegistryValue;
  [Description("Resets the advanced property of a network adapter to its factory default value.") : Amended ToSubclass] uint32 Reset([Out] MSFT_NetAdapterAdvancedPropertySettingData CmdletOutput);
};

[Description("Associates a network port with its binding information.") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetAdapterBindingElementSetting : MSFT_NetAdapterElementSettingData
{
  [key,Description("Binding information for the network adapter.") : Amended ToSubclass] MSFT_NetAdapterBindingSettingData Ref SettingData;
};

[Description("This class represents the binding information of a network adapter.") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetAdapterBindingSettingData : MSFT_NetAdapterSettingData
{
  [Description("If True, the binding has been enabled by admin. If False, the binding has been disabled.") : Amended ToSubclass] boolean Enabled;
  [Description("The display name of the transport or filter.") : Amended ToSubclass] string DisplayName;
  [Description("The component ID of the transport or filter.") : Amended ToSubclass] string ComponentID;
  [Description("The name used by NDIS. This is typically the service name for the protocol.") : Amended ToSubclass] string BindName;
  [Description("The class name of the network component represented by this binding.") : Amended ToSubclass] string ComponentClassName;
  [Description("The class GUID of the network component represented by this binding.") : Amended ToSubclass] string ComponentClassGuid;
  [Description("Characteristics of the network component represented by this binding.") : Amended ToSubclass] uint32 Characteristics;
  [Description("Enables a binding to a network adapter.") : Amended ToSubclass] uint32 Enable([Out] MSFT_NetAdapterBindingSettingData cmdletOutput);
  [Description("Disables a binding to a network adapter.") : Amended ToSubclass] uint32 Disable([Out] MSFT_NetAdapterBindingSettingData cmdletOutput);
};

[Description("MSFT_NetAdapter_ChecksumOffload") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetAdapterChecksumOffloadCapabilities
{
  [Description("Defines the checksum offload encapsulation settings for the Adapter for IPv4 transmit packets.") : Amended ToSubclass] MSFT_NetAdapterChecksumOffloadEncapsulationTypes IPv4TransmitEncapsulation;
  [Description("Indicates if the Adapter supports IPv4 options for transmit checksum offload.") : Amended ToSubclass] boolean IPv4TransmitIpOptionsSupported;
  [Description("Indicates if the Adapter supports TCP options for transmit checksum offload on IPv4 packets.") : Amended ToSubclass] boolean IPv4TransmitTcpOptionsSupported;
  [Description("Indicates if the Adapter supports TCP checksum computation offload for transmit IPv4 packets.") : Amended ToSubclass] boolean IPv4TransmitTcpChecksumSupported;
  [Description("Indicates if the Adapter supports UDP checksum computation offload for transmit IPv4 packets.") : Amended ToSubclass] boolean IPv4TransmitUdpChecksumSupported;
  [Description("Indicates if the Adapter supports IP checksum computation offload for transmit IPv4 packets.") : Amended ToSubclass] boolean IPv4TransmitIpChecksumSupported;
  [Description("Defines the checksum offload encapsulation settings for the Adapter for IPv4 receive packets.") : Amended ToSubclass] MSFT_NetAdapterChecksumOffloadEncapsulationTypes IPv4ReceiveEncapsulation;
  [Description("Indicates if the Adapter supports IPv4 options for receive checksum offload.") : Amended ToSubclass] boolean IPv4ReceiveIpOptionsSupported;
  [Description("Indicates if the Adapter supports TCP options for receive checksum offload on IPv4 packets.") : Amended ToSubclass] boolean IPv4ReceiveTcpOptionsSupported;
  [Description("Indicates if the Adapter supports TCP checksum validation offload for receive IPv4 packets.") : Amended ToSubclass] boolean IPv4ReceiveTcpChecksumSupported;
  [Description("Indicates if the Adapter supports UDP checksum validation offload for receive IPv4 packets.") : Amended ToSubclass] boolean IPv4ReceiveUdpChecksumSupported;
  [Description("Indicates if the Adapter supports IP checksum validation offload for receive IPv4 packets.") : Amended ToSubclass] boolean IPv4ReceiveIpChecksumSupported;
  [Description("Defines the checksum offload encapsulation settings for the Adapter for IPv6 transmit packets.") : Amended ToSubclass] MSFT_NetAdapterChecksumOffloadEncapsulationTypes IPv6TransmitEncapsulation;
  [Description("Indicates if the Adapter supports IPv6 extension headers for transmit checksum offload.") : Amended ToSubclass] boolean IPv6TransmitIpExtensionHeadersSupported;
  [Description("Indicates if the Adapter supports TCP options for transmit checksum offload on IPv6 packets.") : Amended ToSubclass] boolean IPv6TransmitTcpOptionsSupported;
  [Description("Indicates if the Adapter supports TCP checksum computation offload for transmit IPv6 packets.") : Amended ToSubclass] boolean IPv6TransmitTcpChecksumSupported;
  [Description("Indicates if the Adapter supports UDP checksum computation offload for transmit IPv6 packets.") : Amended ToSubclass] boolean IPv6TransmitUdpChecksumSupported;
  [Description("Defines the checksum offload encapsulation settings for the Adapter for IPv6 receive packets.") : Amended ToSubclass] MSFT_NetAdapterChecksumOffloadEncapsulationTypes IPv6ReceiveEncapsulation;
  [Description("Indicates if the Adapter supports IPv6 extension headers for receive checksum offload.") : Amended ToSubclass] boolean IPv6ReceiveIpExtensionHeadersSupported;
  [Description("Indicates if the Adapter supports TCP options for receive checksum offload on IPv6 packets.") : Amended ToSubclass] boolean IPv6ReceiveTcpOptionsSupported;
  [Description("Indicates if the Adapter supports TCP checksum validation offload for receive IPv6 packets.") : Amended ToSubclass] boolean IPv6ReceiveTcpChecksumSupported;
  [Description("Indicates if the Adapter supports UDP checksum validation offload for receive IPv6 packets.") : Amended ToSubclass] boolean IPv6ReceiveUdpChecksumSupported;
};

[Description("Associates a network adapter with its TCPIP checksum offload data.") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetAdapterChecksumOffloadElementSetting : MSFT_NetAdapterElementSettingData
{
  [key,Description("The TCPIP checksum offload setting data for network adapter.") : Amended ToSubclass] MSFT_NetAdapterChecksumOffloadSettingData Ref SettingData;
};

[Description("MSFT_NetAdapter_EncapsulationTypes") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetAdapterChecksumOffloadEncapsulationTypes
{
  [Description("Specifies that no encapsulation offload is supported.") : Amended ToSubclass] boolean NdisEncapsulationNotSupported;
  [Description("Specifies NULL encapsulation.") : Amended ToSubclass] boolean NdisEncapsulationNotNull;
  [Description("Specifies IEEE 802.3 encapsulation.") : Amended ToSubclass] boolean NdisEncapsulationIeee802_3;
  [Description("Specifies IEEE 802.3p and IEEE 802.3q encapsulation.") : Amended ToSubclass] boolean NdisEncapsulationIeee802_3pAndq;
  [Description("Specifies that IEEE 802.3p and IEEE 802.3q encapsulation settings are specified in the NetBufferList as OOB info.") : Amended ToSubclass] boolean NdisEncapsulationIeee802_3PAndQInOob;
  [Description("Specifies logical link control (LLC) encapsulation for routed protocols. Also used to indicate Ethernet LLC/SNAP encapsulation.") : Amended ToSubclass] boolean NdisEncapsulationIeeLlcSnapRouted;
};

[Description("MSFT_NetAdapterChecksumOffloadSettingData") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetAdapterChecksumOffloadSettingData : MSFT_NetAdapterSettingData
{
  [Description("Indicates if IP checksum offload is currently enabled for IPv4 packets on this Adapter.") : Amended ToSubclass,Values{"Disabled", "TxEnabled", "RxEnabled", "RxTxEnabled"} : Amended ToSubclass] uint32 IpIPv4Enabled;
  [Description("Indicates if TCP checksum offload is currently enabled for IPv4 packets on this Adapter.") : Amended ToSubclass,Values{"Disabled", "TxEnabled", "RxEnabled", "RxTxEnabled"} : Amended ToSubclass] uint32 TcpIPv4Enabled;
  [Description("Indicates if TCP checksum offload is currently enabled for IPv6 packets on this Adapter.") : Amended ToSubclass,Values{"Disabled", "TxEnabled", "RxEnabled", "RxTxEnabled"} : Amended ToSubclass] uint32 TcpIPv6Enabled;
  [Description("Indicates if UDP checksum offload is currently enabled for IPv4 packets on this Adapter.") : Amended ToSubclass,Values{"Disabled", "TxEnabled", "RxEnabled", "RxTxEnabled"} : Amended ToSubclass] uint32 UdpIPv4Enabled;
  [Description("Indicates if UDP checksum offload is currently enabled for IPv6 packets on this Adapter.") : Amended ToSubclass,Values{"Disabled", "TxEnabled", "RxEnabled", "RxTxEnabled"} : Amended ToSubclass] uint32 UdpIPv6Enabled;
  [Description("The checksum offload hardware capabilities of the Adapter.") : Amended ToSubclass] MSFT_NetAdapterChecksumOffloadCapabilities ChecksumOffloadHardwareCapabilities;
  [Description("Enables the TCPIP checksum offload properties on the network adapter.") : Amended ToSubclass] uint32 Enable([In] boolean IpIPv4,[In] boolean TcpIPv4,[In] boolean TcpIPv6,[In] boolean UdpIPv4,[In] boolean UdpIPv6,[In] uint32 RxTxControl,[Out] MSFT_NetAdapterChecksumOffloadSettingData cmdletOutput);
  [Description("Disables the TCPIP checksum offload properties on the network adapter.") : Amended ToSubclass] uint32 Disable([In] boolean IpIPv4,[In] boolean TcpIPv4,[In] boolean TcpIPv6,[In] boolean UdpIPv4,[In] boolean UdpIPv6,[In] uint32 RxTxControl,[Out] MSFT_NetAdapterChecksumOffloadSettingData cmdletOutput);
};

[Description("This class is used to define the capabilities of the NVGRE encapsulation type supported by a network adapter for task offloads.") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetAdapterEncapsulatedPacketTaskOffloadCapabilities
{
  [Description("Indicates network adapter support for Transmit Checksum Offload for this encapsulated packet type.") : Amended ToSubclass] uint32 TransmitChecksumOffloadSupported;
  [Description("Indicates network adapter support for Receive Checksum Offload for this encapsulated packet type.") : Amended ToSubclass] uint32 ReceiveChecksumOffloadSupported;
  [Description("Indicates network adapter support for Large Send Offload (LSO) V2 for this encapsulated packet type.") : Amended ToSubclass] uint32 LsoV2Supported;
  [Description("Indicates network adapter support for Receive Side Scaling (RSS) for this encapsulated packet type.") : Amended ToSubclass] uint32 RssSupported;
  [Description("Indicates network adapter support for Virtual Machine Queue (VMQ) for this encapsulated packet type.") : Amended ToSubclass] uint32 VmqSupported;
};

[Description("This class is used to define the capabilities of the VXLAN encapsulation type supported by a network adapter for task offloads.") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetAdapterEncapsulatedPacketTaskOffloadCapabilitiesEx : MSFT_NetAdapterEncapsulatedPacketTaskOffloadCapabilities
{
  [Description("Specifies the UDP Port Number for VXLAN Traffic.") : Amended ToSubclass] uint16 VxlanUDPPortNumber;
  [Description("Specifies whether or not the UDP Port Number for VXLAN Traffic can be configured.") : Amended ToSubclass] boolean IsVxlanUDPPortConfigurable;
};

[Description("Associates a network adapter with its Encapsulation Offload data.") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetAdapterEncapsulatedPacketTaskOffloadElementSetting : MSFT_NetAdapterElementSettingData
{
  [key,Description("The Encapsulated Packet Task Offload setting data for network adapter.") : Amended ToSubclass] MSFT_NetAdapterEncapsulatedPacketTaskOffloadSettingData Ref SettingData;
};

[Description("Encapsulated packet task offload properties for a network adapter.") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetAdapterEncapsulatedPacketTaskOffloadSettingData : MSFT_NetAdapterSettingData
{
  [Description("Type of Encapsulation - NVGRE (1) or VXLAN (2) with possibility to bitwise combine") : Amended ToSubclass,Values{"NVGRE", "VXLAN"} : Amended ToSubclass] uint16 EncapsulationType;
  [Description("Specifies the UDP Port Number for VXLAN Traffic.") : Amended ToSubclass] uint16 VxlanUDPPortNumber;
  [Description("Specifies whether or not the UDP Port Number for VXLAN Traffic can be configured.") : Amended ToSubclass] boolean IsVxlanUDPPortConfigurable;
  [Description("Indicates if NVGRE Encapsulated Packet Task Offloads are currently enabled for this Adapter") : Amended ToSubclass] boolean NvgreEncapsulatedPacketTaskOffloadEnabled;
  [Description("Indicates if VXLAN Encapsulated Packet Task Offloads are currently enabled for this Adapter") : Amended ToSubclass] boolean VxlanEncapsulatedPacketTaskOffloadEnabled;
  [Description("Describes NVGRE Encapsulated Packet Task Offload hardware capabilities of this Adapter") : Amended ToSubclass] MSFT_NetAdapterEncapsulatedPacketTaskOffloadCapabilities EncapsulatedPacketTaskOffloadHardwareCapabilitiesNvgre;
  [Description("Describes VXLAN Encapsulated Packet Task Offload hardware capabilities of this Adapter") : Amended ToSubclass] MSFT_NetAdapterEncapsulatedPacketTaskOffloadCapabilitiesEx EncapsulatedPacketTaskOffloadHardwareCapabilitiesVxlan;
  [Description("Enables the Encapsulation Offload properties on the network adapter.") : Amended ToSubclass] uint32 Enable([In] uint16 EncapsulationType,[Out] MSFT_NetAdapterEncapsulatedPacketTaskOffloadSettingData cmdletOutput);
  [Description("Disables the Encapsulation Offload properties on the network adapter.") : Amended ToSubclass] uint32 Disable([In] uint16 EncapsulationType,[Out] MSFT_NetAdapterEncapsulatedPacketTaskOffloadSettingData cmdletOutput);
};

[Description("Associates a network adapter with its hardware data.") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetAdapterHardwareInfoElementSetting : MSFT_NetAdapterElementSettingData
{
  [key,Description("The hardware information setting data for network adapter.") : Amended ToSubclass] MSFT_NetAdapterHardwareInfoSettingData Ref SettingData;
};

[Description("Hardware information for a network adapter") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetAdapterHardwareInfoSettingData : MSFT_NetAdapterSettingData
{
  [Description("Not using interrupts.") : Amended ToSubclass] boolean NoInterrupt;
  [Description("Using line based interrupts.") : Amended ToSubclass] boolean LineBasedInterrupts;
  [Description("MSI is supported.") : Amended ToSubclass] boolean MsiSupported;
  [Description("MSI is enabled.") : Amended ToSubclass] boolean MsiEnabled;
  [Description("MSI-X is supported.") : Amended ToSubclass] boolean MsiXSupported;
  [Description("MSI-X is enabled.") : Amended ToSubclass] boolean MsiXEnabled;
  [Description("The number of MSI-X table entries supported by the hardware.") : Amended ToSubclass] uint32 NumMsixTableEntries;
  [Description("The number of MSI messages allocated by the network adapter driver.") : Amended ToSubclass] uint32 NumMsiMessages;
  [Description("The NUMA node of the network adapter.") : Amended ToSubclass] uint16 NumaNode;
  [Description("The location information for a PCI network adapter. This string includes bus, device and function number for the network adapter as displayed in device manager.") : Amended ToSubclass] string LocationInformationString;
  [Description("The segment number of a PCI network adapter.") : Amended ToSubclass] uint32 SegmentNumber;
  [Description("The bus number of a PCI network adapter.") : Amended ToSubclass] uint32 BusNumber;
  [Description("The device number of a PCI network adapter.") : Amended ToSubclass] uint32 DeviceNumber;
  [Description("The function number of a PCI network adapter.") : Amended ToSubclass] uint32 FunctionNumber;
  [Description("The slot number of a PCI network adapter.") : Amended ToSubclass] uint32 SlotNumber;
  [Description("The type of PCI device.") : Amended ToSubclass,Values{"Conventional PCI", "PCI-X", "PCI Express endpoint", "PCI Express legacy endpoint", "PCI Express Root Complex integrated endpoint", "PCI Express treated as PCI"} : Amended ToSubclass] uint32 PciDeviceType;
  [Description("The current speed and mode, valid only for conventional PCI devices") : Amended ToSubclass,Values{"Conventional PCI 33MHz", "Conventional PCI 66MHz"} : Amended ToSubclass] uint32 PciCurrentSpeedAndMode;
  [Description("The current speed and mode, valid only for PCI-X devices") : Amended ToSubclass,Values{"PCI-X Mode conventional PCI", "PCI-X Mode1 66MHz", "PCI-X Mode1 100MHz", "PCI-X Mode1 133MHz", "PCI-X Mode1 ECC 66MHz", "PCI-X Mode1 ECC 100MHz", "PCI-X Mode1 ECC 133MHz", "PCI-X Mode2 266 66MHz", "PCI-X Mode2 266 100MHz", "PCI-X Mode2 266 133MHz", "PCI-X Mode2 533 66MHz", "PCI-X Mode2 533 100MHz", "PCI-X Mode2 533 133MHz"} : Amended ToSubclass] uint32 PciXCurrentSpeedAndMode;
  [Description("Current payload size in bytes, valid only for PCI-E devices.") : Amended ToSubclass] uint32 PciExpressCurrentPayloadSize;
  [Description("Maximum payload size in bytes, valid only for PCI-E devices.") : Amended ToSubclass] uint32 PciExpressMaxPayloadSize;
  [Description("Maximum read request size in bytes, valid only for PCI-E devices") : Amended ToSubclass] uint32 PciExpressMaxReadRequestSize;
  [Description("Current link speed encoded, valid only for PCI-E devices.") : Amended ToSubclass,Values{"2.5 Gbps", "5 Gbps"} : Amended ToSubclass] uint32 PciExpressCurrentLinkSpeedEncoded;
  [Description("Current link width (1, 2, 4, .., 32), valid only for PCI-E devices.") : Amended ToSubclass] uint32 PciExpressCurrentLinkWidth;
  [Description("Maximum link speed encoded, valid only for PCI-E devices.") : Amended ToSubclass,Values{"2.5 Gbps", "5 Gbps"} : Amended ToSubclass] uint32 PciExpressMaxLinkSpeedEncoded;
  [Description("Maximum link width (1, 2, 4, .., 32), valid only for PCI-E devices.") : Amended ToSubclass] uint32 PciExpressMaxLinkWidth;
  [Description("PCI Express specification version, valid for PCI-E devices.") : Amended ToSubclass,Values{"1.0", "1.1"} : Amended ToSubclass] uint32 PciExpressVersion;
  [Description("If True, line-based interrupts are supported.") : Amended ToSubclass] boolean LineBasedInterruptSupported;
  [Description("If True, MSI interrupts are supported.") : Amended ToSubclass] boolean MsiInterruptSupported;
  [Description("If True, MSI-X interrupts are supported.") : Amended ToSubclass] boolean MsiXInterruptSupported;
  [Description("Maximum number of message interrupts a device supports in hardware. Valid only if the device supports message interrupts.") : Amended ToSubclass] uint32 MaxInterruptMessages;
  [Description("An array of processor affinity masks of MSI-X messages allocated by the network adapter driver.") : Amended ToSubclass] MSFT_NetAdapter_Group_Affinity MsixMessageAffinityArray[];
  [Description("Indicates if a device supports 64-bit DMA.") : Amended ToSubclass] boolean Dma64BitSupported;
  [Description("This property indicates the status of SR-IOV support for the device.") : Amended ToSubclass,Values{"Unknown", "Supported", "MissingAcs", "MissingPfDriver", "NoBusResources", "NoIoMmuSupport", "NoVfBarSpace", "NoOscSupport"} : Amended ToSubclass] uint32 SriovSupport;
  [Description("Indicates if a device can wake up via PME while the system is in S0.") : Amended ToSubclass] boolean S0WakeupSupported;
  [Description("This property provides the unique ID associated with a PCI device.") : Amended ToSubclass] uint32 PciDeviceLabelID;
  [Description("This property provides an identification string associated with a PCI device.") : Amended ToSubclass] string PciDeviceLabelString;
};

[Description("Associates a network adapter with its IPsec Task Offload v2 setting data.") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetAdapterIPsecOffloadV2ElementSetting : MSFT_NetAdapterElementSettingData
{
  [key,Description("The SettingData object associated with the element.") : Amended ToSubclass] MSFT_NetAdapterIPsecOffloadV2SettingData Ref SettingData;
};

[Description("IPsec Task Offload v2 settings for a network adapter") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetAdapterIPsecOffloadV2SettingData : MSFT_NetAdapterSettingData
{
  [Description("Set the IPsec Task Offload v2 properties on the network adapter.") : Amended ToSubclass] uint32 Set([In] boolean Enabled,[In] boolean NoRestart,[In] boolean PassThru,[Out] MSFT_NetAdapterIPsecOffloadV2SettingData cmdletOutput);
  [Description("Enable IPsec Task Offload v2 on the network adapter.") : Amended ToSubclass] uint32 Enable([In] boolean NoRestart,[In] boolean PassThru,[Out] MSFT_NetAdapterIPsecOffloadV2SettingData cmdletOutput);
  [Description("Disable IPsec Task Offload v2 on the network adapter.") : Amended ToSubclass] uint32 Disable([In] boolean NoRestart,[In] boolean PassThru,[Out] MSFT_NetAdapterIPsecOffloadV2SettingData cmdletOutput);
};

[Description("This class is used to report LSOv1 capabilities on a network adapter.") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetAdapterLargeSendOffloadV1Capabilities
{
  [Description("Defines the LSOv1 encapsulation settings for the Adapter.") : Amended ToSubclass] MSFT_NetAdapterLsoEncapsulationTypes IPv4Encapsulation;
  [Description("Maximum bytes of user data in a single packet supported by the Adapter.") : Amended ToSubclass] uint32 IPv4MaxOffloadSizeSupported;
  [Description("Minimum number of segments that a large TCP packet must be divisible by before offloading to Adapter for segmentation.") : Amended ToSubclass] uint32 IPv4MinSegmentCountSupported;
  [Description("Indicates if the Adapter supports segmentation of a packet containing TCP options.") : Amended ToSubclass] boolean IPv4TcpOptionsSupported;
  [Description("Indicates if the Adapter supports segmentation of a packet containing IPv4 options.") : Amended ToSubclass] boolean IPv4IpOptionsSupported;
};

[Description("This class is used to report LSOv2 capabilities on a network adapter.") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetAdapterLargeSendOffloadV2Capabilities
{
  [Description("Defines the IPv4 LSOv2 encapsulation settings for the Adapter.") : Amended ToSubclass] MSFT_NetAdapterLsoEncapsulationTypes IPv4Encapsulation;
  [Description("Maximum bytes of user data in a single packet supported by the Adapter for IPv4 packets.") : Amended ToSubclass] uint32 IPv4MaxOffloadSizeSupported;
  [Description("Minimum number of segments that a large TCP packet must be divisible by before offloading to Adapter for segmentation for IPv4 packets.") : Amended ToSubclass] uint32 IPv4MinSegmentCountSupported;
  [Description("Defines the IPv6 LSOv2 encapsulation settings for the Adapter.") : Amended ToSubclass] MSFT_NetAdapterLsoEncapsulationTypes IPv6Encapsulation;
  [Description("Maximum bytes of user data in a single packet supported by the Adapter for IPv6 packets.") : Amended ToSubclass] uint32 IPv6MaxOffLoadSizeSupported;
  [Description("Minimum number of segments that a large TCP packet must be divisible by before offloading to Adapter for segmentation for IPv6 packets.") : Amended ToSubclass] uint32 IPv6MinSegmentCountSupported;
  [Description("Indicates if the Adapter supports segmentation of a packet containing IPv6 Extension headers.") : Amended ToSubclass] boolean IPv6IpExtensionHeadersSupported;
  [Description("Indicates if the Adapter supports segmentation of a packet containing TCP options.") : Amended ToSubclass] boolean IPv6TcpOptionsSupported;
};

[Description("Associates a network adapter with its Large Send Offload (LSO) data.") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetAdapterLsoElementSetting : MSFT_NetAdapterElementSettingData
{
  [key,Description("The LSO setting data for network adapter.") : Amended ToSubclass] MSFT_NetAdapterLsoSettingData Ref SettingData;
};

[Description("Defines the encapsulation types the Adapter can support for LSO.") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetAdapterLsoEncapsulationTypes
{
  [Description("Specifies that no encapsulation offload is supported.") : Amended ToSubclass] boolean NdisEncapsulationNotSupported;
  [Description("Specifies NULL encapsulation.") : Amended ToSubclass] boolean NdisEncapsulationNotNull;
  [Description("Specifies IEEE 802.3 encapsulation.") : Amended ToSubclass] boolean NdisEncapsulationIeee802_3;
  [Description("Specifies IEEE 802.3p and IEEE 802.3q encapsulation.") : Amended ToSubclass] boolean NdisEncapsulationIeee802_3pAndq;
  [Description("Specifies that IEEE 802.3p and IEEE 802.3q encapsulation settings are specified in the NetBufferList as OOB info.") : Amended ToSubclass] boolean NdisEncapsulationIeee802_3PAndQInOob;
  [Description("Specifies logical link control (LLC) encapsulation for routed protocols. Also used to indicate Ethernet LLC/SNAP encapsulation.") : Amended ToSubclass] boolean NdisEncapsulationIeeLlcSnapRouted;
};

[Description("LSO properties for a network adapter.") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetAdapterLsoSettingData : MSFT_NetAdapterSettingData
{
  [Description("Indicates if LSOv1 is currently enabled for TCP packets.") : Amended ToSubclass] boolean V1IPv4Enabled;
  [Description("Indicates if LSOv2 is currently enabled for IPv4 TCP packets.") : Amended ToSubclass] boolean IPv4Enabled;
  [Description("Indicates if LSOv2 is currently enabled for IPv6 TCP packets.") : Amended ToSubclass] boolean IPv6Enabled;
  [Description("Indicates the highest version of LSO supported by the Adapter.") : Amended ToSubclass,Values{"LSOv1", "LSOv2"} : Amended ToSubclass] uint32 MaximumLsoVersionSupported;
  [Description("The LSO V1 hardware capabilities of the Adapter.") : Amended ToSubclass] MSFT_NetAdapterLargeSendOffloadV1Capabilities LargeSendOffloadV1HardwareCapabilities;
  [Description("The LSO V2 current capabilities of the Adapter.") : Amended ToSubclass] MSFT_NetAdapterLargeSendOffloadV2Capabilities LargeSendOffloadV2HardwareCapabilities;
  [Description("Enables the Large Send Offload (LSO) properties on the network adapter.") : Amended ToSubclass] uint32 Enable([In] boolean IPv4,[In] boolean IPv6,[Out] MSFT_NetAdapterLsoSettingData cmdletOutput);
  [Description("Disables the Large Send Offload (LSO) properties on the network adapter.") : Amended ToSubclass] uint32 Disable([In] boolean IPv4,[In] boolean IPv6,[Out] MSFT_NetAdapterLsoSettingData cmdletOutput);
};

[Description("Associates a network port with its PacketDirect properties.") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetAdapterPacketDirectElementSetting : MSFT_NetAdapterElementSettingData
{
  [key,Description("The PacketDirect properties for the network adapter.") : Amended ToSubclass] MSFT_NetAdapterPacketDirectSettingData Ref SettingData;
};

[Description("PacketDirect properties for a network adapter.") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetAdapterPacketDirectSettingData : MSFT_NetAdapterSettingData
{
  [Description("PacketDirect functionality is administratively enabled for the network adapter.") : Amended ToSubclass] boolean Enabled;
  [Description("PacketDirect functionality is operational on the network adapter.") : Amended ToSubclass] boolean Operational;
  [Description("PacketDirect diagnostic state of the adapter.") : Amended ToSubclass] uint32 DiagnosticCode;
  [Description("PacketDirect buffer management domain identifier for the adapter.") : Amended ToSubclass] uint32 DomainId;
  [Description("DMA address width supported by the adapter.") : Amended ToSubclass] uint8 DmaAddressWidth;
  [Description("The PacketDirect capabilities reported by the network adapter.") : Amended ToSubclass] MSFT_NetAdapter_PacketDirectCapabilities Capabilities;
  [Description("Enables PacketDirect on the network adapter.") : Amended ToSubclass] uint32 Enable([Out] MSFT_NetAdapterPacketDirectSettingData CmdletOutput);
  [Description("Disables PacketDirect on the network adapter.") : Amended ToSubclass] uint32 Disable([Out] MSFT_NetAdapterPacketDirectSettingData CmdletOutput);
};

[Description("MSFT_NetAdapterPowerManagementElementSetting associates a network adapter with its MSFT_NetAdapterPowerManagementSettingData.") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetAdapterPowerManagementElementSetting : MSFT_NetAdapterElementSettingData
{
  [key,Description("The Power Management setting data for the network adapter.") : Amended ToSubclass] MSFT_NetAdapterPowerManagementSettingData Ref SettingData;
};

[Description("MSFT_NetAdapterPowerManagementSettingData represents the Power Management settings and features of a network adapter.") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetAdapterPowerManagementSettingData : MSFT_NetAdapterSettingData
{
  [Description("Name, a.k.a. Connection Name, ifAlias, or InterfaceAlias, is a unique name assigned to the adapter during installation. The Name of the adapter can be changed by the administrator and is persisted across the boot or network adapter restart.") : Amended ToSubclass] string Name;
  [Description("Interface Description, a.k.a. ifDescr or friendly name is a unique name assigned to the network adapter during installation. This name cannot be changed and is persisted as long as the network adapter is not uninstalled.") : Amended ToSubclass] string InterfaceDescription;
  [Description("The source of the setting data.\n") : Amended ToSubclass,Values{"Unknown", "Other", "Device", "Persistent storage"} : Amended ToSubclass] uint32 Source;
  [Description("Supplies the setting for power management of the adapter. If the property is anything other than Enabled, the remaining property values are undefined.") : Amended ToSubclass,Values{"Unsupported", "Disabled", "Enabled"} : Amended ToSubclass] uint32 AllowComputerToTurnOffDevice;
  [Description("Supplies the setting for D0 Packet Coalescing on the adapter.") : Amended ToSubclass,Values{"Unsupported", "Disabled", "Enabled"} : Amended ToSubclass] uint32 D0PacketCoalescing;
  [Description("Supplies the setting for sleeping on media disconnect. If this property is Enabled, then the adapter may enter a low power state on a media disconnect event.") : Amended ToSubclass,Values{"Unsupported", "Disabled", "Enabled", "Inactive"} : Amended ToSubclass] uint32 DeviceSleepOnDisconnect;
  [Description("Supplies the setting for ARP offloads on the adapter.") : Amended ToSubclass,Values{"Unsupported", "Disabled", "Enabled"} : Amended ToSubclass] uint32 ArpOffload;
  [Description("Supplies the setting for NS offloads on the adapter.") : Amended ToSubclass,Values{"Unsupported", "Disabled", "Enabled"} : Amended ToSubclass] uint32 NSOffload;
  [Description("Supplies the setting for 802.11i RSN offloading.") : Amended ToSubclass,Values{"Unsupported", "Disabled", "Enabled"} : Amended ToSubclass] uint32 RsnRekeyOffload;
  [Description("Supplies the parameters for protocol offloads on the adapter.") : Amended ToSubclass] MSFT_NetAdapterPowerManagement_Offload OffloadParameters[];
  [Description("Supplies the setting for selective suspend on the adapter.") : Amended ToSubclass,Values{"Unsupported", "Disabled", "Enabled"} : Amended ToSubclass] uint32 SelectiveSuspend;
  [Description("Supplies the setting for waking on Magic Packets. If this property is Enabled, then the adapter wakes the system on receipt of a Magic Packet.") : Amended ToSubclass,Values{"Unsupported", "Disabled", "Enabled"} : Amended ToSubclass] uint32 WakeOnMagicPacket;
  [Description("Supplies the setting for waking on a packet pattern. If this property is Enabled, then the adapter wakes the system on receipt of a specified pattern.") : Amended ToSubclass,Values{"Unsupported", "Disabled", "Enabled"} : Amended ToSubclass] uint32 WakeOnPattern;
  [Description("Supplies the list of packet patterns programmed to wake the system.") : Amended ToSubclass] MSFT_NetAdapterPowerManagement_WakePattern WakePatterns[];
  [Description("Provides a method to enable specific power management capabilities on the adapter.") : Amended ToSubclass] uint32 Enable([Out] MSFT_NetAdapterPowerManagementSettingData cmdletOutput,[In] boolean ArpOffload,[In] boolean D0PacketCoalescing,[In] boolean DeviceSleepOnDisconnect,[In] boolean NSOffload,[In] boolean RsnRekeyOffload,[In] boolean SelectiveSuspend,[In] boolean WakeOnMagicPacket,[In] boolean WakeOnPattern);
  [Description("Provides a method to disable specific power management capabilities on the adapter.") : Amended ToSubclass] uint32 Disable([Out] MSFT_NetAdapterPowerManagementSettingData cmdletOutput,[In] boolean ArpOffload,[In] boolean D0PacketCoalescing,[In] boolean DeviceSleepOnDisconnect,[In] boolean NSOffload,[In] boolean RsnRekeyOffload,[In] boolean SelectiveSuspend,[In] boolean WakeOnMagicPacket,[In] boolean WakeOnPattern);
};

[Description("MSFT_NetAdapterPowerManagement_Offload is the base class for various network adapter offloads.") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetAdapterPowerManagement_Offload
{
  [Description("Supplies the type of offload.") : Amended ToSubclass,Values{"Unspecified", "IPv4Arp", "IPv6NS", "RsnRekey"} : Amended ToSubclass] uint32 OffloadType;
  [Description("Supplies the identifier ID of this offload, assigned by the system.") : Amended ToSubclass] uint32 ID;
  [Description("Supplies the priority of this offload. A lower value implies a higher priority offload.") : Amended ToSubclass] uint32 Priority;
  [Description("Supplies the friendly name of the offload.") : Amended ToSubclass] string FriendlyName;
};

[Description("MSFT_NetAdapterPowerManagement_Offload_Arp contains settings related to ARP offloading.") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetAdapterPowerManagement_Offload_Arp : MSFT_NetAdapterPowerManagement_Offload
{
  [Description("Supplies an optional IPv4 address representing the Source Protocol Address (SPA) of the ARP request.") : Amended ToSubclass] string RemoteIPv4Address;
  [Description("Supplies the IPv4 address used as the Source Protocol Address (SPA) in ARP responses.") : Amended ToSubclass] string HostIPv4Address;
  [Description("Supplies the MAC address used as the Source Hardware Address (SHA) field of the ARP response.") : Amended ToSubclass] string MACAddress;
};

[Description("MSFT_NetAdapterPowerManagement_Offload_NS contains settings related to Neighbor Solicitation offloading.") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetAdapterPowerManagement_Offload_NS : MSFT_NetAdapterPowerManagement_Offload
{
  [Description("Supplies an optional IPv6 address representing the Source Address field in the IPv6 header of the NS message.") : Amended ToSubclass] string RemoteIPv6Address;
  [Description("Supplies the solicited node IPv6 address.") : Amended ToSubclass] string SolicitedNodeIPv6Address;
  [Description("Supplies the MAC address used in the TLLA field of the NA message.") : Amended ToSubclass] string MacAddress;
  [Description("Supplies an array of two IPv6 addresses. An NA message will be sent in response to any NS message with a Target Address field matching either address in this array.") : Amended ToSubclass] string TargetIPv6Addresses[];
};

[Description("MSFT_NetAdapterPowerManagement_Offload_RsnRekey contains parameters for offloading the RSN Rekey protocol.") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetAdapterPowerManagement_Offload_RsnRekey : MSFT_NetAdapterPowerManagement_Offload
{
  [Description("Supplies the key confirmation key (KCK).") : Amended ToSubclass] uint8 KCK[];
  [Description("Supplies the key encryption key (KEK).") : Amended ToSubclass] uint8 KEK[];
  [Description("Supplies the replay counter.") : Amended ToSubclass] uint64 ReplayCounter;
};

[Description("MSFT_NetAdapterPowerManagement_WakePattern defines a Wake-on-LAN (WOL) pattern.") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetAdapterPowerManagement_WakePattern
{
  [Description("Supplies the type of wake pattern.") : Amended ToSubclass,Values{"Unspecified", "BitmapPattern", "MagicPacket", "IPv4TcpSyn", "IPv6TcpSyn", "EapolRequestIdMessage", "WildCard"} : Amended ToSubclass] uint32 WakePacketType;
  [Description("Supplies the system defined ID of the wake pattern") : Amended ToSubclass] uint32 ID;
  [Description("Supplies the priority of the wake pattern.") : Amended ToSubclass] uint32 Priority;
  [Description("Supplies the friendly name of the wake pattern.") : Amended ToSubclass] string FriendlyName;
};

[Description("MSFT_NetAdapterPowerManagement_WakePattern_Bitmap defines settings for waking on a bitmap/mask wake pattern.") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetAdapterPowerManagement_WakePattern_Bitmap : MSFT_NetAdapterPowerManagement_WakePattern
{
  [Description("Supplies the pattern to match against incoming packets.") : Amended ToSubclass] uint8 Pattern[];
  [Description("Supplies a mask indicating which bits of the pattern to match against incoming packets.") : Amended ToSubclass] uint8 Mask[];
};

[Description("MSFT_NetAdapterPowerManagement_WakePattern_EapolRequestId defines settings for an 802.1X EAPOL wake pattern.") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetAdapterPowerManagement_WakePattern_EapolRequestId : MSFT_NetAdapterPowerManagement_WakePattern
{
};

[Description("MSFT_NetAdapterPowerManagement_WakePattern_MagicPacket defines settings for 'Wake on Magic Packet'.") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetAdapterPowerManagement_WakePattern_MagicPacket : MSFT_NetAdapterPowerManagement_WakePattern
{
};

[Description("MSFT_NetAdapterPowerManagement_WakePattern_TcpSyn defines settings for a TCP SYN wake pattern.") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetAdapterPowerManagement_WakePattern_TcpSyn : MSFT_NetAdapterPowerManagement_WakePattern
{
  [Description("Supplies the source address of the SYN packet.") : Amended ToSubclass] string SourceAddress;
  [Description("Supplies the destination address of the SYN packet.") : Amended ToSubclass] string DestinationAddress;
  [Description("Supplies the TCP source port number of the SYN packet.") : Amended ToSubclass] uint16 SourcePort;
  [Description("Supplies the TCP destination port number of the SYN packet.") : Amended ToSubclass] uint16 DestinationPort;
};

[Description("MSFT_NetAdapterPowerManagement_WakePattern_WildCard defines settings for 'Wake on any Packet'.") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetAdapterPowerManagement_WakePattern_WildCard : MSFT_NetAdapterPowerManagement_WakePattern
{
};

[Description("Associates a network port with its QoS properties.") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetAdapterQosElementSetting : MSFT_NetAdapterElementSettingData
{
  [key,Description("The QoS properties for the network adapter.") : Amended ToSubclass] MSFT_NetAdapterQosSettingData Ref SettingData;
};

[Description("QoS properties for a network adapter.") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetAdapterQosSettingData : MSFT_NetAdapterSettingData
{
  [Description("QoS functionality is enabled for the network adapter.") : Amended ToSubclass] boolean Enabled;
  [Description("The QoS capabilities reported by the network adapter.") : Amended ToSubclass] MSFT_NetAdapter_QosCapabilities HardwareCapabilities;
  [Description("The QoS capabilities currently enabled on the network adapter.") : Amended ToSubclass] MSFT_NetAdapter_QosCapabilities CurrentCapabilities;
  [Description("The operational QoS settings currently configured for the network adapter.") : Amended ToSubclass] MSFT_NetAdapter_QosSettings OperationalSettings;
  [Description("The remote QoS settings currently reported by the network adapter's link peer.") : Amended ToSubclass] MSFT_NetAdapter_QosSettings RemoteSettings;
  [Description("Enables QoS on the network adapter.") : Amended ToSubclass] uint32 Enable([Out] MSFT_NetAdapterQosSettingData CmdletOutput);
  [Description("Disables QoS on the network adapter.") : Amended ToSubclass] uint32 Disable([Out] MSFT_NetAdapterQosSettingData CmdletOutput);
};

[Description("Associates a network port with its Rdma data.") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetAdapterRdmaElementSetting : MSFT_NetAdapterElementSettingData
{
  [key,Description("The NDI setting data for network adapter.") : Amended ToSubclass] MSFT_NetAdapterRdmaSettingData Ref SettingData;
};

[Description("Rdma settings for a network adapter") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetAdapterRdmaSettingData : MSFT_NetAdapterSettingData
{
  [Description("Indicates whether the ND interface is enabled or disabled on the adapter") : Amended ToSubclass] boolean Enabled;
  [Description("Maximum number of queue pairs supported by the adapter") : Amended ToSubclass] uint32 MaxQueuePairCount;
  [Description("Maximum number of completion queues supported by the adapter") : Amended ToSubclass] uint32 MaxCompletionQueueCount;
  [Description("Maximum number of memory regions supported by the adapter") : Amended ToSubclass] uint32 MaxMemoryRegionCount;
  [Description("Maximum number of protection domains supported by the adapter") : Amended ToSubclass] uint32 MaxProtectionDomainCount;
  [Description("Maximum number of incoming outstanding read requests supported by the adapter. If this field is 0, there's no adapter-wide limit. There is still a limit per queue pair, which is indicated by the NetworkDirectAdapterInfo.MaxInboundReadLimit field.") : Amended ToSubclass] uint32 MaxInboundReadLimit;
  [Description("Maximum number of outgoing outstanding read requests supported by the adapter If this field is 0, there's no adapter-wide limit. There is still a limit per queue pair, which is indicated by the NetworkDirectAdapterInfo.MaxOutboundReadLimit field.") : Amended ToSubclass] uint32 MaxOutboundReadLimit;
  [Description("Maximum number of memory windows supported by the adapter") : Amended ToSubclass] uint32 MaxMemoryWindowCount;
  [Description("Maximum number of shared receive queues supported by the adapter If this field is 0, adapter does not support shared receive queues.") : Amended ToSubclass] uint32 MaxSharedReceiveQueueCount;
  [Description("Rdma missing performance counter information for a network adapter.") : Amended ToSubclass] MSFT_NetAdapter_RdmaMissingCounterInfo RdmaMissingCounterInfo;
  [Description("Structure that denotes NDK adapter capabilities and limits that are relevant for an individual NDKPI consumer (in contrast to system-wide limits).") : Amended ToSubclass] MSFT_NetAdapter_RdmaAdapterInfo RdmaAdapterInfo;
  [Description("Indicates whether Priority Flow Control (PFC) is configured on the network adapter.") : Amended ToSubclass,Values{"NA", "False", "True"} : Amended ToSubclass] uint32 PFC;
  [Description("Indicates whether Enhanced Transmission Selection (ETS) is configured on the network adapter.") : Amended ToSubclass,Values{"NA", "False", "True"} : Amended ToSubclass] uint32 ETS;
  [Description("Enables Rdma on the network adapter.") : Amended ToSubclass] uint32 Enable([Out] MSFT_NetAdapterRdmaSettingData cmdletOutput);
  [Description("Disables Rdma on the network adapter.") : Amended ToSubclass] uint32 Disable([Out] MSFT_NetAdapterRdmaSettingData cmdletOutput);
};

[Description("This class is used to report RSC capabilities on a network adapter.") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetAdapterRscCapabilities
{
  [Description("Indicates if the Adapter supports RSC for IPv4 TCP packets") : Amended ToSubclass] boolean IPv4Supported;
  [Description("Indicates if the Adapter supports RSC for IPv6 TCP packets") : Amended ToSubclass] boolean IPv6Supported;
};

[Description("Associates a network adapter with its Receive Segment Coalescing (RSC) data.") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetAdapterRscElementSetting : MSFT_NetAdapterElementSettingData
{
  [key,Description("The Receive Segment Coalescing (RSC) setting data for network adapter.") : Amended ToSubclass] MSFT_NetAdapterRscSettingData Ref SettingData;
};

[Description("RSC properties for a network adapter.") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetAdapterRscSettingData : MSFT_NetAdapterSettingData
{
  [Description("Controls RSC setting for IPv4 TCP packets.") : Amended ToSubclass] boolean IPv4Enabled;
  [Description("Controls RSC setting for IPv6 TCP packets.") : Amended ToSubclass] boolean IPv6Enabled;
  [Description("The RSC hardware capabilities of the Adapter.") : Amended ToSubclass] MSFT_NetAdapterRscCapabilities RscHardwareCapabilities;
  [Description("Indicates if RSC is currently operational for IPv4 TCP packets.") : Amended ToSubclass] boolean IPv4OperationalState;
  [Description("Indicates if RSC is currently operational for IPv6 TCP packets.") : Amended ToSubclass] boolean IPv6OperationalState;
  [Description("Indicates the cause for RSC being disabled for IPv4 TCP packets.") : Amended ToSubclass,Values{"NoFailure", "NicPropertyDisabled", "WFPCompatibility", "NDISCompatibility", "ForwardingEnabled", "NetOffloadGlobalDisabled", "Capability", "Unknown"} : Amended ToSubclass] uint32 IPv4FailureReason;
  [Description("Indicates the cause for RSC being disabled for IPv6 TCP packets.") : Amended ToSubclass,Values{"NoFailure", "NicPropertyDisabled", "WFPCompatibility", "NDISCompatibility", "ForwardingEnabled", "NetOffloadGlobalDisabled", "Capability", "Unknown"} : Amended ToSubclass] uint32 IPv6FailureReason;
  [Description("Enables the Receive Segment Coalescing (RSC) properties on the network adapter.") : Amended ToSubclass] uint32 Enable([In] boolean IPv4,[In] boolean IPv6,[Out] MSFT_NetAdapterRscSettingData cmdletOutput);
  [Description("Disables the Receive Segment Coalescing (RSC) properties on the network adapter.") : Amended ToSubclass] uint32 Disable([In] boolean IPv4,[In] boolean IPv6,[Out] MSFT_NetAdapterRscSettingData cmdletOutput);
};

[Description("Associates a network adapter with its Receive Side Scale (RSS) setting data.") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetAdapterRssElementSetting : MSFT_NetAdapterElementSettingData
{
  [key,Description("The RSS setting data for the network adapter.") : Amended ToSubclass] MSFT_NetAdapterRssSettingData Ref SettingData;
};

[Description("Receive Side Scale (RSS) settings for a network adapter") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetAdapterRssSettingData : MSFT_NetAdapterSettingData
{
  [Description("Specifies the processor selection and load balancing profile applied.") : Amended ToSubclass,Values{"Closest Processor", "Closest Processor Static", "NUMA Scaling", "NUMA Scaling Static", "Conservative Scaling"} : Amended ToSubclass] uint32 Profile;
  [Description("Specifies the processor group number for the first RSS processor.") : Amended ToSubclass] uint16 BaseProcessorGroup;
  [Description("Specifies the processor number for the first RSS processor.") : Amended ToSubclass] uint8 BaseProcessorNumber;
  [Description("Specifies the processor group number for the last RSS processor.") : Amended ToSubclass] uint16 MaxProcessorGroup;
  [Description("Specifies the processor number for the last RSS processor.") : Amended ToSubclass] uint8 MaxProcessorNumber;
  [Description("Specifies the maximum number of RSS processors for the network adapter.") : Amended ToSubclass] uint32 MaxProcessors;
  [Description("Enables the Receive Side Scaling (RSS) properties on the network adapter.") : Amended ToSubclass] uint32 Enable([Out] MSFT_NetAdapterRssSettingData cmdletOutput);
  [Description("Disables the Receive Side Scaling (RSS) properties on the network adapter.") : Amended ToSubclass] uint32 Disable([Out] MSFT_NetAdapterRssSettingData cmdletOutput);
};

[Description("SRIOV Capabilities") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetAdapterSriovCapabilities
{
  [Description("Indicates if VLANs are supported") : Amended ToSubclass] boolean VlanSupported;
  [Description("Indicates if Interrupt moderation is supported per VPort") : Amended ToSubclass] boolean PerVportInterruptModerationSupported;
  [Description("Indicates if asymmetric queue pairs are supported for non-default VPorts") : Amended ToSubclass] boolean AsymmetricQueuePairsForNonDefaultVPortsSupported;
  [Description("Indicates if VF RSS is supported") : Amended ToSubclass] boolean VfRssSupported;
  [Description("Indicates if a single VPort Pool is supported") : Amended ToSubclass] boolean SingleVportPoolSupported;
  [Description("The maximum number of switches that can be created on the adapter") : Amended ToSubclass] uint32 MaxNumSwitches;
  [Description("The maximum number of VPorts that can be created on the adapter") : Amended ToSubclass] uint32 MaxNumVPorts;
  [Description("The maximum number of Virtual Functions that can be created on the adapter") : Amended ToSubclass] uint32 MaxNumVFs;
  [Description("The maximum number of queue pairs that can be allocated on the adapter") : Amended ToSubclass] uint32 MaxNumQueuePairs;
  [Description("The maximum number of queue pairs for the non-default VPort") : Amended ToSubclass] uint32 MaxNumQueuePairsPerNonDefaultVPort;
  [Description("The maximum number of MAC addresses that can be allocated on the adapter") : Amended ToSubclass] uint32 MaxNumMacAddresses;
};

[Description("Associates a network port with its SRIOV data.") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetAdapterSriovElementSetting : MSFT_NetAdapterElementSettingData
{
  [key,Description("The RSS setting data for network adapter.") : Amended ToSubclass] MSFT_NetAdapterSriovSettingData Ref SettingData;
};

[Description("SRIOV settings for a network adapter") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetAdapterSriovSettingData : MSFT_NetAdapterSettingData
{
  [Description("Indicates if SRIOV is currently enabled on the Adapter.") : Amended ToSubclass] boolean Enabled;
  [Values{"Unknown", "Supported", "MissingAcs", "MissingPfDriver", "NoBusResources", "NoIoMmuSupport", "NoVfBarSpace", "NoOscSupport"} : Amended ToSubclass,Description("Indicates the SRIOV support for the device.") : Amended ToSubclass] uint32 SriovSupport;
  [Description("The SRIOV capabilities reported by the network adapter.") : Amended ToSubclass] MSFT_NetAdapterSriovCapabilities HardwareCapabilities;
  [Description("The SRIOV capabilities currently enabled on the network adapter.") : Amended ToSubclass] MSFT_NetAdapterSriovCapabilities CurrentCapabilities;
  [Values{"Unknown", "External"} : Amended ToSubclass,Description("Indicates the type of the embedded switch") : Amended ToSubclass] uint16 SwitchType;
  [Description("The name of the switch") : Amended ToSubclass] string SwitchName;
  [Description("The number of Virtual Functions that can be allocated on the switch") : Amended ToSubclass] uint32 NumVFs;
  [Description("The number of Virtual Functions currently allocated.") : Amended ToSubclass] uint32 NumAllocatedVFs;
  [Description("The number of VPorts that can be allocated on the switch") : Amended ToSubclass] uint32 NumVPorts;
  [Description("The number of VPorts currently allocated on the switch") : Amended ToSubclass] uint32 NumActiveVPorts;
  [Description("The number of Queue pairs for the default VPort") : Amended ToSubclass] uint32 NumQueuePairsForDefaultVPort;
  [Description("The number of Queue pairs for the non-default VPort") : Amended ToSubclass] uint32 NumQueuePairsForNonDefaultVPorts;
  [Description("The number of active MAC addresses on the default VPort.") : Amended ToSubclass] uint32 NumActiveDefaultVPortMacAddresses;
  [Description("The number of active MAC addresses on the non-default VPorts") : Amended ToSubclass] uint32 NumActiveNonDefaultVPortMacAddresses;
  [Description("The number of active VLAN IDs on the default VPort") : Amended ToSubclass] uint32 NumActiveDefaultVPortVlanIds;
  [Description("The number of active VLAN IDs on the non-default VPorts") : Amended ToSubclass] uint32 NumActiveNonDefaultVPortVlanIds;
  [Description("Enables the SRIOV properties on the network adapter.") : Amended ToSubclass] uint32 Enable([Out] MSFT_NetAdapterSriovSettingData cmdletOutput);
  [Description("Disables the SRIOV properties on the network adapter.") : Amended ToSubclass] uint32 Disable([Out] MSFT_NetAdapterSriovSettingData cmdletOutput);
};

[Description("Associates a network port with its SRIOV VF data.") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetAdapterSriovVfElementSetting : MSFT_NetAdapterElementSettingData
{
  [key,Description("The SRIOV setting data for a network adapter.") : Amended ToSubclass] MSFT_NetAdapterSriovVfSettingData Ref SettingData;
};

[Description("SRIOV VPort settings for a network adapter") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetAdapterSriovVfSettingData : MSFT_NetAdapterSettingData
{
  [Description("The Virtual Function ID.") : Amended ToSubclass] uint16 FunctionID;
  [Description("The identifier of the switch.") : Amended ToSubclass] uint32 SwitchID;
  [Description("The friendly name of the Virtual Machine to which the Virtual Function is assigned.") : Amended ToSubclass] string VmFriendlyName;
  [Description("The ID of the Virtual Machine to which the Virtual Function is assigned.") : Amended ToSubclass] string VmID;
  [Description("The VM NIC ID to which the Virtual Function is associated.") : Amended ToSubclass] string VmNicID;
  [Description("The current MAC address of the Virtual Function.") : Amended ToSubclass] string CurrentMacAddress;
  [Description("The permanent MAC address of the Virtual Function.") : Amended ToSubclass] string PermanentMacAddress;
  [Description("The list of Virtual Port IDs attached to this Virtual Function.") : Amended ToSubclass] uint32 VPortID[];
};

[Description("Associates a network adapter with the setting data of its statistics.") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetAdapterStatisticsElementSetting : MSFT_NetAdapterElementSettingData
{
  [key,Description("The statistics setting data for the network adapter.") : Amended ToSubclass] MSFT_NetAdapterStatisticsSettingData Ref SettingData;
};

[Description("Network adapter statistics") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetAdapterStatisticsSettingData : MSFT_NetAdapterSettingData
{
  [Description("The supported statistics") : Amended ToSubclass] uint32 SupportedStatistics;
  [Description("The number of bytes of data received without errors through this interface. This value includes bytes in unicast, broadcast, and multicast packets.") : Amended ToSubclass] uint64 ReceivedBytes;
  [Description("The number of unicast packets received without errors through this interface.") : Amended ToSubclass] uint64 ReceivedUnicastPackets;
  [Description("The number of multicast packets received without errors through this interface.") : Amended ToSubclass] uint64 ReceivedMulticastPackets;
  [Description("The number of broadcast packets received without errors through this interface.") : Amended ToSubclass] uint64 ReceivedBroadcastPackets;
  [Description("The number of unicast bytes received without errors through this interface.") : Amended ToSubclass] uint64 ReceivedUnicastBytes;
  [Description("The number of multicast bytes received without errors through this interface.") : Amended ToSubclass] uint64 ReceivedMulticastBytes;
  [Description("The number of broadcast bytes received without errors through this interface.") : Amended ToSubclass] uint64 ReceivedBroadcastBytes;
  [Description("The number of inbound packets which were chosen to be discarded even though no errors were detected to prevent the packets from being deliverable to a higher-layer protocol.") : Amended ToSubclass] uint64 ReceivedDiscardedPackets;
  [Description("The number of incoming packets that were discarded because of errors.") : Amended ToSubclass] uint64 ReceivedPacketErrors;
  [Description("The number of bytes of data transmitted without errors through this interface. This value includes bytes in unicast, broadcast, and multicast packets.") : Amended ToSubclass] uint64 SentBytes;
  [Description("The number of unicast packets transmitted without errors through this interface.") : Amended ToSubclass] uint64 SentUnicastPackets;
  [Description("The number of multicast packets transmitted without errors through this interface.") : Amended ToSubclass] uint64 SentMulticastPackets;
  [Description("The number of broadcast packets transmitted without errors through this interface.") : Amended ToSubclass] uint64 SentBroadcastPackets;
  [Description("The number of unicast bytes transmitted without errors through this interface.") : Amended ToSubclass] uint64 SentUnicastBytes;
  [Description("The number of multicast bytes transmitted without errors through this interface.") : Amended ToSubclass] uint64 SentMulticastBytes;
  [Description("The number of broadcast bytes transmitted without errors through this interface.") : Amended ToSubclass] uint64 SentBroadcastBytes;
  [Description("The number of outgoing packets that were discarded even though they did not have errors.") : Amended ToSubclass] uint64 OutboundDiscardedPackets;
  [Description("The number of outgoing packets that were discarded because of errors.") : Amended ToSubclass] uint64 OutboundPacketErrors;
  [Description("RDMA statistics") : Amended ToSubclass] MSFT_NetAdapter_RdmaStatistics RdmaStatistics;
  [Description("RSC statistics") : Amended ToSubclass] MSFT_NetAdapter_RscStatistics RscStatistics;
};

[Description("This class is used to report USO capabilities on a network adapter.") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetAdapterUdpSegmentationOffloadCapabilities
{
  [Description("Defines the IPv4 USO encapsulation settings for the Adapter.") : Amended ToSubclass] MSFT_NetAdapterUsoEncapsulationTypes IPv4Encapsulation;
  [Description("Maximum bytes of user data in a single packet supported by the Adapter for IPv4 packets.") : Amended ToSubclass] uint32 IPv4MaxOffloadSizeSupported;
  [Description("Minimum number of segments that a large UDP packet must be divisible by before offloading to Adapter for segmentation for IPv4 packets.") : Amended ToSubclass] uint32 IPv4MinSegmentCountSupported;
  [Description("Defines the IPv6 USO encapsulation settings for the Adapter.") : Amended ToSubclass] MSFT_NetAdapterUsoEncapsulationTypes IPv6Encapsulation;
  [Description("Maximum bytes of user data in a single packet supported by the Adapter for IPv6 packets.") : Amended ToSubclass] uint32 IPv6MaxOffLoadSizeSupported;
  [Description("Minimum number of segments that a large UDP packet must be divisible by before offloading to Adapter for segmentation for IPv6 packets.") : Amended ToSubclass] uint32 IPv6MinSegmentCountSupported;
  [Description("Indicates if the Adapter supports segmentation of a packet containing IPv6 Extension headers.") : Amended ToSubclass] boolean IPv6IpExtensionHeadersSupported;
  [Description("Indicates if the Adapter supports segmentation when the final packet length is less than MSS for IPv4.") : Amended ToSubclass] boolean IPv4SubMssFinalSegmentSupported;
  [Description("Indicates if the Adapter supports segmentation when the final packet length is less than MSS for IPv6.") : Amended ToSubclass] boolean IPv6SubMssFinalSegmentSupported;
};

[Description("Associates a network adapter with its UDP Segmentation Offload (USO) data.") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetAdapterUsoElementSetting : MSFT_NetAdapterElementSettingData
{
  [key,Description("The USO setting data for network adapter.") : Amended ToSubclass] MSFT_NetAdapterUsoSettingData Ref SettingData;
};

[Description("Defines the encapsulation types the Adapter can support for USO.") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetAdapterUsoEncapsulationTypes
{
  [Description("Specifies that no encapsulation offload is supported.") : Amended ToSubclass] boolean NdisEncapsulationNotSupported;
  [Description("Specifies NULL encapsulation.") : Amended ToSubclass] boolean NdisEncapsulationNotNull;
  [Description("Specifies IEEE 802.3 encapsulation.") : Amended ToSubclass] boolean NdisEncapsulationIeee802_3;
  [Description("Specifies IEEE 802.3p and IEEE 802.3q encapsulation.") : Amended ToSubclass] boolean NdisEncapsulationIeee802_3pAndq;
  [Description("Specifies that IEEE 802.3p and IEEE 802.3q encapsulation settings are specified in the NetBufferList as OOB info.") : Amended ToSubclass] boolean NdisEncapsulationIeee802_3PAndQInOob;
  [Description("Specifies logical link control (LLC) encapsulation for routed protocols. Also used to indicate Ethernet LLC/SNAP encapsulation.") : Amended ToSubclass] boolean NdisEncapsulationIeeLlcSnapRouted;
};

[Description("USO properties for a network adapter.") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetAdapterUsoSettingData : MSFT_NetAdapterSettingData
{
  [Description("Indicates if USO is currently enabled for IPv4 TCP packets.") : Amended ToSubclass] boolean IPv4Enabled;
  [Description("Indicates if USO is currently enabled for IPv6 TCP packets.") : Amended ToSubclass] boolean IPv6Enabled;
  [Description("The USO current capabilities of the Adapter.") : Amended ToSubclass] MSFT_NetAdapterUdpSegmentationOffloadCapabilities UdpSegmentationOffloadHardwareCapabilities;
  [Description("Enables the UDP Segmentation Offload (USO) properties on the network adapter.") : Amended ToSubclass] uint32 Enable([In] boolean IPv4,[In] boolean IPv6,[Out] MSFT_NetAdapterUsoSettingData cmdletOutput);
  [Description("Disables the UDP Segmentation Offload (USO) properties on the network adapter.") : Amended ToSubclass] uint32 Disable([In] boolean IPv4,[In] boolean IPv6,[Out] MSFT_NetAdapterUsoSettingData cmdletOutput);
};

[Description("Associates a network adapter with its virtual port data.") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetAdapterVPortElementSetting : MSFT_NetAdapterElementSettingData
{
  [key,Description("The VPort setting data for the network adapter.") : Amended ToSubclass] MSFT_NetAdapterVPortSettingData Ref SettingData;
};

[Description("Network adapter Virtual Port settings.") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetAdapterVPortSettingData : MSFT_NetAdapterSettingData
{
  [Description("The ID of the VPort.") : Amended ToSubclass] uint32 VPortID;
  [Description("The name of the VPort.") : Amended ToSubclass] string VPortName;
  [Description("The identifier of the switch.") : Amended ToSubclass] uint32 SwitchID;
  [Description("The ID of the attached function. This could be the Vf or the PF ID.") : Amended ToSubclass] uint16 FunctionID;
  [Description("The number of queue pairs.") : Amended ToSubclass] uint32 NumQueuePairs;
  [Values{"Unknown", "Adaptive", "Off", "Low", "Medium", "High"} : Amended ToSubclass,Description("The interrupt moderation for the VPort.") : Amended ToSubclass] uint32 InterruptModeration;
  [Values{"Unknown", "Activated", "DeActivated"} : Amended ToSubclass,Description("The state of the VPort.") : Amended ToSubclass] uint32 VPortState;
  [Description("A bitmap that specifies the CPU that the queue has affinity with. For example, setting bit 0 indicates CPU 0 is used, setting bit 1 indicates CPU 1 is used, and so on.") : Amended ToSubclass] uint64 ProcessorAffinityMask;
  [Description("The group number for the processors specified in ProcessorAffinityMask property.") : Amended ToSubclass] uint16 ProcessorGroup;
  [Description("The number of MAC address and VLAN ID filters set on the queue.") : Amended ToSubclass] uint32 NumFilters;
  [Description("An array of MAC address and VLAN ID pair filters set on the VPort.") : Amended ToSubclass] MSFT_NetAdapter_VmqFilter FilterList[];
};

[Description("Associates a network adapter with its Virtual Machine Queue (VMQ) setting data.") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetAdapterVmqElementSetting : MSFT_NetAdapterElementSettingData
{
  [key,Description("The VMQ setting data for the network adapter.") : Amended ToSubclass] MSFT_NetAdapterVmqSettingData Ref SettingData;
};

[Description("Associates a network adapter with the setting data of its VMQ queues.") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetAdapterVmqQueueElementSetting : MSFT_NetAdapterElementSettingData
{
  [key,Description("The VMQ Queue setting data for the network adapter.") : Amended ToSubclass] MSFT_NetAdapterVmqQueueSettingData Ref SettingData;
};

[Description("Network adapter VMQ settings for each queue") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetAdapterVmqQueueSettingData : MSFT_NetAdapterSettingData
{
  [Description("The queue identifier") : Amended ToSubclass] uint32 QueueID;
  [Description("The operational state of the queue.") : Amended ToSubclass,Values{"Undefined", "Running", "Paused", "DmaStopped"} : Amended ToSubclass] uint32 State;
  [Description("The number of MAC address and VLAN ID filters set on the queue.") : Amended ToSubclass] uint32 NumFilters;
  [Description("A bitmap that specifies the CPU that the queue has affinity with. For example, setting bit 0 indicates CPU 0 is used, setting bit 1 indicates CPU 1 is used, and so on.") : Amended ToSubclass] uint64 ProcessorAffinityMask;
  [Description("The group number for the processors specified in ProcessorAffinityMask property.") : Amended ToSubclass] uint16 ProcessorGroup;
  [Description("The ID of the Virtual Machine to which the queue is assigned.") : Amended ToSubclass] string VmID;
  [Description("The friendly name the Virtual Machine to which the queue is assigned.") : Amended ToSubclass] string VmFriendlyName;
  [Description("A string that identifies the queue.") : Amended ToSubclass] string QueueName;
  [Description("An array of MAC address and VLAN ID pair filters set on the queue.") : Amended ToSubclass] MSFT_NetAdapter_VmqFilter FilterList[];
};

[Description("Network adapter Virtual Machine Queue (VMQ) settings") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetAdapterVmqSettingData : MSFT_NetAdapterSettingData
{
  [Description("A boolean value that is set to TRUE if VMQ is enabled and FALSE if it is not.") : Amended ToSubclass] boolean Enabled;
  [Description("Number of receive queues that the network adapter supports.") : Amended ToSubclass] uint32 NumberOfReceiveQueues;
  [Description("The total number of MAC addresses that the network adapter supports.") : Amended ToSubclass] uint32 TotalNumberOfMacAddresses;
  [Description("Number of supported MAC addresses per port.") : Amended ToSubclass] uint32 NumMacAddressesPerPort;
  [Description("Number of VLANs supported per port.") : Amended ToSubclass] uint32 NumVlansPerPort;
  [Description("Indicates that the network adapter supports filtering received packets based on the VLAN ID.") : Amended ToSubclass] boolean VlanFilteringSupported;
  [Description("Indicates that the network adapter supports splitting the received packets at a lookahead offset.") : Amended ToSubclass] boolean LookaheadSplitSupported;
  [Description("The minimum size, in bytes, of the lookahead segment if lookahead split is enabled.") : Amended ToSubclass] uint32 MinLookaheadSplitSize;
  [Description("The maximum size, in bytes, of the lookahead segment if lookahead split is enabled.") : Amended ToSubclass] uint32 MaxLookaheadSplitSize;
  [Description("Indicates that the network adapter supports filtering received packets matching a MAC address and any arbitrary VLAN ID.") : Amended ToSubclass] boolean AnyVlanSupported;
  [Description("Indicates that the network adapter supports changing the processor affinity of a queue dynamically and without restarting the queue.") : Amended ToSubclass] boolean DynamicProcessorAffinityChangeSupported;
  [Description("Indicate that the network adapter supports using the same interrupt vector for multiple queues when all those queues are targeted to the same processor.") : Amended ToSubclass] boolean InterruptVectorCoalescingSupported;
  [Description("Specifies the processor group number for the first VMQ processor.") : Amended ToSubclass] uint16 BaseProcessorGroup;
  [Description("Specifies the processor number for the first VMQ processor.") : Amended ToSubclass] uint8 BaseProcessorNumber;
  [Description("Specifies the maximum number of VMQ processors for the network adapter.") : Amended ToSubclass] uint32 MaxProcessors;
  [Description("Specifies the processor number for the last RSS processor.") : Amended ToSubclass] uint8 MaxProcessorNumber;
  [Description("Specifies the NUMA Node for the RSS Processors.") : Amended ToSubclass] uint16 NumaNode;
  [Description("Enables the Virtual Machine Queue (VMQ) on the network adapter.") : Amended ToSubclass] uint32 Enable([Out] MSFT_NetAdapterVmqSettingData cmdletOutput);
  [Description("Disables the Virtual Machine Queue (VMQ) on the network adapter.") : Amended ToSubclass] uint32 Disable([Out] MSFT_NetAdapterVmqSettingData cmdletOutput);
};

[Description("This class represents a processor affinity mask.") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetAdapter_Group_Affinity
{
  [Description("The bitmask for a set of logical processors in a group.") : Amended ToSubclass] uint64 ProcessorAffinityMask;
  [Description("The group number for a set of logical processors.") : Amended ToSubclass] uint16 ProcessorGroup;
};

[Description("This class is used to report PacketDirect capabilities on a network adapter.") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetAdapter_PacketDirectCapabilities
{
  [Description("Drain notification is supported on any PD queue.") : Amended ToSubclass] boolean DrainNotificationSupported;
  [Description("Moderation of drain notifications based on a moderation interval value on any PD queue is supported.") : Amended ToSubclass] boolean ModerationByIntervalSupported;
  [Description("Moderation of drain notifications based on a moderation count value on any PD queue is supported.") : Amended ToSubclass] boolean ModerationByCountSupported;
  [Description("Maximum number of partial PD_BUFFERs which can be posted to a PD transmit queue as a chain to be transmitted as a single layer 2 frame.") : Amended ToSubclass] uint32 MaximumTxPartialBufferCount;
  [Description("Maximum number of partial PD_BUFFERs which can be returned by the PD provider from a PD receive queue as a chain which forms a single coalesced packet.") : Amended ToSubclass] uint32 MaximumRxPartialBufferCount;
  [Description("Maximum number of PD receive queues that can be allocated on the adapter. RSS receive queues are not included in this number.") : Amended ToSubclass] uint32 MaximumNumberOfRxQueues;
  [Description("Maximum number of PD transmit queues that can be allocated on the adapter.") : Amended ToSubclass] uint32 MaximumNumberOfTxQueues;
  [Description("Maximum number of PD receive queues that can be allocated on the default VPort. RSS receive queues are not included in this number.") : Amended ToSubclass] uint32 MaximumNumberOfRxQueuesForDefaultVPort;
  [Description("Maximum number of PD transmit queues that can be allocated on the default VPort.") : Amended ToSubclass] uint32 MaximumNumberOfTxQueuesForDefaultVPort;
  [Description("Maximum number of PD receive queues that can be allocated on a nondefault VPort. RSS receive queues are not included in this number.") : Amended ToSubclass] uint32 MaximumNumberOfRxQueuesPerNonDefaultVPort;
  [Description("Maximum number of PD transmit queues that can be allocated on a nondefault VPort.") : Amended ToSubclass] uint32 MaximumNumberOfTxQueuesPerNonDefaultVPort;
  [Description("Shortest moderation interval supported in nanoseconds.") : Amended ToSubclass] uint32 MinimumModerationInterval;
  [Description("Longest moderation interval supported in nanoseconds.") : Amended ToSubclass] uint32 MaximumModerationInterval;
  [Description("Granularity of intermediate moderation interval values supported between the MinimumModerationInterval and MaximumModerationInterval values.") : Amended ToSubclass] uint32 ModerationIntervalGranularity;
  [Description("Maximum supported size for a PD receive queue. A value of 0 indicates that the adapter does not have a hard limit.") : Amended ToSubclass] uint32 MaximumRxQueueSize;
  [Description("Maximum supported size for a PD transmit queue. A value of 0 indicates that the adapter does not have a hard limit.") : Amended ToSubclass] uint32 MaximumTxQueueSize;
};

[Description("MSFT_NetAdapter_ProcessorNumber") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetAdapter_ProcessorNumber
{
};

[Description("This class is used to report QoS capabilities on a network adapter.") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetAdapter_QosCapabilities
{
  [Description("MACsec bypass for IEEE 802.1Qbb Priority-based Flow Control is supported.") : Amended ToSubclass] boolean MacSecBypassSupported;
  [Description("CEE DCBX is supported.") : Amended ToSubclass] boolean CeeDcbxSupported;
  [Description("IEEE DCBX is supported.") : Amended ToSubclass] boolean IeeeDcbxSupported;
  [Description("Number of traffic classes supported.") : Amended ToSubclass] uint8 NumberOfTrafficClasses;
  [Description("Number of supported traffic classes that can be enabled for IEEE 802.1Qaz Enhanced Transmission Selection.") : Amended ToSubclass] uint8 NumberOfEtsCapableTrafficClasses;
  [Description("Number of supported traffic classes that can be enabled for IEEE 802.1Qbb Priority-based Flow Control.") : Amended ToSubclass] uint8 NumberOfPfcEnabledTrafficClasses;
};

[Description("This class describes a QoS classification element.") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetAdapter_QosClassificationElement
{
  [Values{"Reserved", "Default", "TCP Port", "UDP Port", "TCP or UDP Port", "Ethertype", "NetDirect Port"} : Amended ToSubclass,Description("Specifies the protocol used in the ProtocolSpecificValue field.") : Amended ToSubclass] uint16 ProtocolSelector;
  [Description("Specifies a protocol-specific value for classification. For example, this property is set to a TCP port number if ProtocolSelector is set to \"TCP Port\", or Ethertype value is ProtocolSelector is set to \"Ethertype\".") : Amended ToSubclass] uint16 ProtocolSpecificValue;
  [Description("Specifies the IEEE 802.1p priority value to use when a match is made.") : Amended ToSubclass] uint8 Priority;
};

[Description("This class represents QoS settings on a network adapter.") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetAdapter_QosSettings
{
  [Description("Transmission Selection settings are enabled.") : Amended ToSubclass] boolean TransmissionSelectionEnabled;
  [Description("Priority to Traffic Class assignments.") : Amended ToSubclass] uint8 PriorityAssignmentTable[];
  [Description("Transmission Selection Algorithm assignments per Traffic Class.") : Amended ToSubclass] uint8 TsaAssignmentTable[];
  [Description("Bandwidth assignments per Traffic Class.") : Amended ToSubclass] uint8 BandwidthAssignmentTable[];
  [Description("Flow Control settings are enabled.") : Amended ToSubclass] boolean FlowControlEnabled;
  [Description("IEEE 802.1Qbb Priority Flow Control enabled per Priority.") : Amended ToSubclass] boolean PriorityFlowControlEnableArray[];
  [Description("Classification settings are enabled.") : Amended ToSubclass] boolean ClassificationEnabled;
  [Description("Number of classification entries.") : Amended ToSubclass] uint32 NumberOfClassificationElements;
  [Description("Classification entries.") : Amended ToSubclass] MSFT_NetAdapter_QosClassificationElement ClassificationTable[];
};

[Description("Network Direct Interface capabilities supported by a network adapter") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetAdapter_RdmaAdapterInfo
{
  [Description("NDKPI Major Version Number") : Amended ToSubclass] uint16 MajorVersionNumber;
  [Description("NDKPI Minor Version Number") : Amended ToSubclass] uint16 MinorVersionNumber;
  [Description("Vendor's organizational unique identifier (OUI)") : Amended ToSubclass] uint32 VendorId;
  [Description("Vendor defined device ID") : Amended ToSubclass] uint32 DeviceId;
  [Description("Maximum size (in bytes) of a single memory registration that the adapter can address.") : Amended ToSubclass] uint64 MaxRegistrationSize;
  [Description("Maximum size (in bytes) for a single memory window") : Amended ToSubclass] uint64 MaxWindowSize;
  [Description("Fast-register memory region (FRMR) size (in PAGE_SIZE pages) for which the adapter supports the most number of FRMRs") : Amended ToSubclass] uint32 FRMRPageCount;
  [Description("Maximum number of SGEs that can be specified in a single request over an initiator queue") : Amended ToSubclass] uint32 MaxInitiatorRequestSge;
  [Description("Maximum number of SGEs that can be specified in a single request over a receive queue") : Amended ToSubclass] uint32 MaxReceiveRequestSge;
  [Description("Maximum number of SGEs that can be specified in a read request (This overrides the MaxInitiatorRequestSge value for read requests.)") : Amended ToSubclass] uint32 MaxReadRequestSge;
  [Description("Maximum total length that can be referenced by all SGEs in a single send, receive, read, or write request") : Amended ToSubclass] uint32 MaxTransferLength;
  [Description("Maximum amount of inline data in bytes that can be sent in a single send or write request") : Amended ToSubclass] uint32 MaxInlineDataSize;
  [Description("Maximum number of in-progress incoming read operations per QP") : Amended ToSubclass] uint32 MaxInboundReadLimit;
  [Description("Maximum number of in-progress outgoing read operations per QP") : Amended ToSubclass] uint32 MaxOutboundReadLimit;
  [Description("Maximum number of outstanding requests per receive queue") : Amended ToSubclass] uint32 MaxReceiveQueueDepth;
  [Description("Maximum number of outstanding requests per initiator queue") : Amended ToSubclass] uint32 MaxInitiatorQueueDepth;
  [Description("Maximum number of outstanding requests per shared receive queue. 0 means no SRQ support.") : Amended ToSubclass] uint32 MaxSharedReceiveQueueDepth;
  [Description("Maximum number of completion entries per completion queue") : Amended ToSubclass] uint32 MaxCompletionQueueDepth;
  [Description("Data size hint (in bytes) above which read and write operations will yield better results than send and receive operations") : Amended ToSubclass] uint32 LargeRequestThreshold;
  [Description("Maximum size, in bytes, of the private data that can be sent via a connect request") : Amended ToSubclass] uint32 MaxCallerData;
  [Description("Maximum size, in bytes, of the private data that can be sent via an accept or reject request") : Amended ToSubclass] uint32 MaxCalleeData;
  [Description("Whether the provider writes incoming data into the consumer's buffer in order, i.e., the last byte position in the consumer's buffer is guaranteed NOT to be updated before any prior byte position.") : Amended ToSubclass] boolean InOrderDMA;
  [Description("Whether the provider supports resizing CQ objects or not. If this is false, CQ resize request must NOT be used by the NDKPI consumer.") : Amended ToSubclass] boolean SupportsCompletionQueueResize;
  [Description("Whether the provider supports loopback connections (from a local network address on a given RNIC to the same local address on the same RNIC).") : Amended ToSubclass] boolean SupportsLoopbackConnections;
  [Description("Whether the provider requires NDKPI consumer to use NDK_MR_FLAG_RDMA_READ_SINK or NDK_OP_FLAG_RDMA_READ_SINK flags when registering sink buffers for RDMA Read requests.") : Amended ToSubclass] boolean RdmaReadSinkFlagNotRequired;
  [Description("Whether the provider supports programmable interrupt moderation per completion queue through NDKPI.") : Amended ToSubclass] boolean SupportsCompletionQueueInterruptModeration;
  [Description("Whether the provider supports multiple execution engines on a given RNIC.") : Amended ToSubclass] boolean SupportsMultiEngine;
  [Description("Underlying RDMA technology.") : Amended ToSubclass,Values{"Unknown", "iWarp", "InfiniBand", "RoCE", "RoCEv2"} : Amended ToSubclass] uint32 RdmaTechnology;
};

[Description("RDMA missing performance counter information for a network adapter. NetworkDirect providers are required to support all the performance counters included in NDIS_NDK_PERFORMANCE_COUNTERS. However, in the rare case that a provider cannot support a counter due to an exceptional circumstance, it must indicate so.") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetAdapter_RdmaMissingCounterInfo
{
  [Description("Connect performance counter missing") : Amended ToSubclass] boolean ConnectPerformanceCounterMissing;
  [Description("Accept performance counter missing") : Amended ToSubclass] boolean AcceptPerformanceCounterMissing;
  [Description("ConnectFailure performance counter missing") : Amended ToSubclass] boolean ConnectFailurePerformanceCounterMissing;
  [Description("ConnectionError performance counter missing") : Amended ToSubclass] boolean ConnectionErrorPerformanceCounterMissing;
  [Description("ActiveConnection performance counter missing") : Amended ToSubclass] boolean ActiveConnectionPerformanceCounterMissing;
  [Description("CompletionQueueError performance counter missing") : Amended ToSubclass] boolean CompletionQueueErrorPerformanceCounterMissing;
  [Description("RDMAInOctets performance counter missing") : Amended ToSubclass] boolean RDMAInOctetsPerformanceCounterMissing;
  [Description("RDMAOutOctets performance counter missing") : Amended ToSubclass] boolean RDMAOutOctetsPerformanceCounterMissing;
  [Description("RDMAInFrames performance counter missing") : Amended ToSubclass] boolean RDMAInFramesPerformanceCounterMissing;
  [Description("RDMAOutFrames performance counter missing") : Amended ToSubclass] boolean RDMAOutFramesPerformanceCounterMissing;
};

[Description("RDMA statistics supported by a network adapter") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetAdapter_RdmaStatistics
{
  [Description("Number of outbound RDMA connections established successfully") : Amended ToSubclass] uint64 InitiatedConnections;
  [Description("Number of inbound RDMA connections established successfully") : Amended ToSubclass] uint64 AcceptedConnections;
  [Description("Number of inbound and outbound failed RDMA connection attempts") : Amended ToSubclass] uint64 FailedConnectionAttempts;
  [Description("Number of successfully established RDMA connections on which an error occurred before being disconnected by local or remote client") : Amended ToSubclass] uint64 ConnectionErrors;
  [Description("Number of active RDMA connections") : Amended ToSubclass] uint64 ActiveConnections;
  [Description("Number of RDMA completion queues that went into an error state") : Amended ToSubclass] uint64 CompletionQueueErrors;
  [Description("Number of bytes received at layer 2 for all inbound RDMA traffic") : Amended ToSubclass] uint64 InboundBytes;
  [Description("Number of bytes sent at layer 2 for all outbound RDMA traffic") : Amended ToSubclass] uint64 OutboundBytes;
  [Description("Number of layer 2 frames received for all inbound RDMA traffic") : Amended ToSubclass] uint64 InboundFrames;
  [Description("Number of layer 2 frames sent for all outbound RDMA traffic") : Amended ToSubclass] uint64 OutboundFrames;
};

[Description("RSC statistics supported by a network adapter") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetAdapter_RscStatistics
{
  [Description("Total number of packets that have resulted from one or more coalescing events") : Amended ToSubclass] uint64 CoalescedPackets;
  [Description("Total number of bytes that have resulted from one or more coalescing events") : Amended ToSubclass] uint64 CoalescedBytes;
  [Description("Total number of cases where an incoming packet is found eligible for coalescing") : Amended ToSubclass] uint64 CoalescingEvents;
  [Description("Total number of cases where an incoming packet is found ineligible for coalescing") : Amended ToSubclass] uint64 CoalescingExceptions;
};

[Description("NDIS_RSS_PROCESSOR") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetAdapter_RssProcessor
{
};

[Description("MAC address and VLAN ID filters for VMQ and VPorts") : Amended ToSubclass,AMENDMENT, LOCALE("MS_804")] 
class MSFT_NetAdapter_VmqFilter
{
  [Description("Filter identifier.") : Amended ToSubclass] uint32 FilterID;
  [Description("The MAC address filter.") : Amended ToSubclass] string MacAddress;
  [Description("The VLAN ID filter. This value may be NULL.") : Amended ToSubclass] uint16 VlanID;
};
