Displays information about an INtime kernel object.
vt handle
handle
The vt command determines the type of INtime kernel object represented by the handle and displays information about that object. The information and the format in which SDM displays the information depends on the type of object.
These sections are divided into display groups illustrating the display format for these INtime kernel objects:
If the parameter you specify is a valid process handle, SDM displays information about the process having that handle, as the sample display shows:
Object type = 1 Process Current_threads xxxx Max_threads xxxx Max_priority xx Current_objects xxxx Max_objects xxxx Parameter_obj xxxx Directory_size xxxx Entries_used xxxx Process_flags xxxx Except_handler xxxx:xxxxxxxx Except_mode xx Parent_process xxxx Pool_min xxxxxxxx Pool_max xxxxxxxx Initial_size xxxxxxxx Borrowed xxxxxxxx Allocated xxxxxxxx CR3 xxxxxxxx Page Dir xxxx:xxxxxxxx Flat DS/CS xxxx/xxxx Process Name xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx RSLs: Act RVA Entry Name 1d78: 00072000 00082e40 RtRsl.rsl 1d68: 00020000 0003fd30 clib.rsl
The table in the lower half of the display is the Free Space Table.
The display fields from left to right are:
Current_threads
Max threads
is not 0FFFFH (no limit), the number of Current threads
is equal to the Current threads
of this process plus all its children Max threads
.
Max_threads
Max_priority
Current_objects
Max_objects
Parameter_obj
Directory_size
Entries_used
Process_flags
Process flags
parameter value that was set when the process was created. A value of 0 (zero) indicates the kernel does parameter checking for system calls made from the process. The value 2H indicates parameter checking is not done unless a parent process has parameter checking set.
Except_handler
Except_mode
Vaue | When control passes |
---|---|
0 | Never |
1 | On programmer errors |
2 | On environmental conditions |
3 | On all exceptions |
Parent_process
Pool_min
Pool_max
Initial_size
Borrowed
Allocated
Process Name
RSLs
SDM displays information about threads in different ways for interrupt threads and for non-interrupt threads.
This sample shows the display for non-interrupt threads:
Object type = 2 Thread Static pri xx Dynamic pri xx Thread state xxxxxxxxx Suspend depth xx Delay req xxxx Last exchange xxxx Except handler xxxx:xxxxxxxx Except mode xx Thread flags xx SEH Start xxxxxxxx SEH active xx SEH trans xxxxxxxx K-saved SS:SP xxxx:xxxxxxxx Container proc xxxx Interrupt thread no K-Delay xxxxxxxx K-Last exch. xxxxxxxx LastRtError xxxx SEH_Lin xxxxxxxx TLS array xxxxxxxx
The display for interrupt threads is the same as for non-interrupt threads but with this added:
Int level xx Master mask xx Slave mask xx Pending int xx Max interrupts xx
These are the fields for both interrupt and non-interrupt displays, from left to right:
Static pri
Dynamic pri
Thread state
State | Description |
---|---|
ready | Thread is ready for execution |
asleep | Thread is asleep |
susp | Thread is suspended |
aslp/susp | Thread is asleep and suspended |
deleted | Thread is being deleted |
on exch Q | Thread is waiting at an exchange |
aslp/exch | Thread is asleep waiting at an exchange |
sl/xc/susp | Thread is asleep and suspended waiting at an exchange |
on port Q | Thread is queued at a port |
aslp/port | Thread is asleep waiting at a port |
on trans Q | Thread is queued at a port on transaction queue |
aslp/trans | Thread is asleep and queued at a port on the transaction queue |
Suspend depth
Delay req
Last exchange
Except handler
Except mode
Thread flags
K-saved SS:SP
Containing process
Interrupt thread
No
signifies that the thread is not an interrupt thread. If so, this is the last field in the display. See the sample display for non-interrupt threads.
Yes
signifies that the thread is an interrupt thread. In this case, additional fields appear in the display. See the sample display for interrupt threads.
Int level
SEH Lin
TLS array
Pending int
Max interrupts
SDM displays information about mailboxes in these ways:
This is the format of the display when nothing is queued at the mailbox:
Object type = 3 Mailbox Mailbox type xxxxxx Thread queue head xxxx Queue discipline xxxx Object queue head 0000 Containing process xxxx Object cache depth xx
When there are threads queued at the mailbox, this line is added:
Thread queue zzzz xxxx ...
When there are objects queued at the mailbox, this line is added:
Object cache queue zzzz xxxx ... Object overflow queue xxxx xxxx ...
When there are data messages queued at the mailbox, this line is added:
Data message queue xxxx:xxxxxxxx xxxx:xxxxxxxx xxxx:xxxxxxxx xxxx:xxxxxxxx xxxx:xxxxxxxx ...
The field descriptions follow:
Mailbox type
Thread queue head
Object queue head
0000
. If the mailbox type is Data
, this field contains N/A
.
Data queue head
Queue discipline
FIFO
(first-in-first-out) or by PRI
(priority). This is specified when a mailbox is created with CreateRtMailbox. If the field cannot be interpreted, the actual value is displayed followed by a space and two question marks.
Containing process
Object cache depth
Data
, this field contains N/A
.
Data message queue
Thread queue
Object cache queue
Data
, this field does not display.
Object overflow queue
Data
, this field does not display. Semaphore information is displayed either when no threads are queued or when threads are queued.
This is the format of the display when no threads are queued:
Object type = 4 Semaphore Thread queue head xxxx Queue discipline xxxx Current value xxxx Maximum value xxxx Containing process xxxx
When no threads are queued, this line is added:
Thread queue xxxx xxxx ...
The field descriptions follow:
Thread queue head
Queue discipline
FIFO
(first-in-first-out) or by PRI
(priority), depending on how the semaphore was specified when it was created with CreateRtSemaphore.
Current value
Maximum value
Containing process
Thread queue
If the handle parameter is a valid handle for a region, information about the region displays with or without a thread queue.
This is the format for the display of a region with no thread queue:
Object type = 5 Region Entered thread xxxx Queue discipline xxxx Containing process xxxx
When a region that has a thread queue, this line is added:
Thread queue xxxx xxxx ...
The field descriptions follow:
Entered thread
Queue discipline
FIFO
(first-in-first-out) or by PRI
(priority), depending on how the region was specified when it was created with CreateRtRegion.
Containing process
Thread queue