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

PSET_RESOURCE_STATUS_ROUTINE

コールバック

シグネチャ

DWORD PSET_RESOURCE_STATUS_ROUTINE(
    INT_PTR ResourceHandle,
    RESOURCE_STATUS* ResourceStatus
);

パラメーター

フィールド型説明
ResourceHandleINT_PTR更新するリソースを識別するハンドル。ResourceHandle パラメーターには、 このリソースの Open エントリポイントの ResourceHandle パラメーターで使用したものと同じハンドルを指定する必要があります。
ResourceStatusRESOURCE_STATUS*リソースの状態に関する情報を格納する RESOURCE_STATUS 構造体へのポインター。

公式ドキュメント

リソースの状態を更新するために呼び出されます。 PSET_RESOURCE_STATUS_ROUTINE 型は、この関数へのポインターを定義します。

戻り値

SetResourceStatus は、 RESOURCE_EXIT_STATE 列挙型から列挙された次の値のいずれかを返します。

戻り値/値 説明
ResourceExitStateContinue
0
リソースは終了していません。ワーカースレッドは、そのリソースに対する Online および Offline の操作を続行できます。
ResourceExitStateTerminate
1
リソースは終了しました。呼び出し元は Online または Offline の操作を終了し、そのリソースに割り当てられているすべてのワーカースレッドを直ちに終了する必要があります。

解説(Remarks)

リソース DLL は、 Online または Offline のエントリポイント関数が ERROR_IO_PENDING を返した後に、リソースの状態を更新するために SetResourceStatus コールバック関数を呼び出します。それ以外のタイミングで呼び出してはいけません。 SetResourceStatus 関数へのポインターは、リソースが実装する Startup の SetResourceStatus パラメーターとして渡されます。

SetResourceStatus は リソースモニター によって実装されており、 SetServiceStatus 関数に似ています。

ERROR_IO_PENDING を返した後は、必要に応じてリソースの現在の状態を更新してください。リソースが保留中の状態のいずれかにある場合は、 SetResourceStatus の呼び出しを開始する前に、 RESOURCE_STATUS 構造体の CheckPoint メンバーと WaitHint メンバーの値をインクリメントし、 ResourceState メンバーを ClusterResourceOnlinePending または ClusterResourceOfflinePending に設定します。次のいずれかの状況になるまで SetResourceStatus を呼び出してください。

Online または Offline が ERROR_IO_PENDING を返すと、リソースモニターが自動的に適切な保留中の状態に設定するため、リソースの状態を保留中の状態に設定する目的で SetResourceStatus を呼び出す必要はありません。
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)