|
dxd - dynax driver framework 3.0.1d223
cross platform open source driver development framework
|
#include <dxd_usb_device.h>
Public Types | |
| enum | speed { low = ::UsbLowSpeed , full = ::UsbFullSpeed , high = ::UsbHighSpeed , usb1 = full , usb2 = high } |
| the bus speeds this driver distinguishes, by their names and their generation More... | |
Public Member Functions | |
| void | conclude () override |
| the configuration, the USBD handle and the bus interface let go while the bus below still answers: ahead of the remove IRP, past it the PDO is gone - a vanished device gets no deselect | |
| unsigned char | configuration () const |
| return available USB configurations | |
| os_result | configuration (unsigned char configuration) |
| choose USB configuration | |
| unsigned char | configurations () const |
| return current USB configuration | |
| os_result | descriptors (unsigned char configuration) |
| obtains the configuration descriptor, then all of the configuration's descriptors into config | |
| template<typename... args_t> | |
| device (args_t &&... args) | |
| WDK: USB device constructor. | |
| const decltype(dx::usb::descriptor::endpoint) * | endpoint (unsigned char interface, unsigned char setting, unsigned char address) |
| the endpoint descriptor of an interface setting's endpoint, from the selected configuration | |
| os_result | frame (uint64_t &frame, int64_t *timestamp=nullptr) const |
| the current bus frame; timestamp: dxd::timestamp() of the readout | |
| const ::USBD_INTERFACE_INFORMATION * | interface (unsigned char index, unsigned char setting=0) |
| virtual os_result | ioctl (unsigned int ioctl, const void *, size_t size_in, void *out, size_t size_out, size_t &size) |
| control I/O handler, reached through client::ioctl() | |
| operator::DEVICE_OBJECT * () const | |
| template<typename data_t> | |
| os_result | request (const dx::usb::control &control, data_t &data) |
| os_result | request (const dx::usb::control &control, void *data, size_t &size) |
| speed | speed () const |
| os_result | string (unsigned char idx, char *string, unsigned char &chars) |
| template<typename string_t> | |
| os_result | string (unsigned char idx, string_t &string) |
Public Attributes | |
| os_result | status {not_initialized} |
Protected Member Functions | |
| virtual os_result | boot () |
| a device loading its firmware after enumeration reports readiness here, ahead of the configuration: its descriptors read (config), the ones it is configured from the booted one's | |
| virtual client * | client_create () |
| os_result | launch () override |
| WDK: USB device initialization callback. | |
| virtual void | unplugged () |
| surprise removal hook, called with removed set: the hardware side goes at once, what open handles hold waits for their close and the remove | |
Protected Attributes | |
| scoped<::USB_CONFIGURATION_DESCRIPTOR > | config |
| bool | removed {} |
| the device vanished: the stack below no longer answers //////////////////////////////////////////////////////////////////////////// user client factory | |
| struct dxd::device:: { ... } | wdm |
| enum dxd::usb::device::speed |
|
inline |
WDK: USB device constructor.
|
inlineprotectedvirtual |
a device loading its firmware after enumeration reports readiness here, ahead of the configuration: its descriptors read (config), the ones it is configured from the booted one's
|
inlineprotectedvirtualinherited |
|
inlineoverridevirtual |
the configuration, the USBD handle and the bus interface let go while the bus below still answers: ahead of the remove IRP, past it the PDO is gone - a vanished device gets no deselect
Reimplemented from dxd::device.
|
inline |
return available USB configurations
|
inline |
choose USB configuration
deselects current configuration on request #0
enumerates interfaces in the configuration,
allocates and builds an URB for the select-configuration request,
creates interface cache
enumerates the pipes in the interface information array, which is now filled with pipe information.
|
inline |
return current USB configuration
|
inline |
obtains the configuration descriptor, then all of the configuration's descriptors into config
|
inline |
the endpoint descriptor of an interface setting's endpoint, from the selected configuration
|
inline |
the current bus frame; timestamp: dxd::timestamp() of the readout
|
inline |
requests settings change,
disposes and creates new interface cache on size change,
and fills interface cache,
|
inlinevirtualinherited |
control I/O handler, reached through client::ioctl()
Reimplemented in dxd::adapter::device.
|
inlineoverrideprotectedvirtual |
WDK: USB device initialization callback.
obtains the device descriptor,
reads the configuration the boot decision looks at,
and select USB configuration #1.
Reimplemented from dxd::device.
|
inline |
|
inline |
| control | the USB request control defining the request type |
| data | data to transmit or receive |
|
inline |
|
inline |
|
inline |
|
inline |
|
inlineprotectedvirtualinherited |
surprise removal hook, called with removed set: the hardware side goes at once, what open handles hold waits for their close and the remove
Reimplemented in dxd::adapter::device.
|
protected |
the selected configuration's descriptors: endpoint attributes live here, a class compliant device is configured from them
|
protectedinherited |
the device vanished: the stack below no longer answers //////////////////////////////////////////////////////////////////////////// user client factory
|
inherited |
| struct { ... } dxd::device::wdm |
| (c) copyright 2009 dynamic acoustics e.U. | generated on |