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
함수가 요청된 정보를 쓰는 버퍼에 대한 포인터입니다. ThreadIsIoPending이 ThreadInformationClass 매개 변수에 대해 지정된 경우 이 버퍼는 지정된 스레드에 보류 중인 I/O 요청이 있는지 여부를 나타내는 ULONG 값을 보유할 수 있을 만큼 커야 합니다. 이 값이 0과 같으면 보류 중인 I/O 작업이 없습니다. 그렇지 않으면 값이 0이 아닌 경우 스레드에 보류 중인 I/O 작업이 있습니다.
대신 공용 함수 GetThreadIOPendingFlag를 사용하여 이 정보를 가져옵니다.
ThreadQuerySetWin32StartAddress가 ThreadInformationClass 매개 변수에 대해 지정된 경우 이 버퍼는 스레드의 시작 주소인 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 |
라이브러리 | ntdll.lib |
DLL | ntdll.dll |