Share via


GetUmsSystemThreadInformation 関数 (winbase.h)

指定したスレッドが UMS スケジューラ スレッドか、UMS ワーカー スレッドか、UMS 以外のスレッドかを照会します。

警告

Windows 11時点では、ユーザー モードのスケジュール設定はサポートされていません。 すべての呼び出しがエラー ERROR_NOT_SUPPORTEDで失敗します。

構文

BOOL GetUmsSystemThreadInformation(
  [in]      HANDLE                         ThreadHandle,
  [in, out] PUMS_SYSTEM_THREAD_INFORMATION SystemThreadInfo
);

パラメーター

[in] ThreadHandle

スレッドへのハンドル。 スレッド ハンドルには、THREAD_QUERY_INFORMATIONアクセス権が必要です。 詳細については、「 スレッド セキュリティとアクセス権」を参照してください。

[in, out] SystemThreadInfo

指定したスレッドに関する情報を受け取る UMS_SYSTEM_THREAD_INFORMATION 構造体へのポインター。

呼び出し元は、 を呼び出す前にメンバーを UmsVersion 初期化する必要があります。

戻り値

関数が失敗した場合は、0 を返します。

詳細なエラー情報を得るには、GetLastError を呼び出します。

解説

GetUmsSystemThreadInformation 関数は、デバッガー、トラブルシューティング ツール、プロファイリング アプリケーションでの使用を目的としています。 たとえば、スレッド分離トレースや単一ステップ実行命令では、プロセス内の他のすべてのスレッドを中断する必要があります。 ただし、トレースするスレッドが UMS ワーカー スレッドの場合は、UMS ワーカー スレッドを実行するために UMS スケジューラ スレッドの介入が必要になるため、UMS スケジューラ スレッドを中断するとデッドロックが発生する可能性があります。 デバッガーは、中断する可能性がある各スレッドに対して GetUmsSystemThreadInformation を呼び出してスレッドの種類を決定し、デバッグするコードの必要に応じて中断するか、または必要に応じて中断することができます。

要件

要件
サポートされている最小のクライアント WINDOWS 7 sp1 [デスクトップ アプリのみ]、Windows 7 (64 ビットのみ) と Windows Server 2008 R2 (KB977165インストール済み)
サポートされている最小のサーバー Windows Server 2008 R2 SP1 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー winbase.h (Windows.h を含む)
Library Kernel32.lib
[DLL] Kernel32.dll
API セット api-ms-win-core-ums-l1-1-0 (Windows 7 で導入)