次の方法で共有


MSFT_StorageProvider クラスの Discover メソッド

ストレージ プロバイダーが所有するオブジェクトを検出します。

このメソッドは、ユーザーがストレージ プロバイダーが所有するオブジェクトを明示的に検出または再列挙する必要がある場合に使用されます。 このメソッドを呼び出すと、キャッシュの完全または部分的な無効化と、ストレージ サブシステムへのネットワーク経由の呼び出しによって、新規または更新されたオブジェクトが検出されます。 これは高価なタスクであるため、このメソッドは慎重に使用する必要があります。

検出操作のスコープは、DiscoveryLevel パラメーターと RootObject パラメーターによって制御されます。 DiscoveryLevel は、オブジェクト検出の深さを制御します。 RootObject は、検出が行われる開始点を定義します。

構文

UInt32 Discover(
  [in]  UInt16                 DiscoveryLevel,
  [in]  MSFT_StorageObject REF RootObject,
  [in]  Boolean                RunAsJob,
  [out] MSFT_StorageJob    REF CreatedStorageJob,
  [out] String                 ExtendedStatus
);

パラメーター

DiscoveryLevel [in]

実行する必要がある検出のレベル (または深さ)。 このパラメーターは、ルート オブジェクトがストレージ プロバイダー、ストレージ サブシステム、または NULL の場合にのみ指定できます。 指定すると、ストレージ プロバイダーは、レベル 0 以降のオブジェクトを検出し、指定したレベルに達するまで続行します。 (検出されたレベル内の) オブジェクト間の関連付けも検出されます。

Value 意味
Level 0 0 ストレージ プロバイダー、ストレージ サブシステム、ファイル サーバー オブジェクトなどが検出されます。 注: Windows 10 以降: ファイル サーバー オブジェクトの検出が追加されました。
Level 1 1 記憶域プール、ファイル共有、回復性設定、ターゲット ポート、ターゲット ポータル、イニシエーター識別子などが検出されます。 注: Windows 10 以降: ファイル共有の検出が追加されました。
Level 2 2 仮想ディスク、ボリューム、パーティション、ディスク、マスク セットが検出されます。 注: Windows 10 以降: ボリューム、パーティション、ディスクの検出が追加されました。
Level 3 3 物理ディスクが検出されます。

RootObject [in]

このパラメーターを設定すると、このオブジェクトから検出が開始されます。 DiscoveryLevelNULL の場合、RootObject で指定されたオブジェクトの種類に応じて適切に定義されたアクションが実行されます。

  • ストレージ サブシステム: 関連付けられているすべてのオブジェクトが検出されます。
  • 記憶域プール: プールと、関連する回復性設定、仮想ディスク、物理ディスクなどが検出されます。
  • マスク セット: マスク セットと、関連付けられているすべてのターゲット ポート、イニシエーター識別子、仮想ディスクなどが検出されます。
  • 他のすべてのオブジェクトの場合、そのオブジェクトのみが検出または更新されます。

RunAsJob [in]

TRUE の場合、このメソッドは、要求のサービスに時間がかかっているときに CreatedStorageJob パラメーターを使用します。 操作を追跡するためにストレージ ジョブが作成されている場合、このメソッドは メソッド パラメーター確認済 - ジョブが開始されました を返します。

Note

RunAsJobTRUE の場合でも、十分な時間内に終了していれば、このメソッドは結果を返すことができます。

FALSE または NULL の場合、このメソッドは、クライアントの呼び出し方法によって決定される既定の WMI の非同期動作を実行します。 つまり、特に要求されない限りは同期的な動作を行います。

CreatedStorageJob [out]

RunAsJobTRUE に設定されていて、このメソッドの実行に時間がかかる場合、このパラメーターは、実行時間の長い操作を追跡するために使用されるストレージ ジョブ オブジェクトへの参照を受け取ります。

ExtendedStatus [out]

埋め込み MSFT_StorageExtendedStatus オブジェクトを含む文字列。

このパラメーターを使用すると、ストレージ プロバイダーは拡張 (実装固有の) エラー情報を返すことができます。

戻り値

成功 (0)

サポート非対称 (1)

不明なエラー (2)

タイムアウト (3)

失敗 (4)

無効なパラメーター (5)

メソッド パラメーターチェック済み - ジョブが開始されました (4096)

アクセスが拒否されました (40001)

リソース不足のため、操作を完了できません。 (40002)

ストレージ プロバイダーに接続できません。 (46000)

ストレージ プロバイダーがストレージ サブシステムに接続できません。 (46001)

ストレージ プロバイダーは、必要なプロファイルをサポートしていません。 (46002)

ストレージ プロバイダーは、必要な関連付けをサポートしていません。 (46003)

ルート オブジェクトの検出に失敗しました。 (46009)

1 つ以上のサブシステムで検出に失敗しました。 (46010)

解説

ストレージ プロバイダーは、起動時にレベル 0 の検出を完了する必要があります。 MSFT_StorageProvider オブジェクトと MSFT_StorageSubSystem オブジェクトをキャッシュに読み込む必要があります。

パフォーマンスを向上させるために、iSCSITargetCreationScheme プロパティが Auto に設定されているストレージ サブシステムは、レベル 2 の仮想ディスクと共にターゲット ポートの検出を行う必要があります。 ターゲット ポータルは レベル 1 で引き続き検出されることに注意してください。

要件

要件 Value
サポートされている最小のクライアント Windows 8 [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2012 [デスクトップ アプリのみ]
名前空間 Root\Microsoft\Windows\Storage
MOF Storagewmi.mof

関連項目

MSFT_StorageProvider

MSFT_StorageSubSystem