classe WMI MSiSCSI_HBAInformation
Le service initiateur iSCSI utilise la classe WMI MSiSCSI_HBAInformation pour communiquer avec votre adaptateur. Vous devez disposer d’un instance distinct de cette classe pour chaque instance du pilote miniport chargé.
Étant donné que cette classe est associée à un instance particulier d’un pilote miniport de stockage, le pilote miniport doit inscrire la classe en utilisant le nom de l’objet de périphérique physique (PDO) particulier que le pilote miniport gère.
La classe MSiSCSI_HBAInformation est définie comme suit dans Mgmt.mof.
class MSiSCSI_HBAInformation {
[key] string InstanceName;
boolean Active;
[WmiDataId(1), DisplayName("Adapter Id") : amended,
DisplayInHex, description("Id that is globally unique to
each instance of each adapter. Using the address of the
Adapter Extension is a good idea.") : amended]
uint64 UniqueAdapterId;
[WmiDataId(2), DisplayName("Integrated Networking") :
amended, description("TRUE if TCP/IP traffic is
integrated with the Windows networking TCP/IP stack via
a software only initiator") : amended]
boolean IntegratedTCPIP;
[WmiDataId(3), Displayname("Requires Binary Addresses") :
amended, description("TRUE if HBA requires binary ip
addresses. If unchecked then DNS must be available on
HBA.") : amended]
boolean RequiresBinaryIpAddresses;
[read, WmiDataId(4), DisplayName("Minimum iSCSI
Version")
: amended, description("Minimum version number of the
iScsi spec supported by HBA") : amended]
uint8 VersionMin;
[read, WmiDataId(5), DisplayName("Maximum iSCSI
Version")
: amended, description("Maximum version number of the
iSCSI spec supported by HBA") : amended]
uint8 VersionMax;
[read, WmiDataId(6), DisplayName("Multifunction Device") :
amended, description("TRUE if this adapter is a
multifunction device, that is it also exposes a netcard
interface") : amended]
boolean MultifunctionDevice;
[read, WmiDataId(7), DisplayName("Valid Cache") : amended,
description("TRUE if the adapter caches are valid") :
amended] boolean CacheValid;
[read, WmiDataId(8), Displayname("Number of ports") :
amended, description("Number of ports attached to HBA")
: amended] uint32 NumberOfPorts;
[read, WmiDataId(9), Displayname("Status") : amended,
description("Current status of HBA") : amended,
Values{ "Working", "Degraded", "Critical", "Failed"},
ValueMap{ "0", "1", "2", "3" },
cpp_quote(
"#define ISCSI_HBA_STATUS_WORKING 0\n"
"#define ISCSI_HBA_STATUS_DEGRADED 1\n"
"#define ISCSI_HBA_STATUS_CRITICAL 2\n"
"#define ISCSI_HBA_STATUS_FAILED 3\n"
)] uint32 Status;
[read, WmiDataId(10), DisplayName("Functionality
Supported") : amended, Description("Bit flags that
indicate various functionality supported") : amended,
BitValueMap{"0x00000001",
"0x00000002",
"0x00000004",
"0x00000008",
"0x00000010",
"0x00000020"
},
BitValues{"Preshared Key Cache",
"iSCSI Authentication Cache",
"Tunnel Mode",
"CHAP authentication via RADIUS",
"Discovery via iSNS",
"Discovery via SLP"
} : amended,
cpp_quote(
"\n"
"//\n"
"// Flags that define the functionality
supported by the HBA\n"
"//\n"
"#define ISCSI_HBA_PRESHARED_KEY_CACHE 0x00000001\n"
"#define ISCSI_HBA_ISCSI_AUTHENTICATION_CACHE
x00000002\n"
"#define ISCSI_HBA_IPSEC_TUNNEL_MODE 0x00000004\n"
"#define ISCSI_HBA_CHAP_VIA_RADIUS 0x00000008\n"
"#define ISCSI_HBA_ISNS_DISCOVERY 0x00000010\n"
"#define ISCSI_HBA_SLP_DISCOVERY 0x00000020\n"
"\n")]
uint32 FunctionalitySupported;
[read, WmiDataId(11), DisplayName("Generational Guid") :
amended, Description("Generational Guid") : amended]
uint8 GenerationalGuid[16];
[read, WmiDataId(12), DisplayName("Max CDB Length") :
amended, Description("Max CDB Length") : amended]
uint32 MaxCDBLength;
[read, WmiDataId(13), DisplayName("Bi-directional SCSI
command supported") : amended, Description("Bi-
directional SCSI command supported") : amended]
boolean BiDiScsiCommands;
[read, WmiDataId(14), DisplayName("Manufacturer") :
amended, description("A text string describing the
manufacturer of HBA") : amended, MaxLen(255)]
string VendorID;
[read, WmiDataId(15), Displayname("Model") : amended,
description("A text string set by the manufacturer
describing the model of HBA") : amended, MaxLen(255)]
string VendorModel;
[read, WmiDataId(16), Displayname("Version") : amended,
description("A text string set by the manufacturer
describing the version of HBA") : amended, MaxLen(255)]
string VendorVersion;
[read, WmiDataId(17), displayName("Firmware Version") :
amended, description("A text string set by the
manufacturer describing the firmware version of HBA") : amended, MaxLen(255)]
string FirmwareVersion;
[read, WmiDataId(18), displayName("ASIC Version") :
amended, description("A text string set by the
manufacturer describing the firmware version of HBA") :
amended, MaxLen(255)]
string AsicVersion;
[read, WmiDataId(19), displayName("Option Rom Version") :
amended, description("A text string set by the
manufacturer describing the option rom version of HBA")
: amended, MaxLen(255)]
string OptionRomVersion;
[read, WmiDataId(20), Displayname("Serial Number") :
amended, description("A text string set by the
manufacturer describing the serial number of HBA") :
amended, MaxLen(255)]
string SerialNumber;
[read, WmiDataId(21), Displayname("Driver Name") :
amended, description("A text string specifying the name
of the driver for the HBA") : amended, MaxLen(255)]
string DriverName;
};
Lorsque la suite d’outils WMI compile la définition de classe précédente, elle produit la structure de données MSiSCSI_HBAInformation .