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 的指针。 仅支持使用 StorPortGetOriginalMdl 或 StorPortGetDataInBufferMdl 获取的 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_BLOCK 或 STORAGE_REQUEST_BLOCK。
要求
要求 | 值 |
---|---|
目标平台 | 通用 |
标头 | storport.h |