Функция StorPortGetLogicalUnit (storport.h)
Подпрограмма StorPortGetLogicalUnit возвращает указатель на область хранения на логическую единицу драйвера мини-порта.
Синтаксис
STORPORT_API PVOID StorPortGetLogicalUnit(
[in] PVOID HwDeviceExtension,
[in] UCHAR PathId,
[in] UCHAR TargetId,
[in] UCHAR Lun
);
Параметры
[in] HwDeviceExtension
Указатель на расширение аппаратного устройства. Это область хранения HBA, которую драйвер порта выделяет и инициализирует от имени драйвера мини-порта. Драйверы мини-портов обычно хранят сведения, относящиеся к HBA, в этом расширении, такие как состояние HBA и сопоставленные диапазоны доступа для HBA. Эта область доступна водителю мини-порта сразу после вызова подпрограммы HwStorFindAdapter водителя мини-порта. Драйвер порта освобождает эту память при удалении устройства.
[in] PathId
Определяет шину SCSI.
[in] TargetId
Определяет целевой контроллер или устройство в шине.
[in] Lun
Определяет номер логической единицы (LU) целевого устройства.
Возвращаемое значение
StorPortGetLogicalUnit возвращает указатель на область хранения драйвера мини-порта для запрошенной логической единицы. Если логическая единица не существует, она возвращает значение NULL.
Комментарии
StorPortGetLogicalUnit не имеет значения, если подпрограмма DriverEntry драйвера мини-порта указала ноль для LuExtensionSize в HW_INITIALIZATION_DATA при вызове StorPortInitialize. В противном случае драйвер порта, зависящий от операционной системы, выделяет и инициализирует с нулями набор расширений LU указанного размера для используемого драйвера мини-порта.
Хранилище на единицу lu можно использовать для хранения данных, относящихся к конкретному периферийному устройству, например сохраненных указателей данных. Чтобы получить доступ к этой области, драйвер мини-порта вызывает StorPortGetLogicalUnit , когда драйвер хранит сведения о состоянии или текущей операции для любого конкретного периферийного устройства.
Драйвер порта, зависящий от операционной системы, может считать логическую единицу несуществующей, если для этой логической единицы нет активного запроса и устройство никогда не было успешно выбрано.
Примечание
Когда драйвер мини-порта вызывает StorPortGetLogicalUnit по адресу IRQL = DISPATCH_LEVEL, функция получает блокировку прерывания. Слишком частое вызовы StorPortGetLogicalUnit на этом уровне IRQL влияют на производительность и масштабируемость драйвера мини-порта.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Доступно в Windows XP и более поздних версиях операционных систем Windows. |
Целевая платформа | Универсальное |
Верхняя часть | storport.h (включая Storport.h) |
Библиотека | Storport.lib |