Функция 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
Флаги, указывающие сущности, состояние которых изменилось. Это побитовое или сочетание следующих значений:
Значение | Значение |
---|---|
|
Состояние LUN изменилось. |
|
Целевое состояние изменилось. |
|
Состояние шины или порта изменилось. |
[in] Address
Адрес сущности с изменением состояния. Значение адреса не может измениться, пока не будет вызван обратный вызов в HwStateChange . Если адрес выделен в памяти, память должна быть освобождена подпрограммой обратного вызова.
[in] Attributes
Атрибуты, связанные с сущностью. Это побитовая комбинация ИЛИ следующего:
Значение | Значение |
---|---|
|
LUN зарезервированы для использования виртуальной машиной. |
[in, optional] HwStateChange
Указатель на подпрограмму обратного вызова, предоставляемую мини-портом. При наличии драйвер Storport вызовет эту подпрограмму, когда драйвер завершит обработку уведомления об изменении состояния.
[in, optional] HwStateChangeContext
Предоставленное минипортом значение контекста, которое включается при вызове подпрограммы, заданной в HwStateChange .
Возвращаемое значение
Значение состояния, указывающее результат уведомления. Это может быть одно из следующих значений:
Код возврата | Описание |
---|---|
|
Запланирована обработка уведомления об изменении состояния. |
|
Недопустимый тип адреса или типа сущности. |
|
Предварительное уведомление находится в процессе, и его невозможно запланировать. |
Комментарии
Успешный вызов StorPortStateChangeDetected приводит к повторному перечислению измененной сущности.
В любое время может быть активен только один запрос на изменение состояния. Если мини-порту необходимо выполнить другой вызов StorPortStateChangeDetected , он должен предоставить обратный вызов HwStateChange и выполнить еще один вызов StorPortStateChangeDetected после обратного вызова HwStateChangeChange . Если мини-порт хочет указать несколько изменений состояния одновременно, он может вызвать StorPortStateChangeDetected один раз с измененными сущностями, заданными в ChangedEntity , которая включает все текущие изменения состояния.
Если в ChangedEntity указано несколько флагов, флаг с большим значением будет иметь приоритет над меньшими.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Доступно в Windows 8 и более поздних версиях Windows. |
Целевая платформа | Универсальное |
Верхняя часть | storport.h (включая Storport.h) |
IRQL | Любой |