Condividi tramite


Metodo IVdsAdviseSink::OnNotify (vdshwprv.h)

[A partire da Windows 8 e Windows Server 2012, l'interfaccia COM del servizio disco virtuale viene sostituita dall'API gestione archiviazione di Windows.

Passa notifiche da provider a VDS e da VDS a applicazioni.

Sintassi

HRESULT OnNotify(
  [in] LONG             lNumberOfNotifications,
  [in] VDS_NOTIFICATION *pNotificationArray
);

Parametri

[in] lNumberOfNotifications

Numero di notifiche specificate in pNotificationArray.

[in] pNotificationArray

Puntatore a una matrice di strutture VDS_NOTIFICATION . Un provider alloca la memoria per la matrice quando il provider chiama nel servizio; il servizio libera la matrice. VDS alloca la matrice quando il servizio chiama in un'applicazione. In questo caso, i chiamanti devono liberare la matrice usando la funzione CoTaskMemFree .

Valore restituito

Questo metodo può restituire valori HRESULT standard, ad esempio E_INVALIDARG o E_OUTOFMEMORY e valori restituiti specifici di VDS. Può anche restituire codici di errore di sistema convertiti usando la macro HRESULT_FROM_WIN32 . Gli errori possono derivare da VDS stesso o dal provider VDS sottostante usato. I valori restituiti possibili includono quanto segue.

Codice restituito Descrizione
S_FALSE
VDS restituisce questo valore a un provider se il servizio non è completamente inizializzato quando il provider chiama questo metodo o se alcune notifiche vengono perse dal servizio.

Commenti

Un'applicazione implementa questo metodo per ricevere notifiche da VDS. Alcune di queste notifiche provengono da VDS; altri sono notifiche provider inoltrate da VDS.

VDS gestisce una cache di informazioni sulle proprietà di tutti gli oggetti VDS, ad esempio sottosistemi e controller. Ogni volta che si verifica una modifica che attiva una notifica, questa cache viene aggiornata automaticamente. Inoltre, la chiamata di IVdsHwProvider::Refresh o IVdsService::Refresh in risposta a una notifica VDS potrebbe causare l'invio di un ciclo infinito di notifiche. Per questi motivi, un'applicazione non deve chiamare IVdsHwProvider::Refresh o IVdsService::Refresh nell'implementazione di questo metodo.

Per i provider che usano questo metodo per inviare notifiche, è consigliabile raggruppare le notifiche provenienti da un singolo evento. Ad esempio, quando viene eliminato un LUN, inviare notifiche di VDS_NF_DRIVE_MODIFY per tutte le unità interessate insieme.

Requisiti

   
Client minimo supportato Windows Vista [solo app desktop]
Server minimo supportato Windows Server 2003 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione vdshwprv.h
Libreria Uuid.lib

Vedi anche

IVdsAdviseSink

IVdsHwProvider::Refresh

IVdsService::Consigli

IVdsService::Refresh

IVdsService::Unadvise

Notifiche VDS

VDS_NOTIFICATION