Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1581 lines
38 KiB

  1. //***************************************************************************
  2. //
  3. // hbaapi.mof
  4. //
  5. // Module: WDM classes to expose HBA api data from drivers
  6. //
  7. // Purpose: Contains WDM classes that specify the HBA data to be exposed
  8. // via the HBA api set.
  9. //
  10. // NOTE: This file contains information that is based upon an earlier
  11. // revision of the HBAAPI 2.0 specification. Since the
  12. // specification has not yet been approved, the information may
  13. // change in the next release of this file.
  14. //
  15. // Copyright (c) 2001 Microsoft Corporation
  16. //
  17. //***************************************************************************
  18. //
  19. // define data types
  20. //
  21. #define HBA_STATUS uint32
  22. //
  23. // Common qualifiers needed for HBA_STATUS values
  24. //
  25. #define HBA_STATUS_QUALIFIERS \
  26. HBAType("HBA_STATUS"), \
  27. Description("HBA Status result for the query operation") : amended, \
  28. ValueMap{"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", \
  29. "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", \
  30. "21", "22", "23", "24", "25", "26", "27", "28", "29"}, \
  31. Values{ \
  32. "Operation was successful ", \
  33. "Error ", \
  34. "Function not supported.", \
  35. "invalid handle ", \
  36. "Bad argument ", \
  37. "WWN not recognized ", \
  38. "Index not recognized ", \
  39. "Larger buffer required ", \
  40. "Information has changed since the last call to HBA_RefreshInformation ", \
  41. "SCSI Check Condition reported", \
  42. "Adapter busy or reserved, retry may be effective", \
  43. "Request timed out, retry may be effective", \
  44. "Referenced HBA has been removed or deactivated", \
  45. "The requested ELS was rejected by the local adapter", \
  46. "The specified LUN is not provided by the specified adapter", \
  47. "An incompatibility has been detected among the library and driver modules", \
  48. "Multiple adapters have a matching WWN", \
  49. "A persistent binding request included a bad local SCSI bus number", \
  50. "A persistent binding request included a bad local SCSI target number", \
  51. "A persistent binding request included a bad local SCSI logical unit number", \
  52. "A persistent binding set request included a local SCSI ID that was already bound", \
  53. "A persistent binding request included a bad or unlocatable FCP Target FCID", \
  54. "A persistent binding request included a bad FCP Target Node WWN", \
  55. "A persistent binding request included a bad FCP Target Port WWN", \
  56. "A persistent binding request included an FCP Logical Unit Number not defined by the identified Target", \
  57. "A persistent binding request included an undefined or otherwise in accessible Logical Unit Unique Identifier", \
  58. "A persistent binding remove request included a binding which did not match a binding established by the specified port", \
  59. "A SCSI command was requested to an Nx_Port that was not a SCSI Target Port", \
  60. "A request was made concerning an unsupported FC-4 protocol", \
  61. "A request was made to enable unimplemented capabilities for a port" \
  62. } : amended \
  63. #define HBA_BIND_TYPE uint32
  64. #define HBA_BIND_TYPE_QUALIFIERS \
  65. Description("Ways of performing persistent binding") : amended, \
  66. BitValues{ \
  67. "HBA_BIND_TO_D_ID", \
  68. "HBA_BIND_TO_WWPN", \
  69. "HBA_BIND_TO_WWNN", \
  70. "HBA_BIND_TO_LUID" \
  71. "HBA_BIND_TARGETS" \
  72. }, \
  73. BitMap{ "0x01", "0x02", "0x04", "0x08", "0x0800"}
  74. #pragma namespace("\\\\.\\root\\wmi")
  75. //
  76. // HBA 1.0 specific classes
  77. //
  78. [cpp_quote("\n"
  79. "//***************************************************************************\n"
  80. "//\n"
  81. "// hbapiwmi.h\n"
  82. "// \n"
  83. "// Module: WDM classes to expose HBA api data from drivers\n"
  84. "//\n"
  85. "// Purpose: Contains WDM classes that specify the HBA data to be exposed \n"
  86. "// via the HBA api set.\n"
  87. "//\n"
  88. "// NOTE: This file contains information that is based upon an earlier\n"
  89. "// revision of the HBAAPI 2.0 specification. Since the\n"
  90. "// specification has not yet been approved, the information may\n"
  91. "// change in the next release of this file.\n"
  92. "//\n"
  93. "// Copyright (c) 2001 Microsoft Corporation\n"
  94. "//\n"
  95. "//***************************************************************************\n\n"
  96. ),
  97. WMI,
  98. guid("{3CE7904F-459F-480d-9A3C-013EDE3BDDE8}")
  99. ]
  100. class MSFC_HBAPortStatistics
  101. {
  102. [
  103. WmiDataId(1)
  104. ]
  105. sint64 SecondsSinceLastReset;
  106. [
  107. WmiDataId(2)
  108. ]
  109. sint64 TxFrames;
  110. [
  111. WmiDataId(3)
  112. ]
  113. sint64 TxWords;
  114. [
  115. WmiDataId(4)
  116. ]
  117. sint64 RxFrames;
  118. [
  119. WmiDataId(5)
  120. ]
  121. sint64 RxWords;
  122. [
  123. WmiDataId(6)
  124. ]
  125. sint64 LIPCount;
  126. [
  127. WmiDataId(7)
  128. ]
  129. sint64 NOSCount;
  130. [
  131. WmiDataId(8)
  132. ]
  133. sint64 ErrorFrames;
  134. [
  135. WmiDataId(9)
  136. ]
  137. sint64 DumpedFrames;
  138. [
  139. WmiDataId(10)
  140. ]
  141. sint64 LinkFailureCount;
  142. // CIM_FibrePort.LossofSyncCounter
  143. [
  144. WmiDataId(11)
  145. ]
  146. sint64 LossOfSyncCount;
  147. // CIM_FibrePort.LossofSignalCounter
  148. [
  149. WmiDataId(12)
  150. ]
  151. sint64 LossOfSignalCount;
  152. [
  153. WmiDataId(13)
  154. ]
  155. sint64 PrimitiveSeqProtocolErrCount;
  156. [
  157. WmiDataId(14)
  158. ]
  159. sint64 InvalidTxWordCount;
  160. // CIM_FibrePort.CRCErrors
  161. [
  162. WmiDataId(15)
  163. ]
  164. sint64 InvalidCRCCount;
  165. };
  166. [WMI,
  167. Dynamic,
  168. Provider("WmiProv"),
  169. Description("This class exposes statistical information associated with "
  170. "a Fibre Channel port. There should be one instance of this "
  171. "class for each port.") : amended,
  172. guid("{27EFABA4-362A-4f20-920B-ED66E280FCF5}")
  173. ]
  174. class MSFC_FibrePortHBAStatistics
  175. {
  176. [key]
  177. string InstanceName;
  178. boolean Active;
  179. [
  180. Description ("Unique identifier for the port. This idenitifer must "
  181. "be unique among all ports on all adapters. The same "
  182. "value for the identifier must be used for the same port "
  183. "in other classes that expose port information") : amended,
  184. WmiRefClass("MSFC_FibrePort"),
  185. WmiRefProperty("UniquePortId"),
  186. WmiDataId(1)
  187. ]
  188. uint64 UniquePortId; // CIM_FibrePort REF
  189. [WmiDataId(2),
  190. HBA_STATUS_QUALIFIERS
  191. ]
  192. uint32 HBAStatus;
  193. // Note 4 byte padding
  194. [WmiDataId(3)
  195. ]
  196. MSFC_HBAPortStatistics Statistics;
  197. };
  198. [WMI,
  199. HBAType("HBA_PORTATTRIBUTES"),
  200. guid("{A76BD4E3-9961-4d9b-B6BE-86E698260F68}")
  201. ]
  202. class MSFC_HBAPortAttributesResults
  203. {
  204. [HBAType("HBA_WWN"),
  205. WmiDataId(1)
  206. ]
  207. uint8 NodeWWN[8];
  208. [HBAType("HBA_WWN"),
  209. WmiDataId(2)
  210. ]
  211. uint8 PortWWN[8];
  212. [
  213. WmiDataId(3)
  214. ]
  215. uint32 PortFcId;
  216. // CIM_FibrePort.CurrentPortType
  217. [HBAType("HBA_PORTTYPE"),
  218. Values{"Unknown", "Other", "Not present", "Fabric", "Public Loop",
  219. "HBA_PORTTYPE_FLPORT", "Fabric Port", "Fabric expansion port",
  220. "Generic Fabric Port", "Private Loop", "Point to Point"} : amended,
  221. ValueMap{"1", "2", "3", "5", "6", "7", "8", "9", "10", "20", "21"},
  222. WmiDataId(4)
  223. ]
  224. uint32 PortType;
  225. // CIM_LogicalDevice.Availability
  226. [HBAType("HBA_PORTSTATE"),
  227. Values{"Unknown", "Operational", "User Offline", "Bypassed",
  228. "In diagnostics mode", "Link Down", "Port Error", "Loopback"
  229. } : amended,
  230. ValueMap{"1","2","3","4","5","6","7","8"},
  231. WmiDataId(5)
  232. ]
  233. uint32 PortState;
  234. // CIM_FibreChannelAdapter.SupportedCOS
  235. // TODO: See GS-2 spec for enumeration/ValueMap
  236. [HBAType("HBA_COS"),
  237. WmiDataId(6)
  238. ]
  239. uint32 PortSupportedClassofService;
  240. // CIM_FibreChannelAdapter.FC4TypesSupported
  241. [HBAType("HBA_FC4TYPES"),
  242. WmiDataId(7)
  243. ]
  244. uint8 PortSupportedFc4Types[32];
  245. [HBAType("HBA_FC4TYPES"),
  246. WmiDataId(8)
  247. ]
  248. uint8 PortActiveFc4Types[32];
  249. [HBAType("HBA_PORTSPEED"),
  250. Values{"1 GBit/sec", "2 GBit/sec", "10 GBit/sec", "4 GBit/sec"} : amended,
  251. ValueMap{"1", "2", "4", "8"},
  252. WmiDataId(9)
  253. ]
  254. uint32 PortSupportedSpeed;
  255. // CIM_LogicalPort.Speed
  256. [HBAType("HBA_PORTSPEED"),
  257. Values{"1 GBit/sec", "2 GBit/sec", "10 GBit/sec", "4 GBit/sec"} : amended,
  258. ValueMap{"1", "2", "4", "8"},
  259. WmiDataId(10)
  260. ]
  261. uint32 PortSpeed;
  262. [
  263. WmiDataId(11)
  264. ]
  265. uint32 PortMaxFrameSize;
  266. [HBAType("HBA_WWN"),
  267. WmiDataId(12)
  268. ]
  269. uint8 FabricName[8];
  270. [
  271. WmiDataId(13)
  272. ]
  273. uint32 NumberofDiscoveredPorts;
  274. };
  275. [WMI,
  276. Dynamic,
  277. Provider("WmiProv"),
  278. Description("This class exposes attribute information associated with "
  279. "a Fibre Channel port. There should be one instance of this "
  280. "class for each port.") : amended,
  281. guid("{61B397FD-F5AE-4950-9758-0EE598E3C6E6}")
  282. ]
  283. class MSFC_FibrePortHBAAttributes
  284. {
  285. [key]
  286. string InstanceName;
  287. boolean Active;
  288. [
  289. Description ("Unique identifier for the port. This idenitifer must "
  290. "be unique among all ports on all adapters. The same "
  291. "value for the identifier must be used for the same port "
  292. "in other classes that expose port information") : amended,
  293. WmiRefClass("MSFC_FibrePort"),
  294. WmiRefProperty("UniquePortId"),
  295. WmiDataId(1)
  296. ]
  297. uint64 UniquePortId; // CIM_FibrePort REF
  298. [HBA_STATUS_QUALIFIERS,
  299. WmiDataId(2)
  300. ]
  301. HBA_STATUS HBAStatus;
  302. [HBAType("HBA_PORTATTRIBUTES"),
  303. WmiDataId(3)
  304. ]
  305. MSFC_HBAPortAttributesResults Attributes;
  306. };
  307. [WMI,
  308. Dynamic,
  309. Provider("WmiProv"),
  310. Description("This class exposes operations that can be performed on "
  311. "a Fibre Channel port. There should be one instance of this "
  312. "class for each port.") : amended,
  313. guid("{E693553E-EDF6-4d57-BF08-EFCAAE1A2E1C}")
  314. ]
  315. class MSFC_FibrePortHBAMethods
  316. {
  317. [key]
  318. string InstanceName;
  319. boolean Active;
  320. [
  321. Implemented,
  322. WmiMethodId(1)
  323. ]
  324. void ResetStatistics();
  325. };
  326. [WMI,
  327. Dynamic,
  328. Provider("WmiProv"),
  329. Description("This class exposes attribute information associated with a "
  330. "fibre channel adapter. There should be one instance of this "
  331. "class for each adapter") : amended,
  332. guid("{F8F3EA26-AB2C-4593-8B84-C56428E6BEDB}")
  333. ]
  334. class MSFC_FCAdapterHBAAttributes
  335. {
  336. [key]
  337. string InstanceName;
  338. boolean Active;
  339. [
  340. Description ("Unique identifier for the adapter. This idenitifer must "
  341. "be unique among all adapters. The same "
  342. "value for the identifier must be used for the same adapter "
  343. "in other classes that expose adapter information") : amended,
  344. WmiRefClass("MSFC_FibreChannelAdapter"),
  345. WmiRefProperty("UniqueAdapterId"),
  346. WmiDataId(1)
  347. ]
  348. uint64 UniqueAdapterId; // CIM_FibreChannelAdapter REF
  349. [HBA_STATUS_QUALIFIERS,
  350. WmiDataId(2)
  351. ]
  352. HBA_STATUS HBAStatus;
  353. // CIM_NetworkAdapter.PermamentAddress
  354. [HBAType("HBA_WWN"),
  355. WmiDataId(3)
  356. ]
  357. uint8 NodeWWN[8];
  358. [WmiDataId(4)
  359. ]
  360. uint32 VendorSpecificID;
  361. [WmiDataId(5)
  362. ]
  363. uint32 NumberOfPorts;
  364. // CIM_PhysicalElement
  365. [MaxLen(64),
  366. WmiDataId(6)
  367. ]
  368. string Manufacturer;
  369. // CIM_PhysicalElement
  370. [MaxLen(64),
  371. WmiDataId(7)
  372. ]
  373. string SerialNumber;
  374. // CIM_PhysicalElement
  375. [MaxLen(256),
  376. WmiDataId(8)
  377. ]
  378. string Model;
  379. [MaxLen(256),
  380. WmiDataId(9)
  381. ]
  382. string ModelDescription;
  383. [MaxLen(256),
  384. WmiDataId(10)
  385. ]
  386. string NodeSymbolicName;
  387. // CIM_PhysicalElement
  388. [MaxLen(256),
  389. WmiDataId(11)
  390. ]
  391. string HardwareVersion;
  392. [MaxLen(256),
  393. WmiDataId(12)
  394. ]
  395. string DriverVersion;
  396. [MaxLen(256),
  397. WmiDataId(13)
  398. ]
  399. string OptionROMVersion;
  400. [MaxLen(256),
  401. WmiDataId(14)
  402. ]
  403. string FirmwareVersion;
  404. [MaxLen(256),
  405. WmiDataId(15)
  406. ]
  407. string DriverName;
  408. [MaxLen(256),
  409. WmiDataId(16)
  410. ]
  411. string MfgDomain;
  412. };
  413. [WMI,
  414. Description("This class exposes FC3 Management information associated with "
  415. "a fibre channel adapter. There should be one instance of this "
  416. "class for each adapter") : amended,
  417. guid("{5966A24F-6AA5-418e-B75C-2F214DFB4B18}")
  418. ]
  419. class HBAFC3MgmtInfo
  420. {
  421. [
  422. Description ("Unique identifier for the adapter. This idenitifer must "
  423. "be unique among all adapters. The same "
  424. "value for the identifier must be used for the same adapter "
  425. "in other classes that expose adapter information") : amended,
  426. WmiRefClass("MSFC_FibreChannelAdapter"),
  427. WmiRefProperty("UniqueAdapterId"),
  428. WmiDataId(1)
  429. ]
  430. uint64 UniqueAdapterId; // CIM_FibreChannelAdapter REF
  431. [HBAType("HBA_WWN"),
  432. WmiDataId(2)
  433. ]
  434. uint8 wwn[8];
  435. [
  436. WmiDataId(3)
  437. ]
  438. uint32 unittype;
  439. [
  440. WmiDataId(4)
  441. ]
  442. uint32 PortId;
  443. [
  444. WmiDataId(5)
  445. ]
  446. uint32 NumberOfAttachedNodes;
  447. [
  448. WmiDataId(6)
  449. ]
  450. uint16 IPVersion;
  451. [
  452. WmiDataId(7)
  453. ]
  454. uint16 UDPPort;
  455. [
  456. WmiDataId(8)
  457. ]
  458. uint8 IPAddress[16];
  459. [
  460. WmiDataId(9)
  461. ]
  462. uint16 reserved;
  463. [
  464. WmiDataId(10)
  465. ]
  466. uint16 TopologyDiscoveryFlags;
  467. };
  468. [HBAType("HBA_SCSIID"),
  469. WMI,
  470. guid("{A76F5058-B1F0-4622-9E88-5CC41E34454A}")
  471. ]
  472. class HBAScsiID
  473. {
  474. [MaxLen(256),
  475. WmiDataId(1)
  476. ]
  477. string OSDeviceName;
  478. [WmiDataId(2)
  479. ]
  480. uint32 ScsiBusNumber;
  481. [WmiDataId(3)
  482. ]
  483. uint32 ScsiTargetNumber;
  484. [WmiDataId(4)
  485. ]
  486. uint32 ScsiOSLun;
  487. };
  488. [WMI,
  489. guid("{CA8E7FE6-B85E-497f-8858-9B5D93A66FE1}")
  490. ]
  491. class MSFC_FC4STATISTICS
  492. {
  493. [WmiDataId(1)
  494. ]
  495. uint64 InputRequests;
  496. [WmiDataId(2)
  497. ]
  498. uint64 OutputRequests;
  499. [WmiDataId(3)
  500. ]
  501. uint64 ControlRequests;
  502. [WmiDataId(4)
  503. ]
  504. uint64 InputMegabytes;
  505. [WmiDataId(5)
  506. ]
  507. uint64 OutputMegabytes;
  508. };
  509. [WMI,
  510. Description("") : amended,
  511. guid("{8CF4C7EB-A286-409d-9EB9-29D7E0E9F4FA}")
  512. ]
  513. class MSFC_TM
  514. {
  515. [WmiDataId(1)
  516. ]
  517. uint32 tm_sec;
  518. [WmiDataId(2)
  519. ]
  520. uint32 tm_min;
  521. [WmiDataId(3)
  522. ]
  523. uint32 tm_hour;
  524. [WmiDataId(4)
  525. ]
  526. uint32 tm_mday;
  527. [WmiDataId(5)
  528. ]
  529. uint32 tm_mon;
  530. [WmiDataId(6)
  531. ]
  532. uint32 tm_year;
  533. [WmiDataId(7)
  534. ]
  535. uint32 tm_wday;
  536. [WmiDataId(8)
  537. ]
  538. uint32 tm_yday;
  539. [WmiDataId(9)
  540. ]
  541. uint32 tm_isdst;
  542. };
  543. [WMI,
  544. Description("") : amended,
  545. guid("{623F4588-CF01-4f0e-B197-ABBEE5E0CFF3}")
  546. ]
  547. class MSFC_EventBuffer
  548. {
  549. [WmiDataId(1)]
  550. uint32 EventType;
  551. [WmiDataId(2)]
  552. uint32 EventInfo[4];
  553. };
  554. [WMI,
  555. Dynamic,
  556. Provider("WmiProv"),
  557. Description("This class exposes port discovery operations that can be by a "
  558. "fibre channel adapter. There should be one instance of this "
  559. "class for each adapter") : amended,
  560. guid("{DF87D4ED-4612-4d12-85FB-83574EC34B7C}")
  561. ]
  562. class MSFC_HBAAdapterMethods
  563. {
  564. [key]
  565. string InstanceName;
  566. boolean Active;
  567. [
  568. Implemented,
  569. WmiMethodId(1)
  570. ]
  571. void GetDiscoveredPortAttributes(
  572. [in
  573. ] uint32 PortIndex,
  574. [in] uint32 DiscoveredPortIndex,
  575. [out,
  576. HBA_STATUS_QUALIFIERS
  577. ] HBA_STATUS HBAStatus,
  578. [out,
  579. HBAType("HBA_PORTATTRIBUTES")
  580. ] MSFC_HBAPortAttributesResults PortAttributes);
  581. [
  582. Implemented,
  583. WmiMethodId(2)
  584. ]
  585. void GetPortAttributesByWWN(
  586. [in,
  587. HBAType("HBA_WWN")] uint8 wwn[8],
  588. [out,
  589. HBA_STATUS_QUALIFIERS
  590. ] HBA_STATUS HBAStatus,
  591. [out,
  592. HBAType("HBA_PORTATTRIBUTES")
  593. ] MSFC_HBAPortAttributesResults PortAttributes);
  594. [
  595. Implemented,
  596. WmiMethodId(3)
  597. ]
  598. void RefreshInformation();
  599. [Implemented,
  600. WmiMethodId(4)
  601. ]
  602. void SendCTPassThru([out,
  603. HBA_STATUS_QUALIFIERS
  604. ] HBA_STATUS HBAStatus,
  605. [in, HBAType("HBA_WWN")] uint8 PortWWN[8],
  606. [in] uint32 RequestBufferCount,
  607. [in, WmiSizeIs("RequestBufferCount")] uint8 RequestBuffer[],
  608. [out] uint32 TotalResponseBufferCount,
  609. [out] uint32 ActualResponseBufferCount,
  610. [out, WmiSizeIs("ActualResponseBufferCount")] uint8 ResponseBuffer[]);
  611. [
  612. Implemented,
  613. WmiMethodId(5)
  614. ]
  615. void SendRNID(
  616. [in,
  617. HBAType("HBA_WWN")
  618. ] uint8 wwn[8],
  619. [in,
  620. HBAType("HBA_WWNTYPE"),
  621. Values{"NODE_WWN", "PORT_WWN"},
  622. ValueMap{"0", "1"}
  623. ] uint32 wwntype,
  624. [out,
  625. HBA_STATUS_QUALIFIERS
  626. ] HBA_STATUS HBAStatus,
  627. [out] uint32 ResponseBufferCount,
  628. [out,
  629. WmiSizeIs("ResponseBufferCount")
  630. ] uint8 ResponseBuffer[]);
  631. [Implemented,
  632. WmiMethodId(6)
  633. ]
  634. void SendRNIDV2([out,
  635. HBA_STATUS_QUALIFIERS
  636. ] HBA_STATUS HBAStatus,
  637. [in, HBAType("HBA_WWN")] uint8 PortWWN[8],
  638. [in, HBAType("HBA_WWN")] uint8 DestWWN[8],
  639. [in] uint32 DestFCID,
  640. [in] uint32 NodeIdDataFormat,
  641. [out] uint32 TotalRspBufferSize,
  642. [out] uint32 ActualRspBufferSize,
  643. [out, WmiSizeIs("ActualRspBufferSize")] uint8 RspBuffer[]);
  644. [
  645. Implemented,
  646. WmiMethodId(7)
  647. ]
  648. void GetFC3MgmtInfo(
  649. [out,
  650. HBA_STATUS_QUALIFIERS
  651. ] HBA_STATUS HBAStatus,
  652. [out] HBAFC3MgmtInfo MgmtInfo);
  653. [
  654. Implemented,
  655. WmiMethodId(8)
  656. ]
  657. void SetFC3MgmtInfo(
  658. [out,
  659. HBA_STATUS_QUALIFIERS
  660. ] HBA_STATUS HBAStatus,
  661. [in] HBAFC3MgmtInfo MgmtInfo);
  662. [Implemented,
  663. WmiMethodId(9)
  664. ]
  665. void SendRTIN([out,
  666. HBA_STATUS_QUALIFIERS
  667. ] HBA_STATUS HBAStatus,
  668. [in, HBAType("HBA_WWN")] uint8 PortWWN[8],
  669. [in, HBAType("HBA_WWN")] uint8 AgentWWN[8],
  670. [in, HBAType("HBA_WWN")] uint8 ObjectWWN[8],
  671. [in] boolean WWNIsDomain,
  672. [out] uint32 RspBufferSize,
  673. [out, WmiSizeIs("RspBufferSize")] uint8 RspBuffer[]);
  674. [Implemented,
  675. WmiMethodId(10)
  676. ]
  677. void SendRPL([out,
  678. HBA_STATUS_QUALIFIERS
  679. ] HBA_STATUS HBAStatus,
  680. [in, HBAType("HBA_WWN")] uint8 PortWWN[8],
  681. [in, HBAType("HBA_WWN")] uint8 AgentWWN[8],
  682. [in] uint32 agent_domain,
  683. [in] uint32 portIndex,
  684. [out] uint32 TotalRspBufferSize,
  685. [out] uint32 ActualRspBufferSize,
  686. [out, WmiSizeIs("ActualRspBufferSize")] uint8 RspBuffer[]);
  687. [Implemented,
  688. WmiMethodId(11)
  689. ]
  690. void SendRPS([out,
  691. HBA_STATUS_QUALIFIERS
  692. ] HBA_STATUS HBAStatus,
  693. [in, HBAType("HBA_WWN")] uint8 PortWWN[8],
  694. [in, HBAType("HBA_WWN")] uint8 AgentWWN[8],
  695. [in, HBAType("HBA_WWN")] uint8 ObjectWWN[8],
  696. [in] uint32 AgentDomain,
  697. [in] uint32 ObjectPortNumber,
  698. [out] uint32 TotalRspBufferSize,
  699. [out] uint32 ActualRspBufferSize,
  700. [out, WmiSizeIs("ActualRspBufferSize")] uint8 RspBuffer[]);
  701. [Implemented,
  702. WmiMethodId(12)
  703. ]
  704. void SendSRL([out,
  705. HBA_STATUS_QUALIFIERS
  706. ] HBA_STATUS HBAStatus,
  707. [in, HBAType("HBA_WWN")] uint8 PortWWN[8],
  708. [in, HBAType("HBA_WWN")] uint8 WWN[8],
  709. [in] uint32 Domain,
  710. [out] uint32 TotalRspBufferSize,
  711. [out] uint32 ActualRspBufferSize,
  712. [out, WmiSizeIs("ActualRspBufferSize")] uint8 RspBuffer[]);
  713. [Implemented,
  714. WmiMethodId(13)
  715. ]
  716. void SendLIRR([out,
  717. HBA_STATUS_QUALIFIERS
  718. ] HBA_STATUS HBAStatus,
  719. [in, HBAType("HBA_WWN")] uint8 SourceWWN[8],
  720. [in, HBAType("HBA_WWN")] uint8 DestWWN[8],
  721. [in] uint8 Function,
  722. [in] uint8 Type,
  723. [out] uint32 TotalRspBufferSize,
  724. [out] uint32 ActualRspBufferSize,
  725. [out, WmiSizeIs("ActualRspBufferSize")] uint8 RspBuffer[]);
  726. [Implemented,
  727. WmiMethodId(14)
  728. ]
  729. void GetFC4Statistics([out,
  730. HBA_STATUS_QUALIFIERS
  731. ] HBA_STATUS HBAStatus,
  732. [in, HBAType("HBA_WWN")] uint8 PortWWN[8],
  733. [in] uint8 FC4Type,
  734. [out] MSFC_FC4STATISTICS FC4Statistics);
  735. [Implemented,
  736. WmiMethodId(15)
  737. ]
  738. void GetFCPStatistics([out,
  739. HBA_STATUS_QUALIFIERS
  740. ] HBA_STATUS HBAStatus,
  741. [in] HBAScsiID ScsiId,
  742. [out] MSFC_FC4STATISTICS FC4Statistics);
  743. [Implemented,
  744. WmiMethodId(16)
  745. ]
  746. void ScsiInquiry([out,
  747. HBA_STATUS_QUALIFIERS
  748. ] HBA_STATUS HBAStatus,
  749. [in] uint8 Cdb[6],
  750. [in, HBAType("HBA_WWN")] uint8 HbaPortWWN[8],
  751. [in, HBAType("HBA_WWN")] uint8 DiscoveredPortWWN[8],
  752. [in] uint64 FcLun,
  753. [out] uint32 ResponseBufferSize,
  754. [out] uint32 SenseBufferSize,
  755. [out] uint8 ScsiStatus,
  756. [out, WmiSizeIs("ResponseBufferSize")
  757. ] uint8 ResponseBuffer[],
  758. [out, WmiSizeIs("SenseBufferSize")
  759. ] uint8 SenseBuffer[]);
  760. [Implemented,
  761. WmiMethodId(17)
  762. ]
  763. void ScsiReadCapacity([out,
  764. HBA_STATUS_QUALIFIERS
  765. ] HBA_STATUS HBAStatus,
  766. [in] uint8 Cdb[10],
  767. [in, HBAType("HBA_WWN")] uint8 HbaPortWWN[8],
  768. [in, HBAType("HBA_WWN")] uint8 DiscoveredPortWWN[8],
  769. [in] uint64 FcLun,
  770. [out] uint32 ResponseBufferSize,
  771. [out] uint32 SenseBufferSize,
  772. [out] uint8 ScsiStatus,
  773. [out, WmiSizeIs("ResponseBufferSize")
  774. ] uint8 ResponseBuffer[],
  775. [out, WmiSizeIs("SenseBufferSize")
  776. ] uint8 SenseBuffer[]);
  777. [Implemented,
  778. WmiMethodId(18)
  779. ]
  780. void ScsiReportLuns([out,
  781. HBA_STATUS_QUALIFIERS
  782. ] HBA_STATUS HBAStatus,
  783. [in] uint8 Cdb[12],
  784. [in, HBAType("HBA_WWN")] uint8 HbaPortWWN[8],
  785. [in, HBAType("HBA_WWN")] uint8 DiscoveredPortWWN[8],
  786. [out] uint32 ResponseBufferSize,
  787. [out] uint32 SenseBufferSize,
  788. [out] uint8 ScsiStatus,
  789. [out, WmiSizeIs("ResponseBufferSize")
  790. ] uint8 ResponseBuffer[],
  791. [out, WmiSizeIs("SenseBufferSize")
  792. ] uint8 SenseBuffer[]);
  793. [Implemented,
  794. WmiMethodId(19)
  795. ]
  796. void GetVendorLibraryAttributes([out,
  797. HBA_STATUS_QUALIFIERS
  798. ] HBA_STATUS HBAStatus,
  799. [out]
  800. uint32 HbaVersion,
  801. [out,
  802. Description("Is Final")
  803. ] boolean Final,
  804. [out,
  805. Description("LibPath"),
  806. MaxLen(256)
  807. ] string LibPath,
  808. [out,
  809. Description("Vendor Name"),
  810. MaxLen(256)
  811. ] string VName,
  812. [out,
  813. Description("Vendor Version"),
  814. MaxLen(256)
  815. ] string VVersion,
  816. [out,
  817. Description("Build date")
  818. ] MSFC_TM tm);
  819. [Implemented,
  820. WmiMethodId(20)
  821. ]
  822. void GetEventBuffer([out,
  823. HBA_STATUS_QUALIFIERS
  824. ] HBA_STATUS HBAStatus,
  825. [out
  826. ] uint32 EventCount,
  827. [out,
  828. WmiSizeIs("EventCount")
  829. ] MSFC_EventBuffer Events[]);
  830. [Implemented,
  831. WmiMethodId(21)
  832. ]
  833. void SendRLS([out,
  834. HBA_STATUS_QUALIFIERS
  835. ] HBA_STATUS HBAStatus,
  836. [in, HBAType("HBA_WWN")] uint8 PortWWN[8],
  837. [in, HBAType("HBA_WWN")] uint8 DestWWN[8],
  838. [out] uint32 TotalRspBufferSize,
  839. [out] uint32 ActualRspBufferSize,
  840. [out, WmiSizeIs("ActualRspBufferSize")] uint8 RspBuffer[]);
  841. };
  842. [HBAType("HBA_FCPID"),
  843. WMI,
  844. guid("{FF02BC96-7FB0-4bac-8F97-C71E495FA698}")
  845. ]
  846. class HBAFCPID
  847. {
  848. [
  849. WmiDataId(1)
  850. ]
  851. uint32 Fcid;
  852. [HBAType("HBA_WWN"),
  853. WmiDataId(2)
  854. ]
  855. uint8 NodeWWN[8];
  856. [HBAType("HBA_WWN"),
  857. WmiDataId(3)
  858. ]
  859. uint8 PortWWN[8];
  860. [
  861. WmiDataId(4)
  862. ]
  863. uint64 FcpLun;
  864. };
  865. [HBAType("HBA_FCPSCSIENTRY"),
  866. WMI,
  867. guid("{77CA1248-1505-4221-8EB6-BBB6EC771A87}")
  868. ]
  869. class HBAFCPScsiEntry
  870. {
  871. [
  872. HBAType("HBA_SCSIID"),
  873. WmiDataId(1)
  874. ]
  875. HBAScsiID ScsiId;
  876. [
  877. HBAType("HBA_FCPID"),
  878. WmiDataId(2)
  879. ]
  880. HBAFCPID FCPId;
  881. [
  882. HBAType("HBA_LUID"),
  883. WmiDataId(3)
  884. ]
  885. uint8 Luid[256];
  886. };
  887. [HBAType("HBA_FCPBINDINGENTRY"),
  888. WMI,
  889. guid("{FCEFF8B7-9D6B-4115-8422-05992451A629}")
  890. ]
  891. class HBAFCPBindingEntry
  892. {
  893. [HBAType("HBA_FCPBINDINGTYPE"),
  894. Values{"TO_D_ID", "TO_WWN", "TO_OTHER"},
  895. ValueMap{"0", "1", "2"},
  896. WmiDataId(1)
  897. ]
  898. uint32 Type;
  899. [HBAType("HBA_FCPSCSIENTRY"),
  900. WmiDataId(2)
  901. ]
  902. HBAScsiID ScsiId;
  903. [HBAType("HBA_FCID"),
  904. WmiDataId(3)
  905. ]
  906. HBAFCPID FCPId;
  907. };
  908. [WMI,
  909. guid("{3A1E7679-4B1F-4f31-A8AE-FE9278730924}")
  910. ]
  911. class HBAFCPBindingEntry2
  912. {
  913. [WmiDataId(1),
  914. HBA_BIND_TYPE_QUALIFIERS
  915. ]
  916. HBA_BIND_TYPE Type;
  917. [HBAType("HBA_FCPSCSIENTRY"),
  918. WmiDataId(2)
  919. ]
  920. HBAScsiID ScsiId;
  921. [HBAType("HBA_FCID"),
  922. WmiDataId(3)
  923. ]
  924. HBAFCPID FCPId;
  925. [HBAType("HBA_LUID"),
  926. WmiDataId(4)
  927. ]
  928. uint8 Luid[256];
  929. };
  930. /*
  931. [WMI,
  932. guid("{F52C5BE9-DC5F-458a-8D83-952096540957}")
  933. ]
  934. class MSFC_FCPBINDING2
  935. {
  936. [WmiDataId(1)
  937. ]
  938. uint32 EntryCount;
  939. [WmiDataId(2),
  940. HbaType("HBA_FCPBINDINGENTRY2"),
  941. WmiSizeIs("EntryCount")
  942. ]
  943. MSFC_FCPBINDINGENTRY2 Bindings[];
  944. };
  945. */
  946. [WMI,
  947. Dynamic,
  948. Provider("WmiProv"),
  949. Description("This class exposes operations associated with FCP "
  950. "on a Fibre Channel adapter. There should be one instance of this "
  951. "class for each adapter.") : amended,
  952. guid("{7A1FC391-5B23-4c19-B0EB-B1AEF59050C3}")
  953. ]
  954. class MSFC_HBAFCPInfo
  955. {
  956. [key]
  957. string InstanceName;
  958. boolean Active;
  959. [
  960. Implemented,
  961. WmiMethodId(1)
  962. ]
  963. void GetFcpTargetMapping(
  964. [out,
  965. HBA_STATUS_QUALIFIERS
  966. ] HBA_STATUS HBAStatus,
  967. [in, HBAType("HBA_WWN")] uint8 HbaPortWWN[8],
  968. [in, out] uint32 TotalEntryCount,
  969. [out] uint32 ActualEntryCount,
  970. [out,
  971. WmiSizeIs("ActualEntryCount")] HBAFCPScsiEntry Entry[]);
  972. [
  973. Implemented,
  974. WmiMethodId(2)
  975. ]
  976. void GetFcpPersistentBinding(
  977. [out,
  978. HBA_STATUS_QUALIFIERS
  979. ] HBA_STATUS HBAStatus,
  980. [in, out] uint32 EntryCount,
  981. [out,
  982. WmiSizeIs("EntryCount")
  983. ] HBAFCPBindingEntry Entry[]);
  984. [
  985. Implemented,
  986. WmiMethodId(3)
  987. ]
  988. void GetBindingCapability(
  989. [out,
  990. HBA_STATUS_QUALIFIERS
  991. ] HBA_STATUS HBAStatus,
  992. [in,
  993. HBAType("HBA_WWN")
  994. ] uint8 PortWWN[8],
  995. [out,
  996. HBA_BIND_TYPE_QUALIFIERS
  997. ] HBA_BIND_TYPE BindType);
  998. [
  999. Implemented,
  1000. WmiMethodId(4)
  1001. ]
  1002. void GetBindingSupport(
  1003. [out,
  1004. HBA_STATUS_QUALIFIERS
  1005. ] HBA_STATUS HBAStatus,
  1006. [in,
  1007. HBAType("HBA_WWN")
  1008. ] uint8 PortWWN[8],
  1009. [out,
  1010. HBA_BIND_TYPE_QUALIFIERS
  1011. ] HBA_BIND_TYPE BindType);
  1012. [
  1013. Implemented,
  1014. WmiMethodId(5)
  1015. ]
  1016. void SetBindingSupport(
  1017. [out,
  1018. HBA_STATUS_QUALIFIERS
  1019. ] HBA_STATUS HBAStatus,
  1020. [in,
  1021. HBAType("HBA_WWN")
  1022. ] uint8 PortWWN[8],
  1023. [in,
  1024. HBA_BIND_TYPE_QUALIFIERS
  1025. ] HBA_BIND_TYPE BindType);
  1026. [
  1027. Implemented,
  1028. WmiMethodId(6)
  1029. ]
  1030. void SetPersistentBinding2(
  1031. [out,
  1032. HBA_STATUS_QUALIFIERS
  1033. ] HBA_STATUS HBAStatus,
  1034. [in,
  1035. HBAType("HBA_WWN")
  1036. ] uint8 PortWWN[8],
  1037. [in] uint32 EntryCount,
  1038. [in,
  1039. WmiSizeIs("EntryCount")
  1040. ] HBAFCPBindingEntry2 Bindings[]);
  1041. [
  1042. Implemented,
  1043. WmiMethodId(7)
  1044. ]
  1045. void GetPersistentBinding2(
  1046. [out,
  1047. HBA_STATUS_QUALIFIERS
  1048. ] HBA_STATUS HBAStatus,
  1049. [in,
  1050. HBAType("HBA_WWN")
  1051. ] uint8 PortWWN[8],
  1052. [in, out] uint32 EntryCount,
  1053. [out,
  1054. WmiSizeIs("EntryCount")
  1055. ] HBAFCPBindingEntry2 Bindings[]);
  1056. [
  1057. Implemented,
  1058. WmiMethodId(8)
  1059. ]
  1060. void SetPersistentEntry(
  1061. [out,
  1062. HBA_STATUS_QUALIFIERS
  1063. ] HBA_STATUS HBAStatus,
  1064. [in,
  1065. HbaType("HBA_FCPBINDINGENTRY2")
  1066. ] HBAFCPBindingEntry2 Binding);
  1067. [
  1068. Implemented,
  1069. WmiMethodId(9)
  1070. ]
  1071. void RemovePersistentEntry(
  1072. [out,
  1073. HBA_STATUS_QUALIFIERS
  1074. ] HBA_STATUS HBAStatus,
  1075. [in
  1076. ] HBAFCPBindingEntry2 Binding);
  1077. };
  1078. //
  1079. // HBA 2.0 Event Classes
  1080. //
  1081. #define EVENT_TYPES_QUALIFIERS \
  1082. Values{ "HBA_EVENT_ADAPTER_UNKNOWN", \
  1083. "HBA_EVENT_ADAPTER_ADD", \
  1084. "HBA_EVENT_ADAPTER_REMOVE", \
  1085. "HBA_EVENT_ADAPTER_CHANGE", \
  1086. \
  1087. "HBA_EVENT_PORT_UNKNOWN", \
  1088. "HBA_EVENT_PORT_OFFLINE", \
  1089. "HBA_EVENT_PORT_ONLINE", \
  1090. "HBA_EVENT_PORT_NEW_TARGETS", \
  1091. "HBA_EVENT_PORT_FABRIC" \
  1092. \
  1093. "HBA_EVENT_PORT_STAT_THRESHOLD" \
  1094. "HBA_EVENT_PORT_STAT_GROWTH" \
  1095. \
  1096. "HBA_EVENT_TARGET_UNKNOWN", \
  1097. "HBA_EVENT_TARGET_OFFLINE", \
  1098. "HBA_EVENT_TARGET_ONLINE", \
  1099. "HBA_EVENT_TARGET_REMOVED" \
  1100. \
  1101. "HBA_EVENT_LINK_UNKNOWN", \
  1102. "HBA_EVENT_LINK_INCIDENT" \
  1103. }, \
  1104. \
  1105. ValueMap{ "0x100", "0x101", "0x102", "0x103", \
  1106. "0x200", "0x201", "0x202", "0x203", "0x204", \
  1107. "0x301", "0x302", \
  1108. "0x400", "0x401", "0x402", "0x403" \
  1109. "0x500", "0x501" \
  1110. }
  1111. [
  1112. cpp_quote("\n"
  1113. "\n"
  1114. "\n"
  1115. "//\n"
  1116. "// Event types. These match the definitions in hbaapi.h and must be kept in sync\n"
  1117. "//\n"
  1118. " /* Adapter Level Events */\n"
  1119. "#define HBA_EVENT_ADAPTER_UNKNOWN 0x100\n"
  1120. "#define HBA_EVENT_ADAPTER_ADD 0x101\n"
  1121. "#define HBA_EVENT_ADAPTER_REMOVE 0x102\n"
  1122. "#define HBA_EVENT_ADAPTER_CHANGE 0x103\n"
  1123. "\n"
  1124. " /* Port Level Events */\n"
  1125. "#define HBA_EVENT_PORT_UNKNOWN 0x200\n"
  1126. "#define HBA_EVENT_PORT_OFFLINE 0x201\n"
  1127. "#define HBA_EVENT_PORT_ONLINE 0x202\n"
  1128. "#define HBA_EVENT_PORT_NEW_TARGETS 0x203\n"
  1129. "#define HBA_EVENT_PORT_FABRIC 0x204\n"
  1130. " \n"
  1131. " /* Port Statistics Events */\n"
  1132. "#define HBA_EVENT_PORT_STAT_THRESHOLD 0x301\n"
  1133. "#define HBA_EVENT_PORT_STAT_GROWTH 0x302\n"
  1134. "\n"
  1135. " /* Target Level Events */\n"
  1136. "#define HBA_EVENT_TARGET_UNKNOWN 0x400\n"
  1137. "#define HBA_EVENT_TARGET_OFFLINE 0x401\n"
  1138. "#define HBA_EVENT_TARGET_ONLINE 0x402\n"
  1139. "#define HBA_EVENT_TARGET_REMOVED 0x403\n"
  1140. "\n"
  1141. " /* Fabric Link Events */\n"
  1142. "#define HBA_EVENT_LINK_UNKNOWN 0x500\n"
  1143. "#define HBA_EVENT_LINK_INCIDENT 0x501\n"
  1144. ),
  1145. WMI,
  1146. Description("This class surfaces HBA adapter events") : amended,
  1147. guid("{E9E47403-D1D7-43f8-8EE3-53CDBFFF5646}"),
  1148. Provider("wmiprov"),
  1149. Dynamic
  1150. ]
  1151. class MSFC_AdapterEvent : WMIEvent
  1152. {
  1153. [key]
  1154. string InstanceName;
  1155. boolean Active;
  1156. [WmiDataId(1),
  1157. Description("Event Type") : amended,
  1158. EVENT_TYPE_QUALIFIERS
  1159. ]
  1160. uint32 EventType;
  1161. [WmiDataId(2),
  1162. Description("Adapter WWN") : amended,
  1163. HBAType("HBA_WWN")
  1164. ]
  1165. uint8 PortWWN[8];
  1166. };
  1167. [WMI,
  1168. Description("This class surfaces HBA port events") : amended,
  1169. guid("{095FBE97-3876-48ef-8A04-1C55935D0DF5}"),
  1170. Provider("wmiprov"),
  1171. Dynamic
  1172. ]
  1173. class MSFC_PortEvent : WMIEvent
  1174. {
  1175. [key]
  1176. string InstanceName;
  1177. boolean Active;
  1178. [WmiDataId(1),
  1179. Description("Type of event") : amended,
  1180. EVENT_TYPES_QUALIFIERS
  1181. ]
  1182. uint32 EventType;
  1183. [WmiDataId(2),
  1184. Description("Fabric port id") : amended
  1185. ]
  1186. uint32 FabricPortId;
  1187. [WmiDataId(3),
  1188. Description("Port WWN") : amended,
  1189. HBAType("HBA_WWN")
  1190. ]
  1191. uint8 PortWWN[8];
  1192. };
  1193. [WMI,
  1194. Description("This class surfaces HBA target events") : amended,
  1195. guid("{CFA6EF26-8675-4e27-9A0B-B4A860DDD0F3}"),
  1196. Provider("wmiprov"),
  1197. Dynamic
  1198. ]
  1199. class MSFC_TargetEvent : WmiEvent
  1200. {
  1201. [key]
  1202. string InstanceName;
  1203. boolean Active;
  1204. [WmiDataId(1),
  1205. Description("Type of event") : amended,
  1206. EVENT_TYPES_QUALIFIERS
  1207. ]
  1208. uint32 EventType;
  1209. [WmiDataId(2),
  1210. Description("Port WWN") : amended,
  1211. HBAType("HBA_WWN")
  1212. ]
  1213. uint8 PortWWN[8];
  1214. [WmiDataId(3),
  1215. Description("Discovered Port WWN") : amended,
  1216. HBAType("HBA_WWN")
  1217. ]
  1218. uint8 DiscoveredPortWWN[8];
  1219. };
  1220. [WMI,
  1221. Description("This class surfaces HBA link events") : amended,
  1222. guid("{C66015EE-014B-498a-9451-99FEAD0AB451}"),
  1223. Provider("wmiprov"),
  1224. Dynamic
  1225. ]
  1226. class MSFC_LinkEvent : WMIEvent
  1227. {
  1228. [key]
  1229. string InstanceName;
  1230. boolean Active;
  1231. [WmiDataId(1),
  1232. Description("Type of event") : amended,
  1233. EVENT_TYPES_QUALIFIERS
  1234. ]
  1235. uint32 EventType;
  1236. [WmiDataId(2),
  1237. Description("Discovered Port WWN") : amended,
  1238. HBAType("HBA_WWN")
  1239. ]
  1240. uint8 AdapterWWN[8];
  1241. [WmiDataId(3),
  1242. Description("Size of RLIR buffer") : amended
  1243. ]
  1244. uint32 RLIRBufferSize;
  1245. [WmiDataId(4),
  1246. Description("Size of RLIR buffer") : amended,
  1247. WmiSizeIs("RLIRBufferSize")
  1248. ]
  1249. uint8 RLIRBuffer[];
  1250. };
  1251. [WMI,
  1252. Dynamic,
  1253. Provider("WmiProv"),
  1254. Description("This class defines the port statistics thresholds that "
  1255. "will cause a HBA_EVENT_PORT_STAT_THRESHOLD event to occur") : amended,
  1256. guid("{A251CCB3-5AB0-411b-8771-5430EF53A26C}")
  1257. ]
  1258. class MSFC_EventControl
  1259. {
  1260. [key]
  1261. string InstanceName;
  1262. boolean Active;
  1263. //
  1264. // These methods are used to control delivery of MSFC_TargetEvents
  1265. //
  1266. [Implemented,
  1267. WmiMethodId(10)
  1268. ]
  1269. void AddTarget([out,
  1270. HBA_STATUS_QUALIFIERS
  1271. ] HBA_STATUS HBAStatus,
  1272. [in,
  1273. HBAType("HBA_WWN")
  1274. ] uint8 HbaPortWWN[8],
  1275. [in,
  1276. HBAType("HBA_WWN")
  1277. ] uint8 DiscoveredPortWWN[8],
  1278. [in
  1279. ] uint32 AllTargets);
  1280. [Implemented,
  1281. WmiMethodId(11)
  1282. ]
  1283. void RemoveTarget([out,
  1284. HBA_STATUS_QUALIFIERS
  1285. ] HBA_STATUS HBAStatus,
  1286. [in,
  1287. HBAType("HBA_WWN")
  1288. ] uint8 HbaPortWWN[8],
  1289. [in,
  1290. HBAType("HBA_WWN")
  1291. ] uint8 DiscoveredPortWWN[8],
  1292. [in
  1293. ] uint32 AllTargets);
  1294. //
  1295. // These methods are used to control delivery of MSFC_PortEvents
  1296. //
  1297. [Implemented,
  1298. WmiMethodId(20)
  1299. ]
  1300. void AddPort([out,
  1301. HBA_STATUS_QUALIFIERS
  1302. ] HBA_STATUS HBAStatus,
  1303. [in,
  1304. HBAType("HBA_WWN")
  1305. ] uint8 PortWWN[8]);
  1306. [Implemented,
  1307. WmiMethodId(21)
  1308. ]
  1309. void RemovePort([out,
  1310. HBA_STATUS_QUALIFIERS
  1311. ] HBA_STATUS HBAStatus,
  1312. [in,
  1313. HBAType("HBA_WWN")
  1314. ] uint8 PortWWN[8]);
  1315. //
  1316. // These methods are used to control delivery of MSFC_LinkEvents
  1317. //
  1318. [Implemented,
  1319. WmiMethodId(30)
  1320. ]
  1321. void AddLink([out,
  1322. HBA_STATUS_QUALIFIERS
  1323. ] HBA_STATUS HBAStatus);
  1324. [Implemented,
  1325. WmiMethodId(31)
  1326. ]
  1327. void RemoveLink([out,
  1328. HBA_STATUS_QUALIFIERS
  1329. ] HBA_STATUS HBAStatus);
  1330. };