나는 ZwQuerySystemInformation()
모든 프로세스를 열거 하는 데 사용 하고 각 프로세스에 대한 모든 정보를 얻을 수 있으며 SYSTEM_THREAD_INFORMATION
.
typedef struct _SYSTEM_THREAD_INFORMATION
{
LARGE_INTEGER KernelTime;
LARGE_INTEGER UserTime;
LARGE_INTEGER CreateTime;
DWORD WaitTime;
PVOID StartAddress;
CLIENT_ID ClientId;
KPRIORITY Priority;
LONG BasePriority;
DWORD ContextSwitches;
DWORD ThreadState;
DWORD WaitReason;
} SYSTEM_THREAD_INFORMATION, *PSYSTEM_THREAD_INFORMATION;
하지만이 구조에는 스레드 ID가 포함되어 있지 않습니다. 왜 그렇습니까? 이 ID를 어떻게 얻을 수 있습니까?
한 가지 더 질문 : SYSTEM_PROCESS_INFORMATION
구조를 얻 습니다. 프로세스 내의 모든 스레드에 대한 포인터를 포함합니다. SYSTEM_THREAD_INFORMATION Threads[1];
하지만 이 프로세스에서 스레드 수를 어떻게 알 수 있습니까?
추신 : 커널 모드에서 작업합니다.
SYSTEM_THREAD_INFORMATION 의 CLIENT_ID 멤버를 자세히 살펴보면 스레드 ID가 포함되어 있습니다.
SYSTEM_PROCESS_INFORMATION 의 두 번째 멤버가 보이 십니까?
그렇다면 이름은 NumberOfThreads 이므로 의미가 무엇인지 추측 할 수 있습니다. 만세-> 스레드 수-> SYSTEM_THREAD_INFORMATION 구조체 수.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다