StorPortGetPfns 函数 (storport.h)

微型端口可以调用 StorPortGetPfns 来检索与 SRB 关联的指定 MDL(内存描述符列表)描述的内存的页面帧编号(Pfns)。

语法

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 存储区域。

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

[in] Srb

指向源 SCSI 请求块(SRB)的指针。 从 Windows 8 开始,Srb 参数可以指向 SCSI_REQUEST_BLOCKSTORAGE_REQUEST_BLOCK

[in] Mdl

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

[out] Pfns

指向与 MDL 关联的 Pfns 数组的指针。 调用方不得修改、更新或释放列表。

[out] PfnCount

Pfns 指向的数组中的 Pfns 数。

[out] StartingOffset

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

返回值

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

返回代码 描述
STOR_STATUS_NOT_IMPLEMENTED 此函数未在活动操作系统上实现。
STOR_STATUS_SUCCESS 函数成功完成。
STOR_STATUS_INVALID_PARAMETER 指向其中一个参数的指针 NULL

要求

要求 价值
目标平台 普遍
标头 storport.h

另请参阅

StorPortGetDataInBufferMdl

StorPortGetOriginalMdl

StorPortInitialize