Функция 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. Эта область доступна драйверу мини-порта сразу после вызова драйвера минипорта 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 после обратного вызова HwStateChangeChange . Если мини-порт хочет указать несколько изменений состояния одновременно, он может вызвать StorPortStateChangeDetected один раз с измененными сущностями, заданными в ChangedEntity , которая включает все текущие изменения состояния.

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

Требования

Требование Значение
Минимальная версия клиента Доступно в Windows 8 и более поздних версиях Windows.
Целевая платформа Универсальное
Верхняя часть storport.h (включая Storport.h)
IRQL Любой

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

HwStorStateChange