//***************************************************************************
//
// 
//  Module: iScsi Discovery api
//
//  Purpose: 
//
//  Copyright (c) 2001 Microsoft Corporation
//
//***************************************************************************

#pragma autorecover
#pragma namespace("\\\\.\\Root\\WMI")
instance of __namespace{ name="ms_809";};
#pragma namespace("\\\\.\\Root\\WMI\\ms_809")

[DisplayName("IP Address") : Amended,AMENDMENT, LOCALE(0x0809)] 
class ISCSI_IP_Address
{
  [DisplayName("Address Format") : Amended,description("Type of address specified. It can be text: a DNS or dotted address or it can be a binary ipv4 or ipv6 address") : Amended] uint32 Type;
  [DisplayName("IPV4 Address") : Amended,description("If IPV4 Address is specified as the Address Format then this conains the binary IPv4 ip address") : Amended] uint32 IpV4Address;
  [DisplayName("IPV6 Address") : Amended,description("If IPV6 Address is specified as the Address Format then this conains the binary IPv6 ip address") : Amended] uint8 IpV6Address[];
  [DisplayName("IPV6 Flow Information") : Amended,description("IPV6 flow information") : Amended] uint32 IpV6FlowInfo;
  [DisplayName("IPV6 Scope Id") : Amended,description("IPV6 scope id") : Amended] uint32 IpV6ScopeId;
  [DisplayName("Text Address") : Amended,description("Text address, either a DNS address or dotted address") : Amended] string TextAddress;
};

[description("ISCSI target portal") : Amended,AMENDMENT, LOCALE(0x0809)] 
class ISCSI_TargetPortal
{
  [Description("Network Address") : Amended] ISCSI_IP_Address Address;
  [Description("Reserved") : Amended] uint32 Reserved;
  [Description("Socket number") : Amended] uint16 Socket;
};

[description("iSCSI target portal group") : Amended,AMENDMENT, LOCALE(0x0809)] 
class ISCSI_TargetPortalGroup
{
  [description("Number of portals in group") : Amended] uint32 PortalCount;
  [description("Target portals in group") : Amended] ISCSI_TargetPortal Portals[];
};

[AMENDMENT, LOCALE(0x0809)] 
class ISCSI_LoginOptions
{
  [description("Bit flags that specify which login option values are specified") : Amended,BitValues{"HeaderDigest", "DataDigest", "MaxConnections", "DefaultTime2Wait", "DefaultTime2Retain"} : Amended] uint32 InformationSpecified;
  [description("cyclic integrity checksums that can be negotiated for the header digests") : Amended] uint32 HeaderDigest;
  [description("cyclic integrity checksums that can be negotiated for the header digests") : Amended] uint32 DataDigest;
  [Description("Maximum number of connections, 0 implies no limit") : Amended] uint32 MaximumConnections;
  [Description("The initiator and target negotiate the minimum time, in seconds, to wait before attempting an explicit/implicit logout or active task reassignment after an unexpected connection termination or a connection reset.") : Amended] uint32 DefaultTime2Wait;
  [Description(" The initiator and target negotiate the maximum time, in seconds after an initial wait (Time2Wait), before which an explicit/implicit connection Logout or active task reassignment is still possible after an unexpected connection termination or a connection reset.") : Amended] uint32 DefaultTime2Retain;
  [Description("Flags that affect how login occurs") : Amended] uint32 LoginFlags;
  [Description("Authentication method specified for login") : Amended,Values{"No Authentication", "CHAP", "Mutual CHAP"} : Amended] uint32 AuthType;
};

[description("This class describes a mapping from a an OS LUN to target device LUN") : Amended,AMENDMENT, LOCALE(0x0809)] 
class ISCSI_LUNList
{
  [description("Target LUN") : Amended] uint64 TargetLUN;
  [description("OS Scsi bus number target is mapped to") : Amended] uint32 OSLUN;
  [description("Reserved") : Amended] uint32 Reserved;
};

[description("This class describes a mapping from a target LUN to a Windows port driver LUN") : Amended,AMENDMENT, LOCALE(0x0809)] 
class ISCSI_TargetMapping
{
  [description("OS Scsi bus number target is mapped to. If 0xffffffff then any value can be picked by the miniport.") : Amended] uint32 OSBus;
  [description("OS Scsi Target number target is mapped to. If 0xffffffff then any value can be picked by the miniport.") : Amended] uint32 OSTarget;
  [Description("Unique Session ID for the target mapping") : Amended] uint64 UniqueSessionId;
  [description("Count of LUNs mapped for this target") : Amended] uint32 LUNCount;
  [description("Target Name") : Amended] string TargetName;
  [Description("TRUE if session created from a persistent login") : Amended] boolean FromPersistentLogin;
  [description("Reserved") : Amended] uint64 Reserved;
  [description("List of LUNs mapped for this target") : Amended] ISCSI_LUNList LUNList[];
};

