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 で導入) |