コールバック関数PSET_RESOURCE_STATUS_ROUTINE (resapi.h)
リソースの状態を更新するために呼び出 されます。 PSET_RESOURCE_STATUS_ROUTINE型は、この関数へのポインターを定義します。
構文
PSET_RESOURCE_STATUS_ROUTINE PsetResourceStatusRoutine;
DWORD PsetResourceStatusRoutine(
[in] RESOURCE_HANDLE ResourceHandle,
[in] PRESOURCE_STATUS ResourceStatus
)
{...}
パラメーター
[in] ResourceHandle
更新するリソースを識別する処理。 ResourceHandle パラメーターには、このリソースの Open エントリ ポイントの ResourceHandle パラメーターに使用されるのと同じハンドルが含まれている必要があります。
[in] ResourceStatus
リソースの状態に関する情報を含む RESOURCE_STATUS 構造体へのポインター。
戻り値
SetResourceStatus は、 RESOURCE_EXIT_STATE 列挙から列挙された次のいずれかの値を返します。
リターン コード/値 | Description |
---|---|
|
リソースが終了していません。 ワーカー スレッドは、リソースの オンライン 操作と オフライン 操作を続行できます。 |
|
リソースが終了しました。 呼び出し元は 、オンライン 操作または オフライン 操作を終了し、リソースに割り当てられているすべてのワーカー スレッドを直ちに終了する必要があります。 |
解説
リソース DLL はSetResourceStatus コールバック関数を呼び出して、 Online または Offline エントリ ポイント関数がERROR_IO_PENDING返された後にリソースの状態 を更新します。 他の時点では呼び出さないでください。 SetResourceStatus 関数へのポインターは、リソースの Startup の実装に SetResourceStatus パラメーターで渡されます。
SetResourceStatus は リソース モニター によって実装され、 SetServiceStatus 関数に似ています。
ERROR_IO_PENDINGを返した後、必要に応じてリソースの現在の状態 を更新します。 リソースが保留中のいずれかの状態にある場合は、SetResourceStatus の呼び出しを開始する前に、RESOURCE_STATUS構造体の CheckPoint メンバーと WaitHint メンバーの値をインクリメントし、ResourceState メンバーを ClusterResourceOnlinePending または ClusterResourceOfflinePending に設定します。 次のいずれかの状況が発生するまで SetResourceStatus を呼び出します。
- リソースは、 ClusterResourceOnline または ClusterResourceOffline のいずれかの状態に配置されます。
- リソースの PendingTimeout プロパティに格納されている時間制限を超えました。
要件
サポートされている最小のクライアント | サポートなし |
サポートされている最小のサーバー | Windows Server 2008 Enterprise、Windows Server 2008 Datacenter |
対象プラットフォーム | Windows |
ヘッダー | resapi.h |