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

Драйвер мини-порта хранилища вызывает StorPortAsyncNotificationDetected , чтобы уведомить драйвер Storport о событии изменения состояния устройства хранения.

Уведомление помещается в очередь как рабочий элемент для отложенной обработки в DISPATCH_LEVEL или ниже IRQL.

Синтаксис

ULONG StorPortAsyncNotificationDetected(
  [in] PVOID         HwDeviceExtension,
       PSTOR_ADDRESS Address,
       ULONGLONG     Flags
);

Параметры

[in] HwDeviceExtension

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

Address

Адрес запоминающего устройства с событием изменения состояния.

Flags

Уведомления о состоянии, которые необходимо указать в Storport.

Параметр Flags содержит побитовое или сочетание уведомлений о состоянии. Все значения состояния можно задать с помощью одного значения RAID_ASYNC_NOTIFY_SUPPORTED_FLAGS .

Значение Значение
RAID_ASYNC_NOTIFY_FLAG_MEDIA_STATUS
Уведомите Storport о том, что произошло изменение носителя.
RAID_ASYNC_NOTIFY_FLAG_DEVICE_STATUS
Уведомите Storport о том, что функциональное состояние запоминающего устройства изменилось.
RAID_ASYNC_NOTIFY_FLAG_DEVICE_OPERATION
Уведомите Storport о том, что рабочая роль запоминающего устройства изменилась.

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

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

Код возврата Описание
STOR_STATUS_SUCCESS
Запланирована обработка уведомления об изменении состояния.
STOR_STATUS_INVALID_PARAMETER
Недопустимый тип адреса.

-или-

HwDeviceExtension имеет значение NULL.

-или-

Флаги содержат неопределенное значение.

STOR_STATUS_INVALID_DEVICE_REQUEST
Не удается найти устройство хранения по адресу.

-или-

Устройство хранения не поддерживает асинхронные уведомления.

STOR_STATUS_BUSY
Предварительное уведомление находится в процессе, и это уведомление не может быть запланировано.

Комментарии

Мини-порт может обнаруживать события состояния в своей подпрограмме HwStorInterrupt и вызывать StorPortAsyncNotificationDetected для постановки в очередь и обработки уведомления об изменении состояния позже в более низком irQL.

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

Если параметр Flags имеет значение 0, Storport будет указывать все значения состояния в уведомлении драйверу класса хранения.

Требования

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