Dmitry Fleytman
6d5b7151ee
UsbDk: Trivial: Replace NULL with nullptr
...
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:15 +03:00
Dmitry Fleytman
d680b5b139
UsbDk: Fix ReadPipe/WritePipe number of bytes transferred propagation
...
Number of bytes transferred returned by ReadFile/WriteFile cannot
be larger then the size of buffer passed to the function.
Since buffer passed to ReadFile/WriteFile is our request
structure and number of bytes transferred to/from usb device
depends on buffer size passed via the request structure and not on
request structure size we have to return actual number of bytes
transferred via some field in request structure and not via system
facilities.
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:15 +03:00
Dmitry Fleytman
008699089f
UsbDkHelper: Fix read/write logic
...
Do not destroy redirector handle after each operation.
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:15 +03:00
Dmitry Fleytman
1447b8d476
UsbDk: disable maximum packet size check for pipes
...
It's up to client to send packets of allowed size.
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:15 +03:00
Dmitry Fleytman
655307e7b3
UsbDk: Fix WdfRequest unsafe buffers interface
...
1. Fix buffers probing methods semantics
2. Remove template directives where not required
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:15 +03:00
Dmitry Fleytman
e602d6c4cc
UsbDk: Trivial: traces cleanup/fixes
...
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:15 +03:00
Dmitry Fleytman
5cdaf656f9
UsbDkHelper: Introduce ReadPipe/WritePipe API
...
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:15 +03:00
Dmitry Fleytman
e3c976d432
UsbDkHelper: Introduce generic read/write methods
...
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:15 +03:00
Dmitry Fleytman
33ceed2b33
UsbDk: Redirector queue read/write methods
...
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:15 +03:00
Dmitry Fleytman
54cc88bc61
UsbDk: Redirector strategy read/write methods
...
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:15 +03:00
Dmitry Fleytman
8c2b454cae
UsbDk: Simplify strategy interface
...
Make filter strategy methods accept raw WDF requests.
This simplifies overall request handling code.
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:15 +03:00
Dmitry Fleytman
a5bba7bf0c
UsbDk: Introduce read/write endpoint logic
...
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:15 +03:00
Dmitry Fleytman
f2b18a5706
UsbDk: Make WdfRequest detach return original object
...
This change slightly simplifies CWdfRequest class usage
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:15 +03:00
Dmitry Fleytman
b50b2eddb8
UsbDk: Method for sending request with completion
...
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:15 +03:00
Dmitry Fleytman
46cac03bc6
UsbDk: CWdfRequest: introduce internal object accessor
...
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:15 +03:00
Dmitry Fleytman
685f789979
UsbDk: CWdfRequest methods for read/written bytes number specification
...
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:14 +03:00
Dmitry Fleytman
799164e90d
UsbDk: Trivial: simplify WdfRequest completion code
...
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:14 +03:00
Dmitry Fleytman
ba060102dd
UsbDk: Introduce accessors for WdfRequest unsafe buffers
...
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:14 +03:00
Dmitry Fleytman
00dec94f34
UsbDk: Assign HUB strategy to devices of class HUB
...
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:14 +03:00
Dmitry Fleytman
267311dcfe
UsbDk: Introduce UsbDeviceIsHub helper
...
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:14 +03:00
Dmitry Fleytman
527a0b774f
UsbDkController: Handle start redirect return value properly
...
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:14 +03:00
Dmitry Fleytman
9a12b44669
UsbDkHelper: Trivial: typos and cosmetics
...
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:14 +03:00
Dmitry Fleytman
9fa5fc08ac
UsbDk: Prevent double request completion in IoInCallerContext
...
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:14 +03:00
Dmitry Fleytman
9e09d8b764
UsbDk: Implement control transfer logic
...
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:14 +03:00
Dmitry Fleytman
b66be8ed62
UsbDk: Introduce USB target raw device accessor
...
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:14 +03:00
Dmitry Fleytman
49fceb5323
UsbDk: Trivial: clean printouts
...
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:14 +03:00
Dmitry Fleytman
167cc7ad4c
UsbDk: Introduce CWdfRequest::Detach() operation
...
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:14 +03:00
Dmitry Fleytman
5edf49500b
UsbDk: WdfRequest: add generic request processor based on memory objects
...
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:14 +03:00
Dmitry Fleytman
6708ad11c3
UsbDk: Make null strategy reference control device
...
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:14 +03:00
Dmitry Fleytman
48ef084147
UsbDk: Strategy: Add accessor for control device object
...
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:14 +03:00
Dmitry Fleytman
375a5eb10d
UsbDk: Avoid multiple redirections of the same device
...
For some USB devices system calls our AddDevice callback for FDO.
In addition we call the same callback for PDO of the devices we
want to redirect. In this case we will try to install our filter
two times into the same stack which is problematic.
This patch eliminates such a possibility.
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:14 +03:00
Dmitry Fleytman
af4d7e21e7
UsbDk: Make CUsbDkRedirection compare operators const
...
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:14 +03:00
Dmitry Fleytman
9935ca0aa7
UsbDk: Make device access process non-existing properties properly
...
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:14 +03:00
Dmitry Fleytman
ee3e3f77ac
UsbDk: Mark string compare operators const
...
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:14 +03:00
Dmitry Fleytman
c3e056bb39
UsbDk: class for pre-allocated WDF memory buffers
...
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:14 +03:00
Dmitry Fleytman
357e47a92b
UsbDk: Make CWdmMemoryBuffer support nullptr pointers
...
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:14 +03:00
Dmitry Fleytman
55a29f05ea
UsbDk: Make CRegText treat nullptr as empty string
...
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:14 +03:00
Dmitry Fleytman
eb5d30d7d4
UsbDk: Logic for USB device interfaces configuration
...
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:14 +03:00
Dmitry Fleytman
5f6978b2ce
UsbDk: Extend CObjHolder functionality
...
1. Add destroy() method
2. Predefine delete function for arrays destruction
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:14 +03:00
Dmitry Fleytman
e763ac9a98
UsbDk: Fix memory allocation failure handling
...
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:14 +03:00
Dmitry Fleytman
c5ea213221
UsbDk: Fix start redirect error value
...
It is inconsistent to return nullptr as invalid handle.
The proper value for invalid handle is INVALID_HANDLE_VALUE.
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:14 +03:00
Dmitry Fleytman
8004a32e5e
UsbDk: Introduce skeleton for select configuration handler
...
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:14 +03:00
Dmitry Fleytman
ad12e20e12
UsbDk: Introduce generic IO handlers for filter strategy
...
Signed-off-by: Pavel Gurvich <pavel@daynix.com>
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:14 +03:00
Dmitry Fleytman
a19d5ed719
UsbDk: Introduce IO target retriever for WDF device
...
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:14 +03:00
Dmitry Fleytman
84403b65b2
UsbDk: Introduce generic WDF request handlers
...
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:14 +03:00
Dmitry Fleytman
4566ccdac0
UsbDk: Introduce WDF request forwarding logic
...
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:14 +03:00
Dmitry Fleytman
31d1737fbe
UsbDk: Add incoming queue for redirector devices
...
Signed-off-by: Pavel Gurvich <pavel@daynix.com>
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:14 +03:00
Dmitry Fleytman
43a4ac1672
UsbDk: IoInCallerContext callback for redirector strategy
...
Signed-off-by: Pavel Gurvich <pavel@daynix.com>
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:14 +03:00
Dmitry Fleytman
79cac7bc0e
UsbDk: Introduce filter device request context configuration
...
Signed-off-by: Pavel Gurvich <pavel@daynix.com>
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:14 +03:00
Dmitry Fleytman
cdc4e99478
UsbDk: Extend CWdfRequest interface
...
1. Request parameters accessor
2. Make WDF object available for derived classes
Signed-off-by: Pavel Gurvich <pavel@daynix.com>
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:14 +03:00