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
Dmitry Fleytman
0ec933789c
UsbDk: Introduce method for device requests 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
1fef4eee3c
UsbDk: Make filter devices receive IoInCallerContext event
...
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
d3686076c1
UsbDk: FilterDeviceInit: introduce shortcut for strategy retrieval
...
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
aef9d9be01
UsbDk: CWdfDevice: method for IoInCallerContext callback registration
...
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
ff5f649436
UsbDk: User buffers retrieval for CWdfRequest
...
Two methods added:
1. CWdfRequest::FetchSafeReadBuffer()
2. CWdfRequest::FetchSafeWriteBuffer()
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
a37e2a4a0b
UsbDk: Trivial: ULONG* -> PULONG in interfaces
...
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:14 +03:00
Dmitry Fleytman
59f80a0f90
UsbDk: Introduce API for configuration descriptors retrieval
...
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:14 +03:00
Dmitry Fleytman
c0098eefed
UsbDk: Introduce GetPDOByDeviceID() helper
...
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:13 +03:00
Dmitry Fleytman
57025f34c1
UsbDk: make DoUSBDeviceOp() more generic
...
Make CUsbDkControlDeviceQueue::DoUSBDeviceOp() input buffer type
a template parameter.
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:13 +03:00
Dmitry Fleytman
98584c1d6f
UsbDk: Query configuration descriptor method for WDM device accessor
...
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:13 +03:00
Dmitry Fleytman
400e6e1c9f
UsbDk: Introduce send URB helper
...
Function UsbDkSendUrbSynchronously() introduced
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:13 +03:00
Dmitry Fleytman
eefbd06435
UsbDk: Supply USB device descriptors on enumeration
...
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:13 +03:00
Dmitry Fleytman
c174d4011b
UsbDk: Query device descriptor method for WDM device accessor
...
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:13 +03:00
Dmitry Fleytman
e3662ef431
UsbDk: Generic UsbBuildGetDescriptorRequest() wrapper
...
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:13 +03:00
Dmitry Fleytman
46c8381df5
UsbDk: Introduce CIrpBase class with common code
...
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:13 +03:00
Dmitry Fleytman
d7c84252c7
UsbDkHelper: Better check for buffer overflow case on IOCTL
...
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:13 +03:00
Dmitry Fleytman
8ce936c7be
UsbDk: Fix control device IOCTLS access type
...
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:13 +03:00
Dmitry Fleytman
3f7e5bdeae
UsbDk: Add UsbTarget instance to redirector strategy
...
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:13 +03:00
Dmitry Fleytman
d2a311752d
UsbDk: Introduce CWdfUsbTarget class
...
Class that encapsulates USB device communication:
- Descriptors query
- Pipe transfers (not implemented yet)
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:13 +03:00
Dmitry Fleytman
44b596d0b7
UsbDk: Introduce generic IOCTL method for DriverFile class
...
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:13 +03:00
Dmitry Fleytman
3465cf56cc
UsbDk: Trivial: Fix traces severity
...
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:13 +03:00
Dmitry Fleytman
7704e07c34
UsbDk: Make redirected device serial numbers dynamic
...
This is needed to allow simultaneous multiple devices redirection.
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2014-05-11 19:26:13 +03:00