SniffUSB 2.0 A USB Sniffer for Windows Release Notes http://pcausa.com/Utilities/UsbSnoop/default.htm Printing Communications Associates, Inc. 4201 Brunswick Court Smyrna, GA 30080 USA TEL: (770) 432-4580 FAX: (770) 436-7246 E-Mail: tdivine@pcausa.com ====================================================================== Component Name : SniffUSB 2.0 - A USB Sniffer for Windows ====================================================================== Version : 2.0.0006 Release Date: 02/23/07 1.) Added Common.h that includes defines of NTDEVICENAME, LINKMANE and other strings shared by driver and application for user-mode I/O on the driver. 2.) Removed unnecessary call to RtlAnsiUnicodeString in logprint.c, method MyThreadFunction. 3.) Made small improvement to logging contols: Pause Log Button : Temporarily pauses logging. Resume Log Button: Starts or resumes logging. Close Log Button : Closes the driver's handle on the log file. Can only be done of logging is paused. Delete Log Button: Deletes the log file. Can only be done if the driver log file handle is closed. 4.) Added code in ui to detect when driver is installed and started. If driver is not started, then the buttons are enabled a little differently. ====================================================================== Version : 2.0.0005 Release Date: 01/14/07 1.) Now do display refresh after Install, Uninstall, Replug and Log Delete buttons are pressed. These need to be explicitly called because Build 0004 removed the 1-second automatic update. 2.) Added "Uninstall All" button. This button does Uninstall _AND_ Replug of all installed UsbSnoop filters. ====================================================================== Version : 2.0.0004 Release Date: 01/13/07 1.) In FdoHookDispatchInternalIoctl now completly zero newly allocated RP_STACK_CONTEXT structure. 2.) Added sanity checks to prevent write fault when calling RtlCopyBytes to copy URB in FdoHookDispatchInternalIoctl. 3.) Made some modifications to the user-mode application. Basically the refresh mechanism made the tool almost impossible to use if there were a large number of USB devices. 3.1) Added display refresh control group and interface to enable automatic display refresh and control refresh interval. 3.2) Made log file group and rearranged controls. 3.3) Made filter control group and rearragned install/uninstall/replug buttons. 3.4) Added a checkbox to control whether devices that are not present are listed. 4.) Fixed bug in "Present" device indication. Original implementation made an incorrect comparison using hardware ID. Revised implementation makes comparison using instance ID. ====================================================================== Version : 2.0.0003 Release Date: 01/03/07 Trying to iron out occasional crashes - particularly at Add/Remove time. Testing with DriverVerifier enabled on usbsnoop.sys on 4-way SMP machine. 1.) In FilterDispatchPnp and FdoHookDispatchPnp now log additional information for MinorFunction IRP_MN_QUERY_INTERFACE. 2.) Now use InterlockedExchangePointer to update dispatch table pointer. 3.) Added reference counting on DEVICE_EXTENSION memory. With this in place it is now concievable that final dereference could occur at IRQL == DISPATCH_LEVEL. To accomodate this slim possibility final calls to IoDetachDevice and IoDeleteDevice are made using a WorkItem to insure they are made at IRQL == PASSIVE_LEVEL. ====================================================================== Version : 2.0.0002 Release Date: 01/01/07 1.) Changed GUID_SD_FILTER_CONTROL_OBJECT so it will not conflict with the WDK toaster filter sample GUID. WAS : {41966169-3FD7-4392-AFE4-E6A9D0A92C72} CHANGED TO: {9FFF154F-2FE5-4341-9799-BDACF40A90E6} 2.) Integrated SniffUSB MFC application's version resources with defines in BuildNum.h. Now version number for application and driver can be updated by simply editing BuildNum.h and rebuilding drivers and then the application. 3.) Restored Benoit's original logging for IRP_MJ_PNP in FilterDispatchAny. Now logs these calls as they did in the original: IRP_MN_START_DEVICE IRP IRP_MN_QUERY_INTERFACE IRP IRP_MN_QUERY_CAPABILITIES IRP IRP_MN_QUERY_PNP_DEVICE_STATE IRP IRP_MN_QUERY_DEVICE_RELATIONS IRP IRP_MN_QUERY_REMOVE_DEVICE IRP IRP_MN_REMOVE_DEVICE IRP 4.) Restored Benoit's original hook for FdoHookDispatchPnp. ====================================================================== Version : 2.0.0001 Release Date: 12/27/06 Initial release. Adaptation of Benoit PAPILLAULT's SniffUSB V1.8 to allow it to be built using newer development tools.