Follow along with the video below to see how to install our site as a web app on your home screen.
Note: This feature may not be available in some browsers.
[COLOR=#565656]2: kd> [/COLOR][B]dt nt!_MODE c9dd6208[/B]
[COLOR=#565656]2: kd> [/COLOR][B]!handle 300[/B]
2: kd> [B]!handle 300[/B]
PROCESS 95bf14e8 SessionId: 1 Cid: 07bc Peb: 7ffde000 ParentCid: 1ffc
DirBase: 9f02c280 ObjectTable: c44f85d8 HandleCount: 192.
Image: vsmon.exe
Handle table at c44f85d8 with 192 entries in use
0300: Object: c9dd6220 GrantedAccess: 00020019 Entry: db2ba600
Object: c9dd6220 Type: (869e4980) Key
[B] ObjectHeader: [COLOR=#ff0000]c9dd6208[/COLOR] (new version)[/B]
HandleCount: 1 PointerCount: 1
Directory Object: 00000000 Name: \REGISTRY\MACHINE\SOFTWARE\MICROSOFT\WINDOWS NT\CURRENTVERSION\PROFILELIST\S-1-5-18
[FONT=Lucida Console] [COLOR=#565656]2: kd> [/COLOR][B]dt nt!_MODE [COLOR=#ff0000][B]c9dd6208[/B][/COLOR][/B][/FONT]
- !analyze -v
- knL
- !handle 300
- dt nt!_MODE c9dd6208
- .bugcheck
- !address 8eea7cc3
- !thread 95a1c7c8
- !irp 89326ac0
- !fileobj 95a1a7c8
[B]Parameters
[/B]
[I][SIZE=3][B]Handle [/B][/SIZE][/I]
Specifies the index of the handle to display. If Handle is -1 or if you omit this parameter, the debugger displays data for all handles that are associated with the current process. If Handle is 0, the debugger displays data for all handles.
[SIZE=3][B][I]UMFlags[/I][/B][/SIZE]
(User mode only) Specifies what the display should contain. This parameter can be a sum of any of the following bit values. (The default value is 0x1.)
Bit 0 (0x1)
Displays handle type information.
Bit 1 (0x2)
Displays basic handle information.
Bit 2 (0x4)
Displays handle name information.
Bit 3 (0x8)
Displays object-specific handle information, when available.
[SIZE=3][I][B]KMFlags[/B][/I][/SIZE]
(Kernel mode only) Specifies what the display should contain. This parameter can be a sum of any of the following bit values. (The default value is 0x3.)
Bit 0 (0x1)
Displays basic handle information.
Bit 1 (0x2)
Displays information about objects.
Bit 2 (0x4)
Displays free handle entries. If you do not set this bit and you omit Handle or set it to zero, the list of handles that are displayed does not include free handles. If Handle specifies a single free handle, it is displayed even if you do not set this bit.
Bit 4 (0x10)
(Windows XP and later) Displays the handle from the kernel handle table instead of the current process.
Bit 5 (0x20)
(Windows XP and later) Interprets the handle as a thread ID or process ID and displays information about the corresponding kernel object.
[SIZE=3][I][B]Process [/B][/I][/SIZE]
(Kernel mode only) Specifies a process. You can use the process ID or the hexadecimal address of the process object. This parameter must refer to a currently running process on the target system. If this parameter is -1 or if you omit it, the current process is used. If this parameter is 0, handle information from all processes is displayed.
[SIZE=3][I][B]TypeName [/B][/I][/SIZE]
Specifies the type of handle that you want to examine. Only handles that match this type are displayed. TypeName is case sensitive. Valid types include Event, Section, File, Port, Directory, SymbolicLink, Mutant, WindowStation, Semaphore, Key, Token, Process, Thread, Desktop, IoCompletion, Timer, Job, and WaitablePort.
ObjectHeader: c9dd6208 (new version)
Not sure what the "300" after "!thread" means as I can't locate any information on it at this time.
Not sure what the "300" after "!thread" means as I can't locate any information on it at this time.
The 300 is the actual handle that was being referenced.
It was actually after '!handle', not '!thread'.
It took Patrick and I a while to find the data structure that represents the Kernel and User mode of an object, I finally found it through sheer luck actually.
After about an hour, and many MSDN articles, searching for undocumented data structures later...
But good post though Patrick.
Not sure what the "300" after "!thread" means as I can't locate any information on it at this time.
The 300 is the actual handle that was being referenced.
It was actually after '!handle', not '!thread'.
It took Patrick and I a while to find the data structure that represents the Kernel and User mode of an object, I finally found it through sheer luck actually.
After about an hour, and many MSDN articles, searching for undocumented data structures later...
But good post though Patrick.
Thanks for spotting my typo. I changed !thread to !handle before the 300.
I did look up !handle and don't see "300" as a parm; hence I still don't know its meaning.
With user mode dumps, the parm options are 0x1, 0x2, 0x4 & 0x8.
Kernel mode dumps - parm options listed are 0x1, 0x2, 0x4, 0x10 & 0x20.
I was just curious as to where the "300" came from & what it does as compared to the other parms.
Regardless of its origin ad meaning, it worked/helped you here!
Thanks,
John
By the way John, this is a great way to show recognition.
Has Sysnative Forums helped you? Please consider donating to help us support the site!