IVdsAdviseSink::OnNotify-Methode (vds.h)
[Ab Windows 8 und Windows Server 2012 wird die COM-Schnittstelle des Virtuellen Datenträgerdiensts durch die Windows Storage Management-API ersetzt.]
Übergibt Benachrichtigungen von Anbietern an VDS und von VDS an Anwendungen.
Syntax
HRESULT OnNotify(
[in] LONG lNumberOfNotifications,
[in] VDS_NOTIFICATION *pNotificationArray
);
Parameter
[in] lNumberOfNotifications
Die Anzahl der in pNotificationArray angegebenen Benachrichtigungen.
[in] pNotificationArray
Ein Zeiger auf ein Array von VDS_NOTIFICATION Strukturen. Ein Anbieter weist den Arbeitsspeicher für das Array zu, wenn der Anbieter den Dienst aufruft. der Dienst gibt das Array frei. VDS weist das Array zu, wenn der Dienst in einer Anwendung aufruft. In diesem Fall müssen Aufrufer das Array mithilfe der Funktion CoTaskMemFree freigeben.
Rückgabewert
Diese Methode kann HRESULT-Standardwerte wie E_INVALIDARG oder E_OUTOFMEMORY und VDS-spezifische Rückgabewerte zurückgeben. Es kann auch konvertierte Systemfehlercodes mithilfe des HRESULT_FROM_WIN32-Makros zurückgeben. Fehler können vom VDS selbst oder vom zugrunde liegenden VDS-Anbieter stammen, der verwendet wird. Folgende Rückgabewerte sind möglich.
Rückgabecode | Beschreibung |
---|---|
|
VDS gibt diesen Wert an einen Anbieter zurück, wenn der Dienst nicht vollständig initialisiert wird, wenn der Anbieter diese Methode aufruft, oder wenn einige Benachrichtigungen vom Dienst verloren gehen. |
Hinweise
Eine Anwendung implementiert diese Methode, um Benachrichtigungen von VDS zu empfangen. Einige dieser Benachrichtigungen stammen aus VDS; andere sind Anbieterbenachrichtigungen, die von VDS weitergeleitet werden.
VDS verwaltet einen Cache mit Informationen über die Eigenschaften aller VDS-Objekte, z. B. Subsysteme und Controller. Wenn eine Änderung auftritt, die eine Benachrichtigung auslöst, wird dieser Cache automatisch aktualisiert. Außerdem kann das Aufrufen von IVdsHwProvider::Refresh oder IVdsService::Refresh als Reaktion auf eine VDS-Benachrichtigung dazu führen, dass eine endlose Schleife von Benachrichtigungen gesendet wird. Aus diesen Gründen sollte eine Anwendung IVdsHwProvider::Refresh oder IVdsService::Refresh in ihrer Implementierung dieser Methode nicht aufrufen.
Für Anbieter, die diese Methode zum Senden von Benachrichtigungen verwenden, empfiehlt es sich, Benachrichtigungen, die von einem einzelnen Ereignis stammen, zu gruppieren. Wenn beispielsweise eine LUN gelöscht wird, senden Sie VDS_NF_DRIVE_MODIFY Benachrichtigungen für alle betroffenen Laufwerke zusammen.
Anforderungen
Unterstützte Mindestversion (Client) | Windows Vista [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2003 [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | vds.h |
Bibliothek | Uuid.lib |