Commit graph

153 commits

Author SHA1 Message Date
Dmitry Fleytman
5abd2b78c1 UsbDk: CPreAllocatedDeviceInit: Make minor functions array const
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:12 +03:00
Dmitry Fleytman
871c77ef82 UsbDk: Fix incorrect indentation
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:12 +03:00
Dmitry Fleytman
c6c5c88f20 UsbDk: Encapsulate redirector device into child device
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:12 +03:00
Dmitry Fleytman
0d87c0a69b UsbDk: RedirectorDevice: Drop OS object accessor 2014-05-11 19:26:12 +03:00
Dmitry Fleytman
c760152fd6 UsbDk: WdfDevice: Add accessors for OS objects
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:12 +03:00
Dmitry Fleytman
2db3b5c961 UsbDk: Additional traces in redirector logic
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:12 +03:00
Dmitry Fleytman
864f65021e UsbDk: Rename RedirectorPDO -> RedirectorDevice
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:12 +03:00
Dmitry Fleytman
090c69bc73 UsbDk: Move redirector classes to a separate file
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:12 +03:00
Dmitry Fleytman
74c65795e1 UsbDk: Create symlink for redirector PDO
This patch creates symlink to allow user mode access to the device.
Symlink name is constant for now, to be changed in future commits.

Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:12 +03:00
Dmitry Fleytman
82960229b8 UsbDk: Name redirector PDO to allow symlinks
Device must have a name to create symlink pointing to it.
Device name is const and temporary, to be changed in future commits.

Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:12 +03:00
Dmitry Fleytman
d65b779fee UsbDk: Move device names to a separate file
Move name strings definitions into a separate header
file to avoid unnecessary interdependencies while
accessing those strings from driver

Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:12 +03:00
Dmitry Fleytman
172269f3b7 UsbDk: IRP_MJ_PNP callbacks for redirector device
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:12 +03:00
Dmitry Fleytman
7f2e713047 UsbDk: Extend redirector device configurations
Make redirector device PDO raw
Add preprocessing callback for IRP_MJ_PNP

Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:12 +03:00
Dmitry Fleytman
72fc6cc3a2 UsbDk: Preprocess callback registration functions
Introduce overloaded functions for different cases of
WDF device preprocess callbacks registration

Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:11 +03:00
Dmitry Fleytman
a1fa86148b UsbDk: Drop unused driver interface GUID
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:11 +03:00
Dmitry Fleytman
4b1bcc5ecc UsbDk: Add context cleanup for redirector PDOs
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:11 +03:00
Dmitry Fleytman
84a2ef8762 UsbDk: Test control device queue allocation result
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:11 +03:00
Dmitry Fleytman
871bbe335c UsbDk: Redirector PDO creation and propagation
New PDO is created and passed to PnP manager
No code for redirected device yet

Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:11 +03:00
Dmitry Fleytman
d9e2433635 UsbDk: Make child PDO reference counting external
CUsbDkChildDevice should not reference PDO for caller.
It is up to caller to reference PDO when needed.