[Description("iSCSI HBA main mode IPSEC Statistics") : Amended,DisplayName("iSCSI HBA Main Mode IPSEC Statistics") : Amended,AMENDMENT, LOCALE(0x0809)] 
class MSiSCSI_MMIPSECStats : Win32_PerfRawData
{
  [Description("An acquire is a request by the IPSEC driver to have IKE perform a task. The active acquire statistic includes the outstanding request and the number of any queued requests. Typically, the number of active acquires is 1. Under a heavy load, the number of active acquires is 1 and the number of requests that are queued by IKE for processing.") : Amended] uint64 ActiveAcquire;
  [Description("The number of IKE messages received that are queued for processing.") : Amended] uint64 ActiveReceive;
  [Description("The number of times that an acquire has failed.") : Amended] uint64 AcquireFailures;
  [Description("The number of times that the TCP stack has failed when receiving IKE messages.") : Amended] uint64 ReceiveFailures;
  [Description("The number of times that the TCP/IP stack has failed when sending IKE messages.") : Amended] uint64 SendFailures;
  [Description("The number of entries in the acquire heap, which stores active acquires. This number increases under a heavy load and then gradually decreases over time, as the acquire heap is cleared.") : Amended] uint64 AcquireHeapSize;
  [Description("The number of entries in the IKE receive buffers for incoming IKE messages.") : Amended] uint64 ReceiveHeapSize;
  [Description("The total number of negotiation failures that occurred during main mode (also known as Phase I) or quick mode (also known as Phase II) negotiation.") : Amended] uint64 NegotiationFailures;
  [Description("The total number of identity authentication failures (Kerberos, certificate, and preshared key) that occurred during main mode negotiation.") : Amended] uint64 AuthenticationFailures;
  [Description("A cookie is a value contained in a received IKE message that is used by IKE to find the state of an active main mode. A cookie in a received IKE message that cannot be matched with an active main mode is invalid.") : Amended] uint64 InvalidCookiesReceived;
  [Description("The total number of requests submitted by IKE to obtain a unique Security Parameters Index (SPI).") : Amended] uint64 TotalGetSPI;
  [Description("The number of outbound quick mode security associations (SAs) added by IKE ") : Amended] uint64 KeyAdditions;
  [Description("The number of inbound quick mode security associations (SAs) added by IKE ") : Amended] uint64 KeyUpdates;
  [Description("The total number of requests submitted by IKE to obtain a unique Security Parameters Index (SPI) that failed.") : Amended] uint64 GetSPIFailures;
  [Description("The number of outbound quick mode security associations (SAs) submitted by IKE that failed") : Amended] uint64 KeyAdditionFailures;
  [Description("The number of inbound quick mode security associations (SAs) added by IKE ") : Amended] uint64 KeyUpdateFailures;
  [Description("The number of quick mode state entries.") : Amended] uint64 ConnectionListSize;
  [Description("The total number of successful SAs created during main mode negotiations.") : Amended] uint64 OakleyMainMode;
  [Description("The total number of successful SAs created during quick mode negotiations") : Amended] uint64 OakleyQuickMode;
  [Description("The number of received IKE messages that are invalid, including IKE messages with invalid header fields, incorrect payload lengths, and incorrect values for the responder cookie (when it should be set to 0). ") : Amended] uint64 InvalidPackets;
  [Description("The total number of negotiations that resulted in the use of plaintext (also known as soft SAs). This typically reflects the number of associations formed with computers that did not respond to main mode negotiation attempts. This can include both non-IPSEC-aware computers and IPSEC-aware computers that do not have IPSEC policy to negotiate security with this IPSEC peer.") : Amended] uint64 SoftAssociations;
};

