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