Поделиться через


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

Уведомляет драйвер порта Storport об изменении состояния для логического номера единиц (LUN), порта адаптера шины узла (HBA) или целевого устройства.

Синтаксис

ULONG StorPortStateChangeDetected(
  [in]           PVOID            HwDeviceExtension,
  [in]           ULONG            ChangedEntity,
  [in]           PSTOR_ADDRESS    Address,
  [in]           ULONG            Attributes,
  [in, optional] PHW_STATE_CHANGE HwStateChange,
  [in, optional] PVOID            HwStateChangeContext
);

Параметры

[in] HwDeviceExtension

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

[in] ChangedEntity

Флаги, указывающие сущности, состояние которых изменилось. Это побитовое ИЛИ комбинации следующих значений:

Ценность Значение
STATE_CHANGE_LUN
1 (0x1)
Состояние LUN изменилось.
STATE_CHANGE_TARGET
2 (0x2)
Целевое состояние изменилось.
STATE_CHANGE_BUS
4 (0x4)
Состояние шины или порта изменилось.

[in] Address

Адрес сущности с изменением состояния. значение адреса невозможно изменить до вызова обратного вызова HwStateChange. Если адрес выделен в памяти, память должна освободиться подпрограммой обратного вызова.

[in] Attributes

Атрибуты, связанные с сущностью. Это побитовая ИЛИ комбинация следующих элементов:

Ценность Значение
ATTRIBUTE_VM_PASSTHROUGH_LUN
LUN зарезервированы для использования виртуальных машин.

[in, optional] HwStateChange

Указатель на подпрограмму обратного вызова, предоставляемую минипортом. При наличии драйвер Storport вызовет эту подпрограмму, когда драйвер завершит обработку уведомления об изменении состояния.

[in, optional] HwStateChangeContext

Значение контекста, предоставленное минипортом, которое включается при вызове подпрограммы в HwStateChange.

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

Значение состояния, указывающее результат уведомления. Это может быть одно из следующих значений:

Возвращаемый код Описание
STOR_STATUS_SUCCESS
Уведомление об изменении состояния запланировано на обработку.
STOR_STATUS_INVALID_PARAMETER
Недопустимый тип адреса или тип сущности.
STOR_STATUS_UNSUCCESSFUL
Предварительное уведомление выполняется, и это не может быть запланировано.

Замечания

Успешный вызов StorPortStateChangeDetected приводит к повторному перечислению измененной сущности.

В любое время может быть активен только один запрос на изменение состояния. Если минипорту необходимо выполнить еще один вызов StorPortStateChangeDetected, он должен предоставить обратного вызова HwStateChange и выполнить другой вызов StorPortStateChangeDetected после обратного вызова в HwStateChange. Если минипорт хочет одновременно указывать несколько изменений состояния, минипорт может вызывать StorPortStateChangeDetected с измененными сущностями, установленными в ChangedEntity, включающих все текущие изменения состояния.

Если несколько флагов указаны в ChangedEntity, флаг с большим значением будет иметь приоритет над меньшими.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Доступно в Windows 8 и более поздних версиях Windows.
целевая платформа Всеобщий
заголовка storport.h (include Storport.h)
IRQL Любой

См. также

HwStorStateChange