VDS 通知
[Windows 8 および Windows Server 2012 以降、Virtual Disk Service COM インターフェイスは、Windows Storage Management APIに置き換えられます。
プロバイダーは VDS にイベント通知を送信でき、VDS はアプリケーションに通知を順番に転送できます。 VDS で使用される通知モデルは、COM オブジェクトで使用される接続ポイント モデルに似ています。
VDS は、ドライブ文字の割り当てや未割り当てディスクの到着などのイベントのサービス通知を生成します。 VDS がプロバイダーにディスクを割り当てると、プロバイダーは関連する通知を生成する役割を担います。 次の図は、VDS 通知モデルで使用されるインターフェイスとメソッドを示しています。
VDS は通知を受信するために、IVdsAdviseSink インターフェイスをプロバイダー オブジェクトに登録します。IVdsProviderPrivate::OnLoad メソッドを呼び出し、インターフェイスへのポインターを渡します。 新しいボリュームやドライブの到着などの通知イベントが発生すると、プロバイダーは適切な通知構造を IVdsAdviseSink::OnNotify メソッド パラメーターとして VDS に渡します。
プロセスは、アプリケーションと VDS の間で似ています。 具体的には、通知を受信するために、アプリケーションは、IVdsService::Advise メソッドを呼び出し、インターフェイスへのポインターを渡すことによって、IVdsAdviseSink インターフェイスを VDS に登録します。 VDS は、プロバイダーから通知を受信すると、IVdsAdviseSink::OnNotify メソッド パラメーターとして、登録されたアプリケーションに適切な通知構造を渡します。
手記
Advise を呼び出すアプリケーションは、最終的に IVdsService::Unadvise メソッドを呼び出す必要があります。 理想的には、通知を受信する必要がなくなったらすぐに、Unadvise を呼び出す必要があります。
次の表に、プロバイダーによって生成された通知をオブジェクトの種類別に示します。
オブジェクト | 通知 | 価値 | イベントの説明へのリンク |
---|---|---|---|
パック | VDS_NF_PACK_ARRIVE | 1 | VDS_PACK_NOTIFICATION |
パック | VDS_NF_PACK_DEPART | 2 | VDS_PACK_NOTIFICATION |
パック | VDS_NF_PACK_MODIFY | 3 | VDS_PACK_NOTIFICATION |
容積 | VDS_NF_VOLUME_ARRIVE | 4 | VDS_VOLUME_NOTIFICATION |
容積 | VDS_NF_VOLUME_DEPART | 5 | VDS_VOLUME_NOTIFICATION |
容積 | VDS_NF_VOLUME_MODIFY | 6 | VDS_VOLUME_NOTIFICATION |
容積 | VDS_NF_VOLUME_REBUILDING_PROGRESS | 7 | VDS_VOLUME_NOTIFICATION |
ディスク | VDS_NF_DISK_ARRIVE | 8 | VDS_DISK_NOTIFICATION |
ディスク | VDS_NF_DISK_DEPART | 9 | VDS_DISK_NOTIFICATION |
ディスク | VDS_NF_DISK_MODIFY | 10 | VDS_DISK_NOTIFICATION |
分割 | VDS_NF_PARTITION_ARRIVE | 11 | VDS_PARTITION_NOTIFICATION |
分割 | VDS_NF_PARTITION_DEPART | 12 | VDS_PARTITION_NOTIFICATION |
分割 | VDS_NF_PARTITION_MODIFY | 13 | VDS_PARTITION_NOTIFICATION |
サブシステム | VDS_NF_SUB_SYSTEM_ARRIVE | 101 | VDS_SUB_SYSTEM_NOTIFICATION |
サブシステム | VDS_NF_SUB_SYSTEM_DEPART | 102 | VDS_SUB_SYSTEM_NOTIFICATION |
サブシステム | VDS_NF_SUB_SYSTEM_MODIFY | 151 | VDS_SUB_SYSTEM_NOTIFICATION |
コントローラ | VDS_NF_CONTROLLER_ARRIVE | 103 | VDS_CONTROLLER_NOTIFICATION |
コントローラ | VDS_NF_CONTROLLER_DEPART | 104 | VDS_CONTROLLER_NOTIFICATION |
コントローラ | VDS_NF_CONTROLLER_MODIFY | 350 | VDS_CONTROLLER_NOTIFICATION |
コントローラ | VDS_NF_CONTROLLER_REMOVED | 351 | VDS_CONTROLLER_NOTIFICATION |
港 | VDS_NF_PORT_MODIFY | 352 | VDS_PORT_NOTIFICATION |
港 | VDS_NF_PORT_REMOVED | 353 | VDS_PORT_NOTIFICATION |
ドライブ | VDS_NF_DRIVE_ARRIVE | 105 | VDS_DRIVE_NOTIFICATION |
ドライブ | VDS_NF_DRIVE_DEPART | 106 | VDS_DRIVE_NOTIFICATION |
ドライブ | VDS_NF_DRIVE_MODIFY | 107 | VDS_DRIVE_NOTIFICATION |
ドライブ | VDS_NF_DRIVE_REMOVED | 354 | VDS_DRIVE_NOTIFICATION |
LUN | VDS_NF_LUN_ARRIVE | 108 | VDS_LUN_NOTIFICATION |
LUN | VDS_NF_LUN_DEPART | 109 | VDS_LUN_NOTIFICATION |
LUN | VDS_NF_LUN_MODIFY | 110 | VDS_LUN_NOTIFICATION |
VDS は残りの通知を生成します。 次の表に、サービス ベースの通知定数をカテゴリ別に示します。
カテゴリ | 通知 | 価値 | イベントの説明へのリンク |
---|---|---|---|
ディスク | VDS_NF_DISK_ARRIVE | 8 | VDS_DISK_NOTIFICATION |
ディスク | VDS_NF_DISK_DEPART | 9 | VDS_DISK_NOTIFICATION |
ディスク | VDS_NF_DISK_MODIFY | 10 | VDS_DISK_NOTIFICATION |
ドライブ文字 | VDS_NF_DRIVE_LETTER_FREE | 201 | VDS_DRIVE_LETTER_NOTIFICATION |
ドライブ文字 | VDS_NF_DRIVE_LETTER_ASSIGN | 202 | VDS_DRIVE_LETTER_NOTIFICATION |
ファイル システム | VDS_NF_FILE_SYSTEM_MODIFY | 203 | VDS_FILE_SYSTEM_NOTIFICATION |
ファイル システム | VDS_NF_FILE_SYSTEM_FORMAT_PROGRESS | 204 | VDS_FILE_SYSTEM_NOTIFICATION |
容積 | VDS_NF_MOUNT_POINTS_CHANGE | 205 | VDS_MOUNT_POINT_NOTIFICATION |
関連トピック
-
VDS オブジェクト モデル の