[Description("iSCSI HBA quick mode IPSEC Statistics") : Amended,DisplayName("iSCSI HBA Quick Mode IPSEC Statistics") : Amended,AMENDMENT, LOCALE(0x0809)] 
class MSiSCSI_QMIPSECStats : Win32_PerfRawData
{
  [Description("The number of active IPSEC SAs") : Amended] uint64 ActiveSA;
  [Description("The number of IPSEC key operations in progress") : Amended] uint64 PendingKeyOperations;
  [Description("The total number of successful IPSEC SA negotiations") : Amended] uint64 KeyAdditions;
  [Description("The total number of key deletions for IPSEC SA") : Amended] uint64 KeyDeletions;
  [Description("The number of rekey operations for IPSEC SAs.") : Amended] uint64 ReKeys;
  [Description("The number of active IPSEC tunnels.") : Amended] uint64 ActiveTunnels;
  [Description("The total number of packets for which the Security Parameters Index (SPI) was incorrect.") : Amended] uint64 BadSPIPackets;
  [Description("The total number of packets that failed decryption.") : Amended] uint64 PacketsNotDecrypted;
  [Description("The total number of packets for which data could not be verified. ") : Amended] uint64 PacketsNotAuthenticated;
  [Description("The total number of packets that contained a valid Sequence Number field.") : Amended] uint64 PacketsWithReplayDetection;
  [Description("The number of bytes sent using the ESP protocol.") : Amended] uint64 ConfidentialBytesSent;
  [Description("The number of bytes received using the ESP protocol.") : Amended] uint64 ConfidentialBytesReceived;
  [Description("The number of bytes sent using the AH protocol.") : Amended] uint64 AuthenticatedBytesSent;
  [Description("The number of bytes received using the AH protocol.") : Amended] uint64 AuthenticatedBytesReceived;
  [Description("The number of bytes sent using the IPSEC protocol.") : Amended] uint64 TransportBytesSent;
  [Description("The number of bytes received using the IPSEC protocol.") : Amended] uint64 TransportBytesReceived;
  [Description("The number of bytes sent using the IPSEC tunnel mode.") : Amended] uint64 TunnelBytesSent;
  [Description("The number of bytes received using the IPSEC tunnel mode.") : Amended] uint64 TunnelBytesReceived;
};

[Description("iSCSI Connection Statistics") : Amended,DisplayName("iSCSI Connections") : Amended,AMENDMENT, LOCALE(0x0809)] 
class MSiSCSI_ConnectionStatistics : Win32_PerfRawData
{
  [Description("The iSCSI connection ID for this connection instance.") : Amended] uint16 CID;
  [Description("A uniquely generated session ID used only internally.  This is the value returned by the LoginToTarget method.") : Amended] uint64 USID;
  [DisplayName("Adapter Id") : Amended,description("Id that is globally unique to each instance of each adapter. This is the value reported by the MSiSCSI_HBAInformation class.") : Amended] uint64 UniqueAdapterId;
  [DisplayName("Bytes Sent") : Amended,Description("Count of # of bytes sent over this connection") : Amended] uint64 BytesSent;
  [DisplayName("Bytes Received") : Amended,Description("Count of # of bytes received over this connection") : Amended] uint64 BytesReceived;
  [DisplayName("PDUs Sent") : Amended,Description("Count of # of  PDU sent over this connection") : Amended] uint64 PDUCommandsSent;
  [DisplayName("PDUs Received") : Amended,Description("Count of # of PDU received over this connection") : Amended] uint64 PDUResponsesReceived;
};

[Description("iSCSI Session Statistics") : Amended,DisplayName("iSCSI Sessions") : Amended,AMENDMENT, LOCALE(0x0809)] 
class MSiSCSI_SessionStatistics : Win32_PerfRawData
{
  [Description("A uniquely generated session ID used only internally.  This is the value returned by the LoginToTarget method.") : Amended] uint64 USID;
  [DisplayName("Adapter Id") : Amended,description("Id that is globally unique to each instance of each adapter. This is the value reported by the MSiSCSI_HBAInformation class.") : Amended] uint64 UniqueAdapterId;
  [DisplayName("Bytes Sent") : Amended,Description("Number of bytes sent over this session") : Amended] uint64 BytesSent;
  [DisplayName("Bytes Received") : Amended,Description("Number of bytes received over this session") : Amended] uint64 BytesReceived;
  [DisplayName("PDUs Sent") : Amended,Description("Number of PDU sent over this session") : Amended] uint64 PDUCommandsSent;
  [DisplayName("PDUs Received") : Amended,Description("Number of PDU received over this session") : Amended] uint64 PDUResponsesReceived;
  [DisplayName("Digest Errors") : Amended,Description("Count of Number of Digest errors occured in this session") : Amended] uint64 DigestErrors;
  [DisplayName("ConnectionTimeout Errors") : Amended,Description("Count of Number of ConnectionTimeout errors occured in this session") : Amended] uint64 ConnectionTimeoutErrors;
  [DisplayName("Format Errors") : Amended,Description("Count of Number of Format errors occured in this session") : Amended] uint64 FormatErrors;
};

