Commit graph

619 commits

Author SHA1 Message Date
Pavel Gurvich
3137e01236 UsbDkHelper: Print exception text to all sources
Print exception text to both OutputDebugString and console

Signed-off-by: Pavel Gurvich <pavel@daynix.com>
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:10 +03:00
Pavel Gurvich
8f545c05e8 UsbDkHelper: Do not fail uninstall due to non-existing items to be deleted
Do not fail uninstall if driver file does not exist in windows/system32
Also do not fail uninstall in other cases when something does not exist - i.e. service, UpperFilters entry etc.

Signed-off-by: Pavel Gurvich <pavel@daynix.com>
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:10 +03:00
Pavel Gurvich
4041e40878 UsbDkHelper: Beautify exception syntax.
Insert general string to constructor. Add Constructor with error code.

Signed-off-by: Pavel Gurvich <pavel@daynix.com>
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:10 +03:00
Dmitry Fleytman
1a1edc7f5a UsbDk: CUsbDkControl: Dump all children devices on PING
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:10 +03:00
Dmitry Fleytman
c06e5461f3 UsbDk: CUsbDkFilterDevice: introduce children list
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:10 +03:00
Dmitry Fleytman
7ae3eaf31b UsbDk: Usual deleted contructors for filter device class
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:10 +03:00
Dmitry Fleytman
d4887eba35 UsbDk: Introduce class for child USB device information
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:10 +03:00
Dmitry Fleytman
f2f2541104 UsbDk: Introduce funtion to query USB device serial number
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:10 +03:00
Dmitry Fleytman
53c79ec79e UsbDk/Helper: Introduce data structure for device enumeration
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:10 +03:00
Dmitry Fleytman
de546ef4ff UsbDk: CWdmList::ForEach() fix recursive lock acquisition
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:10 +03:00
Dmitry Fleytman
12ef2e4ec9 UsbDk: Make CRegText instances non-paged
This is needed for access with spinlocks

Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:10 +03:00
Dmitry Fleytman
c518508b31 UsbDk: Register filter devices in control device
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:10 +03:00
Dmitry Fleytman
9c36561fcd UsbDk: CUsbDkControlDevice: Add interface for filters registration
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:10 +03:00
Dmitry Fleytman
afeef67e62 UsbDk: Make CUsbDkFilterDevice objects suitable for CWdmList
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:10 +03:00
Dmitry Fleytman
a9ca161690 UsbDk: Introduce entry removal function for CWdmList
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:10 +03:00
Dmitry Fleytman
6ee40a363b UsbDk: Introduce UsbDkFilterDevice class
- Introduce filtering logic class
 - Make control device creation logic object oriented
 - Integrate control device creation with filter devices creation

Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:10 +03:00
Dmitry Fleytman
ac848be907 UsbDk: Introduce CPreAllocatedDeviceInit class
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:10 +03:00
Dmitry Fleytman
e04a6cad4c UsbDk: Add Get() method to CRefCountingHolder
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:10 +03:00
Dmitry Fleytman
6d9e89e8fc UsbDk: Introduce classes for WDM locks and lists
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:10 +03:00
Dmitry Fleytman
48802f27a9 UsbDk: Driver copy/delete function names clarification
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:10 +03:00
Dmitry Fleytman
800676db2b UsbDkHandler: Exception handling beautification
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:10 +03:00
Dmitry Fleytman
32154c09ef UsbDkControl: Introduce ping CLI
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:10 +03:00
Dmitry Fleytman
244ade2a35 UsbDkHelper: Introduce UsbDkDriverAccess class and PING IOCTL
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:10 +03:00
Dmitry Fleytman
9184644c56 UsbDk: Error messages beautification
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:10 +03:00
Dmitry Fleytman
ca9c54c2a8 UsbDkHelper: Introduce macro for TCHAR buffer size
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:10 +03:00
Dmitry Fleytman
0bda06c37b UsbDk: Control device lifecycle management implemented
Create control device on first filter attachment
Destroy control device when all filters detached

Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:10 +03:00
Dmitry Fleytman
7ef0b11c79 UsbDk: Fix control device default queue creation
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:10 +03:00
Dmitry Fleytman
4847928216 UsbDk: CDeviceInit/CWdfQueue: fix error tracing
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:10 +03:00
Dmitry Fleytman
bb3e2724f9 UsbDk: CWdfDevice class: delete device on destruction
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:10 +03:00
Dmitry Fleytman
12cc9e4985 UsbDk: Introduce share pointer class
Class CRefCountingHolder implements reference counting logic
for object given by pointer

Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:10 +03:00
Dmitry Fleytman
4a41a01289 UsbDkHelper: Query UpperFilters value size before read
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:10 +03:00
Pavel Gurvich
998fd9a996 UsbDkHelper: Introduce DeviceMgr class with reset logic
Signed-off-by: Pavel Gurvich <pavel@daynix.com>
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:10 +03:00
Pavel Gurvich
7fa28c0312 UsbDkHelper: Verify UpperFilters zero termination
Bug: Assertion on install/uninstall when UpperFilter
     value is not zero-terminated properly.

