Метод IVdsAdviseSink::OnNotify (vdshwprv.h)
[Начиная с Windows 8 и Windows Server 2012, COM-интерфейс службы виртуальных дисков замечается API управления хранилищем Windows.]
Передает уведомления от поставщиков в VDS и из VDS в приложения.
Синтаксис
HRESULT OnNotify(
[in] LONG lNumberOfNotifications,
[in] VDS_NOTIFICATION *pNotificationArray
);
Параметры
[in] lNumberOfNotifications
Количество уведомлений, указанное в pNotificationArray.
[in] pNotificationArray
Указатель на массив VDS_NOTIFICATION структур. Поставщик выделяет память для массива, когда поставщик вызывает службу; служба освобождает массив. VDS выделяет массив, когда служба вызывает приложение. В этом случае вызывающие элементы должны освободить массив с помощью функции CoTaskMemFree .
Возвращаемое значение
Этот метод может возвращать стандартные значения HRESULT, такие как E_INVALIDARG или E_OUTOFMEMORY, а также возвращаемые значения VDS. Он также может возвращать коды преобразованных системных ошибок с помощью макроса HRESULT_FROM_WIN32 . Ошибки могут возникать из самого VDS или из используемого базового поставщика VDS . Возможные возвращаемые значения включают следующие.
Код возврата | Описание |
---|---|
|
VDS возвращает это значение поставщику, если служба не полностью инициализирована, когда поставщик вызывает этот метод, или если служба теряет некоторые уведомления. |
Комментарии
Приложение реализует этот метод для получения уведомлений от VDS. Некоторые из этих уведомлений исходят из VDS; другие — это уведомления поставщика, которые пересылаются VDS.
VDS поддерживает кэш сведений о свойствах всех объектов VDS, таких как подсистемы и контроллеры. Каждый раз, когда происходит изменение, которое активирует уведомление, этот кэш обновляется автоматически. Кроме того, вызов IVdsHwProvider::Refresh или IVdsService::Refresh в ответ на уведомление VDS может привести к бесконечному циклу уведомлений. По этим причинам приложение не должно вызывать IVdsHwProvider::Refresh или IVdsService::Refresh в реализации этого метода.
Для поставщиков, использующих этот метод для отправки уведомлений, рекомендуется группировать уведомления, исходящие из одного события. Например, при удалении LUN отправьте VDS_NF_DRIVE_MODIFY уведомления обо всех затронутых дисках.
Требования
Минимальная версия клиента | Windows Vista [только классические приложения] |
Минимальная версия сервера | Windows Server 2003 [только классические приложения] |
Целевая платформа | Windows |
Header | vdshwprv.h |
Библиотека | Uuid.lib |