Что означает C в Cid в winDbg, kdbg и livekd?

Если выполнить команду ! Process в отладчике windwos, вы получите вывод в следующем формате:

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

Хорошо задокументировано, что Cid - это ProcessId (pid) в шестнадцатеричном формате. Тем не менее, я не вижу, что означает C.

2 ответа

Решение

Это означает CLIENT_ID,

Из этого сообщения в блоге MSDN (выделено мое):

Недавно кто-то спросил меня, каково истинное значение поля 'Cid', которое появляется в выводе таких команд, как! Process и! Thread, в отладчике ядра (kd). Хотя с практической точки зрения я знал, что они представляют идентификатор процесса и идентификатор потока, я не был уверен в том, что означает Cid. В ходе поиска я нашел общедоступный источник, который отвечает на вопрос. Сид короток для CLIENT_ID которая в свою очередь является недокументированной структурой.

В этой публикации цитируется, что первоисточник - " Недокументированные секреты Windows 2000: Поваренная книга программиста", автор Свен Б. Шрайбер.

03ec = 1004 в дек. 'c' - последняя шестнадцатеричная цифра этого числа, она ничего не означает (ну, 12dec сама по себе).

cid/pid - это 4-значное шестнадцатеричное значение, а не 3.

Другие вопросы по тегам