커널 모드에서 ZwQuerySystemInformation ()을 사용하여 스레드 ID를 얻는 방법은 무엇입니까?

Romz

나는 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];하지만 이 프로세스에서 스레드 수를 어떻게 알 수 있습니까?

추신 : 커널 모드에서 작업합니다.

user2120666

SYSTEM_THREAD_INFORMATIONCLIENT_ID 멤버를 자세히 살펴보면 스레드 ID가 포함되어 있습니다.

SYSTEM_PROCESS_INFORMATION 의 두 번째 멤버가 보이 십니까?

그렇다면 이름은 NumberOfThreads 이므로 의미가 무엇인지 추측 할 수 있습니다. 만세-> 스레드 수-> SYSTEM_THREAD_INFORMATION 구조체 수.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

ubuntu 16.04 커널 클라이언트 및 커널 모듈에서 nvidia 드라이버를 제거하거나 동일한 nvidia 드라이버를 사용하도록 커널 클라이언트 및 모듈을 얻는 방법은 무엇입니까?

분류에서Dev

커널 모듈을 사용하여 현재 배터리 통계를 얻는 방법은 무엇입니까?

분류에서Dev

postgres를 사용하여 다른 레코드 매핑을 위해 재귀 모드에서 하위 범주 ID를 얻는 방법은 무엇입니까?

분류에서Dev

커널 로그에 커널 코드의 최신 커밋 ID를 인쇄하는 방법은 무엇입니까?

분류에서Dev

$ group을 사용하여 mongodb에서 총 레코드 필드를 얻는 방법은 무엇입니까?

분류에서Dev

클립 보드 및 드래그 앤 드롭을 사용하기 위해 게스트 Ubuntu의 모든 커널 업그레이드에서 VirtualBox Guest Additions의 재설치를 피하는 방법은 무엇입니까?

분류에서Dev

클립 보드 및 드래그 앤 드롭을 사용하기 위해 게스트 Ubuntu의 모든 커널 업그레이드에서 VirtualBox Guest Additions의 재설치를 피하는 방법은 무엇입니까?

분류에서Dev

mpsc 채널을 사용하여 스레드간에 링 통신을 만드는 방법은 무엇입니까?

분류에서Dev

VC ++에서 단일 프로세스를 사용하여 생성 된 모든 스레드 핸들 목록을 얻는 방법은 무엇입니까?

분류에서Dev

커서의 특정 열을 사용하여 레코드 수를 계산하는 방법은 무엇입니까?

분류에서Dev

Linux Mint 18의 터미널에서 커널을 업그레이드하는 방법은 무엇입니까?

분류에서Dev

EFI 스텁 (efistub) 로더를 사용하여 커널을 부팅하는 방법은 무엇입니까?

분류에서Dev

Rust에서 채널을 사용하여 스레드를 데이지 체인하는 방법은 무엇입니까?

분류에서Dev

여러 ID가있는 단일 필드를 사용하여 값을 얻는 방법은 무엇입니까?

분류에서Dev

Linux 커널 모듈에서 문자 장치의 모드를 설정하는 방법은 무엇입니까?

분류에서Dev

여러 컴퓨터의 하드웨어를 지원하는 localmodconfig로 사용자 지정 커널을 빌드하는 방법은 무엇입니까?

분류에서Dev

특정 커널 모듈을 빌드하는 방법은 무엇입니까?

분류에서Dev

Ubuntu에서 압축 된 커널 모듈을로드하는 방법은 무엇입니까?

분류에서Dev

커널 모드에서 파일을 삭제하는 방법은 무엇입니까?

분류에서Dev

windbg 커널 디버거에서 사용자 스레드 호출 스택을 검사하는 방법은 무엇입니까?

분류에서Dev

1 x 2 커널을 사용하여 2 x 2 행렬에서 convolution을 수행하기 위해 tensorflow를 얻는 방법은 무엇입니까?

분류에서Dev

키보드를 사용하여 터미널 에뮬레이터 창을 더 작은 단계로 스크롤하는 방법은 무엇입니까?

분류에서Dev

파이썬 셀레늄을 사용하여 모든 TR ID를 얻는 방법은 무엇입니까?

분류에서Dev

커널 프로그램에서 stdlib.h를 사용할 수 없으므로 커널 모듈에서 system ()을 사용하는 방법은 무엇입니까?

분류에서Dev

결함이있는 커널 모듈-FC19를 사용하여 시스템 충돌을 일으키는 방법은 무엇입니까?

분류에서Dev

현재 실행중인 시스템에서 사용하지 않는 커널 모듈 목록을 얻는 방법은 무엇입니까? (정적 및 부하)

