GetThreadWaitChain 関数 (wct.h)
指定したスレッドの待機チェーンを取得します。
構文
BOOL GetThreadWaitChain(
[in] HWCT WctHandle,
[in, optional] DWORD_PTR Context,
[in] DWORD Flags,
[in] DWORD ThreadId,
[in, out] LPDWORD NodeCount,
[out] PWAITCHAIN_NODE_INFO NodeInfoArray,
[out] LPBOOL IsCycle
);
パラメーター
[in] WctHandle
OpenThreadWaitChainSession 関数によって作成された WCT セッションへのハンドル。
[in, optional] Context
非同期セッションのコールバック関数に渡されるアプリケーション定義のコンテキスト構造へのポインター。
[in] Flags
待機チェーンの取得オプション。 このパラメーターには、次のいずれかの値を指定できます。
[in] ThreadId
スレッドの識別子。
[in, out] NodeCount
入力時に、待機チェーン内のノード数を指定する 1 からWCT_MAX_NODE_COUNTまでの数値。 返されると、取得されたノードの数。 配列に待機チェーンのすべてのノードを含めることができない場合、関数は失敗し、 GetLastError は ERROR_MORE_DATAを返し、このパラメーターはすべてのノードを格納するために必要な配列要素の数を受け取ります。
非同期セッションの場合は、コールバック関数に渡される値をチェックします。 コールバック関数が返されるまで変数を解放しないでください。
[out] NodeInfoArray
待機チェーンを受け取る WAITCHAIN_NODE_INFO 構造体の配列。
非同期セッションの場合は、コールバック関数に渡される値をチェックします。 コールバック関数が返されるまで、配列を解放しないでください。
[out] IsCycle
関数がデッドロックを検出した場合、この変数は TRUE に設定されます。それ以外の場合は FALSE に設定 されます。
非同期セッションの場合は、コールバック関数に渡される値をチェックします。 コールバック関数が返されるまで変数を解放しないでください。
戻り値
関数が成功すると、戻り値は 0 以外になります。
関数が失敗した場合は、0 を返します。 拡張エラー情報を取得するには、 GetLastError を呼び出します。
リターン コード | 説明 |
---|---|
|
呼び出し元には、ターゲット スレッドを開く十分な特権がありませんでした。 |
|
入力パラメーターの 1 つが無効です。 |
|
WCT セッションが非同期モードで開かれた。 結果は WaitChainCallback コールバック関数を介して返されます。 |
|
NodeInfoArray バッファーは、待機チェーン内のすべてのノードを格納するのに十分な大きさではありません。 NodeCount パラメーターには、チェーン内のノードの数が含まれます。 返される待機チェーンは引き続き有効です。 |
|
オペレーティング システムがこのサービスを提供していません。 |
|
指定したスレッドが見つかりませんでした。 |
|
ノードの数がWCT_MAX_NODE_COUNTを超えています。 返される待機チェーンは引き続き有効です。 |
注釈
セッションが非同期の場合、関数は FALSE を 返し、 GetLastError は ERROR_IO_PENDINGを返します。 結果を取得するには、 WaitChainCallback コールバック関数を参照してください。
指定したスレッドがブロックされていないか、サポートされていない同期要素でブロックされている場合、この関数は NodeInfoArray で 1 つの項目を返します。
呼び出し元には、SE_DEBUG_NAME特権が必要です。 呼び出し元に十分な特権がある場合、最初のスレッドにアクセスできない場合、関数は失敗します。 それ以外の場合、配列の最後のノードの ObjectStatus メンバーは WctStatusNoAcces に設定されます。
配列内のノードのサブセットがサイクルを形成する場合、関数は IsCycle パラメーターを TRUE に設定します。
待機チェーン情報は動的です。関数が呼び出されたときは正しかったが、呼び出し元によってレビューされた時点で古い可能性があります。
例
例については、「 WCT の使用」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2008 [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | wct.h |
Library | Advapi32.lib |
[DLL] | Advapi32.dll |