ScsiPortGetLogicalUnit 函数 (srb.h)

ScsiPortGetLogicalUnit 例程返回指向给定外围设备的微型端口驱动程序每 LU 存储区域的指针。

注意 SCSI 端口驱动程序和 SCSI 微型端口驱动程序模型将来可能会更改或不可用。 相反,我们建议使用 Storport 驱动程序Storport 微型端口 驱动程序模型。
 

语法

SCSIPORT_API PVOID ScsiPortGetLogicalUnit(
  [in] PVOID HwDeviceExtension,
  [in] UCHAR PathId,
  [in] UCHAR TargetId,
  [in] UCHAR Lun
);

参数

[in] HwDeviceExtension

指向硬件设备扩展的指针。 这是端口驱动程序代表微型端口驱动程序分配和初始化的每个 HBA 存储区域。 微型端口驱动程序通常在此扩展中存储特定于 HBA 的信息,例如 HBA 的状态和 HBA 的映射访问范围。 在微型端口驱动程序调用 ScsiPortInitialize后,此区域可供 DeviceExtension->HwDeviceExtension 成员的微型端口驱动程序使用。 端口驱动程序在删除设备时释放此内存。

[in] PathId

标识 SCSI 总线。

[in] TargetId

标识总线上的目标控制器或设备。

[in] Lun

标识目标设备的逻辑单元号。

返回值

ScsiPortGetLogicalUnit 返回指向所请求逻辑单元的微型端口驱动程序存储区域的指针。 如果特定于作系统的端口驱动程序将此逻辑单元视为不存在,它将返回 NULL

言论

如果微型端口驱动程序的 DriverEntry 例程为 LuExtensionSizeHW_INITIALIZATION_DATA 指定了,则 ScsiPortGetLogicalUnit 无关。 否则,特定于作系统的端口驱动程序分配和初始化时,将使用一组指定大小的 LU 扩展来分配和初始化微型端口驱动程序。

Per-LU 存储可用于存储与特定外围设备相关的数据,例如保存的数据指针。 若要访问此区域,微型端口驱动程序调用 ScsiPortGetLogicalUnit 驱动程序维护有关任何特定外围设备的状态或当前作的信息。

如果没有针对该逻辑单元的活动请求并且从未成功选择设备,则特定于作系统的端口驱动程序可以将逻辑单元视为不存在。

要求

要求 价值
目标平台 桌面
标头 srb.h (包括 Miniport.h、Scsi.h)
Scsiport.lib

另请参阅

SCSI 微型端口驱动程序 DriverEntry

HW_INITIALIZATION_DATA (SCSI)

ScsiPortInitialize

ScsiPortMoveMemory