Fixed by checking size of registry data.

Signed-off-by: Pavel Gurvich <pavel@daynix.com>
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:09 +03:00
Pavel Gurvich
c9d093ab2d UsbDkHelper: Fix unhandled exception in case of error
Type of exception should comply to throw type.

Signed-off-by: Pavel Gurvich <pavel@daynix.com>
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:09 +03:00
Dmitry Fleytman
6c578fdc31 UsbDk: Create control device on load
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:09 +03:00
Dmitry Fleytman
1ec2fc3e40 UsbDk: Introduce control device class
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:09 +03:00
Dmitry Fleytman
3eca24570d UsbDk: Introduce generic WDF device wrappers
Classes for WDFDEVICE, WDFQUEUE, WDFDEVICEINIT introduced

Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:09 +03:00
Dmitry Fleytman
d811f996f7 UsbDk: Introduce pointer assignment for CObjHolder
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:09 +03:00
Dmitry Fleytman
b36f2a0ac6 UsbDkHelper: Move names definitions to Public.h
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:09 +03:00
Dmitry Fleytman
11503c1ca8 UsbDkController/UsbDkHelper: additional include dirs
.dll/.exe projects include files of each other,
VS projects configured as needed.

Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:09 +03:00
Pavel Gurvich
003cf4b864 UsbDk: fix architecture file
Change file names and add to solution file

Signed-off-by: Pavel Gurvich <pavel@daynix.com>
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:09 +03:00
Pavel Gurvich
7abe649fbf UsbDk: Add .dll and .exe with installer logic
Signed-off-by: Pavel Gurvich <pavel@daynix.com>
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:09 +03:00
Pavel Gurvich
6873b3d3b2 UsbDk: Fix compilation error on Win32
Replace SIZE_T by size_t

Signed-off-by: Pavel Gurvich <pavel@daynix.com>
Signed-off-by: Dmitry Fleytman <dmitry@daynix.com>
2014-05-11 19:26:09 +03:00
Dmitry Fleytman
9b030b8d4e UsbDk: Introduce Design and architecture document
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:09 +03:00
Dmitry Fleytman
4513640e1d UsbDk: Introduce redirected device IDs dumps
This code contains printouts only.
Will probably be removed at some stage.

Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:09 +03:00
Dmitry Fleytman
46a78dc96b UsbDk: Use CDeviceAccess logic for USB hub identification
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:09 +03:00
Dmitry Fleytman
bad42d21cd UsbDk: CDeviceAccess coding style fixes
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:09 +03:00
Dmitry Fleytman
c07eb5c45a RHUsd: Introduce functions for BUS IDs queries
CDeviceAccess classes extended with new functionality

Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:09 +03:00
Dmitry Fleytman
b293755823 UsbDk: Introduce CRegText classes
Classes for handling REG_SZ/REG_MULTI_SZ data buffers

Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:09 +03:00
Dmitry Fleytman
6749f9e714 UsbDk: Introduce CIrp class
CIrp is a wrapper for WDM IRP data structure
and related logic

Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:09 +03:00