PSET_RESOURCE_STATUS_ROUTINE
コールバックシグネチャ
DWORD PSET_RESOURCE_STATUS_ROUTINE(
INT_PTR ResourceHandle,
RESOURCE_STATUS* ResourceStatus
);パラメーター
| フィールド | 型 | 説明 |
|---|---|---|
| ResourceHandle | INT_PTR | 更新するリソースを識別するハンドル。ResourceHandle パラメーターには、 このリソースの Open エントリポイントの ResourceHandle パラメーターで使用したものと同じハンドルを指定する必要があります。 |
| ResourceStatus | RESOURCE_STATUS* | リソースの状態に関する情報を格納する RESOURCE_STATUS 構造体へのポインター。 |
公式ドキュメント
リソースの状態を更新するために呼び出されます。 PSET_RESOURCE_STATUS_ROUTINE 型は、この関数へのポインターを定義します。
戻り値
SetResourceStatus は、 RESOURCE_EXIT_STATE 列挙型から列挙された次の値のいずれかを返します。
| 戻り値/値 | 説明 |
|---|---|
|
リソースは終了していません。ワーカースレッドは、そのリソースに対する Online および Offline の操作を続行できます。 |
|
リソースは終了しました。呼び出し元は 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 を呼び出してください。
- リソースが ClusterResourceOnline または ClusterResourceOffline の状態になる。
- リソースの PendingTimeout プロパティに格納されている制限時間を超過する。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)