StorPortGetLogicalUnit 函数 (storport.h)
StorPortGetLogicalUnit 例程返回指向微型端口驱动程序的每个逻辑单元存储区域的指针。
语法
STORPORT_API PVOID StorPortGetLogicalUnit(
[in] PVOID HwDeviceExtension,
[in] UCHAR PathId,
[in] UCHAR TargetId,
[in] UCHAR Lun
);
参数
[in] HwDeviceExtension
指向硬件设备扩展的指针。 这是端口驱动程序代表微型端口驱动程序分配和初始化的每个 HBA 存储区域。 微型端口驱动程序通常在此扩展中存储特定于 HBA 的信息,例如 HBA 的状态和 HBA 的映射访问范围。 一旦调用微型端口驱动程序的 HwStorFindAdapter 例程,微型端口驱动程序就会立即使用此区域。 端口驱动程序在删除设备时释放此内存。
[in] PathId
标识 SCSI 总线。
[in] TargetId
标识总线上的目标控制器或设备。
[in] Lun
标识目标设备的逻辑单元 (LU) 编号。
返回值
StorPortGetLogicalUnit 返回指向所请求逻辑单元的微型端口驱动程序存储区域的指针。 如果逻辑单元不存在,则返回 NULL。
注解
如果微型端口驱动程序的 DriverEntry 例程在调用 StorPortInitialize 时为 HW_INITIALIZATION_DATA中的 LuExtensionSize 指定零,StorPortGetLogicalUnit 就无关紧要。 否则,特定于操作系统的端口驱动程序以零分配和初始化一组指定大小的 LU 扩展,供微型端口驱动程序使用。
Per-LU 存储可用于存储与特定外围设备相关的数据,例如保存的数据指针。 若要访问此区域,当驱动程序维护有关任何特定外设的状态或当前操作的信息时,微型端口驱动程序会调用 StorPortGetLogicalUnit 。
如果没有针对该逻辑单元的活动请求,并且从未成功选择设备,则特定于操作系统的端口驱动程序可以将逻辑单元视为不存在。
注意
当微型端口驱动程序在 IRQL = DISPATCH_LEVEL 调用 StorPortGetLogicalUnit 时,函数获取中断锁。 在此 IRQL 级别频繁调用 StorPortGetLogicalUnit 会影响微型端口驱动程序的性能和可伸缩性。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 在 Windows XP 和更高版本的 Windows 操作系统中可用。 |
目标平台 | 通用 |
标头 | storport.h (包括 Storport.h) |
Library | Storport.lib |