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

1898
Justin Dearing

Если выполнить команду ! 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.

3

2 ответа на вопрос

3
ckhan

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

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

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

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

-1
Solemnity

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

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

Это не «с», о котором он говорит. ckhan 11 лет назад 2
лол, я перечитал его вывод несколько раз, думая, что это странный вопрос. Неверное истолкование с моей стороны. Solemnity 11 лет назад 0