This change simplifies CUsbDkChildDevice class and
makes its interface more flexible

Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:11 +03:00
Dmitry Fleytman
d0a833584f UsbDk: Introduce redirector PDO class
Minimal implementation - create logic only

Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:11 +03:00
Dmitry Fleytman
1dc45a2c3d UsbDk: Control device: redirection list access API
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:11 +03:00
Dmitry Fleytman
3d58cc6f75 UsbDk: Make CWdfDevice more generic
Control-device creation related logic moved
to corresponding class

Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:11 +03:00
Dmitry Fleytman
e8d4b3e107 UsbDk: Make CWdfDevice cleanup safe
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:11 +03:00
Dmitry Fleytman
9c6c939a48 UsbDk: Filter: Preserve existing devices on QDR
USB devices list must be synchronized with QDR, not recreated.
Will be required by future patches to preserve redirection state
of specific device during QDR processing.

Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:11 +03:00
Dmitry Fleytman
17a328fb71 UsbDk: USB devices lists synchronization logic
This patch introduces logic for synchronization of our USB
devices list with DEVICE_RELATIONS structure received on QDR.

Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:11 +03:00
Dmitry Fleytman
ed5be722ea UsbDk: Introduce PDEVICE_RELATIONS wrapper
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:11 +03:00
Dmitry Fleytman
76387cf611 UsbDk: Fail redirection of non-existing devices
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:11 +03:00
Dmitry Fleytman
1e946679ef UsbDk: Introduce CUsbDkControlDevice::EnumUsbDevicesByID
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:11 +03:00
Dmitry Fleytman
524371a265 UsbDk: Filter device: Rename m_ChildDevices m_ChildrenDevices
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:11 +03:00
Dmitry Fleytman
348713b7c2 UsbDk: Delete CWdmList entries on destruction
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:11 +03:00
Dmitry Fleytman
c1b25f344b UsbDk: CWdmList: fix entries counting on remove
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:11 +03:00
Dmitry Fleytman
4f8aa22fbd UsbDk: Make some CUsbDkChildDevice methods const
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:11 +03:00
Dmitry Fleytman
d6162329ed UsbDk: Make CRegText methods const as needed
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:11 +03:00
Dmitry Fleytman
1cb132b2d6 UsbDk: Make CMemoryBuffer accessors const
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:11 +03:00
Dmitry Fleytman
31ff0f4bb2 UsbDk: Make CObjHolder accessors const
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:11 +03:00
Dmitry Fleytman
2850bedb27 UsbDkHelper: Trivial: improve printout
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:11 +03:00
Dmitry Fleytman
6ce2f2ff8a UsbDkHelper: Fix devices number on enumeration
Devices number returned on enumeration was incorrect

Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:11 +03:00
Pavel Gurvich
2b2953bc2e UsbDkController: Fix DLL symbols import
Calling convention must be CDECL to import symbols properly

Signed-off-by: Pavel Gurvich <pavel@daynix.com>
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:11 +03:00
Pavel Gurvich
cc6412fca9 UsbDkHelper: Fix exports
Calling convention must be CDECL to export symbols properly

Signed-off-by: Pavel Gurvich <pavel@daynix.com>
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:11 +03:00
Pavel Gurvich
f4e565be17 UsbDkHelper: Make UsbDk interface files compilable with gcc
Signed-off-by: Pavel Gurvich <pavel@daynix.com>
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:11 +03:00
Dmitry Fleytman
d0b377d1f7 UsbDk: Trivial: Put FilterDevice traces to proper group
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:11 +03:00
Dmitry Fleytman
0a484ff601 UsbDkController: Commands for start/stop redirection
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:11 +03:00
Dmitry Fleytman
e2275bb0f2 UsbDkHelper: Redirections collection management
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:11 +03:00
Dmitry Fleytman
838d1e3662 UsbDk: Redirections collection management
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:11 +03:00
Dmitry Fleytman
bfa21156bb UsbDk: Introduce class describing redirection entity
CUsbDkRedirection class introduced

Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:11 +03:00
Dmitry Fleytman
3d4b8eda14 UsbDkHelper: Isolate common code for some ioctls
All IOCTLs that perform operation on USB device
identified by USB_DK_DEVICE_ID are pretty similar,
common code may be isolated.

Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:11 +03:00
Dmitry Fleytman
c4e8d29e50 UsbDkHelper: make CDriverAccess::ResetDevice return void
Return value is not needed, function
throws exception in case of error

Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:11 +03:00
Dmitry Fleytman
0f4406c1ed UsbDk: Make control device use CWdfRequest
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:11 +03:00
Dmitry Fleytman
53250aec67 UsbDk: Introduce WDFREQUEST wrapper
class CWdfRequest introduced

Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:11 +03:00
Dmitry Fleytman
48670040b3 UsbDk: Introduce (unicode) string classes
CStringHolder - for pre-allocated strings
CString - for strings allocated on creation

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