분류에서Dev

VS를 사용하여 디자이너 모드에서 .dbml을 여는 방법은 무엇입니까?

분류에서Dev

스레드를 사용하여 목록보기에 항목을 추가하는 방법은 무엇입니까?

분류에서Dev

Eclipse JDT ASTParser를 사용하여 메서드의 클래스 이름을 얻는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    ubuntu 16.04 커널 클라이언트 및 커널 모듈에서 nvidia 드라이버를 제거하거나 동일한 nvidia 드라이버를 사용하도록 커널 클라이언트 및 모듈을 얻는 방법은 무엇입니까?

  2. 2

    커널 모듈을 사용하여 현재 배터리 통계를 얻는 방법은 무엇입니까?

  3. 3

    postgres를 사용하여 다른 레코드 매핑을 위해 재귀 모드에서 하위 범주 ID를 얻는 방법은 무엇입니까?

  4. 4

    커널 로그에 커널 코드의 최신 커밋 ID를 인쇄하는 방법은 무엇입니까?

  5. 5

    $ group을 사용하여 mongodb에서 총 레코드 필드를 얻는 방법은 무엇입니까?

  6. 6

    클립 보드 및 드래그 앤 드롭을 사용하기 위해 게스트 Ubuntu의 모든 커널 업그레이드에서 VirtualBox Guest Additions의 재설치를 피하는 방법은 무엇입니까?

  7. 7

    클립 보드 및 드래그 앤 드롭을 사용하기 위해 게스트 Ubuntu의 모든 커널 업그레이드에서 VirtualBox Guest Additions의 재설치를 피하는 방법은 무엇입니까?

  8. 8

    mpsc 채널을 사용하여 스레드간에 링 통신을 만드는 방법은 무엇입니까?

  9. 9

    VC ++에서 단일 프로세스를 사용하여 생성 된 모든 스레드 핸들 목록을 얻는 방법은 무엇입니까?

  10. 10

    커서의 특정 열을 사용하여 레코드 수를 계산하는 방법은 무엇입니까?

  11. 11

    Linux Mint 18의 터미널에서 커널을 업그레이드하는 방법은 무엇입니까?

  12. 12

    EFI 스텁 (efistub) 로더를 사용하여 커널을 부팅하는 방법은 무엇입니까?

  13. 13

    Rust에서 채널을 사용하여 스레드를 데이지 체인하는 방법은 무엇입니까?

  14. 14

    여러 ID가있는 단일 필드를 사용하여 값을 얻는 방법은 무엇입니까?

  15. 15

    Linux 커널 모듈에서 문자 장치의 모드를 설정하는 방법은 무엇입니까?

  16. 16

    여러 컴퓨터의 하드웨어를 지원하는 localmodconfig로 사용자 지정 커널을 빌드하는 방법은 무엇입니까?

  17. 17

    특정 커널 모듈을 빌드하는 방법은 무엇입니까?

  18. 18

    Ubuntu에서 압축 된 커널 모듈을로드하는 방법은 무엇입니까?

  19. 19

    커널 모드에서 파일을 삭제하는 방법은 무엇입니까?

  20. 20

    windbg 커널 디버거에서 사용자 스레드 호출 스택을 검사하는 방법은 무엇입니까?

  21. 21

    1 x 2 커널을 사용하여 2 x 2 행렬에서 convolution을 수행하기 위해 tensorflow를 얻는 방법은 무엇입니까?

  22. 22

    키보드를 사용하여 터미널 에뮬레이터 창을 더 작은 단계로 스크롤하는 방법은 무엇입니까?

  23. 23

    파이썬 셀레늄을 사용하여 모든 TR ID를 얻는 방법은 무엇입니까?

  24. 24

    커널 프로그램에서 stdlib.h를 사용할 수 없으므로 커널 모듈에서 system ()을 사용하는 방법은 무엇입니까?

  25. 25

    결함이있는 커널 모듈-FC19를 사용하여 시스템 충돌을 일으키는 방법은 무엇입니까?

  26. 26

    현재 실행중인 시스템에서 사용하지 않는 커널 모듈 목록을 얻는 방법은 무엇입니까? (정적 및 부하)

  27. 27

    VS를 사용하여 디자이너 모드에서 .dbml을 여는 방법은 무엇입니까?

  28. 28

    스레드를 사용하여 목록보기에 항목을 추가하는 방법은 무엇입니까?

  29. 29

    Eclipse JDT ASTParser를 사용하여 메서드의 클래스 이름을 얻는 방법은 무엇입니까?

뜨겁다태그

보관