Bagikan melalui


!menangani

Ekstensi !handle menampilkan informasi tentang handel atau handel yang dimiliki oleh satu atau semua proses dalam sistem target.

Mode Pengguna

!handle [Handle [UMFlags [TypeName]]] 
!handle -?

Mode Kernel

!handle [Handle [KMFlags [Process [TypeName]]]] 

Parameter

Menangani
Menentukan indeks handel yang akan ditampilkan. Jika Handle adalah -1 atau jika Anda menghilangkan parameter ini, debugger menampilkan data untuk semua handel yang terkait dengan proses saat ini. Jika Handle adalah 0, debugger menampilkan data untuk semua handel.

UMFlags
(Mode pengguna saja) Menentukan apa yang harus dimuat tampilan. Parameter ini dapat berupa jumlah dari salah satu nilai bit berikut. (Nilai defaultnya adalah 0x1.)

Bit 0 (0x1)
Menampilkan informasi tipe handel.

Bit 1 (0x2)
Menampilkan informasi handel dasar.

Bit 2 (0x4)
Menampilkan informasi nama handel.

Bit 3 (0x8)
Menampilkan informasi handel khusus objek, jika tersedia.

KMFlags
(Mode kernel saja) Menentukan apa yang harus dimuat tampilan. Parameter ini dapat berupa jumlah dari salah satu nilai bit berikut. (Nilai defaultnya adalah 0x3.)

Bit 0 (0x1)
Menampilkan informasi handel dasar.

Bit 1 (0x2)
Menampilkan informasi tentang objek.

Bit 2 (0x4)
Menampilkan entri handel bebas. Jika Anda tidak mengatur bit ini dan menghilangkan Handel atau mengaturnya ke nol, daftar handel yang ditampilkan tidak menyertakan handel gratis. Jika Handel menentukan satu handel gratis, handel ini akan ditampilkan meskipun Anda tidak mengatur bit ini.

Bit 4 (0x10)
Menampilkan handel dari tabel handel kernel alih-alih proses saat ini.

Bit 5 (0x20)
Menginterpretasikan handel sebagai ID utas atau ID proses dan menampilkan informasi tentang objek kernel yang sesuai.

Proses
(Mode kernel saja) Menentukan proses. Anda dapat menggunakan ID proses atau alamat heksadesimal objek proses. Parameter ini harus merujuk ke proses yang sedang berjalan pada sistem target. Jika parameter ini adalah -1 atau jika Anda menghilangkannya, proses saat ini digunakan. Jika parameter ini adalah 0, handel informasi dari semua proses ditampilkan.

TypeName
Menentukan jenis handel yang ingin Anda periksa. Hanya handel yang cocok dengan tipe ini yang ditampilkan. TypeName peka huruf besar/kecil. Jenis yang valid termasuk Peristiwa, Bagian, File, Port, Direktori, SymbolicLink, Mutant, WindowStation, Semaphore, Key, Token, Process, Thread, Desktop, IoCompletion, Timer, Job, dan WaitablePort.

-?
(Mode pengguna saja) Menampilkan beberapa teks Bantuan untuk ekstensi ini di jendela Perintah Debugger.

DLL

Windows 2000

Kdextx86.dll Uext.dll Ntsdexts.dll

Windows XP dan yang lebih baru

Kdexts.dll Uext.dll Ntsdexts.dll

Informasi Tambahan

Untuk informasi selengkapnya tentang handel, lihat ekstensi !htrace , dokumentasi Microsoft Windows SDK dan Microsoft Windows Internals oleh Mark Russinovich dan David Solomon.

Keterangan

Anda dapat menggunakan ekstensi !handle selama debugging langsung mode pengguna dan mode kernel. Anda juga dapat menggunakan ekstensi ini pada file cadangan mode kernel. Namun, Anda tidak dapat menggunakan ekstensi ini pada file cadangan mode pengguna, kecuali Anda secara khusus membuatnya dengan informasi handel. (Anda dapat membuat file cadangan tersebut dengan menggunakan . perintah dump /mh (Buat File Cadangan). )

Selama penelusuran kesalahan mode pengguna langsung, Anda dapat menggunakan perintah .closehandle (Close Handle) untuk menutup satu atau beberapa handel.

Contoh berikut adalah contoh mode pengguna dari ekstensi !handle . Perintah berikut menampilkan daftar semua handel.

0:000> !handle
Handle 4
  Type          Section
Handle 8
  Type          Event
Handle c
  Type          Event
Handle 10
  Type          Event
Handle 14
  Type          Directory
Handle 5c
  Type          File
6 Handles
Type            Count
Event           3
Section         1
File            1
Directory       1

Perintah berikut menampilkan informasi terperinci tentang menangani 0x8.

0:000> !handle 8 f
Handle 8
  Type          Event
  Attributes    0
  GrantedAccess 0x100003:
         Synch
         QueryState,ModifyState
  HandleCount   2
  PointerCount  3
  Name          <none>
  Object Specific Information
    Event Type Auto Reset
    Event is Waiting

Contoh berikut adalah contoh mode kernel dari !handle. Perintah berikut mencantumkan semua handel, termasuk handel gratis.

kd> !handle 0 4
processor number 0
PROCESS 80559800  SessionId: 0  Cid: 0000    Peb: 00000000  ParentCid: 0000
    DirBase: 00039000  ObjectTable: e1000d60  TableSize: 380.
    Image: Idle

New version of handle table at e1002000 with 380 Entries in use

0000: free handle, Entry address e1002000, Next Entry fffffffe
0004: Object: 80ed5238  GrantedAccess: 001f0fff
0008: Object: 80ed46b8  GrantedAccess: 00000000
000c: Object: e1281d00  GrantedAccess: 000f003f
0010: Object: e1013658  GrantedAccess: 00000000
......
0168: Object: ffb6c748  GrantedAccess: 00000003 (Protected)
016c: Object: ff811f90  GrantedAccess: 0012008b
0170: free handle, Entry address e10022e0, Next Entry 00000458
0174: Object: 80dfd5c8  GrantedAccess: 001f01ff
......

Perintah berikut ini memperlihatkan informasi terperinci tentang menangani 0x14 dalam tabel handel kernel.

kd> !handle 14 13
processor number 0
PROCESS 80559800  SessionId: 0  Cid: 0000    Peb: 00000000  ParentCid: 0000
    DirBase: 00039000  ObjectTable: e1000d60  TableSize: 380.
    Image: Idle

Kernel New version of handle table at e1002000 with 380 Entries in use
0014: Object: e12751d0  GrantedAccess: 0002001f
Object: e12751d0  Type: (80ec8db8) Key
    ObjectHeader: e12751b8
        HandleCount: 1  PointerCount: 1
        Directory Object: 00000000  Name: \REGISTRY\MACHINE\SYSTEM\CONTROLSET001\CONTROL\SESSION MANAGER\EXECUTIVE

Perintah berikut menunjukkan informasi tentang semua handel ke objek Bagian di semua proses.

!handle 0 3 0 Section
...
PROCESS fffffa8004f48940
    SessionId: none  Cid: 0138    Peb: 7f6639bf000  ParentCid: 0004
    DirBase: 10cb74000  ObjectTable: fffff8a00066f700  HandleCount:  39.
    Image: smss.exe

Handle table at fffff8a00066f700 with 39 entries in use

0040: Object: fffff8a000633f00  GrantedAccess: 00000006 (Inherit) Entry: fffff8a000670100
Object: fffff8a000633f00  Type: (fffffa80035fef20) Section
    ObjectHeader: fffff8a000633ed0 (new version)
        HandleCount: 1  PointerCount: 262144
...