StorPortGetPfns 函数 (storport.h)

当微型端口需要检索与 SRB 的 MDL 关联的 PPN 时,可以调用 StorPortGetPfns 例程。

语法

ULONG StorPortGetPfns(
  [in]  PVOID               HwDeviceExtension,
  [in]  PSCSI_REQUEST_BLOCK Srb,
  [in]  PVOID               Mdl,
  [out] PVOID               *Pfns,
  [out] ULONG               *PfnCount,
  [out] ULONG               *StartingOffset
);

参数

[in] HwDeviceExtension

指向硬件设备扩展的指针。 这是端口驱动程序代表微型端口驱动程序分配和初始化的每个 HBA 存储区域。

[in] Srb

指向源 SCSI 请求块的指针 (SRB) 。

[in] Mdl

指向为其请求 Pfn 的 MDL 的指针。 仅支持使用 StorPortGetOriginalMdlStorPortGetDataInBufferMdl 获取的 MDL。

[out] Pfns

指向与 MDL 关联的物理页码数组开头的指针。 调用方不得修改、更新或释放列表。

[out] PfnCount

指定数组中的 PPN 数。

[out] StartingOffset

指定给定 MDL 所描述的缓冲区的初始页内的字节偏移量。

返回值

StorPortGetPfns 返回以下状态代码之一:

返回代码 说明
STOR_STATUS_NOT_IMPLEMENTED 此函数未在活动操作系统上实现。
STOR_STATUS_SUCCESS 已成功删除列表项,或者列表已为空。
STOR_STATUS_INVALID_PARAMETER 指向其中一个参数的指针为 NULL

注解

微型端口驱动程序通常在此扩展中存储特定于 HBA 的信息,例如 HBA 的状态和 HBA 的映射访问范围。 此区域在微型端口驱动程序调用 StorPortInitialize 后立即可供 HBA 的设备对象的 DeviceExtension-HwDeviceExtension> 成员中的微型端口驱动程序使用。 端口驱动程序在移除设备时释放此内存。

从 Windows 8 开始,Srb 参数可以指向 SCSI_REQUEST_BLOCKSTORAGE_REQUEST_BLOCK

要求

要求
目标平台 通用
标头 storport.h

另请参阅

StorPortGetDataInBufferMdl

StorPortGetOriginalMdl

StorPortInitialize