Expression Visualizer

One of the key features of VisualDDK is improving debugging experience by providing a convenient way of viewing data:

watch screenshot

Note that, as in WinDbg, having lots of variables selected in Watch window can slow down debugging, as they all will be re-evaluated after each step. That way, it is recommended to use either the 1394-based debugging on real machines, or VirtualKD project for virtual machines.

VisualDDK also shows additional information about handles and NTSTATUS values. However, to enable this function, you need to use the VisualDDKHelpers.h file described here:

watsch screenshot 2

Note that the information about flags and values of various system structure fields is stored as a text resource in BasicDDKTypes.dll file. By modifying this resource you can extend its functionality. The syntax of this resource is very simple:

#flags DO_xxx { #define DO_VERIFY_VOLUME 0x00000002 #define DO_BUFFERED_IO 0x00000004 //... #define DO_POWER_INRUSH 0x00004000 } //... struct _DEVICE_OBJECT { Flags : DO_xxx; Characteristics : FILE_CHAR_xxx; DeviceType : FILE_DEVICE_xxx; } //...  

If you make any modifications to this file, please do not hesitate to send them via e-mail specified on the main page, or to post them on Forum.