Функция StorPortGetPfns (storport.h)

Подпрограмму StorPortGetPfns можно вызвать, когда мини-порту необходимо получить PFN, связанные с MDL, для SRB.

Синтаксис

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

Указатель на MDL, для которого запрашиваются Pfns. Поддерживаются только mdls, полученные с помощью StorPortGetOriginalMdl или StorPortGetDataInBufferMdl .

[out] Pfns

Указатель на начало массива физических номеров страниц, связанных с MDL. Вызывающие не должны изменять, обновлять или освобождать список.

[out] PfnCount

Указывает количество PFN в массиве.

[out] StartingOffset

Задает смещение байтов в пределах начальной страницы буфера, описываемого заданным MDL.

Возвращаемое значение

StorPortGetPfns возвращает один из следующих кодов состояния:

Код возврата Описание
STOR_STATUS_NOT_IMPLEMENTED Эта функция не реализована в активной операционной системе.
STOR_STATUS_SUCCESS Элементы списка были успешно удалены или список уже пуст.
STOR_STATUS_INVALID_PARAMETER Указатель на один из параметров имеет значение NULL.

Комментарии

Драйверы мини-портов обычно хранят сведения, относящиеся к HBA, в этом расширении, такие как состояние HBA и сопоставленные диапазоны доступа для HBA. Эта область доступна драйверу мини-порта в элементе DeviceExtension-HwDeviceExtension> объекта устройства для адаптера безопасности сразу после того, как драйвер мини-порта вызывает StorPortInitialize. Драйвер порта освобождает эту память при удалении устройства.

Начиная с Windows 8 параметр Srb может указывать на SCSI_REQUEST_BLOCK или STORAGE_REQUEST_BLOCK.

Требования

Требование Значение
Целевая платформа Универсальное
Верхняя часть storport.h

См. также раздел

StorPortGetDataInBufferMdl

StorPortGetOriginalMdl

StorPortInitialize