Commit graph

59 commits

Author SHA1 Message Date
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
Dmitry Fleytman
597ca45127 UsbDk: Use DeviceAccess classes in UsbDkShouldAttach
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:09 +03:00
Dmitry Fleytman
b02ea0b736 UsbDk: Introduce CDeviceAccess classes
Classes for WDF/WDM device object abstraction

Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:09 +03:00
Dmitry Fleytman
5227c95c89 UsbDk: Introduce CMemoryBuffer classes
Classes for WDF/WDM memory objects abstraction

Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:09 +03:00
Dmitry Fleytman
75e439e882 UsbDk: introduce CObjHolder class
CObjHolder class is a simplified auto_ptr that we don't
have in Windows kernel

Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:09 +03:00
Dmitry Fleytman
07e77c5965 UsbDk: support delete NULL in Allocatable
delete NULL is allowed operation in C++ and must be supported

Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:09 +03:00
Dmitry Fleytman
9899155555 UsbDk: Minor WdfWorkItem beautification
Definition of deleted constructors simplified

Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:09 +03:00
Dmitry Fleytman
1457c0f50c UsbDk: Allocate PDO clones as needed
Drop pre-allocation scheme used in POC

Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:09 +03:00
Dmitry Fleytman
4030eee097 UsbDk: ClonePdo beautifications
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:09 +03:00
Dmitry Fleytman
1944f7769c UsbDk: Complete QDR IRP via workitem
This change is needed to allocate clone PDOs from completion
routine as allocation requires PASSIVE_LEVEL.

Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:09 +03:00
Dmitry Fleytman
a49a62b636 UsbDk: introduce WDF workitem class
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:09 +03:00