QLogic SAN & Device Management Library for Windows Version 1.27.06 06/04/2002 Contents ======== OS Support Driver Requirement Features Library File HBAAPI v1.0 Support Matrix Release History -------------------------------------------------------------------------------- OS Support ========== SAN & Device Management library works with Microsoft Windows operating systems that are supported by the QLogic PCI Fibre Channel Scsi Miniport drivers. -------------------------------------------------------------------------------- Driver Requirement ================== SAN & Device Management library requries QLogic PCI Fibre Channel Scsi Miniport drivers of version v7.05.02 or higher. -------------------------------------------------------------------------------- Feature ======= * SAN & Device Management library supports SNIA HBAAPI v1.0. -------------------------------------------------------------------------------- Library File ============ * HKLM\Software\SNIA\HBA\ql2x00 contains the full path of the library file "%SystemRoot%\system32\qlsdm.dll" -------------------------------------------------------------------------------- HBAAPI v1.0 Support Matrix ========================== API Support Notes --- ------- ----- HBA_GetVersion Yes HBA_LoadLibrary Yes HBA_FreeLibrary Yes HBA_RegisterLibrary Yes HBA_GetNumberOfAdapters Yes HBA_GetAdapterName Yes HBA_OpenAdapter Yes HBA_CloseAdapter Yes HBA_GetAdapterAttributes Yes HBA_GetAdapterPortAttributes Yes HBA_GetPortStatistics Yes HBA_GetDiscoveredPortAttributes Yes HBA_GetPortAttributesByWWN Yes HBA_SendCTPassThru Yes HBA_RefreshInformation Yes HBA_ResetStatistics Yes HBA_GetFcpTargetMapping Yes HBA_GetFcpPersistentBinding No HBA_GetEventBuffer Yes Link up/down, lip & rscn HBA_SetRNIDMgmtInfo Yes HBA_GetRNIDMgmtInfo Yes HBA_SendRNID Yes Only data format DF is supported HBA_SendScsiInquiry Yes HBA_SendReportLUNs Yes HBA_SendReadCapacity Yes AdapterAttributes Support Notes ----------------- ------- ----- Manufacturer Yes Serial Number Yes Model Yes Model Description Yes Node WWN Yes Node Symbolic Name No Hardware Version No Vendor specific Driver Version Yes Option ROM Version Yes Firmware Version Yes Vendor Specific ID No Number Of Ports Yes Driver Name Yes AdapterPortAttributes Support Notes --------------------- ------- ----- Node WWN Yes Port WWN Yes Port Symbolic Name No Port FcId Yes Port Type Yes Port State Yes Supported Class of Service Yes Supported Fc4Types Yes Active Fc4Types Yes Port Supported Speed Yes Port Speed Yes Port Max Frame Size Yes OS Device Name Yes Number of Discovered Ports Yes Fabric Name No DiscoveredPortAttributes Support Notes ------------------------ ------- ----- Node WWN Yes Port WWN Yes Port Symbolic Name No Port FcId Yes Port Type No Port State No Supported Class of Service No Port Supported Fc4Types No Port Active Fc4Types No Port Supported Speed No Not applicable Port Speed No Not applicable Port Max Frame Size No Not applicable OS Device Name Yes Number of Discovered Ports No Not applicable Fabric Name No Not applicable PortStatistics Support Notes -------------- ------- ----- Seconds Since Statistics Reset No No OS support TxFrames No RxFrames No TxWords No RxWords No LIPCount No NOSCount No ErrorFrames No DumpedFrames No LinkFailureCount Yes LossOfSyncCount Yes LossOfSignalCount Yes PrimitiveSeqProtocolErrCount Yes InvalidTxWordCount Yes InvalidCRCCount Yes -------------------------------------------------------------------------------- Release History =============== 1.00 Beta - 2/17/2000 This is an initial beta release of the SAN & Device Management SDK. 1.01 Beta - 2/28/2000 Added SDSendScsiReadCapacityCmd(). 1.02 Beta - 3/09/2000 Modified SDSendScsiInquiryCmd() to return standard INQUIRY data format. 1.03 Beta - 3/13/2000 Modified SDSendScsiInquiryCmd() to return the complete 256 bytes INQUIRY data. Added SDSendCTPassThru() for Management Server and Simple Name Server. 1.04 Beta - 3/22/2000 Added pSenseBuffer and SenseBufferSize arguments to SDSendScsiInquiryCmd() and SDSendScsiReadCapacityCmd(). These two arguments have been added for future enhancements. Added SDSendElsRnid(), SDSetMgmtAddress(), SDGetMgmtAddress(). These routines require version 7.4.5 or above driver. Changes variable names to not follow Hungarian notation. Removed the letter Q in front of macros for not being QLogic's specific. 1.05 Beta - 4/6/2000 Changed PortId field in mutiple structures from being 4 bytes to 3 bytes. Fixed SDGetHbaDevicePortProperty() to report correct number of devices upon configuration changes. Changed documentation to mention that RNID/RTIN/MS/NS is not supported by ISP2100. Added SDSendScsiPassThru(). 1.06 Beta - 4/20/2000 Added SDEnableAen(), SDDisableAen(), SDGetAen(). These routines require version 7.4.5 or above driver. 1.07 Beta - 6/16/2000 Fixed SDSendScsiPassThru() to return complete sense data. Added SDEnableDebugTrace() for debugging purposes. Added platform support. Added SDMAPI.doc. Added SDSendScsiReportLunsCmd(). 1.08 Beta - 8/11/2000 Changed library data types (i.e. UINT8 to SD_UINT8), applications need to be recompiled. Added SDMapScsiTargetToVolumes() and SDMapVolumeToScsiTarget(). Added SDMSGetPlatformNameList(). Added HBA Common API support. Added Fabric Zone support. Removed QSDMGT.DOC. 1.09 Beta - 8/31/2000 Changed library name from QSDMGT.DLL and QSDMGT.LIB to QLSDM.DLL and QLSDM.LIB. Added HBALoadLibrary() and HBAFreeLibrary() according to SNIA HBA API 1.0A. Modified SDSendScsiReportLunsCmd() to return correct information when using JBOD. Added copyright notice to sample source. 1.10 Beta - 9/20/2000 Changed BusNumber, TargetID and LUN in TARGETINFORMATION structure to 16 bits, applications need to be recompiled. Changed HBASendScsiInquiry() to support SNIA HBA API 1.0. 1.13 Beta - 10/19/2000 Added support for some minor driver's changes. Changed HBA API's OSDeviceName from \\.\scsiX: to \Device\ScsiPortX. SDSendScsiReportLunsCmd() will return SDMGT_API_BUILT_DATA if the actual ReportLuns command failed. The API simulates the actual ReportLuns command by query all connected devices. Added DeviceName to DEVICEPORTPROPERTY. Fixed problem with not returning Sense Data information on check condition. 1.14 Beta - 12/13/2000 Changed BusNumber and TargetID in DISCPORTPROPERTY and DISCTARGETPROPERTY structure to 16 bits, applications need to be recompiled. Changed HBA Common API's PortType, PortState and PortSpeed to Unknown for discovered port attributes. Changed HBA Common API's PortFcId to use the lower 24 bits instead of upper 24 bits. Set HBA Common API's invalid statistic fields to unsigned integer of all 1 according to the documentation. 1.15 Beta - 2/2/2001 Changed HBA Common API: HBAGetAdapterPortAttributes() to return correct PortType. HBAGetAdapterPortAttributes() to return OSDeviceName in format "\\.\scsiX". HBAGetAdapterPortAttributes() to return different value for DeviceNodeProp and DevicePortProp. HBAGetDiscoveredPortAttributes() to return "" for OSDeviceName. HBAGetFcpTargetMapping() and HBAGetFcpPersistentBinding() to return "" for OSDeviceName. Fixed GetIEWWNAttachedPortNameList() to accommodate 0 for the number of attached port entries. 1.16 - 3/12/2001 Added in thread-safe protection for opening devices. Changed HBA Common API: Changed all PortFcId fields to use the lower 24 bits. Byte 0 is reserved and the last 3 bytes is the Fibre Channel Port ID. 1.17 - 3/19/2001 Added DLL version resource. 1.18 - 3/21/2001 Changed HBA Common API: Modified HBAGetAdapterPortAttributes() to return mode as HBA_PORTTYPE_NPORT or HBA_PORTTYPE_NLPORT. 1.19 - 3/28/2001 The FC ID bits were swapped to little endian format. 1.20 - 4/09/2001 Added support for some minor driver's changes. 1.21 - 4/27/2001 Not disable the event collection until all registered applications deregister. Fixed test program for not crashing on "Device Update" event. 1.22 - 5/04/2001 Change algorithm for finding serial number; not to display 'X' as the first letter on 2202 (2 ports board). Do bytes swapping in HBASetRNIDMgmtInfo() and HBAGetRNIDMgmtInfo() for fields in HBA_MGMTINFO data structure. Fix HBAGetRNIDMgmtInfo() to work with HBA_MGMTINFO data structure. The first field of this data structure is currently 8 bytes and the standard format is 16 bytes. 1.23 - 7/27/2001 Removed Management Server/Simple Name Server/Fabric Zone routines. Simplify sample code. Modified script file to copy the DLL to the system directory. Compiling option modified to enable _QLBUILD. 1.25Beta1 -10/8/2001 Modified code to intepret FCLun in proper format for SCSI calls. Removed Hardware type checking in OpenAdapter Modified hbaapi.h to conditionally add a new API HBA_GetVendorLibraryAttributes() 1.25Beta2 -10/25/2001 Fixed problem with display of version information.Avoided multiple references of the version number. Modified Code to incorporate mapping information for all LUNs in the function GetFCPTargetMapping (). Obtained the OS device name in the function GetFCPTargetMapping(). Modified the code to incorporate RSCN information in the function GetEventBuffer(). Replaced hardcoded values in the functions HBAGetAdapterPortAttributes() and DiscoverPortAttributes ().Some values are obtained from the driver which were previously hardcoded. 1.26Beta2 -10/25/2001 Conditional compilation to include new API GetVendorLibraryAttributes(). 1.25Beta3 -11/02/2001 Modified Function HBAGetAdapterAttributes() to get Hardware Version information. 1.26Beta3 -11/02/2001 Conditional compilation to include new API GetVendorLibraryAttributes(). 1.25Beta4 -11/07/2001 Modified the Install shield script files to copy the DLL in the Windows system32 directory. Modified sample code. Modified the function HBAGetAdapterPortAttributes() to check for driver version, based on which FC Types and port speed details are filled. 1.26Beta4 -11/07/2001 Conditional compilation to include new API GetVendorLibraryAttributes(). 1.25 -12/14/2001 Fixed multiclient problems. Fixed PortSpeed and SupportedPortSpeed for 2100 adapter. Modified InstallShield script file to copy qlsdm.dll only in system32 directory. Temporarily disabled new internal IOCTL loopback test. 1.26 -12/14/2001 Conditional compilation to include new API GetVendorLibraryAttributes(). 1.27.02 -02/19/2002 Conditional compilation to include new API GetVendorLibraryAttributes(). 1.27.03 -04/10/02 Close 94945: OSDeviceName field is empty for many mappings. 1.27.04 -05/03/2002 Made changes to HBAGetFcpTargetMapping() routine to fix the memory corruption problem. 1.27.05 -05/09/2002 Closed 92366 issue relating memory heap corruption when application makes a call to HBAGetFcpTargetMapping() on W2K/NT4. 1.27.05 -O5/09/2002 Made changes to SDSendScsiPassThru and SDSendScsiPassThruFC where the direction is set to DATA_IN only when there is a data tranfer(READ) instead of setting the direction to DATA_IN whether there is data transfer(READ) or not 1.27.06 -O6/04/2002 Released QSDMGT 1.27.06 -------------------------------------------------------------------------------- Copyright (c) 2000-2002 QLogic Corporation. All rights reserved.