NtQueryInformationThread 関数 (winternl.h)
[NtQueryInformationThread は、今後のバージョンの Windows で変更または使用できない可能性があります。 アプリケーションでは、このトピックに記載されている代替関数を使用する必要があります。
指定したスレッドに関する情報を取得します。
構文
__kernel_entry NTSTATUS NtQueryInformationThread(
[in] HANDLE ThreadHandle,
[in] THREADINFOCLASS ThreadInformationClass,
[in, out] PVOID ThreadInformation,
[in] ULONG ThreadInformationLength,
[out, optional] PULONG ReturnLength
);
パラメーター
[in] ThreadHandle
要求されている情報に関するスレッドへのハンドル。
[in] ThreadInformationClass
このパラメーターが THREADINFOCLASS 列挙の ThreadIsIoPending 値である場合、この関数はスレッドに保留中の I/O 操作があるかどうかを判断します。
この情報を取得するには、代わりにパブリック関数 GetThreadIOPendingFlag を使用します。
このパラメーターが THREADINFOCLASS 列挙の ThreadQuerySetWin32StartAddress 値である場合、関数はスレッドの開始アドレスを返します。 Windows Vista より前のバージョンの Windows では、返される開始アドレスはスレッドの実行を開始する前にのみ信頼できる点に注意してください。
このパラメーターが THREADINFOCLASS 列挙の ThreadSubsystemInformation 値である場合、この関数はスレッドのサブシステムの種類を示すSUBSYSTEM_INFORMATION_TYPE値を取得します。 ThreadInformation パラメーターが指すバッファーは、単一のSUBSYSTEM_INFORMATION_TYPE列挙を保持するのに十分な大きさにする必要があります。
[in, out] ThreadInformation
関数が要求された情報を書き込むバッファーへのポインター。 ThreadInformationClass パラメーターに ThreadIsIoPending が指定されている場合、このバッファーは ULONG 値を保持するのに十分な大きさである必要があります。これは、指定されたスレッドに保留中の I/O 要求があるかどうかを示します。 この値が 0 に等しい場合、保留中の I/O 操作はありません。それ以外の場合、値が 0 以外の場合、スレッドには I/O 操作が保留中です。
この情報を取得するには、代わりにパブリック関数 GetThreadIOPendingFlag を使用します。
ThreadInformationClass パラメーターに ThreadQuerySetWin32StartAddress が指定されている場合、このバッファーは PVOID 値 (スレッドの開始アドレス) を保持するのに十分な大きさにする必要があります。
[in] ThreadInformationLength
ThreadInformation パラメーターが指すバッファーのサイズ (バイト単位)。
[out, optional] ReturnLength
関数が要求された情報のサイズを返す変数へのポインター。 関数が成功した場合、これは ThreadInformation パラメーターによって指されるバッファーに書き込まれる情報のサイズですが、バッファーが小さすぎると、情報を正常に受信するために必要なバッファーの最小サイズになります。
戻り値
NTSTATUS の成功またはエラー コードを返します。
NTSTATUS エラー コードの形式と重要性は、DDK で使用できる Ntstatus.h ヘッダー ファイルに記載されており、Kernel-Mode ドライバー アーキテクチャ/設計ガイド/ドライバー プログラミング手法/ログ エラーに関する DDK ドキュメントで説明されています。
注釈
NtQueryInformationThread 関数はオペレーティング システムの内部であり、Windows のリリース間で変更される可能性があります。 アプリケーションの互換性を維持するには、代わりに前述のパブリック関数を使用することをお勧めします。
NtQueryInformationThread を使用する場合は、実行時の動的リンクを使用して関数にアクセスします。 これにより、関数がオペレーティング システムから変更または削除された場合に、コードが正常に応答できるようになります。 ただし、署名の変更は検出できない場合があります。
この関数には、インポート ライブラリが関連付けされません。 LoadLibrary 関数と GetProcAddress 関数を使用して、Ntdll.dll に動的にリンクする必要があります。
要件
要件 | 値 |
---|---|
対象プラットフォーム | Windows |
ヘッダー | winternl.h |
Library | ntdll.lib |
[DLL] | ntdll.dll |