共用方式為


IVdsAdviseSink::OnNotify 方法 (vdshwprv.h)

[從Windows 8和Windows Server 2012開始,虛擬磁碟服務COM 介面會由Windows 儲存體管理 API取代。

將來自提供者的通知傳遞至 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 提供者 。 可能的傳回值包括下列專案。

傳回碼 描述
S_FALSE
如果提供者呼叫此方法時,或服務遺失某些通知,VDS 會將此值傳回給提供者。

備註

應用程式會實作這個方法,以接收來自 VDS 的通知。 其中一些通知源自 VDS;其他則是 VDS 轉送的提供者通知。

VDS 會維護所有 VDS 物件屬性的相關資訊快取,例如子系統和控制器。 每當觸發通知的變更發生時,就會自動更新此快取。 此外,呼叫 IVdsHwProvider::RefreshIVdsService::Refresh 以回應 VDS 通知,可能會導致傳送無止盡的通知迴圈。 基於這些原因,應用程式不應該在此方法的實作中呼叫 IVdsHwProvider::RefreshIVdsService::Refresh

對於使用此方法傳送通知的提供者,最好是將源自單一事件的通知分組在一起。 例如,刪除 LUN 時,請一起傳送所有受影響磁片磁碟機 VDS_NF_DRIVE_MODIFY 通知。

規格需求

   
最低支援的用戶端 Windows Vista [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2003 [僅限傳統型應用程式]
目標平臺 Windows
標頭 vdshwprv.h
程式庫 Uuid.lib

另請參閱

IVdsAdviseSink

IVdsHwProvider::Refresh

IVdsService::建議

IVdsService::Refresh

IVdsService::Unadvise

VDS 通知

VDS_NOTIFICATION