IVdsLun::AssociateControllers メソッド (vds.h)

[Windows 8とWindows Server 2012以降、Virtual Disk Service COM インターフェイスは Windows Storage Management API に置き換えられます。

LUN に関して、サブシステム コントローラーをアクティブまたは非アクティブに設定します。

構文

HRESULT AssociateControllers(
  [in] VDS_OBJECT_ID *pActiveControllerIdArray,
  [in] LONG          lNumberOfActiveControllers,
  [in] VDS_OBJECT_ID *pInactiveControllerIdArray,
  [in] LONG          lNumberOfInactiveControllers
);

パラメーター

[in] pActiveControllerIdArray

コントローラー GUID の配列へのポインター。 プロバイダーは、これらのコントローラーをアクティブに設定します。 この配列には、既にアクティブに設定されているコントローラーが含まれています。このコントローラーはアクティブのままです。

[in] lNumberOfActiveControllers

pActiveControllerArray パラメーターで指定されたコントローラーの数。

[in] pInactiveControllerIdArray

コントローラー GUID の配列へのポインター。 プロバイダーは、これらのコントローラーを非アクティブに設定します。 この配列には、既に非アクティブに設定されているコントローラーが含まれています。

[in] lNumberOfInactiveControllers

pInactiveControllerIdArray パラメーターで指定されたコントローラーの数。

戻り値

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

リターン コード/値 Description
VDS_E_PROVIDER_CACHE_CORRUPT
0x8004241FL
この戻り値は、配列に関する情報をキャッシュするプロバイダー内のソフトウェアまたは通信の問題を通知します。 キャッシュを復元するには、 IVdsHwProvider::Reenumerate メソッドの後に IVdsHwProvider::Refresh メソッドを使用します。
VDS_E_OBJECT_DELETED
0x8004240BL
LUN オブジェクトが存在しなくなりました。
VDS_E_OBJECT_STATUS_FAILED
0x80042431L
LUN が失敗状態であり、要求された操作を実行できません。
VDS_E_ANOTHER_CALL_IN_PROGRESS
0x80042404L
別の操作が進行中です。 この操作は、前の操作または操作が完了するまで続行できません。
VDS_E_OBJECT_NOT_FOUND
0x80042405L
アクティブ配列または非アクティブ配列で指定された 1 つ以上の GUID は、既存のオブジェクトを参照しません。
VDS_E_NOT_SUPPORTED
0x80042400L
この操作またはパラメーターの組み合わせは、このプロバイダーではサポートされていません。

注釈

呼び出し元は、各サブシステム コントローラーを、各メソッド呼び出しの pActiveControllerIdArray パラメーターまたは pInactiveControllerIdArray パラメーターのいずれかに正確に含める必要があります。 pActiveControllerIdArray パラメーターと pInactiveControllerIdArray パラメーターの構成は、サブシステム LUN ごとに異なる場合があります。 ほとんどのサブシステムは、1 つのアクティブ コントローラーのみを実装しますが、一部のサブシステムでは複数のアクティブ コントローラーを使用できます。

メモE_INVALIDARG戻り値は、呼び出し元がサブシステム内のすべてのコントローラーを指定しなかったことを示している可能性があります。 AssociateControllers メソッドでは、サブシステム内のすべてのコントローラーが、指定された 2 つの配列のいずれかに存在する必要があります。
 
コントローラーの関連付けにクエリを実行するには、 IVdsLun::QueryActiveControllers メソッドを使用します。 IVdsController::QueryAssociated Luns メソッドを使用して、特定のコントローラーに関連付けられている LUN に対してクエリを実行します。

要件

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

こちらもご覧ください

IVdsController::QueryAssociatedLuns

IVdsHwProvider::Reenumerate

IVdsHwProvider::Refresh

IVdsLun

IVdsLun::QueryActiveControllers