LoginToTarget

LoginToTarget 方法指示管理 HBA 发起程序的微型端口驱动程序登录到目标门户。

实现 MSiSCSI_Operations WMI 类的 微型端口驱动程序必须支持此方法。

微型端口驱动程序必须公开它通过 MSiSCSI_InitiatorSessionInfo WMI 类创建的会话的相关信息。

下表描述了发起方可以建立的登录会话的类型。

登录会话 说明

发现

发现会话专用于 SendTargets 操作。

信息

信息会话允许发起程序查询目标以获取信息,但发起程序不会向即插即用 (PnP) 管理器报告目标上的 LUN (LUN) 的逻辑单元号;存储端口驱动程序不会枚举 LUN 或将其作为本地设备公开。 管理应用程序可以通过建立信息会话并调用 iSCSI 用户模式库例程(如 SendScsiInquirySendScsiReportLunsSendScsiReadCapacity)来查询这些远程 LUN。

数据

数据会话是功能齐全的会话。 启动会话的微型端口驱动程序应将目标上的 LUN 报告给端口驱动程序,因此端口驱动程序将枚举它们并加载相应的驱动程序。 软件可以像访问本地设备一样访问这些远程设备。

启动

启动会话是功能齐全的会话,其中 iSCSI LUN 用作启动设备。

LoginToTarget 方法分配给会话的标识符 (ID) 在会话的生存期内必须保持不变。 即使异步注销或网络事件断开与目标的连接并强制微型端口驱动程序重新连接,微型端口驱动程序也应继续使用相同的会话 ID。

微型端口驱动程序在重新建立数据和信息会话时应使用以下准则:

定期重新连接尝试
微型端口驱动程序应定期尝试重新连接, (建议) 5 秒的间隔,直到登录成功或微型端口驱动程序收到注销请求。

设备删除延迟
微型端口驱动程序不应立即从本地操作系统的设备堆栈中删除目标的逻辑单元。 相反,微型端口驱动程序应使用本地缓存的数据来处理 INQUIRY 和 REPORT LUNS 请求,以及微型端口驱动程序必须发送到远程目标进行处理的队列请求。

如果微型端口驱动程序在大约 60 秒后无法重新建立与目标的会话,则应从本地设备堆栈中删除目标的逻辑单元。 通过引入从设备堆栈中删除设备的 60 秒延迟,微型端口驱动程序可以避免不必要地中断访问远程目标上数据的本地应用程序的工作。 但是,超过 60 秒的延迟可能需要微型端口驱动程序将大量请求排队,并且这些请求可能会消耗不可接受的系统资源量。 确切的延迟时间应可配置。

LoginToTarget WMI 方法属于 MSiSCSI_Operations WMI 类

有关 iSCSI 用户模式库用于建立日志的算法的说明,请参阅 LoginIScsiTarget