Если выполнить!процессв отладчике 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.
решение1
Это означает CLIENT_ID
.
Из этогоЗапись в блоге MSDN(выделено мной):
Недавно кто-то спросил меня, каково реальное значение поля 'Cid', которое появляется в выводе таких команд, как !process и !thread в отладчике ядра (kd). Хотя с практической точки зрения я знал, что они представляют идентификатор процесса и идентификатор потока, я не был уверен в том, что означает Cid. В ходе поиска я нашел общедоступный источник, который отвечает на этот вопрос.Cid — это сокращение от
CLIENT_ID
, которое в свою очередь является недокументированной структурой..
В этом сообщении говорится, что первоисточником являетсяНедокументированные секреты Windows 2000: кулинарная книга программиста, Свен Б. Шрайбер.
решение2
03ec = 1004 в десятичной системе счисления. «c» — последняя шестнадцатеричная цифра этого числа, она ничего не обозначает (ну, само по себе 12dec).
cid/pid — это 4-значное шестнадцатеричное значение, а не 3.