次の方法で共有


コールバック関数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
ResourceExitStateContinue
0
リソースが終了していません。 ワーカー スレッドは、リソースの オンライン 操作と オフライン 操作を続行できます。
ResourceExitStateTerminate
1
リソースが終了しました。 呼び出し元は 、オンライン 操作または オフライン 操作を終了し、リソースに割り当てられているすべてのワーカー スレッドを直ちに終了する必要があります。

解説

リソース 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 プロパティに格納されている時間制限を超えました。
SetResourceStatus を呼び出してリソースの状態を保留中の状態に設定する必要はありません。これは、オンラインまたはオフラインERROR_IO_PENDINGを返すたびに、リソース モニターによって自動的に適切な保留中の状態に設定されるためです。

要件

   
サポートされている最小のクライアント サポートなし
サポートされている最小のサーバー Windows Server 2008 Enterprise、Windows Server 2008 Datacenter
対象プラットフォーム Windows
ヘッダー resapi.h

関連項目

ClusWorkerTerminate

オフライン

オンライン

[ファイル]

RESOURCE_EXIT_STATE

RESOURCE_STATUS

リソース DLL コールバック関数

SetServiceStatus

Startup

Terminate