winDbg, kdbg 및 livekd에서 Cid의 C는 무엇을 의미합니까?

winDbg, kdbg 및 livekd에서 Cid의 C는 무엇을 의미합니까?

실행하면!프로세스Windwos 디버거의 명령을 사용하면 다음 형식으로 출력이 표시됩니다.

PROCESS fffffa8006bff940
    SessionId: 0  Cid: 03ec    Peb: 7f79ae1f000  ParentCid: 02e4
    DirBase: 084ed000  ObjectTable: fffff8a002c3fd80  HandleCount: <Data Not Accessible>
    Image: svchost.exe

Cid가 16진수의 ProcessId(pid)라는 것이 잘 문서화되어 있습니다. 그러나 C가 무엇을 의미하는지 알 수 없습니다.

답변1

을 의미합니다 CLIENT_ID.

이것으로부터MSDN 블로그 게시물(강조):

최근 누군가가 나에게 커널 디버거(kd)의 !process 및 !thread와 같은 명령의 출력에 나타나는 'Cid' 필드의 실제 의미가 무엇인지 물었습니다. 실용적인 관점에서 볼 때 이것이 프로세스 ID와 스레드 ID를 나타낸다는 것을 알고 있었지만 Cid가 무엇을 의미하는지 확신할 수 없었습니다. 검색 중에 질문에 답하는 공개 소스를 찾았습니다.Cid는 짧고 CLIENT_ID문서화되지 않은 구조입니다..

해당 게시물은 원본 출처를 다음과 같이 인용합니다.문서화되지 않은 Windows 2000의 비밀: 프로그래머를 위한 요리책, 스벤 B. 슈라이버 지음.

답변2

03ec = 12월의 1004 'c'는 해당 숫자의 마지막 16진수 숫자이며 아무 의미도 없습니다(음, 12dec 자체).

cid/pid는 3이 아닌 4자리 16진수 값입니다.

관련 정보