請升級至MicrosoftEdge,以利用最新功能、安全性更新和技術支援。
!process延伸模組會顯示指定進程的相關信息,或所有進程的相關信息,包括EPROCESS區塊。
此擴充功能只能在內核模式偵錯期間使用。
語法
!process[/sSession][/mModule][Process[Flags]]!process[/sSession][/mModule]0FlagsImageName參數/s****工作階段指定擁有所需進程的工作階段。
/m****模組指定擁有所需進程的模組。
過程指定目標電腦上的進程十六進位位址或進程標識碼。
Process的值會決定!process延伸模組是否顯示行程位址或進程識別碼。如果在任何版本的Windows中省略Process,調試程式只會顯示目前系統進程的相關數據。如果Process為0且省略ImageName,調試程式會顯示所有使用中進程的相關信息。如果已針對目前進程的進程資訊指定-1,則會顯示。
旗標指定要顯示的詳細數據層級。旗標可以是下列位的任何組合。如果Flags為0,則只會顯示最少的資訊量。默認值會根據Windows版本和Process的值而有所不同。如果省略Process或Process是0或-1,則預設值為0x3;否則,預設值為0xF。
位0(0x1)顯示時間和優先順序統計數據。
位1(0x2)顯示與進程相關聯的線程和事件清單及其等候狀態。
位2(0x4)顯示與進程相關聯的線程清單。如果不包含位1(0x2),則每個線程都會顯示在單一行上。如果這與位1一起包含,則每個線程都會以堆疊追蹤來顯示。
位3(0x8)顯示每個函式的傳回位址和堆疊指標:隱藏函式自變數的顯示。
ImageName指定要顯示的進程名稱。調試程式會顯示可執行檔映像名稱符合ImageName的所有進程。映像名稱必須符合EPROCESS區塊中的該名稱。一般而言,這是叫用以啟動進程的可執行文件名稱,包括擴展名(通常是.exe),並在第十五個字元之後截斷。無法指定包含空格的映像名稱。指定ImageName時,Process必須是零。
Kdexts.dll
以下是!process00顯示器的範例:
kd>!process00****NTACTIVEPROCESSDUMP****PROCESS80a02a60Cid:0002Peb:00000000ParentCid:0000DirBase:00006e05ObjectTable:80a03788TableSize:150.Image:SystemPROCESS80986f40Cid:0012Peb:7ffde000ParentCid:0002DirBase:000bd605ObjectTable:8098fce8TableSize:38.Image:smss.exePROCESS80958020Cid:001aPeb:7ffde000ParentCid:0012DirBase:0008b205ObjectTable:809782a8TableSize:150.Image:csrss.exePROCESS80955040Cid:0020Peb:7ffde000ParentCid:0012DirBase:00112005ObjectTable:80955ce8TableSize:54.Image:winlogon.exePROCESS8094fce0Cid:0026Peb:7ffde000ParentCid:0020DirBase:00055005ObjectTable:80950cc8TableSize:222.Image:services.exePROCESS8094c020Cid:0029Peb:7ffde000ParentCid:0020DirBase:000c4605ObjectTable:80990fe8TableSize:110.Image:lsass.exePROCESS809258e0Cid:0044Peb:7ffde000ParentCid:0026DirBase:001e5405ObjectTable:80925c68TableSize:70.Image:SPOOLSS.EXE下表描述!process00輸出的一些元素。
進程位址
PROCESS一字之後的八個字元十六進位數位是EPROCESS區塊的位址。在上述範例的最後一個專案中,進程位址0x809258E0。
行程識別碼(PID)
Cid字後面的十六進位數位。在上述範例的最後一個專案中,PID會0x44或十進位68。
進程環境區塊(PEB)
Peb字之後的十六進位數位是進程環境區塊的位址。在上述範例的最後一個專案中,PEB位於位址0x7FFDE000。
父進程PID
ParentCid一字之後的十六進位數位是父進程的PID。在上述範例的最後一個專案中,父進程PID會0x26或十進位38。
映像
擁有進程的模組名稱。在上述範例的最後一個專案中,擁有者會spoolss.exe。在第一個專案中,擁有者是操作系統本身。
Process物件位址
ObjectTable一字後面的十六進位數位。在上述範例的最後一個專案中,進程對象的位址會0x80925c68。
若要顯示一個程式的完整詳細數據,請將[旗標]設定為7。您可以藉由將Process設定為等於進程位址、將Process設定為等於進程識別元,或將ImageName設定為可執行檔映像名稱,來指定進程本身。以下是範例:
下表描述上一個範例中的一些元素。
ElapsedTime
列出建立程序之後經過的時間量。這會以小時:分鐘:秒.毫秒為單位顯示。
UserTime
列出進程在使用者模式中執行的時間量。如果UserTime的值異常高,它可能會識別耗用系統資源的程式。單位與ElapsedTime相同。
KernelTime
列出進程在核心模式中執行的時間量。如果KernelTime的值異常高,它可能會識別耗用系統資源的進程。單位與ElapsedTime相同。
工作集大小
在頁面中列出進程的目前、最小和最大工作集大小。超大型的工作集大小可能是流失記憶體或耗用系統資源之進程的標誌。
QuotaPoolUsage專案
列出進程所使用的分頁和非分頁集區。在記憶體流失的系統上,尋找所有進程的過度非分頁集區使用量,可以告訴您哪個進程有記憶體流失。
複製
指出程式是由POSIX或Interix子系統所建立。
私用
表示進程目前正在使用的私人(不可共享)頁面數目。這包括分頁和分頁記憶體。