次の方法で共有


IVdsService::Unadvise メソッド (vds.h)

[Windows 8とWindows Server 2012以降、仮想ディスク サービス COM インターフェイスは Windows Storage Management API に置き換えられます。

呼び出し元が VDS サービスから通知を受信しないように、呼び出し元の IVdsAdviseSink インターフェイスの登録を解除します。

構文

HRESULT Unadvise(
  [in] DWORD dwCookie
);

パラメーター

[in] dwCookie

IVdsAdviseSink インターフェイスが登録されたときに IVdsService::Advise メソッドによって返された Cookie。

戻り値

このメソッドは、E_INVALIDARGやE_OUTOFMEMORYなどの標準の HRESULT 値と、VDS 固有の戻り値を返すことができます。 また、HRESULT_FROM_WIN32 マクロを使用して、変換されたシステム エラー コードを返すこともできます。 エラーは、VDS 自体または使用されている基になる VDS プロバイダー から発生する可能性があります。 可能な戻り値は次のとおりです。

リターン コード/値 説明
S_OK
メソッドは正常に完了しました。
VDS_E_BAD_COOKIE
0x80042411L
Cookie が存在しません。
VDS_E_INITIALIZED_FAILED
0x80042401L
VDS の初期化に失敗しました。 サービスの初期化が完了する前にアプリケーションがこのメソッドを呼び出すと、初期化が完了するまでメソッドはブロックされます。 初期化に失敗した場合、このエラーが返されます。

解説

VdS アプリケーションの IVdsAdviseSink インターフェイスを登録して VDS から通知を受信するには、Advise メソッドを使用します。 Advise は Cookie を返します。この Cookie は Unadvise メソッドにパラメーターとして返す必要があります。

メモAdvise を呼び出すアプリケーションは、最終的に Unadvise を呼び出す必要があります。 理想的には、通知を受信する必要がなくなったらすぐに Unadvise を呼び出す必要があります。
 
Unadvise メソッドは、登録されているクライアント アプリケーションの一覧を更新するためのロックを待機し、クライアント通知を送信する通知スレッドが終了するのを待機するため、すぐには戻らない場合があります。 アプリケーションに送信する未処理の通知がある場合、通知スレッドは終了する前にそれらを送信しようとします。

要件

   
サポートされている最小のクライアント Windows Vista [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2003 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー vds.h
Library Uuid.lib

関連項目

IVdsAdviseSink

IVdsService

IVdsService::Advise

VDS 通知