test: exts.h Source File

Main Page | Class Hierarchy | Class List | File List | Class Members | File Members

# exts.h

Go to the documentation of this file.

    00001 /************************************************************************\
    00002 *
    00003 * MODULE: exts.h
    00004 *
    00005 * DESCRIPTION: macro driving file for use with stdexts.h and stdexts.c.
    00006 *
    00007 * Copyright (c) 1985 - 1999, Microsoft Corporation
    00008 *
    00009 * 6/9/1995 SanfordS Created
    00010 *
    00011 \************************************************************************/
    00012
    00013 DOIT(   help
    00014         ,"help -v [cmd]                 - Displays this list or gives details on command\n"
    00015         ,"  help      - To dump short help text on all commands.\n"
    00016          "  help -v   - To dump long help text on all commands.\n"
    00017          "  help cmd  - To dump long help on given command.\n"
    00018         ,"v"
    00019         ,CUSTOM)
    00020
    00021 #ifdef KERNEL
    00022 DOIT(   atom
    00023         ,"atom                          - Dump atoms or atom tables\n"
    00024         ,"atom -gl [atom]\n"
    00025         ,"gl"
    00026         ,STDARGS1)
    00027 #endif // KERNEL
    00028
    00029 #ifndef KERNEL
    00030 DOIT(   cbp
    00031         ,"cbp                           - Breaks into the Debugger on CSRSS.EXE\n"
    00032         ,""
    00033         ,""
    00034         ,NOARGS)
    00035 #endif
    00036
    00037 #ifndef KERNEL
    00038 DOIT(   dci
    00039         ,"dci                           - Dump process client info.\n"
    00040         ,""
    00041         ,""
    00042         ,NOARGS)
    00043 #endif
    00044
    00045 #ifdef KERNEL
    00046 DOIT(   dcls
    00047         ,"dcls [pcls]                   - Dump window class\n"
    00048         ,"  dcls -v     - for verbose info.\n"
    00049          "  dcls        - to list all classes.\n"
    00050          "  dcls -p ppi - to list all classes for process ppi\n"
    00051         ,"pv"
    00052         ,STDARGS1)
    00053 #endif // KERNEL
    00054
    00055 #ifdef KERNEL
    00056 DOIT(   dcur
    00057         ,"dcur -aivp [pcur]             - Dump cursors\n"
    00058         ,"  dcur         - dump all cursor objects.\n"
    00059          "  dcur -i <id> - dump cursors with given res id.\n"
    00060          "  dcur -p <ppi>- dump cursors owned by ppi.\n"
    00061          "  dcur -v      - dump in verbose format.\n"
    00062          "  dcur -a      - expand dump of ACONs.\n"
    00063          "  dcur <pcur>  - dump given cursor handle or pointer.\n"
    00064         ,"aivp"
    00065         ,STDARGS1)
    00066 #endif // KERNEL
    00067
    00068 #ifdef KERNEL
    00069 DOIT(   dde
    00070         ,"dde -vr [conv|window|xact]    - Dump DDE tracking information\n"
    00071         ,"  v - verbose\n"
    00072          "  r - recurse to inner structures 1 level\n"
    00073          "  window object - dumps all convs associated w/window\n"
    00074          "  conv object - dumps conversation.\n"
    00075          "  xact object - dumps transaction.\n"
    00076         ,"vr"
    00077         ,STDARGS1)
    00078 #endif // KERNEL
    00079
    00080 #ifdef KERNEL
    00081 DOIT(   ddl
    00082         ,"ddl [pdesk]                   - Dump desktop log\n"
    00083         ,"  ddl pdesk    - dumps the desktop log for pdesk.\n"
    00084          "  ddl -v pdesk - dumps the desktop log for pdesk with stack traces.\n"
    00085         ,"v"
    00086         ,STDARGS1)
    00087 #endif // KERNEL
    00088
    00089 #ifndef KERNEL
    00090 DOIT(   ddeml
    00091         ,"ddeml -v [i<inst>] [t<type>] [hObj|pObj] - Dump DDEML state information\n"
    00092         ,"  ddeml                     - lists all ddeml instances for this process\n"
    00093          "  ddeml t<type>             - lists all ddeml objects of the given type\n"
    00094          "  type 0 = All types\n"
    00095          "  type 1 = Instances\n"
    00096          "  type 2 = Server Conversations\n"
    00097          "  type 3 = Client Conversations\n"
    00098          "  type 4 = Conversation Lists\n"
    00099          "  type 5 = Transactions\n"
    00100          "  type 6 = Data Handles\n"
    00101          "  type 7 = Zombie Conversations\n"
    00102          "  ddeml i<instance> t<type> - restricts listing to one instance.\n"
    00103          "  ddeml hObj                - dumps ddeml object\n"
    00104          "  adding a 'v' simply turns lists into dumps.\n"
    00105         ,"v"
    00106         ,CUSTOM)
    00107 #endif
    00108
    00109 #ifdef KERNEL
    00110 DOIT(   ddesk
    00111         ,"ddesk -vh <pdesk>             - Displays objects allocated in desktop\n"
    00112         ,"  ddesk           - dumps list of desktops\n"
    00113          "  ddesk address   - dumps simple statistics for desktop\n"
    00114          "  ddesk v address - dumps verbose statistics for desktop\n"
    00115          "  ddesk h address - dumps statistics for desktop plus handle list\n"
    00116         ,"vh"
    00117         ,STDARGS1)
    00118 #endif // KERNEL
    00119
    00120 #ifdef KERNEL
    00121 DOIT(   ddk
    00122         ,"ddk <pKbdTbl>                 - Dump deadkey table\n"
    00123         ,"  ddk pKbdTbl   - Dump the deadkey table at pKbdTbl\n"
    00124         ,""
    00125         ,STDARGS1)
    00126 #endif
    00127
    00128 DOIT(   df
    00129         ,"df [flags] | [-p pid]         - Displays or sets debug flags\n"
    00130         ,"  df            - display debug flags\n"
    00131          "  df [flags]  - enter new flags in format <Detail><Print><Prompt> \n"
    00132          "      <Detail>    = [0-3] Print File/Line = 1, Hide PID/Component = 2\n"
    00133          "      <Print>     = [0-7] Errors = 1, Warnings = 2, Verbose = 4\n"
    00134          "      <Prompt>    = [0-7] Errors = 1, Warnings = 2, Verbose = 4\n"
    00135          "    The default is 031\n"
    00136          "  df -p pid   - shows rips only for this pid or 0 for all\n"
    00137         ,"px"
    00138         ,CUSTOM)
    00139
    00140 DOIT(   dhe
    00141         ,"dhe [pointer|handle] | [-t[o[p]] type [pti/ppi]] - Dump handle entry(ies)\n"
    00142         ,"  dhe            - dumps all handle entrys\n"
    00143          "      -t dumps of all handles of the given type\n"
    00144          "      -o all handles owned by pti/ppi\n"
    00145          "      -op all handles owned by ppi or any thread in this process\n"
    00146         ,"orpt"
    00147         ,STDARGS2)
    00148
    00149 #ifdef KERNEL
    00150 DOIT(   dhk
    00151         ,"dhk -ag [pti]                 - Dump hooks\n"
    00152         ,"  dhk            - dumps local hooks on the foreground thread\n"
    00153          "  dhk -g         - dumps global hooks\n"
    00154          "  dhk pti        - dumps local hooks on THREADINFO at pti\n"
    00155          "  dhk -g pti     - dumps global hooks and local hooks on THREADINFO at pti\n"
    00156          "  dhk -a         - dumps local hooks for all threads\n"
    00157          "  dhk -ag        - dumps global hooks and local hooks for all threads\n"
    00158          ,"ga"
    00159          ,STDARGS1)
    00160 #endif
    00161
    00162 #ifdef KERNEL
    00163 DOIT(   dhot
    00164         ,"dhot                          - Dump registered hotkeys\n"
    00165         ,""
    00166         ,""
    00167         ,NOARGS)
    00168 #endif
    00169
    00170 #ifdef KERNEL
    00171 DOIT(   dhs
    00172         ,"dhs -vpty [id|type]           - Dump handle table statistics\n"
    00173         ,"  dhs           - dumps simple statistics for whole table\n"
    00174          "  dhs -t id     - dumps simple statistics for objects created by thread id\n"
    00175          "  dhs -p id     - dumps simple statistics for objects created by process id\n"
    00176          "  dhs -v        - dumps verbose statistics\n"
    00177          "  dhs -y type   - dumps statistics for objects of type.\n"
    00178         ,"tpvy"
    00179         ,STDARGS1)
    00180 #endif
    00181
    00182 #ifdef KERNEL
    00183 DOIT(   di
    00184         ,"di                            - Displays USER input processing globals.\n"
    00185         ,""
    00186         ,""
    00187         ,NOARGS)
    00188 #endif
    00189
    00190 #if defined(KERNEL)
    00191 DOIT(   dii
    00192         ,"dii <piiex>                   - Dump extended IME information\n"
    00193         ,"  dii piiex     - Dump the extended IME information at piiex\n"
    00194          "  dii -h hkl    - Dump the extended IME information of hkl\n"
    00195         ,"h"
    00196         ,STDARGS1)
    00197 #endif
    00198
    00199
    00200 DOIT(   dimc
    00201         ,"dimc [-hrvus] -[wci] [imc|wnd,etc.] - Dump Input Context\n"
    00202         ,"  dimc [opts] <himc|pimc>      - dumps kernel side imc\n"
    00203          "  dimc [opts] -w wnd           - dumps kernel side imc of wnd\n"
    00204          "  dimc [opts] -c <pClientImc>     - dumps client side imc\n"
    00205          "  dimc [opts] -i <pInputContext>  - dumps inputcontext\n"
    00206          "       -h                      - show open, conversion, sentence mode and handles\n"
    00207          "       -d                      - show hCompStr, hCanInfo etc (includes -h).\n"
    00208          "       -r                      - recurse pImeModeSaver\n"
    00209          "       -v                      - verbose\n"
    00210          "       -u                      - assume UNICODE (use with -i)\n"
    00211          "       -s                      - show relatively raw Composition String\n"
    00212          "       -a                      - all\n"
    00213         ,"wcihdrvusa"
    00214         ,STDARGS1)
    00215
    00216 #ifdef KERNEL
    00217 DOIT(   dimk
    00218         ,"dimk [pImeHotKeyObj]          - Dump IME Hotkeys\n"
    00219         ,""
    00220         ,""
    00221         ,STDARGS1)
    00222 #endif
    00223
    00224 #if !defined(KERNEL)
    00225 DOIT(   dimedpi
    00226         ,""
    00227         ,"  dimedpi          - Dump all IMEDPI\n"
    00228          "  dimedpi <addr>   - Dump IMEDPI at <addr>\n"
    00229          "  dimedpi -v       - Dump with !dso format\n"
    00230          "  dimedpi -i       - Dump ImeInfo\n"
    00231         ,"vi"
    00232         ,STDARGS1)
    00233 #endif
    00234
    00235 #ifdef KERNEL
    00236 DOIT(   dinp
    00237         ,"dinp -v [pDeviceInfo]         - Dump input diagnostics\n"
    00238         ,"  dinp <addr>    - Complete DeviceInfo struct at <addr>\n"
    00239          "  dinp           - Short summary of all input devices\n"
    00240          "  dinp -i <addr> - Dump input records for DeviceInfo struct at <addr>\n"
    00241          "  dinp -v        - Dump complete DeviceInfo for all devices\n"
    00242         ,"iv"
    00243         ,STDARGS1)
    00244
    00245 DOIT(   dkl
    00246         ,"dkl -akv <pkl>                - Dump keyboard layout structures\n"
    00247         ,"  dkl pkl       - Dump the keyboard layout structure at pkl\n"
    00248          "  dkl -a pkl    - Dump all keyboard layout structures beginning with pkl\n"
    00249          "  dkl -k[v]     - Dump pklActive for all threads (v for verbose)\n"
    00250         ,"akv"
    00251         ,STDARGS1)
    00252 #endif
    00253
    00254 DOIT(   disi
    00255         ,""
    00256         ,"disi <pinput>                 - Dump event injection union\n"
    00257          ""
    00258         ,""
    00259         ,STDARGS1)
    00260
    00261 DOIT(   ddlgt
    00262         ,""
    00263         ,"ddlgt <pdlgTemplate>          - Dump dialog template\n"
    00264          "  ddlgt -v <pdlgTemplate>     - verbose\n"
    00265          "  ddlgt -r <pdlgTemplate>     - print dialog items\n"
    00266         ,"vr"
    00267         ,STDARGS1)
    00268
    00269 DOIT(   dll
    00270         ,"dll [*]addr [l#] [b#] [o#] [c#] [t[addr]] - Dump linked list (can Ctrl-C)\n"
    00271         ,"  dll addr    - dumps list starting at addr 8 DWORDs each structure,\n"
    00272          "                assumes link is first DWORD, w/NULL termination.\n"
    00273          "  dll *addr   - same except starts at *addr\n"
    00274          "  dll         - dumps next group of structures w/same options\n"
    00275          "  \nOptions:\n"
    00276          "  dll addr l3 - dumps 3 DWORDs per structure (default 8)\n"
    00277          "  dll addr b2 - starts dump 2 DWORDs back - for LIST_ENTRYs (default 0)\n"
    00278          "  dll addr o4 - next link is 4 DWORDs from top of structure (default 0)\n"
    00279          "  dll addr c5 - dumps 5 structures only (defaults to 25)\n"
    00280          "  dll addr l3 b2 o4 c5 - combines the option of the four previous lines\n"
    00281          "  dll addr t  - counts (not dumps) items in list, tests for loop\n"
    00282          "  dll addr t<addr>  - as above, halts if item at <addr> is found\n"
    00283          "  dll addr t c5000  - as above, but limit c5000 (t default is c100000)\n"
    00284         ,""
    00285         ,CUSTOM)
    00286
    00287 #ifdef KERNEL
    00288 DOIT(   dlr
    00289         ,"dlr <pointer|handle>          - Displays assignment locks for object\n"
    00290         ,""
    00291         ,""
    00292         ,STDARGS1)
    00293 #endif //KERNEL
    00294
    00295 DOIT(   dm
    00296         ,"dm -vris <menu|window>        - Dumps a menu\n"
    00297         ,"  -v   - Verbose information mode\n"
    00298          "  -r   - Recurse through sub-menus\n"
    00299          "  -i   - Ignore items in the menu\n"
    00300          "  -s   - dump a window's System menu\n"
    00301         ,"virs"
    00302         ,STDARGS1)
    00303
    00304 DOIT(   dmon
    00305         ,"dmon <pMonitor>               - Dump MONITOR\n"
    00306         ,"  dmon <pMonitor> - dump MONITOR at address\n"
    00307         ,""
    00308         ,STDARGS1)
    00309
    00310 #ifdef KERNEL
    00311 DOIT(   dmq
    00312         ,"dmq [-ac] [pq]                - Messages in queues\n"
    00313         ,"  dmq [pq]  - lists messages in queue specified (default gpqForeground)\n"
    00314          "  dmq -a    - lists messages in all queues\n"
    00315          "  dmq -c    - counts messages in all queues\n"
    00316         ,"ac"
    00317         ,STDARGS1)
    00318 #endif
    00319
    00320 #ifdef KERNEL
    00321 DOIT(   dms
    00322         ,"dms <MenuState>               - Dumps a pMenuState\n"
    00323         ,""
    00324         ,""
    00325         ,STDARGS1)
    00326 #endif // KERNEL
    00327
    00328 #ifdef KERNEL
    00329 DOIT(   dp
    00330         ,"dp -vcpt  [id]                - Displays simple process information\n"
    00331         ,"  dp            - dumps simple process info of all W32 processes\n"
    00332          "  dp -v         - verbose output\n"
    00333          "  dp id/pep     - dumps process with given id or PEPROCESS pointer\n"
    00334          "  dp -p ppi     - takes a ppi instead of a process id/pep\n"
    00335          "  dp -c         - dumps current process for the current processor.\n"
    00336          "  dp -t         - dumps threads for given process.\n"
    00337         ,"vpct"
    00338         ,STDARGS1)
    00339 #endif
    00340
    00341 #ifndef KERNEL
    00342 DOIT(   dped
    00343         ,"dped <ped>                    - Dump PEDitControl structure\n"
    00344         ,""
    00345         ,""
    00346         ,STDARGS1)
    00347 #endif
    00348
    00349 #ifdef KERNEL
    00350 #if 0
    00351 DOIT(   dphys
    00352         ,"dphys [pdi]                   - Dump PHYSICAL_DEV_INFO\n"
    00353         ,"  dphys          - dump gpPhysDevInfo\n"
    00354          "  dphys address  - dump PHYSICAL_DEV_INFO at address\n"
    00355         ,""
    00356         ,STDARGS1)
    00357 #endif
    00358 #endif
    00359
    00360 #ifdef KERNEL
    00361 DOIT(   dpi
    00362         ,"dpi [ppi]                     - Displays PROCESSINFO structure specified\n"
    00363         ,"  dpi -c         - dumps PROCESSINFO for current process\n"
    00364          "  dpi address    - dumps PROCESSINFO structure at address\n"
    00365          "  dpi            - dumps all PROCESSINFO structures\n"
    00366         ,"c"
    00367         ,STDARGS1)
    00368 #endif // KERNEL
    00369
    00370 #ifdef KERNEL
    00371 DOIT(   dpm
    00372         ,"dpm <ppopupmenu>              - Dumps a popupmenu\n"
    00373         ,""
    00374         ,""
    00375         ,STDARGS1)
    00376 #endif // KERNEL
    00377
    00378 #ifdef KERNEL
    00379 DOIT(   dq
    00380         ,"dq -t [pq]                    - Displays Q structure specified\n"
    00381         ,"  dq address    - dumps queue structure at address\n"
    00382          "  dq -t address - dumps queue structure at address plus THREADINFO\n"
    00383          "  dq -a         - dumps all queues\n"
    00384          "  dq            - dumps gpqForeground\n"
    00385         ,"at"
    00386         ,STDARGS1)
    00387 #endif // KERNEL
    00388
    00389 DOIT(   dsbt
    00390         ,"dsbt <pSBTrack>               - Displays Scroll Bar Track structure\n"
    00391         ,"  dsbt pti       - dumps SBTrack info in pti\n"
    00392         ,""
    00393         ,STDARGS1)
    00394
    00395 DOIT(   dsbwnd
    00396         ,"dsbwnd <psbwnd>               - Dump extra fields of Scrollbar windows\n"
    00397         ,""
    00398         ,""
    00399         ,STDARGS1)
    00400
    00401 DOIT(   dsi
    00402         ,"dsi [-bchmopvw]               - Displays SERVERINFO struct\n"
    00403         ,"dsi -b    - adds mpFnid_serverCBWndProc info.\n"
    00404          "dsi -c    - adds aszSysColor info.\n"
    00405          "dsi -h    - adds SHAREDINFO info.\n"
    00406          "dsi -m    - adds system metrics data.\n"
    00407          "dsi -o    - adds oemInfo info.\n"
    00408          "dsi -p    - adds mpFnidPfn info.\n"
    00409          "dsi -v    - verbose shows rarely needed fields.\n"
    00410          "dsi -w    - adds aStoCidPfn info.\n"
    00411         ,"bchjmopvw"
    00412         ,STDARGS0)
    00413
    00414 #ifdef KERNEL
    00415 DOIT(   dsms
    00416         ,"dsms -vl [psms]               - Displays SMS (SendMessage structure) specified\n"
    00417         ,"  dsms           - dumps all send message structures\n"
    00418          "  dsms -c        - counts messages, doesn't display any\n"
    00419          "  dsms -v        - dumps all verbose\n"
    00420          "  dsms -m msg    - dumps all sms with message == msg\n"
    00421          "  dsms address   - dumps specific sms\n"
    00422          "  dsms -v address- dumps verbose\n"
    00423          "  dsms -l address- dumps SendList of sms\n"
    00424         ,"clmv"
    00425         ,STDARGS1)
    00426 #endif // KERNEL
    00427
    00428 DOIT(   dso
    00429         ,"dso <Struct> [Field] [addr [*n]]- Dumps Struct field(s)'s offset(s) & value(s)\n"
    00430         ,"dso -v   - Dumps also the nested structures.\n"
    00431          "    *n   - Dumps n structs from an array at starting at addr (default = 1)\n"
    00432         ,"v"
    00433         ,CUSTOM)
    00434
    00435 #ifdef KERNEL
    00436 DOIT(   dt
    00437         ,"dt -gvcp [id]                 - Displays simple thread information\n"
    00438         ,"  dt            - dumps simple thread info of all window threads\n"
    00439          "  dt -c         - dumps current thread for current processor.\n"
    00440          "  dt -g         - dump GUI threads only\n"
    00441          "  dt id/pet     - dumps thread with given id or PETHREAD pointer\n"
    00442          "  dt -p pti     - takes a pti instead of a thread id/pet\n"
    00443          "  dt -s [...]   - displays wait state\n"
    00444          "  dt -v         - verbose output\n"
    00445         ,"cgpsv"
    00446         ,STDARGS1)
    00447 #endif
    00448
    00449 #ifdef KERNEL
    00450 DOIT(   dtdb
    00451         ,"dtdb [ptdb]                   - Dump Task Database\n"
    00452         ,"  dtdb <ptdb>   - dumps given ptdb.\n"
    00453          "  dtdb          - dumps all dtdbs.\n"
    00454         ,""
    00455         ,STDARGS1)
    00456 #endif
    00457
    00458 #ifndef KERNEL
    00459 DOIT(   dteb
    00460         ,"dteb                          - Displays selected TEB information.\n"
    00461         ,""
    00462         ,""
    00463         ,NOARGS)
    00464 #endif // !KERNEL
    00465
    00466 #ifdef KERNEL
    00467 DOIT(   dti
    00468         ,"dti [pti]                     - Displays THREADINFO structure\n"
    00469         ,"  dti            - dumps THREADINFO structure of foreground thread\n"
    00470          "  dti address    - dumps THREADINFO structure at address\n"
    00471         ,""
    00472         ,STDARGS1)
    00473 #endif // KERNEL
    00474
    00475 #ifdef KERNEL
    00476 DOIT(   dtl
    00477         ,"dtl [-t] [pointer|handle]     - Displays thread locks\n"
    00478         ,"dtl pObj      - dump thread locks for object/pool/kernel-object\n"
    00479          "dtl -t pti    - dump thread locks for thread\n"
    00480          "dtl           - dump all thread locks\n"
    00481         ,"t"
    00482         ,STDARGS1)
    00483 #endif //KERNEL
    00484
    00485 #ifdef KERNEL
    00486 DOIT(   dtmr
    00487         ,"dtmr [ptmr]                   - Dumps timer structure.\n"
    00488         ,"  dtmr <ptrm> - dump timer.\n"
    00489          "  dtmr        - dump all timers.\n"
    00490         ,""
    00491         ,STDARGS1)
    00492 #endif // KERNEL
    00493
    00494 DOIT(   du
    00495         ,"du [pointer|handle]           - Generic object dumping routine\n"
    00496         ,"  Attempts to dump the object appropriately.\n"
    00497          "  If no object is given - WARNING - ALL objects are dumped.\n"
    00498         ,""
    00499         ,STDARGS1)
    00500
    00501 #ifdef KERNEL
    00502 DOIT(   dup
    00503         ,"dup                           - User Preferences DWORDS\n"
    00504         ,""
    00505         ,""
    00506         ,NOARGS)
    00507 #endif //KERNEL
    00508
    00509 #ifdef KERNEL
    00510 DOIT(   dupm
    00511         ,"dupm                          - User Preference Bitmask\n"
    00512         ,""
    00513         ,""
    00514         ,NOARGS)
    00515 #endif //KERNEL
    00516
    00517 #ifdef KERNEL
    00518 DOIT(   dumphmgr
    00519         ,"dumphmgr [-s]                 - Dumps object allocation counts (dbg only)\n"
    00520         ,""
    00521         ,"s"
    00522         ,STDARGS0)
    00523 #endif //KERNEL
    00524
    00525 DOIT(   dw
    00526         ,"dw -aefhvsprwoz [hwnd/pwnd]   - Displays information on windows in system\n"
    00527         ,
    00528          "  dw hwnd/pwnd  - dumps simple window info for window at pwnd\n"
    00529          "  dw            - dumps simple window info for all top level windows of current\n"
    00530          "                  desktop.\n"
    00531          "  dw -v [pwnd]  - dumps verbose window info\n"
    00532          "  dw -a         - added to any of the other commands - applies to all desktops.\n"
    00533          "  dw -f [pwnd]  - dumps flags for window at pwnd or all toplevel windows\n"
    00534          "  dw -h         - add -h to show wndproc symbol - slower.\n"
    00535          "  dw -o pwnd    - dumps properties of pwnd.\n"
    00536          "  dw -p pwnd    - dumps info for all child windows of window at pwnd\n"
    00537          "  dw -r [pwnd]  - dumps relationship of windows beneath pwnd or desktop window\n"
    00538          "  dw -s pwnd    - dumps info for all sibling windows of window at pwnd\n"
    00539          "  dw -t <pti>   - Like EnumThreadWindows\n"
    00540          "  dw -w pwnd    - dumps window words of pwnd.\n"
    00541          "  dw -z         - Added to show z-ordering/activation revelant info\n"
    00542         ,"afhvsprtwoz"
    00543         ,STDARGS1)
    00544
    00545 #ifdef KERNEL
    00546 DOIT(   dwe
    00547         ,"dwe [-n] [addr]               - Displays WinEvent hooks/notifies\n"
    00548         ,
    00549          "  dwe <peh>    - dump EVENTHOOK struct.\n"
    00550          "  dwe          - dump all EVENTHOOKS.\n"
    00551          "  dwe -n <pn>  - dump NOTIFY struct.\n"
    00552          "  dwe -n       - dump all NOTIFYs.\n"
    00553         ,"n"
    00554         ,STDARGS1)
    00555 #endif // KERNEL
    00556
    00557 #ifdef KERNEL
    00558 DOIT(   dwpi
    00559         ,"dwpi -p [pwpi | ppi]          - Displays WOWPROCESSINFO structure specified\n"
    00560         ,"  dwpi <pwpi>   - dump a pwpi structure.\n"
    00561          "  dwpi -p <ppi> - dump pwpis for this process.\n"
    00562          "  dwpi          - dump all pwpis.\n"
    00563         ,"p"
    00564         ,STDARGS1)
    00565 #endif // KERNEL
    00566
    00567 #ifdef KERNEL
    00568 DOIT(   dws
    00569         ,"dws [pws]                     - Dump windowstations\n"
    00570         ,"  dws <pws>     - dump windows station\n"
    00571          "  dws           - dump all window stations\n"
    00572         ,""
    00573         ,STDARGS1)
    00574 DOIT(   dcss
    00575         ,"dcss                          - Dump critical section stack traces\n"
    00576         ,"  dws           - dump all stack straces\n"
    00577         ,""
    00578         ,STDARGS1)
    00579 DOIT(   dpa
    00580         ,"dpa -cvsfrp     - Dump pool allocations\n"
    00581         ,"  dpa -c        - dump current pool allocations statistics\n"
    00582          "  dpa -v        - dump all the current pool allocations\n"
    00583          "  dpa -vs       - include stack traces\n"
    00584          "  dpa -f        - dump failed allocations\n"
    00585          "  dpa -r        - dump free pool\n"
    00586          "  dpa -p <ptr>  - dump the allocation containing pointer 'ptr'\n"
    00587         ,"cvsfrp"
    00588         ,STDARGS1)
    00589 DOIT(   dvs
    00590         ,"dvs -s                        - Dump sections and mapped views\n"
    00591         ,"  dvs -s        - dump stack traces also\n"
    00592         ,"s"
    00593         ,STDARGS1)
    00594 DOIT(   dfa
    00595         ,"dfa                           - Dump allocation fail stack trace\n"
    00596         ,"  dfa           - dump allocation fail stack trace\n"
    00597         ,""
    00598         ,STDARGS1)
    00599 DOIT(   dha
    00600         ,"dha    address  - Dump heap allocations.  Also verifies the heap the address belongs to\n"
    00601         ,"  dha -v        - Prints out all allocations in the heap\n"
    00602          "  dha -a        - apply the command to all heaps.  \nWith no address specified, it checks all allocations in all heaps\n"
    00603         ,"va"
    00604         ,STDARGS1)
    00605 #endif //KERNEL
    00606
    00607 DOIT(   dy
    00608         ,"dy [pdi]                      - Dump DISPLAYINFO\n"
    00609         ,"  dy             - dump gpDispInfo\n"
    00610          "  dy address     - dump DISPLAYINFO at address\n"
    00611         ,""
    00612         ,STDARGS1)
    00613
    00614 DOIT(   find
    00615         ,"find baseaddr addr [o#]       - Find linked list element\n"
    00616         ,"  find baseaddr addr      - searches list for addr starting at baseaddr,\n"
    00617          "                            assumes link is first DWORD, w/NULL termination.\n"
    00618          "  find baseaddr addr o4   - next link is 4 DWORDS from start of structure\n"
    00619         ,""
    00620         ,CUSTOM)
    00621
    00622 DOIT(   fno
    00623         ,"fno <address>                 - Find nearest object.\n"
    00624         ,"  Locates the nearest public USER objects to the given address.\n"
    00625         ,""
    00626         ,STDARGS1)
    00627
    00628 DOIT(   frr
    00629         ,"frr <psrcLo> <psrcHi> <prefLo> [prefHi] - Find Range Reference\n"
    00630         ,"  Used to search memory within the src range for references to\n"
    00631          "  addresses within the ref range.\n"
    00632         ,""
    00633         ,STDARGS4)
    00634
    00635 #ifdef KERNEL
    00636
    00637 DOIT(   gflags
    00638         ,"\0gflags [-v]                   - Displays NT Global Flags\n"
    00639         ,"  gflags      - Dump and interpret the NT global flags\n"
    00640          "  gflags -v   - A little bit verbose\n"
    00641         ,"v"
    00642         ,STDARGS0)
    00643
    00644 #endif
    00645
    00646 #ifdef KERNEL
    00647 DOIT(   kbd
    00648         ,"kbd -au [pq]                  - Displays key state for queue\n"
    00649         ,"  kbd            - key state for foreground queue\n"
    00650          "  kbd pq         - key state for queue structure at pq\n"
    00651          "  kbd -a         - key state for all queues\n"
    00652          "  kbd -u pb      - wParam of WM_UPDATEKEYSTATE event\n"
    00653         ,"au"
    00654         ,STDARGS1)
    00655 #endif // KERNEL
    00656
    00657 #ifndef KERNEL
    00658 DOIT(   kbp
    00659         ,"kbp                           - Breaks into the Kernel Debugger\n"
    00660         ,""
    00661         ,""
    00662         ,NOARGS)
    00663 #endif
    00664
    00665 DOIT(   sas
    00666         ,"sas [-s] <addr> [length]      - Stack Analysis Stuff\n"
    00667         ,"sas -d [-s] <number> - to just analyze a number.\n"
    00668          " length defaults to 25.\n"
    00669          " -s suppresses symbolic output.\n"
    00670         ,"ds"
    00671         ,STDARGS2)
    00672
    00673 #if DEBUGTAGS
    00674 DOIT(   tag
    00675         ,"tag [<tag> [<flags>]]         - Displays or sets tags\n"
    00676         ,"  tag               - display all tags\n"
    00677          "  tag <tag>         - display one tag\n"
    00678          "  tag <tag> <flags> - change tag settings\n"
    00679          "       <flags> = [0-3] Disabled = 0, Enabled = 1, Print = 2, Prompt = 3\n"
    00680         ,""
    00681         ,CUSTOM)
    00682 #endif
    00683
    00684 DOIT(   test
    00685         ,"test                          - Test basic debug functions.\n"
    00686         ,""
    00687         ,""
    00688         ,NOARGS)
    00689
    00690 DOIT(   uver
    00691         ,"uver                          - show versions of user and exts.\n"
    00692         ,""
    00693         ,""
    00694         ,NOARGS)
    00695
    00696 DOIT(   vkey
    00697         ,""
    00698         ,"vkey                          - show vkey values\n"
    00699          "  vkey hex          - display VK symbol\n"
    00700          "  vkey VK_*         - display hex value for VK_ symbol\n"
    00701          "  vkey -a           - display all common VK values\n"
    00702          "  vkey -o           - display all common VK values in one column\n"
    00703         ,"ao"
    00704         ,CUSTOM)
    00705
    00706 #ifdef KERNEL
    00707
    00708 DOIT(   hh
    00709         ,"hh                            - dumps gdwHydraHint.\n"
    00710         ,"hh hydrahint        - dumps a specified DWORD as a hydra hint"
    00711         ,""
    00712         ,STDARGS1)
    00713 #endif // KERNEL
    00714
    00715 #ifndef KERNEL
    00716 DOIT(   kc
    00717         ,"kc pwnd                       - Displays information on Keyboard Cues\n"
    00718         ,""
    00719         ,""
    00720         ,STDARGS1)
    00721 #endif
    00722
    00723 DOIT(   wm
    00724         ,"wm, vkey, ddlgt, disi: see each help\n"
    00725         ,"wm <msg>                      - Displays window message symbol\n"
    00726          "  wm hex            - display WM_ symb\n"
    00727          "  wm WM_            - display message value\n"
    00728          "  wm -a             - display all common window messages\n"
    00729         ,"a"
    00730         ,CUSTOM)
    00731
    00732