[Description("iSCSI Initiator Login Statistics") : Amended,DisplayName("iSCSI Initiator Login statistics") : Amended,AMENDMENT, LOCALE(0x0809)] 
class MSiSCSI_InitiatorLoginStatistics : Win32_PerfRawData
{
  [DisplayName("Adapter Id") : Amended,description("Id that is globally unique to each instance of each adapter. This is the value reported by the MSiSCSI_HBAInformation class.") : Amended] uint64 UniqueAdapterId;
  [DisplayName("Login Accept Responses") : Amended,Description("Count of Login Accept Responses") : Amended] uint32 LoginAcceptRsps;
  [DisplayName("Login Other Failed Responses") : Amended,Description("Count of Login other failed Responses") : Amended] uint32 LoginOtherFailRsps;
  [DisplayName("Login Redirect Responses") : Amended,Description("Count of Login Redirect Responses") : Amended] uint32 LoginRedirectRsps;
  [DisplayName("Login Authentication Failed Responses") : Amended,Description("Count of Login Authentication Failed Responses") : Amended] uint32 LoginAuthFailRsps;
  [DisplayName("Logins  Failed") : Amended,Description("Count of the number of times a login is aborted due to a target authentication failure") : Amended] uint32 LoginAuthenticateFails;
  [DisplayName("Login Negotiation Failed") : Amended,Description("Count of the number of times login failed due to negotiation failure with target") : Amended] uint32 LoginNegotiateFails;
  [DisplayName("Logout Normal") : Amended,Description("Count of Logout command PDU with reason code 0") : Amended] uint32 LogoutNormals;
  [DisplayName("Logout Other Codes") : Amended,Description("Count of Logout command PDUs with status code other than 0") : Amended] uint32 LogoutOtherCodes;
  [DisplayName("Failed Logins") : Amended,Description("The object counts the number of times a login attempt from this local initiator has failed") : Amended] uint32 LoginFailures;
};

[Description("iSCSI Initiator Instance Statistics") : Amended,DisplayName("iSCSI Initiator Instance") : Amended,AMENDMENT, LOCALE(0x0809)] 
class MSiSCSI_InitiatorInstanceStatistics : Win32_PerfRawData
{
  [DisplayName("Adapter Id") : Amended,description("Id that is globally unique to each instance of each adapter. This is the value reported by the MSiSCSI_HBAInformation class.") : Amended] uint64 UniqueAdapterId;
  [DisplayName("Session Digest Errors") : Amended,Description("Count of Session digest errors") : Amended] uint32 SessionDigestErrorCount;
  [DisplayName("Session Cxn Timeout Errors") : Amended,Description("Count of Session connection timeout error") : Amended] uint32 SessionConnectionTimeoutErrorCount;
  [DisplayName("Session Format Errors") : Amended,Description("Count of Session format error") : Amended] uint32 SessionFormatErrorCount;
  [DisplayName("Sessions Failed") : Amended,Description("Number of Sessions failed belonging to this instance") : Amended] uint32 SessionFailureCount;
};

[AMENDMENT, LOCALE(0x0809)] 
class MSiSCSI_NICPerformance : Win32_PerfRawData
{
  [description("Number of bytes transmitted via ethernet port") : Amended] uint32 BytesTransmitted;
  [description("Number of bytes received via ethernet port") : Amended] uint32 BytesReceived;
  [description("Number of PDU transmitted via ethernet port") : Amended] uint32 PDUTransmitted;
  [description("Number of PDU received via ethernet port") : Amended] uint32 PDUReceived;
};

[Description("iSCSI Request Processing Time") : Amended,DisplayName("iSCSI Request Processing Time") : Amended,AMENDMENT, LOCALE(0x0809)] 
class MSiSCSI_RequestTimeStatistics : Win32_PerfRawData
{
  [Description("The iSCSI connection ID for this connection instance.") : Amended] uint16 CID;
  [Description("A uniquely generated session ID used only internally.  This is the value returned by the LoginToTarget method.") : Amended] uint64 USID;
  [DisplayName("Adapter Id") : Amended,description("Id that is globally unique to each instance of each adapter. This is the value reported by the MSiSCSI_HBAInformation class.") : Amended] uint64 UniqueAdapterId;
  [DisplayName("Max Request Processing Time") : Amended,Description("Maximum time taken to process a request over this connection") : Amended] uint32 MaximumProcessingTime;
  [DisplayName("Average Request Processing Time") : Amended,Description("Average time taken to process a request over this connection") : Amended] uint32 AverageProcessingTime;
};
