Pavel Gurvich
f6b5cb2056
UsbDk: Allow control transfers without data buffer
...
According to spec control transfer may have no data buffer.
Make driver process cases like this properly.
Signed-off-by: Pavel Gurvich <pavel@daynix.com>
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-07-03 08:54:37 +03:00
Pavel Gurvich
4a677d08fc
UsbDk: Return proper status on CUsbDkRedirectorStrategy::IoInCallerContext failure
...
Signed-off-by: Pavel Gurvich <pavel@daynix.com>
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-07-02 18:14:58 +03:00
Pavel Gurvich
bb1e76a829
UsbDk: Remove junk trace on SetAltSettings
...
Signed-off-by: Pavel Gurvich <pavel@daynix.com>
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-07-02 18:11:04 +03:00
Pavel Gurvich
77131d9ff5
UsbDk: fix traces on user mode handle creation
...
During user mode redirector handle creation we wait for
device to appear. During this process we may take a few
unsuccessfull attempts to open device handle.
Do not print error messages for this attempts.
Signed-off-by: Pavel Gurvich <pavel@daynix.com>
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-07-02 18:10:29 +03:00
Pavel A
2985741dd6
UsbDk: Introduce .editorconfig file
...
Editorconfig is a nice tool that simplifies
maintenance of consistent coding style.
See http://editorconfig.org for details.
Signed-off-by: Pavel Aronsky <pavel.aronsky@daynix.com>
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-06-22 09:31:22 +03:00
Pavel Aronsky
746614d717
UsbDk: added support for WinXP; get device speed
...
Signed-off-by: Pavel Aronsky <pavel.aronsky@daynix.com>
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-06-16 15:05:47 +03:00
Pavel Aronsky
913582965c
UsbDk: added check for IRQL in CIrp::ForwardAndWait
...
Signed-off-by: Pavel Aronsky <pavel.aronsky@daynix.com>
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-06-16 15:05:46 +03:00
Pavel Aronsky
701988dd69
UsbDk: Drop dead code
...
CWdfUrb class and CWdfUsbTarget::ConfigurationDescriptor()
are not used anymore.
Signed-off-by: Pavel Aronsky <pavel.aronsky@daynix.com>
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-06-16 15:05:45 +03:00
Pavel Gurvich
72cf6b764d
UsbDk: Do not create symlinks for redirector devices
...
Symlinks not needed anymore since we create redirector handles
in kernel.
Signed-off-by: Pavel Gurvich <pavel@daynix.com>
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-06-12 01:02:49 +03:00
Pavel Gurvich
99f3c0dbef
UsbDkHelper: Open redirector handle in driver
...
This commit contains user mode adaptations for
driver interface changes introduced by previous commit.
Signed-off-by: Pavel Gurvich <pavel@daynix.com>
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-06-12 01:00:08 +03:00
Dmitry Fleytman
5c4d0af852
UsbDk: Open redirector handle in driver
...
This commit makes redirection creation atomic operation
from user mode client point of view.
This ensures redirection will be stopped automatically
in case of unexpected user mode client termination.
Signed-off-by: Pavel Gurvich <pavel@daynix.com>
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-06-12 00:57:33 +03:00
Dmitry Fleytman
c95fb22cdb
UsbDk: Introduce more CWdfDevice methods
...
Newly introduced:
CreateUserModeHandle()
Reference()
Dereference()
Signed-off-by: Pavel Gurvich <pavel@daynix.com>
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-06-12 00:54:35 +03:00
Pavel Gurvich
3abe48f93b
UsbDk: Drop ReadTransferRequestSafe()
...
Use newly introduced generic utility
UsdDkReadUserBufferSafe() instead.
Signed-off-by: Pavel Gurvich <pavel@daynix.com>
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-06-12 00:22:54 +03:00
Pavel Gurvich
4a5b116872
UsbDk: Introduce UsdDkReadUserBufferSafe utility
...
Signed-off-by: Pavel Gurvich <pavel@daynix.com>
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-06-12 00:21:34 +03:00
Pavel Gurvich
2b01cd5faf
UsbDk: Add MillisecondsTo100Nanoseconds utility
...
Signed-off-by: Pavel Gurvich <pavel@daynix.com>
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-06-12 00:16:37 +03:00
Pavel Gurvich
f67846ab44
UsbDk: Adjust acess mode of driver's IOCTLs
...
Signed-off-by: Pavel Gurvich <pavel@daynix.com>
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-06-12 00:15:34 +03:00
Dmitry Fleytman
e20b3aa48f
UsbDk-XP: Drop annoying assertions in unimplemented functions
...
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-06-09 11:50:29 +03:00
Dmitry Fleytman
f1208b981f
UsbDK-XP: Change WDF version from 1.11 to 1.09
...
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-06-09 11:50:28 +03:00
Dmitry Fleytman
51fb96b7cb
UsbDK-XP: use wcsncpy instead of wcsncpy_s
...
wcsncpy_s is not available ion XP kernel
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-06-09 11:50:27 +03:00
Dmitry Fleytman
d5d51dfd47
UsbDk: place all system includes into stdafx.h
...
This makes include policy more strict and ensures
all system includes properly wrapped with extern "C"
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-06-09 11:50:26 +03:00
Dmitry Fleytman
9d699219b8
UsbDk-XP: Setup proper linker input for the driver
...
Ensure driver links with WDK 7.1 libraries only.
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-06-09 11:49:54 +03:00
Dmitry Fleytman
d881efe8ac
build: Fix subsystem and linker versions for XP build
...
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-06-09 11:42:35 +03:00
Dmitry Fleytman
447de6ad71
build: add XP/2003 configurations
...
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-06-01 23:01:13 +03:00
Dmitry Fleytman
6c1b1e894e
UsbDk: Fix packaging on the first build
...
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-06-01 20:21:34 +03:00
Pavel Gurvich
310ef26669
UsbDkHelper: remove unnecessary call to RemoveRedirection
...
With new kernel mode code redirection stops automatically
when redirector handle is closed.
Signed-off-by: Pavel Gurvich <pavel@daynix.com>
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-31 19:21:04 +03:00
Pavel Gurvich
0cf0c43f39
UsbDk: Register EvtFileClose callback for filter device
...
Signed-off-by: Pavel Gurvich <pavel@daynix.com>
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-31 19:19:16 +03:00
Pavel Gurvich
093251727e
UsbDk: Add OnClose callback to Strategies
...
OnClose is called when device symlink is fully closed by used mode.
For redirector strategy OnClose stops redirection.
For other strategies OnClose is currently no-op.
Signed-off-by: Pavel Gurvich <pavel@daynix.com>
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-31 19:17:12 +03:00
Dmitry Fleytman
2514bdc4ea
UsbDk: trivial Drop redundant class name specification
...
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-29 15:47:19 +03:00
Pavel Gurvich
0c872018fc
UsbDk: trivial: drop unnecessary includes
...
Signed-off-by: Pavel Gurvich <pavel@daynix.com>
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-29 15:47:18 +03:00
Dmitry Fleytman
54d062775c
UsbDkController: print device speed on enumeration
...
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-29 15:47:17 +03:00
Dmitry Fleytman
1af417f1d7
UsbDk: Supply USB device speed on enumeration
...
Signed-off-by: Pavel Gurvich <pavel@daynix.com>
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-29 15:34:07 +03:00
Dmitry Fleytman
32ed150d95
UsbDk: Read and store device speed on child registration
...
Signed-off-by: Pavel Gurvich <pavel@daynix.com>
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-29 15:34:06 +03:00
Dmitry Fleytman
d141a9fc60
UsbDk: Introduce USB device speed fetcher function
...
Signed-off-by: Pavel Gurvich <pavel@daynix.com>
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-29 15:34:05 +03:00
Dmitry Fleytman
f7a82043b5
UsbDk: Introduce USBD wrapper class
...
Signed-off-by: Pavel Gurvich <pavel@daynix.com>
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-29 15:34:04 +03:00
Pavel Gurvich
18709c5e64
UsbDk: Add device speed definitions to API structures
...
Signed-off-by: Pavel Gurvich <pavel@daynix.com>
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-29 14:20:55 +03:00
Pavel Gurvich
6239ffba38
UsbDkHelper: Introduce ResetDevice API
...
Signed-off-by: Pavel Gurvich <pavel@daynix.com>
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-26 18:42:52 +03:00
Pavel Gurvich
32e7243f99
UsbDk: Implement RESET_DEVICE IOCTL
...
Signed-off-by: Pavel Gurvich <pavel@daynix.com>
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-26 18:42:51 +03:00
Pavel Gurvich
c2adb1f0eb
UsbDk: Introduce RESET DEVICE IOCTL definition
...
Signed-off-by: Pavel Gurvich <pavel@daynix.com>
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-26 18:41:18 +03:00
Pavel Gurvich
7ef985384e
UsbDk: Make all interface fields ULONG64
...
This is needed to make structures similar on all architectures
and all compilers.
Signed-off-by: Pavel Gurvich <pavel@daynix.com>
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-26 18:41:17 +03:00
Pavel Gurvich
02076801c4
UsbDkHelper: Add UsbDk_SetAltsetting API
...
Signed-off-by: Pavel Gurvich <pavel@daynix.com>
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-26 18:41:17 +03:00
Pavel Gurvich
40154c5bab
UsbDk: Implement IOCTL_USBDK_DEVICE_SET_ALTSETTING
...
Signed-off-by: Pavel Gurvich <pavel@daynix.com>
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-26 18:41:16 +03:00
Pavel Gurvich
c0f71a13ee
UsbDk: Introduce SET_ALTSETTING IOCTL definition
...
Signed-off-by: Pavel Gurvich <pavel@daynix.com>
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-26 18:41:15 +03:00
Pavel Gurvich
780ef1202d
UsbDk: Add Start/Stop methods to Wdf Queue class
...
Signed-off-by: Pavel Gurvich <pavel@daynix.com>
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-26 18:41:15 +03:00
Pavel Gurvich
34dea22308
UsbDk: Separate transfer and configuration requests processing
...
Introduce separate queues for different types of requests:
1. Read/Write queue
2. Configuration (IOCTL) queue
This is needed to stop transfers during reconfiguration.
Signed-off-by: Pavel Gurvich <pavel@daynix.com>
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-26 18:41:14 +03:00
Pavel Gurvich
225d12c9d8
UsbDk: Drop Control Transfer IOCTL
...
Signed-off-by: Pavel Gurvich <pavel@daynix.com>
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-26 18:41:13 +03:00
Pavel Gurvich
96ac1e3f9b
UsbDk: Implement Control Transfer via R/W functions
...
Signed-off-by: Pavel Gurvich <pavel@daynix.com>
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-26 17:59:23 +03:00
Pavel Gurvich
caebe2ac7c
UsbDk: Define virtual endpoint for control transfers
...
Signed-off-by: Pavel Gurvich <pavel@daynix.com>
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-26 17:57:43 +03:00
Pavel Gurvich
00da1f59fc
UsbDk: make stop redirection synchronous
...
Signed-off-by: Pavel Gurvich <pavel@daynix.com>
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-20 12:03:27 +03:00
Dmitry Fleytman
87c3c67991
UsbDk: Introduce class for objects reference counting
...
Signed-off-by: Pavel Gurvich <pavel@daynix.com>
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-20 12:03:26 +03:00
Pavel Gurvich
b0e4908e3e
UsbDk: do not create symlinks for HUB filters
...
Those symlinks are not used by user mode API
Signed-off-by: Pavel Gurvich <pavel@daynix.com>
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-20 12:03:25 +03:00