Win32 API 日本語リファレンス
ホーム › Networking.Clustering › PRESUTIL_GET_RESOURCE_DEPENDENCY_BY_CLASS

PRESUTIL_GET_RESOURCE_DEPENDENCY_BY_CLASS

コールバック

シグネチャ

HRESOURCE PRESUTIL_GET_RESOURCE_DEPENDENCY_BY_CLASS(
    HCLUSTER hCluster,
    HANDLE hSelf,
    CLUS_RESOURCE_CLASS_INFO* prci,
    BOOL bRecurse
);

パラメーター

フィールド型説明
hClusterHCLUSTERリソースが属するクラスターのハンドルです。
hSelfHANDLE依存元のリソースのハンドルです。このリソースは、1 つ以上のリソースに依存しています。
prciCLUS_RESOURCE_CLASS_INFO*返す依存関係のリソースクラスを記述する CLUS_RESOURCE_CLASS_INFO 構造体へのポインターです。
bRecurseBOOL検索の範囲を決定します。TRUE の場合、関数は依存元のリソースの配下にある依存関係ツリー全体を調べます。FALSE の場合、関数は依存元のリソースが直接依存しているリソースのみを調べます。

公式ドキュメント

指定された クラスター 内の指定された リソース の 依存関係 を列挙し、指定されたリソースクラスに一致する依存関係のハンドルを返します。PRESUTIL_GET_RESOURCE_DEPENDENCY_BY_CLASS 型は、この関数へのポインターを定義します。

戻り値

処理が成功した場合、関数は hSelf で指定されたリソースが依存しているリソースのいずれかのハンドルを返します。呼び出し元は、CloseClusterResource を呼び出してハンドルを閉じる必要があります。

処理が失敗した場合、関数は NULL を返します。詳細については、GetLastError 関数を呼び出してください。

解説(Remarks)

リソース DLL のエントリポイント関数から ResUtilGetResourceDependencyByClass を呼び出さないでください。ResUtilGetResourceDependencyByClass は、ワーカースレッドからであれば安全に呼び出せます。詳細については、リソース DLL で呼び出しを避けるべき関数 を参照してください。

例

次の例に示すように、リソース A が ストレージクラスのリソース に依存していることが分かっている場合は、ResUtilGetResourceDependencyByClass を使用して、そのリソースについて他に何も知らなくてもハンドルを取得できます。

// String initialization and error checking omitted.

HCLUSTER hCluster = OpenCluster( lpszClusterName );

//
// Resource A depends on a storage class resource.
// Get a handle to that resource.
//
HRESOURCE hResA = OpenClusterResource( hCluster, lpszResName );

PCLUS_RESOURCE_CLASS_INFO pClassInfo;

pClassInfo->rc = CLUS_RESCLASS_STORAGE;

//
// Returns a handle to the storage class resource on which resource A depends.
// Can now perform a variety of operations on the dependency.
//
HRESOURCE hResD = ResUtilGetResourceDependencyByClass(
                        hCluster,
                        hResA,
                        pClassInfo,
                        TRUE );

// Close handles and free memory.
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)