Windows NT 4.0 source code leak
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

469 lines
16 KiB

/************************************************************************\
*
* MODULE: exts.h
*
* DESCRIPTION: macro driving file for use with stdexts.h and stdexts.c.
*
* Copyright (c) 6/9/1995, Microsoft Corporation
*
* 6/9/1995 SanfordS Created
*
\************************************************************************/
DOIT( help
,"help -v [cmd] - Displays this list or gives details on command\n"
," help - To dump short help text on all commands.\n"
" help -v - To dump long help text on all commands.\n"
" help cmd - To dump long help on given command.\n"
,"v"
,CUSTOM)
#ifdef KERNEL
DOIT( atom
,"atom - Dump atoms or atom tables\n"
,"atom -gl [atom]\n"
,"gl"
,STDARGS1)
#endif // KERNEL
#ifdef KERNEL
DOIT( dcls
,"dcls [pcls] - Dump window class\n"
," dcls -v - for verbose info.\n"
" dcls - to list all classes.\n"
,"v"
,STDARGS1)
#endif // KERNEL
#ifdef KERNEL
DOIT( dcur
,"dcur -aivp [pcur] - Dump cursors\n"
," dcur - dump all cursor objects.\n"
" dcur -i <id> - dump cursors with given res id.\n"
" dcur -p <ppi>- dump cursors owned by ppi.\n"
" dcur -v - dump in verbose format.\n"
" dcur -a - expand dump of ACONs.\n"
" dcur <pcur> - dump given cursor handle or pointer.\n"
,"aivp"
,STDARGS1)
#endif // KERNEL
#ifdef KERNEL
DOIT( dde
,"dde -vr [conv|window|xact] - Dump DDE tracking information\n"
," v - verbose\n"
" r - recurse to inner structures 1 level\n"
" window object - dumps all convs associated w/window\n"
" conv object - dumps conversation.\n"
" xact object - dumps transaction.\n"
,"vr"
,STDARGS1)
#endif // KERNEL
#ifndef KERNEL
DOIT( ddeml
,"ddeml -v [i<inst>] [t<type>] [hObj|pObj] - Dump DDEML state information\n"
," ddeml - lists all ddeml instances for this process\n"
" ddeml t<type> - lists all ddeml objects of the given type\n"
" type 0 = All types\n"
" type 1 = Instances\n"
" type 2 = Server Conversations\n"
" type 3 = Client Conversations\n"
" type 4 = Conversation Lists\n"
" type 5 = Transactions\n"
" type 6 = Data Handles\n"
" type 7 = Zombie Conversations\n"
" ddeml i<instance> t<type> - restricts listing to one instance.\n"
" ddeml hObj - dumps ddeml object\n"
" adding a 'v' simply turns lists into dumps.\n"
,"v"
,CUSTOM)
#endif //!KERNEL
#ifdef KERNEL
DOIT( ddesk
,"ddesk -vh <pdesk> - Displays objects allocated in desktop\n"
," ddesk - dumps list of desktops\n"
" ddesk address - dumps simple statistics for desktop\n"
" ddesk v address - dumps verbose statistics for desktop\n"
" ddesk h address - dumps statistics for desktop plus handle list\n"
,"vh"
,STDARGS1)
#endif // KERNEL
#ifdef KERNEL
DOIT( df
,"df [flags] - Displays or sets debug flags\n"
," df - display debug flags\n"
" df [flags] - enter new flags in format <File/Line><Print><Prompt>\n"
" <File/Line> = [0|1]\n"
" <Print> = [0-7] Errors = 1, Warnings = 2, Verbose = 4\n"
" <Prompt> = [0-7] Errors = 1, Warnings = 2, Verbose = 4\n"
" The default is 031\n"
,""
,CUSTOM)
#endif // KERNEL
DOIT( dhe
,"dhe [pointer|handle] - Dump handle entry\n"
," dhe - dumps all handle entrys\n"
,""
,STDARGS1)
#ifdef KERNEL
DOIT( dhk
,"dhk -ag [pti] - Dump hooks\n"
," dhk - dumps local hooks on the foreground thread\n"
" dhk -g - dumps global hooks\n"
" dhk pti - dumps local hooks on THREADINFO at pti\n"
" dhk -g pti - dumps global hooks and local hooks on THREADINFO at pti\n"
" dhk -a - dumps local hooks for all threads\n"
" dhk -ag - dumps global hooks and local hooks for all threads\n"
,"ga"
,STDARGS1)
DOIT( dhot
,"dhot - Dump registered hotkeys\n"
,""
,""
,NOARGS)
DOIT( dhs
,"dhs -vpty [id|type] - Dump handle table statistics\n"
," dhs - dumps simple statistics for whole table\n"
" dhs -t id - dumps simple statistics for objects created by thread id\n"
" dhs -p id - dumps simple statistics for objects created by process id\n"
" dhs -v - dumps verbose statistics\n"
" dhs -y type - dumps statistics for objects of type.\n"
,"tpvy"
,STDARGS1)
DOIT( di
,"di - Displays USER input processing globals.\n"
,""
,""
,NOARGS)
DOIT( dkl
,"dkl -akv <pkl> - Dump keyboard layout structures\n"
," dkl pkl - Dump the keyboard layout structure at pkl\n"
" dkl -a pkl - Dump all keyboard layout structures beginning with pkl\n"
" dkl -k[v] - Dump pklActive for all threads (v for verbose)\n"
,"akv"
,STDARGS1)
DOIT( ddk
,"ddk <pKbdTbl> - Dump deadkey table\n"
," ddk pKbdTbl - Dump the deadkey table at pKbdTbl\n"
,""
,STDARGS1)
#ifdef FE_IME
DOIT( dii
,"dii <piiex> - Dump extended IME information\n"
," dii piiex - Dump the extended IME information at piiex\n"
" dii -h hkl - Dump the extended IME information of hkl\n"
,""
,STDARGS1)
#endif
#endif // KERNEL
DOIT( dll
,"dll [[*]addr [l#] [o#] [c#]] - Dump linked list\n"
," dll addr - dumps list starting at addr 8 DWORDs each structure,\n"
" assumes link is first DWORD, w/NULL termination.\n"
" dll *addr - same except starts at *addr\n"
" dll - dumps next group of structures w/same options\n"
" \nOptions:\n"
" dll addr l3 - dumps 3 DWORDs per structure\n"
" dll addr o4 - next link is 4 DWORDs from top of structure\n"
" dll addr c5 - dumps 5 structures only (defaults to 25)\n"
" dll addr l3 o4 c5 - same as above\n"
,""
,CUSTOM)
#ifdef KERNEL
DOIT( dlr
,"dlr <pointer|handle> - Displays assignment locks for object\n"
,""
,""
,STDARGS1)
#endif //KERNEL
DOIT( dm
,"dm -vris <menu|window> - Dumps a menu\n"
," -v - Verbose information mode\n"
" -r - Recurse through sub-menus\n"
" -i - Ignore items in the menu\n"
" -s - dump a window's System menu\n"
,"virs"
,STDARGS1)
#ifdef KERNEL
DOIT( dmq
,"dmq [-a] [pq] - Messages in queues\n"
," dmq [pq] - lists messages in queue specified (default gpqForeground)\n"
" dmq -a - lists messages in all queues\n"
,"a"
,STDARGS1)
DOIT( dms
,"dms <MenuState> - Dumps a pMenuState\n"
,""
,""
,STDARGS1)
#endif // KERNEL
#ifndef KERNEL
DOIT( dped
,"dped <ped> - Dump PEDitControl structure\n"
,""
,""
,STDARGS1)
DOIT( dci
,"dci - Dump process client info.\n"
,""
,""
,NOARGS)
#endif //!KERNEL
#ifdef KERNEL
DOIT( dpi
,"dpi [ppi] - Displays PROCESSINFO structure specified\n"
" dpi -c - dumps PROCESSINFO for current process\n"
," dpi address - dumps PROCESSINFO structure at address\n"
" dpi - dumps all PROCESSINFO structures\n"
,"c"
,STDARGS1)
#endif // KERNEL
#ifdef KERNEL
DOIT( dpm
,"dpm <ppopupmenu> - Dumps a popupmenu\n"
,""
,""
,STDARGS1)
#endif // KERNEL
#ifdef KERNEL
DOIT( dq
,"dq -t [pq] - Displays Q structure specified\n"
," dq address - dumps queue structure at address\n"
" dq -t address - dumps queue structure at address plus THREADINFO\n"
" dq - dumps all queues.\n"
,"t"
,STDARGS1)
#endif // KERNEL
DOIT( dsbt
,"dsbt <pSBTrack> - Displays Scroll Bar Track structure\n"
," dsbt pti - dumps SBTrack info in pti\n"
,""
,STDARGS1)
DOIT( dsbwnd
,"dsbwnd <psbwnd> - Dump extra fields of Scrollbar windows\n"
,""
,""
,STDARGS1)
DOIT( dsi
,"dsi [-bchmopvw] - Displays SERVERINFO struct\n"
,"dsi -b - adds mpFnid_serverCBWndProc info.\n"
"dsi -c - adds aszSysColor info.\n"
"dsi -h - adds SHAREDINFO info.\n"
"dsi -m - adds system metrics data.\n"
"dsi -o - adds oemInfo info.\n"
"dsi -p - adds mpFnidPfn info.\n"
"dsi -v - verbose shows rarely needed fields.\n"
"dsi -w - adds aStoCidPfn info.\n"
,"bchjmopvw"
,STDARGS0)
#ifdef KERNEL
DOIT( dsms
,"dsms -vl [psms] - Displays SMS (SendMessage structure) specified\n"
," dsms - dumps all send message structures\n"
" dsms -v - dumps all verbose\n"
" dsms address - dumps specific sms\n"
" dsms -v address- dumps verbose\n"
" dsms -l address- dumps SendList of sms\n"
,"vl"
,STDARGS1)
#endif // KERNEL
DOIT( dso
,"dso <Struct> [Field] [Address]- Dumps Struct field(s)'s offset(s) and value(s).\n"
,""
,""
,CUSTOM)
#ifdef KERNEL
DOIT( dt
,"dt -vcp [id] - Displays simple thread information\n"
," dt - dumps simple thread info of all window threads\n"
" dt -v - verbose output\n"
" dt id - dumps simple thread info of single server thread id\n"
" dt -p pti - takes a pti instead of a thread id\n"
" dt -c - dumps current thread for current processor.\n"
,"vpc"
,STDARGS1)
DOIT( dtdb
,"dtdb [ptdb] - Dump Task Database\n"
," dtdb <ptdb> - dumps given ptdb.\n"
" dtdb - dumps all dtdbs.\n"
,""
,STDARGS1)
#else // !KERNEL
DOIT( dteb
,"dteb - Displays selected TEB information.\n"
,""
,""
,NOARGS)
#endif // !KERNEL
#ifdef KERNEL
DOIT( dti
,"dti [pti] - Displays THREADINFO structure\n"
," dti - dumps THREADINFO structure of foreground thread\n"
" dti address - dumps THREADINFO structure at address\n"
,""
,STDARGS1)
#endif // KERNEL
#ifdef KERNEL
DOIT( dtl
,"dtl [-t] [pointer|handle] - Displays thread locks\n"
,"dtl pObj - dump thread locks for object\n"
"dtl -t pti - dump thread locks for thread\n"
"dtl - dump all thread locks\n"
,"t"
,STDARGS1)
#endif //KERNEL
#ifdef KERNEL
DOIT( dtmr
,"dtmr [ptmr] - Dumps timer structure.\n"
," dtmr <ptrm> - dump timer.\n"
" dtmr - dump all timers.\n"
,""
,STDARGS1)
#endif // KERNEL
DOIT( du
,"du [pointer|handle] - Generic object dumping routine\n"
," Attempts to dump the object appropriately.\n"
" If no object is given - WARNING - ALL objects are dumped.\n"
,""
,STDARGS1)
#ifdef KERNEL
DOIT( dumphmgr
,"dumphmgr [-s] - Dumps object allocation counts (dbg only)\n"
,""
,"s"
,STDARGS0)
#endif //KERNEL
DOIT( dw
,"dw -afhvsprw [pwnd] - Displays information on windows in system\n"
,
" dw - dumps simple window info for all top level windows of current\n"
" desktop.\n"
" dw -v - dumps verbose window info for same windows.\n"
" dw pwnd - dumps simple window info for window at pwnd\n"
" (takes handle too)\n"
" dw -v pwnd - dumps verbose window info for window at pwnd\n"
" (takes handle too)\n"
" dw -p pwnd - dumps info for all child windows of window at pwnd\n"
" dw -s pwnd - dumps info for all sibling windows of window at pwnd\n"
" dw -f [pwnd] - dumps flags for window at pwnd or all toplevel windows\n"
" dw -r [pwnd] - dumps relationship of windows beneath pwnd or desktop window\n"
" dw -w pwnd - dumps window words of pwnd.\n"
" dw -a - added to any of the above commands - applies to all desktops.\n"
" dw -h - add -h to show wndproc symbol - slower.\n"
,"afhvsprw"
,STDARGS1)
#ifdef KERNEL
DOIT( dwpi
,"dwpi -p [pwpi | ppi] - Displays WOWPROCESSINFO structure specified\n"
," dwpi <pwpi> - dump a pwpi structure.\n"
" dwpi -p <ppi> - dump pwpis for this process.\n"
" dwpi - dump all pwpis.\n"
,"p"
,STDARGS1)
#endif // KERNEL
#ifdef KERNEL
DOIT( dws
,"dws [pws] - Dump windowstations\n"
," dws <pws> - dump windows station\n"
" dws - dump all window stations\n"
,""
,STDARGS1)
#endif //KERNEL
DOIT( find
,"find baseaddr addr [o#] - Find linked list element\n"
," find baseaddr addr - searches list for addr starting at baseaddr,\n"
" assumes link is first DWORD, w/NULL termination.\n"
" find baseaddr addr o4 - next link is 4 DWORDS from start of structure\n"
,""
,CUSTOM)
DOIT( fno
,"fno <address> - Find nearest object.\n"
," Locates the nearest public USER objects to the given address.\n"
,""
,STDARGS1)
DOIT( frr
,"frr <psrcLo> <psrcHi> <prefLo> [prefHi] - Find Range Reference\n"
," Used to search memory within the src range for references to\n"
" addresses within the ref range.\n"
,""
,STDARGS4)
#ifdef KERNEL
DOIT( kbd
,"kbd -au [pq] - Displays key state for queue\n"
," kbd - dumps key state for foreground queue\n"
" kbd pq - dumps key state for queue structure at pq\n"
" kbd -a - dumps key state for all queues\n"
" kbd -u pq - dumps update key state at pq\n"
,"ua"
,STDARGS1)
#endif // KERNEL
#ifndef KERNEL
DOIT( kbp
,"kbp - Breaks into the Kernel Debugger\n"
,""
,""
,NOARGS)
#endif
DOIT( sas
,"sas [-s] <addr> [length] - Stack Analysis Stuff\n"
,"sas -d [-s] <number> - to just analyze a number.\n"
" length defaults to 25.\n"
" -s suppresses symbolic output.\n"
,"ds"
,STDARGS2)
DOIT( test
,"test - Test basic debug functions.\n"
,""
,""
,NOARGS)
DOIT( uver
,"uver - show versions of user and exts.\n"
,""
,""
,NOARGS)